| | |
| | | <basic-container> |
| | | <el-row> |
| | | <el-col :span="9"> |
| | | |
| | | <ttable :table="table" @currentChange="palletTransportsChange" :uploadInfo="uploadInfo" :prelang="prelang" |
| | | :options="options" :ajaxFun="ajaxFun" :fixedHeight="palletTransportsFixedHeight" ref="pallettransportsTable"> |
| | | <template #toolbar> |
| | |
| | | @click="addOrUpdateHandle()">新增</el-button> |
| | | </template> |
| | | </ttable> |
| | | |
| | | <div style="margin:0px 20px 0px;display:flex;height:36px;justify-content: space-between;align-items:center;"> |
| | | <div> |
| | | <span style="font-weight:bold;">对应工单</span> |
| | |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <el-table class="pallet-transports-material-table" :data="palletTransportsMaterialData" style="width: 100%;" |
| | | height="350px" border @selection-change="palletTransportsMaterialSelectionChange" stripe |
| | | <el-table class="pallet-transports-material-table" @selection-change="handleCurrentChange" :data="palletTransportsMaterialData" style="width: 100%;" |
| | | height="350px" border stripe |
| | | ref="palletTransportsMaterialTable"> |
| | | <!--单选框 @selection-change="palletTransportsMaterialSelectionChange"--> |
| | | <!-- <el-table-column align="center" width="55" label="多选"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox v-model="scope.row.commonChecked" @change="handleCurrentChange(scope.row)" ></el-checkbox> |
| | | </template> |
| | | </el-table-column> --> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="partNo" label="零件号" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="toIfsLocationNo" label="移至库位" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="100"> |
| | | <el-table-column label="操作" align="center" width="100" v-if="permissions.warehouse_pallettransports_demand_edit"> |
| | | <template slot-scope="scope"> |
| | | <el-button v-show="!scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="scope.row.canEdit = true">编辑</el-button> |
| | | <el-button v-show="scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="updateMaterial(scope.row)">保存</el-button> |
| | | <!-- <el-button v-show="!scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="scope.row.canEdit = true">编辑</el-button> --> |
| | | <!-- <el-button v-show="scope.row.canEdit" type="text" :disabled="scope.row.detailExistState" |
| | | @click="updateMaterial(scope.row)">保存</el-button> --> |
| | | <el-button type="text" :disabled="scope.row.detailExistState" |
| | | @click="delMaterial(scope.row)">删除</el-button> |
| | | </template> |
| | |
| | | </div> |
| | | <div style="margin-top:10px;display:flex;height:36px;justify-content: space-between;align-items:center;"> |
| | | <div> |
| | | <span style="font-weight:bold;">移库明细</span><span style="color:red;">({{ |
| | | <span style="font-weight:bold;">移库明细</span> |
| | | <!-- <span style="color:red;">({{ |
| | | palletTransportsMaterialMultipleSelection.length > 0 |
| | | ? palletTransportsMaterialMultipleSelection[ |
| | | palletTransportsMaterialMultipleSelection.length - 1 |
| | | ].partDesc |
| | | : '' |
| | | }})</span> |
| | | }})</span> --> |
| | | </div> |
| | | <div> |
| | | <el-button type="primary" v-if="permissions.warehouse_pallettransports_detail_add" round |
| | |
| | | v-adaptive="{ bottomOffset: 20, fixedHeight: 0 }" height="100px" border |
| | | @selection-change="palletTransportsDetailSelectionChange" stripe ref="palletTransportsDetailTable"> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="partNo" label="零件号" align="center" show-overflow-tooltip> |
| | | |
| | | <el-table-column prop="part_no" label="零件号" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="partDesc" label="零件描述" align="center" show-overflow-tooltip> |
| | | <el-table-column prop="part_desc" label="零件描述" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="batchNo" label="批次号" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="wdr" label="WDR" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column prop="operationTaskNo" label="工单" align="center" show-overflow-tooltip> |
| | | <el-table-column prop="operation_task_no" label="工单" align="center" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="transferQuantity" label="移库数量" align="center"> |
| | | |
| | | |
| | | <el-table-column prop="transfer_quantity" label="移库数量" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.transfer_quantity" border="none"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column prop="unit" label="单位" align="center"> |
| | | </el-table-column> |
| | | <!-- <el-table-column prop="fromIfsLocationNo" label="IFS从库位" align="center"> |
| | | </el-table-column> --> |
| | | <el-table-column prop="toIfsLocationNo" label="移至库位" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-table-column prop="to_ifs_location_no" label="移至库位" align="center"> |
| | | <!-- <template slot-scope="scope"> |
| | | <el-link type="primary" @click="openSingleLocationDialog(scope.row)">{{ scope.row.toIfsLocationNo |
| | | }}</el-link> |
| | | </template> |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column prop="state" label="状态" align="center"> |
| | | <template slot-scope="scope"> |
| | |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="85"> |
| | | <el-table-column label="操作" align="center" width="85" v-if="permissions.warehouse_pallettransports_detail_edit"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="openEditStockDialog(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true">编辑</el-button> |
| | | <!-- <el-button type="text" @click="openEditStockDialog(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true">编辑</el-button> --> |
| | | <el-button type="text" @click="delDetail(scope.row)" |
| | | :disabled="scope.row.state === '01initial' ? false : true">删除</el-button> |
| | | </template> |
| | |
| | | delPalletTransportsMaterialObj, |
| | | palletTransportsDetailFetchList, |
| | | delPalletTransportsDetailObj, |
| | | executeMoveLocation |
| | | executeMoveLocation, |
| | | selectAll, |
| | | } from '@/api/warehouse/pallettransports' |
| | | import { getByPalletTransId } from '@/api/plan/operationtask' |
| | | import ttable from '@/views/common/ztt-table.vue' |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | partDesc: null, |
| | | ajaxFun: palletTransportsFetchList, |
| | | currPalletTransportsRow: null, |
| | | palletTransportsMaterialMultipleSelection: [], |
| | |
| | | url: '' |
| | | }, |
| | | WorkOrder:{}, |
| | | datalistAPI:'', |
| | | prelang: 'pallettransports', |
| | | options: { |
| | | height: 300, // 默认高度-为了表头固定 |
| | |
| | | } |
| | | ], |
| | | toolbar: [], |
| | | operator: [ |
| | | { |
| | | text: '删除', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | } |
| | | ], |
| | | operator: null, |
| | | operatorConfig: { |
| | | fixed: 'right', |
| | | label: '操作', |
| | |
| | | detailList: [], |
| | | palletTransportsOptaskData: [], |
| | | currOptask: null, |
| | | cid:null, |
| | | stateOptions: [ |
| | | { value: 'draft', label: '草稿' }, |
| | | { value: 'processing', label: '进行中' }, |
| | |
| | | computed: { |
| | | ...mapGetters(['permissions']) |
| | | }, |
| | | created() { }, |
| | | watch:{ |
| | | // palletTransportsMaterialMultipleSelection(newVal){ |
| | | // if(newVal.length>0){ |
| | | // this.palletTransportsMaterialSelectionChange(newVal) |
| | | // }else{ |
| | | // this.palletTransportsDetailData = [] |
| | | // } |
| | | // } |
| | | }, |
| | | created() { |
| | | if(this.permissions.warehouse_pallettransports_edit){ |
| | | this.table.operator = [ |
| | | { |
| | | text: '删除', |
| | | type: 'text', |
| | | size: 'small', |
| | | fun: this.deleteHandle |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | methods: { |
| | | palletTransportsChange(val) { |
| | | this.cid = val.id |
| | | this.currPalletTransportsRow = val |
| | | if (this.currPalletTransportsRow) { |
| | | this.getPalletTransportsMaterialData() |
| | | this.getOptasks() |
| | | this.palletTransportsMaterialSelectionChange(val) |
| | | } |
| | | }, |
| | | palletTransportsMaterialSelectionChange() { |
| | | if(this.cid){ |
| | | selectAll({transportsId:this.cid}).then((res)=>{ |
| | | console.log(res.data.data); |
| | | this.palletTransportsDetailData = res.data.data.map(el =>{ |
| | | return{ |
| | | part_no:el.partNo, |
| | | part_desc:el.partDesc, |
| | | operation_task_no:el.operationTaskNo, |
| | | transfer_quantity:el.transferQuantity, |
| | | unit:el.unit, |
| | | to_ifs_location_no:el.toIfsLocationName, |
| | | state:el.state, |
| | | id:el.id, |
| | | } |
| | | }) |
| | | |
| | | }) |
| | | |
| | | } |
| | | // this.palletTransportsMaterialMultipleSelection = val |
| | | // if(val && val.length>0){ |
| | | // let ids =[] |
| | | // this.palletTransportsMaterialMultipleSelection.forEach(el =>{ids.push(el.id)}) |
| | | // let pId = ids[ids.length - 1]; |
| | | // if(pId!=null){ |
| | | // selectAll({ |
| | | // transportsId:this.currPalletTransportsRow.id, |
| | | // transportsMaterialId: pId |
| | | // }).then((res) =>{ |
| | | // this.palletTransportsDetailData = [] |
| | | // if(res.data.data){ |
| | | // this.palletTransportsDetailData.push(res.data.data) |
| | | // } |
| | | // }) |
| | | // }else{ |
| | | // this.palletTransportsDetailData = [] |
| | | // } |
| | | // } |
| | | }, |
| | | // 单行选中 |
| | | handleCurrentChange(row) { |
| | | console.log(row,"--->1"); |
| | | this.palletTransportsMaterialMultipleSelection = row |
| | | // this.palletTransportsMaterialData.forEach((item) => { |
| | | // // 排他,每次选择时把其他选项都清除 |
| | | // if (item.id !== row.id) { |
| | | // item.commonChecked = false |
| | | // }else{ |
| | | // item.commonChecked = true |
| | | // } |
| | | // }) |
| | | // this.palletTransportsMaterialSelectionChange([row]) |
| | | // this.palletTransportsDetailData = data |
| | | }, |
| | | // 工艺类型中文格式化 |
| | | formatStateType(row, column, cellValue) { |
| | | this.stateOptions.forEach((obj) => { |
| | |
| | | unit: item.unit, |
| | | transportsId: item.transportsId, |
| | | detailExistState: item.detailExistState, |
| | | canEdit: false |
| | | canEdit: false, |
| | | commonChecked: false |
| | | } |
| | | this.palletTransportsMaterialData.push(palletTransportsMaterial) |
| | | }) |
| | |
| | | openLocationDialog() { |
| | | if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | let flag = true |
| | | console.log(this.palletTransportsMaterialMultipleSelection) |
| | | this.palletTransportsMaterialMultipleSelection.forEach((item) => { |
| | | if (item.detailExistState) { |
| | | flag = false |
| | | } |
| | | console.log(item.detailExistState) |
| | | }) |
| | | if (flag) { |
| | | this.showLocation = true |
| | |
| | | }, |
| | | // 获取移库明细数据列表 |
| | | getPalletTransportsDetailData() { |
| | | console.log("对应工单",this.WorkOrder); |
| | | console.log("物料需求",this.palletTransportsMaterialMultipleSelection); |
| | | const data = { |
| | | partNo:this.palletTransportsMaterialMultipleSelection[0].partNo, |
| | | partDesc: this.palletTransportsMaterialMultipleSelection[0].partDesc, |
| | | transferQuantity: this.palletTransportsMaterialMultipleSelection[0].transferQuantity, |
| | | operationTaskNo:this.WorkOrder.optaskNo, |
| | | unit: this.palletTransportsMaterialMultipleSelection[0].unit, |
| | | } |
| | | const PalletTransportsDetail = [] |
| | | PalletTransportsDetail.push(data) |
| | | console.log(data,"0000000000000"); |
| | | if (PalletTransportsDetail) { |
| | | saveBatchPalletTransportsDetail(PalletTransportsDetail) |
| | | let transportsDetails =[] |
| | | console.log(this.palletTransportsMaterialMultipleSelection,"----+"); |
| | | transportsDetails = this.palletTransportsMaterialMultipleSelection.map(el =>{ |
| | | return{ |
| | | partNo:el.partNo, |
| | | partDesc: el.partDesc, |
| | | transferQuantity: el.surplusQuantity, |
| | | toIfsLocationNo:el.toIfsLocationNo, |
| | | toIfsLocationName: el.toIfsLocationName, |
| | | transportsId: el.transportsId, |
| | | transportsMaterialId:el.id, |
| | | operationTaskNo:this.WorkOrder.optaskNo, |
| | | operationTaskId:this.WorkOrder.id, |
| | | unit: el.unit, |
| | | }}) |
| | | // this.palletTransportsDetailData = transportsDetails |
| | | if (transportsDetails.length > 0) { |
| | | let selectionList = this.palletTransportsMaterialMultipleSelection |
| | | saveBatchPalletTransportsDetail(transportsDetails) |
| | | .then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | this.innerVisible = false |
| | | this.$message.success('添加移库明细成功') |
| | | this.$emit('refreshDataList') |
| | | let materialRow = selectionList[selectionList.length - 1] |
| | | this.palletTransportsMaterialData.forEach(ele=>{ |
| | | if(ele.id==materialRow.id){ |
| | | ele.transferQuantity = materialRow.surplusQuantity |
| | | ele.surplusQuantity = 0 |
| | | } |
| | | }) |
| | | } else { |
| | | this.$message.error('添加移库明细失败') |
| | | } |
| | | this.isSubmit = true |
| | | // this.getPalletTransportsMaterialData() |
| | | this.palletTransportsMaterialSelectionChange() |
| | | }) |
| | | .catch(() => { |
| | | this.isSubmit = true |
| | | }) |
| | | // .catch(() => { |
| | | // }) |
| | | } |
| | | // else { |
| | | // this.$message.error('请选择IFS库存物料') |
| | | // } |
| | | |
| | | // this.palletTransportsDetailData = [] |
| | | // console.log(this.palletTransportsMaterialMultipleSelection); |
| | | |
| | | // if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | // const currPalletTransportsMaterial = this |
| | | // .palletTransportsMaterialMultipleSelection[ |
| | | // this.palletTransportsMaterialMultipleSelection.length - 1 |
| | | // ] |
| | | // let obj = { |
| | | // partNo: currPalletTransportsMaterial.partNo, |
| | | // partDesc: currPalletTransportsMaterial.partDesc, |
| | | // operationTaskNo: this.currOptask.optaskNo, |
| | | // transferQuantity: currPalletTransportsMaterial.surplusQuantity, |
| | | // unit: currPalletTransportsMaterial.unit, |
| | | // toIfsLocationNo: currPalletTransportsMaterial.currPalletTransportsMaterial, |
| | | // state: null |
| | | // } |
| | | // this.palletTransportsDetailData.push(obj) |
| | | // } else { |
| | | // this.$message.error('请先选择物料需求') |
| | | // } |
| | | |
| | | }, |
| | | // 添加ifs物料库存回调 |
| | | addIfsStockCallback() { |
| | | // 刷新物料需求、刷新移库明细 |
| | | // this.getPalletTransportsMaterialData() |
| | | // 刷新货盘运输任务列表 |
| | | // if (this.showStock) { |
| | | // this.getPallettransportsData() |
| | | // } |
| | | const currRow = this.currPalletTransportsRow |
| | | this.getPallettransportsData().then(() => { |
| | | if (currRow) { |
| | |
| | | if (row.state === '01initial') { |
| | | this.detailList = [] |
| | | this.detailList.push(row) |
| | | this.showDetailLocation = true |
| | | // this.showDetailLocation = true |
| | | } else { |
| | | this.$message.error('移库明细已执行') |
| | | } |
| | | }, |
| | | // 删除移库明细 |
| | | delDetail(row) { |
| | | /* const delRow = this.palletTransportsDetailData.find((item) => { |
| | | const delRow = this.palletTransportsDetailData.find((item) => { |
| | | return item.id === row.id |
| | | }) */ |
| | | |
| | | }) |
| | | delPalletTransportsDetailObj(row.id).then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | // const findRowIndex = this.palletTransportsDetailData.indexOf(delRow) |
| | | // this.palletTransportsDetailData.splice(findRowIndex, 1) |
| | | const findRowIndex = this.palletTransportsDetailData.indexOf(delRow) |
| | | this.palletTransportsDetailData.splice(findRowIndex, 1) |
| | | this.$message.success('移库明细删除成功') |
| | | // this.getPalletTransportsMaterialData() |
| | | const currRow = this.currPalletTransportsRow |
| | | this.getPallettransportsData().then(() => { |
| | | if (currRow) { |
| | |
| | | flag = false |
| | | } |
| | | }) |
| | | console.log("-----------",flag,ids); |
| | | if (flag) { |
| | | executeMoveLocation(ids).then((response) => { |
| | | const resData = response.data |
| | | if (resData.code === 0) { |
| | | this.$message.success('执行成功') |
| | | // this.getPalletTransportsMaterialData() |
| | | this.palletTransportsDetailData=[] |
| | | const currRow = this.currPalletTransportsRow |
| | | this.getPallettransportsData().then(() => { |
| | | if (currRow) { |
| | |
| | | this.currDetailRow = row |
| | | this.showDetailStock = true |
| | | }, |
| | | palletTransportsChange(val) { |
| | | this.currPalletTransportsRow = val |
| | | if (this.currPalletTransportsRow) { |
| | | this.getPalletTransportsMaterialData() |
| | | this.getOptasks() |
| | | } |
| | | }, |
| | | palletTransportsMaterialSelectionChange(val) { |
| | | this.palletTransportsMaterialMultipleSelection = val |
| | | if (this.palletTransportsMaterialMultipleSelection.length > 0) { |
| | | const currPalletTransportsMaterial = this |
| | | .palletTransportsMaterialMultipleSelection[ |
| | | this.palletTransportsMaterialMultipleSelection.length - 1 |
| | | ] |
| | | this.materialRow = currPalletTransportsMaterial |
| | | } else { |
| | | this.materialRow = null |
| | | } |
| | | // this.getPalletTransportsDetailData() |
| | | }, |
| | | palletTransportsDetailSelectionChange(val) { |
| | | console.log(val,"-=-=-="); |
| | | this.palletTransportsDetailMultipleSelection = val |
| | | }, |
| | | getOptasks() { |
| | |
| | | }) |
| | | }, |
| | | optaskRowClick(row, column) { |
| | | console.log(row,222222222222222); |
| | | this.WorkOrder = row |
| | | this.palletTransportsOptaskData.forEach((item) => { |
| | | if (row.id !== item.id) { |