From 4963aa4888fc1bcfa6de0c392ee26a134a460cfe Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期三, 05 六月 2024 14:55:43 +0800 Subject: [PATCH] 货盘运输移库数量预填写 --- src/views/warehouse/pallettransports/index.vue | 265 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 191 insertions(+), 74 deletions(-) diff --git a/src/views/warehouse/pallettransports/index.vue b/src/views/warehouse/pallettransports/index.vue index b529d04..711c212 100644 --- a/src/views/warehouse/pallettransports/index.vue +++ b/src/views/warehouse/pallettransports/index.vue @@ -3,13 +3,27 @@ <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> <el-button v-if="permissions.warehouse_pallettransports_add" type="primary" @click="addOrUpdateHandle()">鏂板</el-button> + <el-dropdown style="margin-left: 20px;" @command="handleCommand"> + <el-button > + 鐘舵�佸彉鏇�<i class="el-icon-arrow-down el-icon--right"></i> + </el-button> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item :key="index" + :command="item.label" + v-for="(item,index) in taskTypeArr" + >{{ item.label }}</el-dropdown-item + > + </el-dropdown-menu> + </el-dropdown> </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> @@ -52,9 +66,15 @@ </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> @@ -76,12 +96,12 @@ </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> @@ -91,13 +111,13 @@ <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="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 @@ -105,7 +125,7 @@ <!-- <el-button type="warning" v-if="permissions.warehouse_pallettransports_detail_library" round @click="openDetailLocationDialog">涓�閿嚦搴撲綅</el-button> --> <el-button type="success" v-if="permissions.warehouse_pallettransports_detail_execute" round - @click="executeMove">鎵� 琛�</el-button> + @click="updateStockFun">鎵� 琛�</el-button> </div> </div> <div> @@ -113,6 +133,7 @@ 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="part_no" label="闆朵欢鍙�" align="center" show-overflow-tooltip> </el-table-column> <el-table-column prop="part_desc" label="闆朵欢鎻忚堪" align="center" show-overflow-tooltip> @@ -123,8 +144,15 @@ </el-table-column> --> <el-table-column prop="operation_task_no" label="宸ュ崟" align="center" show-overflow-tooltip> </el-table-column> + + <el-table-column prop="transfer_quantity" label="绉诲簱鏁伴噺" align="center"> + <template slot-scope="scope"> + <el-input v-model="scope.row.transfer_quantity" @change="moveLocation(scope.row)" :disabled = "scope.row.state == '02submitted' " 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"> @@ -146,7 +174,7 @@ }}</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> --> @@ -175,6 +203,7 @@ <!-- 寮圭獥, 鏄庣粏鐨処FS搴撲綅鍒楄〃 --> <detailIfsLocationDialog :currshowlist.sync="showDetailLocation" :detailList="detailList" @refreshDataList="selectDetailLocationCallback" /> + </basic-container> </div> </template> @@ -190,6 +219,8 @@ delPalletTransportsDetailObj, executeMoveLocation, selectAll, + updateStock, + updataStatus, } from '@/api/warehouse/pallettransports' import { getByPalletTransId } from '@/api/plan/operationtask' import ttable from '@/views/common/ztt-table.vue' @@ -205,6 +236,14 @@ export default { data() { return { + taskTypeArr: [ + {label:"鑽夌"}, + {label:"杩涜涓�"}, + {label:"宸插畬鎴�"}, + ], + command:"", + forbidden:false, + partDesc: null, ajaxFun: palletTransportsFetchList, currPalletTransportsRow: null, palletTransportsMaterialMultipleSelection: [], @@ -215,6 +254,7 @@ url: '' }, WorkOrder:{}, + datalistAPI:'', prelang: 'pallettransports', options: { height: 300, // 榛樿楂樺害-涓轰簡琛ㄥご鍥哄畾 @@ -296,14 +336,7 @@ } ], toolbar: [], - operator: [ - { - text: '鍒犻櫎', - type: 'text', - size: 'small', - fun: this.deleteHandle - } - ], + operator: null, operatorConfig: { fixed: 'right', label: '鎿嶄綔', @@ -325,6 +358,7 @@ detailList: [], palletTransportsOptaskData: [], currOptask: null, + cid:null, stateOptions: [ { value: 'draft', label: '鑽夌' }, { value: 'processing', label: '杩涜涓�' }, @@ -347,8 +381,101 @@ computed: { ...mapGetters(['permissions']) }, - created() { }, + watch:{ + }, + 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)=>{ + 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 = [] + // } + // } + }, + //鐘舵�� + handleCommand(event){ + let str = "" + console.log(event); + if (event == "鑽夌") { + str = "draft" + }else if (event == "杩涜涓�") { + str = "processing" + }else{ + str = "finished" + } + + if (this.cid) { + updataStatus({id:this.cid,state:str}).then((res) =>{ + this.$refs.pallettransportsTable.getDataList() + }) + }else{ + this.$message.error('璇烽�夋嫨' + str + '鐨勫璞�') + } + }, + // 鍗曡閫変腑 + handleCurrentChange(row) { + 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) => { @@ -397,7 +524,8 @@ unit: item.unit, transportsId: item.transportsId, detailExistState: item.detailExistState, - canEdit: false + canEdit: false, + commonChecked: false } this.palletTransportsMaterialData.push(palletTransportsMaterial) }) @@ -488,12 +616,10 @@ 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 @@ -548,14 +674,12 @@ }, // 鑾峰彇绉诲簱鏄庣粏鏁版嵁鍒楄〃 getPalletTransportsDetailData() { - console.log("瀵瑰簲宸ュ崟",this.WorkOrder); - console.log("鐗╂枡闇�姹�",this.palletTransportsMaterialMultipleSelection); let transportsDetails =[] transportsDetails = this.palletTransportsMaterialMultipleSelection.map(el =>{ return{ partNo:el.partNo, partDesc: el.partDesc, - transferQuantity: el.surplusQuantity, + transferQuantity: el.demandQuantity, toIfsLocationNo:el.toIfsLocationNo, toIfsLocationName: el.toIfsLocationName, transportsId: el.transportsId, @@ -566,29 +690,33 @@ }}) // 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 + } + }) + this.getPalletTransportsMaterialData() } else { this.$message.error('娣诲姞绉诲簱鏄庣粏澶辫触') } + // this.getPalletTransportsMaterialData() + this.palletTransportsMaterialSelectionChange() }) - .catch(() => { - }) + // .catch(() => { + // }) } }, // 娣诲姞ifs鐗╂枡搴撳瓨鍥炶皟 addIfsStockCallback() { - // 鍒锋柊鐗╂枡闇�姹傘�佸埛鏂扮Щ搴撴槑缁� - // this.getPalletTransportsMaterialData() - // 鍒锋柊璐х洏杩愯緭浠诲姟鍒楄〃 - // if (this.showStock) { - // this.getPallettransportsData() - // } const currRow = this.currPalletTransportsRow this.getPallettransportsData().then(() => { if (currRow) { @@ -617,7 +745,6 @@ }, // 鎵撳紑鍗曚釜鏄庣粏鎵归噺鏇存柊搴撲綅寮规 openSingleLocationDialog(row) { - console.log(row); if (row.state === '01initial') { this.detailList = [] this.detailList.push(row) @@ -628,17 +755,15 @@ }, // 鍒犻櫎绉诲簱鏄庣粏 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) { @@ -647,6 +772,28 @@ }) } else { this.$message.error('绉诲簱鏄庣粏鍒犻櫎澶辫触') + } + }) + }, + //鏀瑰彉 + moveLocation(val){ + let num = Number(val.transfer_quantity) + this.palletTransportsDetailMultipleSelection.forEach(el =>{ + el.transfer_quantity = num + }) + }, + updateStockFun(){ + let data = [] + data = this.palletTransportsDetailMultipleSelection.map(el =>{ + return { + id:el.id, + transferQuantity:el.transfer_quantity + } + }) + updateStock(data).then((res) =>{ + if(res.data.code===0){ + this.getPalletTransportsMaterialData() + this.executeMove() } }) }, @@ -670,6 +817,7 @@ if (resData.code === 0) { this.$message.success('鎵ц鎴愬姛') // this.getPalletTransportsMaterialData() + this.palletTransportsDetailData=[] const currRow = this.currPalletTransportsRow this.getPallettransportsData().then(() => { if (currRow) { @@ -686,6 +834,7 @@ } else { this.$message.error('璇烽�夋嫨绉诲簱鏄庣粏') } + }, selectDetailLocationCallback() { this.getPalletTransportsDetailData() @@ -694,37 +843,6 @@ openEditStockDialog(row) { this.currDetailRow = row this.showDetailStock = true - }, - palletTransportsChange(val) { - this.currPalletTransportsRow = val - if (this.currPalletTransportsRow) { - this.getPalletTransportsMaterialData() - this.getOptasks() - } - }, - palletTransportsMaterialSelectionChange(val) { - this.palletTransportsMaterialMultipleSelection = val - let nn =[] - this.palletTransportsMaterialMultipleSelection.forEach(el =>{nn.push(el.id)}) - let xx = nn[nn.length - 1]; - console.log(xx); - console.log(this.currPalletTransportsRow.id,"榛樿"); - this.palletTransportsDetailData = [] - if (xx) { - selectAll({transportsId:this.currPalletTransportsRow.id,transportsMaterialId:xx}).then((res) =>{ - console.log(res.data.data); - this.palletTransportsDetailData.push(res.data.data)}) - } - // if (this.palletTransportsMaterialMultipleSelection.length > 0) { - // const currPalletTransportsMaterial = this - // .palletTransportsMaterialMultipleSelection[ - // this.palletTransportsMaterialMultipleSelection.length - 1 - // ] - // this.materialRow = currPalletTransportsMaterial - // } else { - // this.materialRow = null - // } - // this.getPalletTransportsDetailData() }, palletTransportsDetailSelectionChange(val) { this.palletTransportsDetailMultipleSelection = val @@ -741,7 +859,6 @@ }) }, optaskRowClick(row, column) { - console.log(row,222222222222222); this.WorkOrder = row this.palletTransportsOptaskData.forEach((item) => { if (row.id !== item.id) { -- Gitblit v1.9.3