Commit b705226a authored by jingnan's avatar jingnan 👀

Merge branch 'dev' of http://94.191.100.41/tfmom/tf-mom-web into dev

parents 161bb470 803e3f05
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -123,6 +123,7 @@
<el-form-item label-width="100px" label="不合格数" prop="noPassAmount">
<el-input-number
v-model="form.noPassAmount"
style="width: 120px"
clearable
:min="0"
placeholder="不合格数"
......@@ -369,11 +370,11 @@ export default {
<style lang='scss'>
.equipmen-checkNo {
.el-select {
width: 220px
// width: 220px
}
.el-input {
width: 220px
// width: 220px
}
}
</style>
......@@ -948,11 +948,11 @@ export default {
</script>
<style lang='scss'>
.material-checkNo {
.el-select {
width: 220px
}
.el-input {
width: 220px
}
// .el-select {
// width: 220px
// }
// .el-input {
// width: 220px
// }
}
</style>
......@@ -338,11 +338,11 @@ export default {
</script>
<style lang='scss'>
.outSource-checkNo{
.el-select {
width: 220px
}
.el-input {
width: 220px
}
// .el-select {
// width: 220px
// }
// .el-input {
// width: 220px
// }
}
</style>
......@@ -27,6 +27,7 @@
layKey: 'table',
}"
@selectionChange="jobResponseSelectionChange"
@requestSuccess="onRequestSuccess"
/>
</div>
</template>
......@@ -55,7 +56,8 @@ export default {
data() {
return {
infoSelection: [],
jobResponseSelection: []
jobResponseSelection: [],
isRefresh: false
}
},
computed: {},
......@@ -107,8 +109,16 @@ export default {
}
},
refeach() {
this.isRefresh = true
this.$refs.adjustOccupyInfo.$refs.asCom.getData()
this.$refs.adjustOccupyjobResponse.$refs.asCom.getData()
},
onRequestSuccess(res) {
if (this.isRefresh) {
const inventoryJobResponses = res.items.content || []
this.$emit('refreshResponses', { inventoryJobResponses })
}
this.isRefresh = false
}
}
}
......
......@@ -19,7 +19,7 @@
<addOutStorageOfferDetailDialog ref="addOffer" :basic-data="form" @submitEvent="addData" />
</dee-dialog>
<dee-dialog width="70%" title="调整占用" :visible.sync="aoDialogVisible" @on-cancel="aoCancel">
<OutStorageOfferAdjustOccupy ref="adjustOffer" :select-datas="selectTableData" :form="form" @submitEvent="addData" />
<OutStorageOfferAdjustOccupy ref="adjustOffer" :select-datas="selectTableData" :form="form" @submitEvent="addData" @refreshResponses="refreshResponses" />
</dee-dialog>
<dee-dialog width="70%" title="查看占用" :visible.sync="viewVisible" @on-cancel="viewCancel">
<dee-as-com
......@@ -167,7 +167,8 @@ export default {
param: {},
aoDialogVisible: false,
selectTableData: [],
viewVisible: false
viewVisible: false,
applyId: null
}
},
computed: {
......@@ -223,7 +224,13 @@ export default {
subTypeName: 'OutStorageOut',
operator: 'ADD'
}
if (this.applyId) {
param.operator = 'MODIFY'
param.id = this.applyId
}
post('OutStorageRequest/outStorageOut/saveAndTake', param).then(res => {
this.$utils.findForm(this).applyId = res.items.id
this.applyId = res.items.id
this.$utils.showMessageSuccess('占用成功!')
const data = res.items.inStorageRequestItems
const tableData = [...this.tableData]
......@@ -265,45 +272,13 @@ export default {
})
},
getEditData() {
this.tableData.push(...this.basicData.inStorageRequestItems)
// const param = {
// 'searchItems': {
// 'items': [
// { 'fieldName': 'subTypeName', 'operator': 'EQ', 'value': 'OutStorageOut' },
// { 'fieldName': 'id', 'operator': 'EQ', 'value': id }
// ]
// },
// openProps: [{
// 'name': 'inStorageRequestItems',
// 'openProps': [{
// 'name': 'extMaterial',
// 'openProps': [{
// 'name': 'resType2'
// }, {
// 'name': 'extUnit'
// }]
// }, {
// 'name': 'extDxSipplier'
// }, {
// 'name': 'creator'
// }, {
// 'name': 'storageZone'
// },
// {
// 'name': 'inventoryJobResponses'
// }]
// }]
// }
// post('OutStorageRequest/search', param).then(res => {
// console.log('res', res)
// const data = res.items.content[0].inStorageRequestItems
// data.forEach(item => {
// item.allocatedAmount = this.sumArray(item.inventoryJobResponses, 'allocatedAmount')
// })
// this.tableData = data
// }).catch((err) => {
// console.log(err)
// })
const data = this.basicData.inStorageRequestItems
data.forEach(item => {
if (item.inventoryJobResponses) {
item.allocatedAmount = this.sumArray(item.inventoryJobResponses, 'allocatedAmount')
}
})
this.tableData = data
},
sumArray(array, key) {
let sum = 0
......@@ -311,6 +286,9 @@ export default {
sum += Number(array[i][key])
}
return sum
},
refreshResponses({ inventoryJobResponses }) {
this.selectTableData[0].allocatedAmount = this.$utils.sumArray(inventoryJobResponses, 'allocatedAmount')
}
}
}
......
......@@ -65,10 +65,10 @@ export default {
// { title: '是否合格供应商', key: 'extDxSipplier.isValid', headerAlign: 'center' },
{ title: '制造商', key: 'manufacturer', align: 'center', headerAlign: 'center' },
{ title: '到货日期', key: 'arrivalDate', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.arrivalDate.split(' ')[0]
return row.arrivalDate && row.arrivalDate.split(' ')[0]
} },
{ title: '生产日期', key: 'producedTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.producedTime.split(' ')[0]
return row.producedTime && row.producedTime.split(' ')[0]
} },
{
title: '随产品资料', key: 'withProductMaterial', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
......@@ -92,7 +92,7 @@ export default {
{ title: '备注', key: 'remark', align: 'center', headerAlign: 'center' },
{ title: '状态', key: 'state', align: 'center', headerAlign: 'center' },
{ title: '创建时间', key: 'createTime', align: 'center', headerAlign: 'center', width: '120', formatter: (row, column, cellValue, index) => {
return row.createTime.split(' ')[0]
return row.createTime && row.createTime.split(' ')[0]
} }
],
optionsTree: {
......@@ -122,10 +122,7 @@ export default {
// this.timerId = null
// }
// }, 200)
if (this.basicData.subTypeName === 'InStoragePurchase' ||
this.basicData.subTypeName === 'InStorageExpire' ||
this.basicData.subTypeName === 'InStorageRecall'
) {
if (this.basicData.subTypeName === 'InStoragePurchase') {
this.$nextTick(() => {
if (this.basicData.inStorageRequestItems[0]) {
this.searchInStorageRequestItem(this.basicData.inStorageRequestItems[0].inventoryReqId, 'inventoryReq.id')
......
......@@ -76,6 +76,7 @@ export default {
}
},
created() {
this.$emit('input', this.form)
this.getModelData()
this.getSortiesList()
},
......@@ -83,7 +84,6 @@ export default {
// 组件方法
methods: {
changeFrom(val) {
console.log(this.form)
this.$emit('input', val)
},
getStation(val) {
......@@ -107,6 +107,7 @@ export default {
})
this.$set(this.form, 'postion', this.postionList[0].value)
this.$set(this.form, 'postionName', this.postionList[0].label)
this.$bus.$emit('getTableData', this.form)
}
})
}
......
......@@ -420,7 +420,7 @@ export default {
this.$utils.showMessageWarning('打印标签需要先选择库位')
return
}
JobResponseInStorageEntryId = this.extWorkUnitName
JobResponseInStorageEntryId = row.extWorkUnit.extcode
this.printConfig = Object.assign({}, this.printConfig, {
visible: true
})
......
<template>
<div class="show-page-com stationPlan-maintenance-page">
<div class="stationPlan-maintenance-page">
<dee-tab :tabs="tabItems" :show-swipe="false" :is-detail="false">
<div slot="0" style="height:100%;box-sizing:border-box">
<split-pane
:min-percent="18"
:default-percent="80"
:default-percent="78"
split="vertical"
class="detail-pane"
>
<template slot="paneL">
<div class="three-member-wrap">
<dee-as-com
ref="detailCom"
:key="layConfig.typeName"
:lay-config="layConfig"
@row-click="rowClick"
......@@ -19,7 +20,7 @@
</template>
<template slot="paneR">
<div class="resourceTable-wrap">
<missingParts />
<missingParts :info="missInfo" />
</div>
</template>
</split-pane>
......@@ -34,6 +35,7 @@
</template>
<script>
import { post } from '@/utils/http'
import searchBar from './searchBar.vue'
import station from './station.vue'
import gantt from './gantt.vue'
......@@ -48,7 +50,9 @@ export default {
form: {},
stateOptions: [],
headerShow: true,
basicData: {}
basicData: {},
missInfo: {},
rowData: {}
}
},
computed: {
......@@ -72,12 +76,146 @@ export default {
}
},
mounted() {
this.$bus.$on('getTableData', (data) => {
this.$nextTick(() => {
const formData = {
items: [],
operator: 'AND'
}
for (const i in data) {
formData.items.push({
fieldName: i,
value: data[i]
})
}
this.$refs.detailCom.$children[0].searchFormData = formData
this.$refs.detailCom.$children[0].getData()
})
})
this.getStateOptions()
},
methods: {
rowClick(data) {
this.$emit('rowClick', data.row)
this.rowData = data
this.getLeftCount(data.row.extProcessPlan)
this.getRightCount(data.row.extProcessPlan)
this.getMissInfo(data.row.extProcessPlan)
// this.$emit('rowClick', data.row)
},
// getPageData(val) {
// this.getMissInfo(this.rowData.row, val)
// },
getLeftCount(obj) {
const params = {
'operator': 'AND',
'items': [
{
'fieldName': 'extProcessPlan.sorties',
'operator': 'EQ',
'value': obj.sorties
},
{
'fieldName': 'extProcessPlan.positionNumber',
'operator': 'EQ',
'value': obj.positionNumber
},
{
'fieldName': 'extProcessPlan.subTypeName',
'operator': 'IN',
'value': [
'ExtProcessPlanAssembly',
'ExtProcessPlanAOR'
]
},
{
'fieldName': 'fitRates',
'operator': 'EQ',
'value': '1'
}
]
}
post(`/ExtSupporting/count`, params).then(res => {
if (res.items) {
this.$set(this.missInfo, 'leftItem', res.items)
// this.missInfo.leftItem = res.items
}
}).finally(() => {
})
},
getRightCount(obj) {
const params = {
'operator': 'AND',
'items': [
{
'fieldName': 'sorties',
'operator': 'EQ',
'value': obj.sorties
},
{
'fieldName': 'positionNumber',
'operator': 'EQ',
'value': obj.positionNumber
},
{
'fieldName': 'subTypeName',
'operator': 'IN',
'value': [
'ExtProcessPlanAssembly',
'ExtProcessPlanAOR'
]
}
]
}
post(`/ExtProcessPlan/count`, params).then(res => {
if (res.items) {
this.$set(this.missInfo, 'rightItem', res.items)
}
}).finally(() => {
})
},
getMissInfo(obj) {
const params = {
'pageFrom': 1,
'pageSize': 200,
'searchItems': {
'children': [
{
'items': [
{
'fieldName': 'extSupporting.extProcessPlanId',
'operator': 'EQ',
'value': obj.id
}
],
'operator': 'AND'
}
],
'items': [],
'operator': 'AND'
},
'openProps': [
{
'name': 'extMaterial'
},
{
'name': 'productWorkCenter'
}
],
'sortItem': [
{
'fieldName': 'modifyTime',
'sortOrder': 'desc'
}
]
}
post(`/ExtSupportingItem/supportingItemAoId`, params).then(res => {
if (res.items) {
this.$set(this.missInfo, 'missList', res.items)
}
}).finally(() => {
})
},
getStateOptions() {
this.$utils.getDicListByCode('PlanState').then(res => {
......@@ -105,16 +243,13 @@ export default {
margin: 4px;
margin-top: 0px;
padding: 8px;
height: calc(100% - 20px);
width: calc(100% - 24px);
height: 100%;
width: 100%;
background-color: #fff;
.detail-pane {
width: 100%;
height: calc(100% - 6px);
}
// .splitter-pane{
// height: calc(100% - 6px);
// }
.splitter-pane-resizer.vertical {
opacity: 1;
background-color: #F1F4F5;
......@@ -124,7 +259,6 @@ export default {
}
.three-member-wrap{
height: 100%;
overflow: auto;
.dee-form2{
margin-top:6px;
.el-form-item{
......@@ -134,15 +268,11 @@ export default {
}
.resourceTable-wrap {
height: 100%;
overflow: auto;
padding: 0 10px;
box-sizing: border-box;
}
.dee-panel{
height: 100%;
}
.el-tab-pane{
height: calc(100% - 10px);
height: 100% !important;
}
.color{
&.Not{
......
......@@ -3,47 +3,57 @@
<div class="missing-parts">
<div class="search-box">
<div class="title">生产准备符合项</div>
<div class="num">127/72</div>
<div class="num">{{ detailInfo.leftItem }}/<span class="blue">{{ detailInfo.rightItem }} </span></div>
</div>
<div class="">
<h4>缺件信息列表</h4>
<el-table
:data="standData"
:data="detailInfo.missList && detailInfo.missList.content"
border
size="mini"
align="center"
:height="420"
>
<el-table-column
prop="serialNumber"
prop="extMaterial.resName"
label="物料名称"
width="60"
align="center"
/>
<el-table-column
prop="serialNumber"
prop="reqAmount"
label="需求数"
min-width="50"
align="center"
/>
<el-table-column
prop="serialNumber"
prop="unableAmount"
label="库存可用数"
min-width="50"
align="center"
/>
<el-table-column
prop="serialNumber"
prop="takeAmount"
label="库存占用数量"
width="60"
align="center"
/>
<el-table-column
prop="serialNumber"
prop="lostAmount"
label="缺件数"
min-width="50"
align="center"
/>
</el-table>
<!-- <el-pagination
v-if="detailInfo.missList && detailInfo.missList.totalElements>0"
small
:current-page="page"
:page-size="1"
layout="total, prev, pager, next, jumper"
:total="detailInfo.missList && detailInfo.missList.totalElements"
@current-change="handleCurrentChange"
/> -->
</div>
</div>
</template>
......@@ -52,11 +62,27 @@
// import { post } from '@/utils/http'
export default {
name: 'MissingParts',
props: {
info: {
type: Object,
default: () => ({})
}
},
data() {
return {
standData: [{
serialNumber: 1
}]
detailInfo: {},
page: 1,
pageSize: 20
}
},
watch: {
info: {
deep: true,
immediate: true,
handler(val) {
console.log(1212, val)
this.detailInfo = val
}
}
},
created() {
......@@ -65,6 +91,9 @@ export default {
},
methods: {
handleCurrentChange(val) {
this.$emit('getInfo', val)
}
}
}
</script>
......@@ -89,6 +118,9 @@ export default {
text-align: center;
font-size:20px;
margin: 10px 0;
.blue{
color:#59c4e6;
}
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment