From 363678a54142e62fdd4ca39a0db5c54af1a704dc Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 29 二月 2024 15:39:59 +0800 Subject: [PATCH] 生产调度修改 --- src/views/plan/customerorder/index.vue | 294 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 221 insertions(+), 73 deletions(-) diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index 061bfc5..1e5ebda 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -8,6 +8,7 @@ :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + :toolbarMaxLength="4" :paramArr="type" ref="customerOrderTable" > @@ -53,8 +54,7 @@ style="margin-left:10px;" type="primary" @click="()=>exportDialogVisible=true" - >瀵煎嚭鍙拌处</el-button - > + >瀵煎嚭鍙拌处</el-button> </template> </ttable> <!-- 寮圭獥, 鏃ユ湡閫夋嫨 --> @@ -242,10 +242,35 @@ <el-button type="primary" @click="startSync">纭� 瀹�</el-button> </span> </el-dialog> + <el-dialog + title="宸插叧鑱旈攢鍞鍗�" + :visible.sync="showInterrelatedOrderDialog" + width="60%"> + <el-table border height="100" :data="interrelatedOrderData"> + <el-table-column type="index" align="center" label="搴忓彿"></el-table-column> + <el-table-column prop="contractNo" show-overflow-tooltip align="center" label="鍚堝悓缂栧彿"></el-table-column> + <el-table-column prop="entityName" show-overflow-tooltip align="center" label="宸ョ▼鍚嶇О"></el-table-column> + <el-table-column prop="sourceId" show-overflow-tooltip align="center" label="娣诲姞鏉ユ簮"> + <template scope="scope"> + <el-tag v-if="scope.row.sourceId == 0" type="success">鍚屾</el-tag> + <el-tag v-if="scope.row.sourceId == 1" type="info">鎵嬪姩</el-tag> + </template> + </el-table-column> + <el-table-column prop="placeOrderDate" show-overflow-tooltip align="center" label="涓嬪崟鏃ユ湡"></el-table-column> + <el-table-column prop="customerName" show-overflow-tooltip align="center" label="瀹㈡埛鍚嶇О"></el-table-column> + <el-table-column prop="coState" min-width="100" show-overflow-tooltip align="center" label="閿�鍞鍗曠姸鎬�"></el-table-column> + <el-table-column prop="partNo" show-overflow-tooltip align="center" label="浜у搧缂栧彿"></el-table-column> + <el-table-column prop="productName" show-overflow-tooltip align="center" label="浜у搧鍚嶇О"></el-table-column> + <el-table-column prop="productType" show-overflow-tooltip align="center" label="闅跺睘鍝佺墝"></el-table-column> + <el-table-column prop="otcUnit" show-overflow-tooltip align="center" label="鍗曚綅"></el-table-column> + <el-table-column prop="buyQtyDue" show-overflow-tooltip align="center" label="鏁伴噺"></el-table-column> + </el-table> + </el-dialog> </div> </template> <script> +import {interrelatedOrder,getInterrelatedOrder,checkHanderOrder} from '@/api/plan/customerOrderInterrelated' import ConfirmPullCustomerorder from './confirm-pull-customerorder' import TableForm from './customerorder-form' import TableFormDEesc from './customerorder-form-desc' @@ -273,7 +298,8 @@ exportCustomerOrder, exportCustomerOrderSplit, syncOrder, - dropByContractNo + dropByContractNo, + downloadWordFile } from '../../../api/plan/customerorder' import DocumentTable from '@/views/common/document.vue' import { remote } from '@/api/admin/dict' @@ -285,6 +311,10 @@ export default { data() { return { + interrelatedOrderId: null, + interrelatedOrderData: [], + showInterrelatedOrderDialog: false, + uniqueStateArr: [], dataForm: { selectTime: null, exportTime: null @@ -399,7 +429,7 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'createTime', direction: 'desc' }, + defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' }, cancelRunCreated: true }, table: { @@ -496,7 +526,7 @@ { minWidth: '120', prop: 'isAudit', - label: '瀹℃牳鐘舵��', + label: 'PLM瀹℃牳鐘舵��', sort: true, isTrue: true, isSearch: true, @@ -506,15 +536,19 @@ return this.isAuditList } }, - // { - // minWidth: '80', - // prop: 'sourceId', - // label: '璁㈠崟鏉ユ簮', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, + { + minWidth: '120', + prop: 'isPass', + label: '瀹℃牳閫氳繃鐘舵��', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'select', + formatter: this.checkIsPass, + optList: () => { + return this.isPassList + } + }, { minWidth: '120', width: '100px', @@ -654,6 +688,25 @@ // fun: this.packageExportHandle // }, { + text: '瀹℃牳', + type: 'text', + size: 'small', + fun: this.checkHandOrder, + showFun: (row)=>{return row.sourceId==='1'}, + show: { + val: [ + false, + ], + key: 'isPass' + } + }, + { + text: '宸插叧鑱旇鍗�', + type: 'text', + size: 'small', + fun: this.showInterrelatedOrder, + }, + { text: '鍒犻櫎', type: 'text', size: 'small', @@ -672,8 +725,8 @@ operatorConfig: { fixed: 'right', label: '鎿嶄綔', - width: 100, - minWidth: 100 + width: 200, + minWidth: 200 } }, addOrUpdateVisible: false, @@ -779,7 +832,8 @@ } ], showSalesPartBatch: false, - addOrUpdateEescVisible: false + addOrUpdateEescVisible: false, + isPassList: [{label:'鏈�氳繃',value: false},{label: '閫氳繃',value: true}] } }, components: { @@ -811,6 +865,17 @@ } }, immediate: true + }, + interrelatedOrderId(newVal){ + if(newVal){ + getInterrelatedOrder(newVal).then(res=>{ + if(res.status===200){ + this.interrelatedOrderData = res.data.data + } + }).catch(error=>{ + console.error(error) + }) + } } }, mounted() { @@ -819,36 +884,6 @@ created() { // this.getManufactureAttrs() this.getTitles() - /** - * { - text: '鑾峰彇閿�鍞鍗�', - type: 'primary', - fun: this.pullCustomerOrder, - disabled: false, - permitArr: [] - }, - { - text: '鑾峰彇IFS琛屽彿', - type: 'primary', - fun: this.pullIfsLineNo, - disabled: false, - permitArr: [], - loading: false - }, - { - text: '鎻愪氦瀹℃牳', - type: 'primary', - fun: this.auditCustomerOrder, - disabled: false, - permitArr: [], - loading: false - }, - { - text: '涓荤敓浜ц鍒�', - disabled: false, - fun: this.masterPlanHandle - } - */ this.table.toolbar.push({ text: '鏂板閿�鍞鍗�', type: 'primary', @@ -856,14 +891,6 @@ disabled: false, permitArr: [] }) - // this.table.toolbar.push({ - // text: '鍚屾ERP', - // type: 'primary', - // fun: this.syncERP, - // loading: false, - // disabled: false, - // permitArr: [] - // }) if (this.permissions.customerorder_from_otc) { this.table.toolbar.push({ text: '鑾峰彇閿�鍞鍗�', @@ -873,16 +900,6 @@ permitArr: [] }) } - // if (this.permissions.customerorder_ifs_line) { - // this.table.toolbar.push({ - // text: '鑾峰彇ERP琛屽彿', - // type: 'primary', - // fun: this.pullIfsLineNo, - // disabled: false, - // permitArr: [], - // loading: false - // }) - // } if (this.permissions.customerorder_submit_oa) { this.table.toolbar.push({ text: '鎻愪氦瀹℃牳', @@ -898,18 +915,110 @@ text: '璁剧疆閿�鍞欢', type: 'primary', fun: this.setSalesPart, - disabled: false + disabled: false, + permitArr: [] }) } + this.table.toolbar.push({ + text: '涓嬭浇Word', + disabled: false, + type: 'primary', + fun: this.downloadWord, + permitArr: ['03plan','04planed'], + }) + this.table.toolbar.push({ + text: '鍏宠仈璁㈠崟', + disabled: false, + type: 'primary', + fun: this.interrelatedOrderFun, + permitArr: [], + }) if (this.permissions.customerorder_create_masterplan) { this.table.toolbar.push({ text: '涓荤敓浜ц鍒�', disabled: false, - fun: this.masterPlanHandle + fun: this.masterPlanHandle, + permitArr: [] }) } }, methods: { + checkHandOrder(val){ + this.$confirm('纭瀹℃牳閫氳繃璇ラ攢鍞鍗曞悧?', '鎻愮ず', { + confirmButtonText: '閫氳繃', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + checkHanderOrder(val).then(res=>{ + if(res.status===200){ + this.$message.success("瀹℃牳閫氳繃") + this.getData() + } + }).catch(error=>{ + console.error(error) + }) + }).catch(() => {}); + }, + interrelatedOrderFun(){ + if(this.multipleSelection.length!=2){ + this.$message.error("璇烽�夋嫨涓ゆ潯閿�鍞鍗�") + return + } + let autoId = null + let handId = null + this.multipleSelection.forEach(ele=>{ + if(ele.sourceId==0){ + autoId = ele.id + }else if(ele.sourceId==1){ + handId = ele.id + } + }) + if(autoId==null || handId==null){ + this.$message.error("娣诲姞鏉ユ簮椤讳负鎵嬪姩鍜屽悓姝�") + return + } + interrelatedOrder({ + customerOrderAutoId: autoId, + customerOrderHandId: handId + }).then(res=>{ + if(res.status===200){ + this.$message.success("鍏宠仈鎴愬姛") + } + }).catch(error=>{ + console.error(error) + }) + }, + //灞曠ず宸插叧鑱旇鍗� + showInterrelatedOrder(currentOrder){ + this.interrelatedOrderId = currentOrder.id + this.showInterrelatedOrderDialog = true + }, + + //涓嬭浇word + downloadWord(){ + let ids = this.multipleSelection.map(ele=>ele.id) + if(ids.length<1){ + this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�") + return + } + downloadWordFile(ids).then(response=>{ + // 澶勭悊杩斿洖鐨勬枃浠舵祦 + const blob = response.data + const link = document.createElement('a') + link.href = URL.createObjectURL(blob) + const disposition = response.headers["content-disposition"] + let temp = disposition.substring(disposition.lastIndexOf('=') + 1) + link.download = decodeURI(temp) + document.body.appendChild(link) + link.click() + window.setTimeout(function() { + URL.revokeObjectURL(blob) + document.body.removeChild(link) + }, 0) + }).catch(error=>{ + console.error(error); + }) + }, getOtcPartSyncOptionList() { return this.otcPartSyncOptionList }, @@ -974,6 +1083,18 @@ this.$message.error('璇烽�夋嫨閿�鍞鍗�') } }, + checkIsPass(row, column, cellValue){ + this.isPassList.forEach((obj) => { + if (obj.value === cellValue) { + if(obj.value){ + cellValue = "<span style='color:#34BD66;'>"+obj.label+"</span>" + }else{ + cellValue = "<span style='color:#E84738;'>"+obj.label+"</span>" + } + } + }) + return cellValue + }, formatDutyDate(row, column, cellValue) { if (cellValue) { const dutyDateList = /\d{4}-\d{1,2}-\d{1,2}/g.exec(cellValue) @@ -985,16 +1106,23 @@ }, // 鏂板 / 淇敼 addOrUpdateHandle(row) { - this.addOrUpdateVisible = true - this.$nextTick(() => { - this.$refs.addOrUpdate.init(row ? row.id : row) - }) + if(row.isPass){ + this.addOrUpdateVisible = true + this.$nextTick(() => { + this.$refs.addOrUpdate.init(row ? row.id : row) + }) + }else{ + this.addSampleVisible = true + this.$nextTick(() => { + this.$refs.addSampleForm.init(row ? row.contractNo : null) + }) + } }, // 鏂板鏍峰搧璁㈠崟 addSampleCustomerOrder() { this.addSampleVisible = true this.$nextTick(() => { - this.$refs.addSampleForm.init(0) + this.$refs.addSampleForm.init(null) }) }, // 鎵撳紑鏃ユ湡閫夋嫨妗� @@ -1062,7 +1190,8 @@ } }) if (flag) { - checkOA(this.multipleSelection.map((e) => e.id)).then((res) => { + + checkOA(this.multipleSelection.map((e) => e.id),{}).then((res) => { if (!res.data.data.success) { this.$confirm(`${res.data.data.message}`, '鎻愮ず', { confirmButtonText: '纭畾', @@ -1224,6 +1353,21 @@ this.stateTagArr[i].disabled = false } else { this.stateTagArr[i].disabled = true + } + } + // 寰幆琛ㄥご鎸夐挳锛屽垽鏂瘡涓寜閽殑permitArr鏄惁瀹屽叏鍖呭惈閫変腑鐘舵�侊紝鑻ュ畬鍏ㄥ寘鍚紝鍒欐寜閽寒锛屽惁鍒欐寜閽伆 + var toolbar = this.table.toolbar + for (var j = 0; j < toolbar.length; j++) { + if ( + uniqueStateArr.every((val) => + toolbar[j].permitArr.length <= 0 + ? true + : toolbar[j].permitArr.includes(val) + ) + ) { + toolbar[j].disabled = false + } else { + toolbar[j].disabled = true } } this.multipleSelection = val @@ -1401,6 +1545,10 @@ } else { if (this.judgeCoState(this.multipleSelection)) { if (event == 'RELEVANCE') { + if(!this.multipleSelection[0].isPass){ + this.$message.error("璇峰厛瀹℃牳閫氳繃锛屽啀鍏宠仈宸ヨ壓鏂囦欢") + return + } const firstPartNo = this.multipleSelection[0].partNo this.multipleSelection.forEach((item) => { if (item.isDocument) { -- Gitblit v1.9.3