From c5dcef375b689fd96175302fb7bf83641d1f57a8 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 27 五月 2024 11:16:41 +0800 Subject: [PATCH] 核算统计增加工序字段 --- src/views/plan/customerorder/index.vue | 795 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 502 insertions(+), 293 deletions(-) diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index e69e1ae..87bf7f7 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -18,15 +18,16 @@ @command="documentHandle" style="margin-left: 10px" > - <el-button> + <el-button style="padding: 9px 14px;"> 宸ヨ壓鏂囦欢<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :key="index" :command="item.command" - v-for="(item,index) in documentTagArr" - :disabled="item.disabled"> + v-for="(item, index) in documentTagArr" + :disabled="item.disabled" + > {{ item.label }} </el-dropdown-item> </el-dropdown-menu> @@ -37,24 +38,38 @@ @command="handleCommitCommand" style="margin-left: 10px" > - <el-button> + <el-button style="padding: 9px 14px;"> 瀹℃牳鐘舵�佹敼鍙�<i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item :key="index" :command="item.command" - v-for="(item,index) in commitStateTagArr" + v-for="(item, index) in commitStateTagArr" :disabled="item.disabled" >{{ item.label }}</el-dropdown-item > </el-dropdown-menu> </el-dropdown> <el-button - style="margin-left:10px;" + style="margin-left: 10px;padding: 9px 14px;" type="primary" - @click="()=>exportDialogVisible=true" - >瀵煎嚭鍙拌处</el-button> + @click="() => (exportDialogVisible = true)" + >瀵煎嚭鍙拌处</el-button + > + <el-button + style="margin-left: 10px;padding: 9px 14px;" + type="primary" + v-if="permissions.plan_customerorder_check" + @click="handleCheck" + >瀹℃牳</el-button + > + <!-- <el-button + style="margin-left: 10px" + type="primary" + @click="() => ($refs.technology.init())" + >缂栧啓鎶�鏈氦搴曞崟</el-button + > --> </template> </ttable> <!-- 寮圭獥, 鏃ユ湡閫夋嫨 --> @@ -120,7 +135,7 @@ <div> <div> <el-upload - style="margin-left:8px;display: inline;" + style="margin-left: 8px; display: inline" class="upload-demo" drag :headers="headers" @@ -141,7 +156,7 @@ <div class="el-upload__tip" slot="tip"> 鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button type="text" - style="font-size:12px;" + style="font-size: 12px" @click="downDataTemplate" >涓嬭浇妯℃澘</el-button > @@ -154,25 +169,36 @@ <span slot="footer" class="dialog-footer"> </span> </el-dialog> <!-- 瀵煎嚭 --> - <el-dialog title="瀵煎嚭鍙拌处" :visible.sync="exportDialogVisible" width="20%"> - <div style="display: flex;justify-content: center"> - <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="exportForm" class="l-mes"> + <el-dialog + title="瀵煎嚭鍙拌处" + :visible.sync="exportDialogVisible" + width="20%" + > + <div style="display: flex; justify-content: center"> + <el-form + :model="dataForm" + :inline="true" + :rules="dataRule" + ref="exportForm" + class="l-mes" + > <el-form-item label="鏃ユ湡" prop="exportTime"> <el-date-picker v-model="dataForm.exportTime" type="datetime" - style="width:100%" + style="width: 100%" placeholder="閫夋嫨鏃ユ湡鏃堕棿" - value-format="yyyy-MM-dd HH:mm:ss"> + value-format="yyyy-MM-dd HH:mm:ss" + > </el-date-picker> </el-form-item> </el-form> - </div> - <span slot="footer" class="dialog-footer"> - <el-button @click="exportDialogVisible=false">鍙� 娑�</el-button> - <el-button type="primary" @click="exportStandBook">纭� 瀹�</el-button> - </span> - </el-dialog> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="exportDialogVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="exportStandBook">纭� 瀹�</el-button> + </span> + </el-dialog> <!-- 绠辩爜淇℃伅瀵煎嚭 --> <el-dialog title="绠辩爜淇℃伅瀵煎嚭" @@ -185,7 +211,7 @@ ref="packageExportForm" label-width="70px" class="l-mes" - style="padding:0 20px" + style="padding: 0 20px" > <el-form-item label="璁㈠崟鍙�"> <el-input v-model="packageExport.form.customerOrderNo" disabled /> @@ -225,14 +251,21 @@ </basic-container> <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="20%"> - <div style="display: flex;justify-content: center"> - <el-form :model="dataForm" :inline="true" :rules="dataRule" ref="dataForm" class="l-mes"> + <div style="display: flex; justify-content: center"> + <el-form + :model="dataForm" + :inline="true" + :rules="dataRule" + ref="dataForm" + class="l-mes" + > <el-form-item label="鏃ユ湡"> <el-date-picker v-model="dataForm.selectTime" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿" - value-format="yyyy-MM-dd HH:mm:ss"> + value-format="yyyy-MM-dd HH:mm:ss" + > </el-date-picker> </el-form-item> </el-form> @@ -243,36 +276,103 @@ </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> + 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> + <technology-form ref="technology"></technology-form> </div> </template> <script> -import {interrelatedOrder,getInterrelatedOrder,checkHanderOrder} from '@/api/plan/customerOrderInterrelated' +import { + interrelatedOrder, + getInterrelatedOrder, + checkHanderOrder, +} from '@/api/plan/customerOrderInterrelated' import ConfirmPullCustomerorder from './confirm-pull-customerorder' import TableForm from './customerorder-form' +import TechnologyForm from './technology-form.vue' import TableFormDEesc from './customerorder-form-desc' import SampleTableForm from './sample-customerorder-form' import { mapGetters } from 'vuex' @@ -299,6 +399,7 @@ exportCustomerOrderSplit, syncOrder, dropByContractNo, + downloadProduct, downloadWordFile } from '../../../api/plan/customerorder' import DocumentTable from '@/views/common/document.vue' @@ -314,13 +415,16 @@ interrelatedOrderId: null, interrelatedOrderData: [], showInterrelatedOrderDialog: false, + technologyDialog:true, uniqueStateArr: [], dataForm: { selectTime: null, - exportTime: null + exportTime: null, }, dataRule: { - exportTime:[{required:true,message:'瀵煎嚭鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}] + exportTime: [ + { required: true, message: '瀵煎嚭鏃ユ湡涓嶈兘涓虹┖', trigger: 'change' }, + ], }, pickerOptions: { onPick: ({ maxDate, minDate }) => { @@ -338,7 +442,7 @@ ) } return false - } + }, }, exportDialogVisible: false, syncDateVisible: false, @@ -351,58 +455,58 @@ label: '鏍囪闆朵欢寰呴��', command: '01partUnCheck', disabled: false, - permitArr: [] + permitArr: [], }, { label: '鏍囪宸ヨ壓鏂囦欢寰呴��', command: '02technologyUnCheck', disabled: false, - permitArr: [] + permitArr: [], }, { label: '鏍囪寰呰鍒�', command: '03plan', disabled: false, - permitArr: [] + permitArr: [], }, { label: '鏍囪宸蹭笅鍙�', command: '04planed', disabled: false, - permitArr: [] + permitArr: [], }, { label: '鏍囪宸蹭綔搴�', command: '05cancel', disabled: false, - permitArr: [] - } + permitArr: [], + }, ], documentTagArr: [ { label: '鍏宠仈宸ヨ壓鏂囦欢', command: 'RELEVANCE', - disabled: false + disabled: false, }, { label: '绉婚櫎宸ヨ壓鏂囦欢', command: 'NORELEVANCE', - disabled: false - } + disabled: false, + }, ], commitStateTagArr: [ { label: '鏍囪閫氳繃', command: 'PROCESSED', disabled: false, - permitArr: ['01draft'] + permitArr: ['01draft'], }, { label: '鏍囪鍙栨秷', command: 'CANCELED', disabled: false, - permitArr: ['01draft'] - } + permitArr: ['01draft'], + }, ], ajaxFun: fetchListCustomerOrder, events: '', @@ -414,7 +518,7 @@ uploadInfo: { // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl isShow: false, - url: '' + url: '', }, prelang: 'operation', options: { @@ -430,7 +534,8 @@ isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' }, - cancelRunCreated: true + cancelRunCreated: true, + reserveSelection: true,//鏄惁淇濈暀涔嬪墠閫夋嫨鐨勬暟鎹� }, table: { total: 0, @@ -448,7 +553,7 @@ isTrue: true, isSearch: true, searchInfoType: 'text', - render: { fun: this.addOrUpdateHandle } + render: { fun: this.addOrUpdateHandle }, }, { minWidth: '120', @@ -456,7 +561,7 @@ label: '宸ョ▼鍚嶇О', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -465,7 +570,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '100', @@ -478,7 +583,7 @@ formatter: this.getSourceId, optList: () => { return this.sourceIdList - } + }, }, { minWidth: '200', @@ -489,7 +594,7 @@ isTrue: true, isSearch: true, searchInfoType: 'datetimerange', - formatter: this.formatDutyDate + formatter: this.formatDutyDate, }, { minWidth: '120', @@ -498,8 +603,8 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text', - formatter: this.formatDutyDate + searchInfoType: 'datetimerange', + formatter: this.formatDutyDate, }, { minWidth: '120', @@ -508,7 +613,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -521,7 +626,7 @@ formatter: this.getCustomerCoState, optList: () => { return this.coStateList - } + }, }, { minWidth: '120', @@ -534,7 +639,7 @@ formatter: this.getIsAudit, optList: () => { return this.isAuditList - } + }, }, { minWidth: '120', @@ -546,8 +651,21 @@ searchInfoType: 'select', formatter: this.checkIsPass, optList: () => { - return this.isPassList - } + return this.isPassList + }, + }, + { + minWidth: '120', + prop: 'isOa', + label: '鏄惁鎻愪氦oa', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'select', + formatter: this.checkIsOa, + optList: () => { + return this.isOaList + }, }, { minWidth: '120', @@ -557,7 +675,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -567,7 +685,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -576,7 +694,7 @@ label: '闅跺睘鍝佺墝', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -585,7 +703,7 @@ label: '鍗曚綅', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -595,7 +713,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -604,7 +722,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -617,7 +735,7 @@ formatter: this.getManufactureAttr, optList: () => { return this.manufactureAttrList - } + }, }, { minWidth: '140', @@ -626,7 +744,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -635,7 +753,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -644,7 +762,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -653,7 +771,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -664,7 +782,7 @@ isTrue: true, isSearch: true, searchInfoType: 'datetimerange', - formatter: this.formatDutyDate + formatter: this.formatDutyDate, }, ], toolbar: [], @@ -687,19 +805,19 @@ // size: 'small', // 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.checkHandOrder, + // showFun: (row) => { + // return row.sourceId === '1' + // }, + // show: { + // val: [false], + // key: 'isPass', + // }, + // }, { text: '宸插叧鑱旇鍗�', type: 'text', @@ -715,82 +833,89 @@ val: [ '01partUnCheck', '02technologyUnCheck', - '03plan' + '03plan', // '04planed' ], - key: 'coState' - } - } + key: 'coState', + }, + }, ], operatorConfig: { fixed: 'right', label: '鎿嶄綔', width: 200, - minWidth: 200 - } + minWidth: 200, + }, }, addOrUpdateVisible: false, coStateList: [ { value: '01partUnCheck', - label: '闆朵欢寰呴��' + label: '闆朵欢寰呴��', }, { value: '02technologyUnCheck', - label: '宸ヨ壓鏂囦欢寰呴��' + label: '宸ヨ壓鏂囦欢寰呴��', }, { value: '03plan', - label: '寰呰鍒�' + label: '寰呰鍒�', }, { value: '04planed', - label: '宸蹭笅鍙�' + label: '宸蹭笅鍙�', }, { value: '05cancel', - label: '宸蹭綔搴�' + label: '宸蹭綔搴�', }, { value: '06unedit', - label: '璁㈠崟缂栬緫' - } + label: '璁㈠崟缂栬緫', + }, ], - manufactureAttrList: [{ - label: '鏅��', - value: 'N' - },{ - label: '鏍峰搧', - value: 'S' - },{ - label: '鐮斿彂', - value: 'D' - }], + manufactureAttrList: [ + { + label: '鏅��', + value: 'N', + }, + { + label: '鏍峰搧', + value: 'S', + }, + { + label: '鐮斿彂', + value: 'D', + }, + ], isAuditList: [ { value: '01draft', - label: '鑽夌' + label: '鑽夌', }, { value: '02pending', - label: '瀹℃牳涓�' + label: '瀹℃牳涓�', }, { value: '03accepted', - label: '閫氳繃' + label: '閫氳繃', }, { value: '04reject', - label: '閫�鍥�' - } + label: '閫�鍥�', + }, ], - sourceIdList: [{ - label: '鍚屾', - value: "0" - },{ - label: '鎵嬪姩', - value: "1" - }], + sourceIdList: [ + { + label: '鍚屾', + value: '0', + }, + { + label: '鎵嬪姩', + value: '1', + }, + ], stockVisible: false, partName: null, showPullCustomerOrderVisible: false, @@ -802,20 +927,20 @@ id: '', customerOrderNo: '', splitQuantity: '', - title: '' + title: '', }, rules: { splitQuantity: [ { required: true, message: '鏁伴噺涓嶈兘涓虹┖', trigger: 'blur' }, - { validator: validateSixDecimal, trigger: 'blur' } + { validator: validateSixDecimal, trigger: 'blur' }, ], - title: [{ required: true, message: '鎶ご涓嶈兘涓虹┖', trigger: 'blur' }] + title: [{ required: true, message: '鎶ご涓嶈兘涓虹┖', trigger: 'blur' }], }, titleList: [], - buttonDisable: false + buttonDisable: false, }, headers: { - Authorization: 'Bearer ' + getStore({ name: 'access_token' }) + Authorization: 'Bearer ' + getStore({ name: 'access_token' }), }, fileList: [], outBatchUploadUrl: '/mes/operationTaskProduce/upload', @@ -824,16 +949,23 @@ otcPartSyncOptionList: [ { value: true, - label: '宸插悓姝�' + label: '宸插悓姝�', }, { value: false, - label: '鏈悓姝�' - } + label: '鏈悓姝�', + }, ], showSalesPartBatch: false, addOrUpdateEescVisible: false, - isPassList: [{label:'鏈�氳繃',value: false},{label: '閫氳繃',value: true}] + isPassList: [ + { label: '鏈�氳繃', value: false }, + { label: '閫氳繃', value: true }, + ], + isOaList: [ + { label: '鏈彁浜�', value: false }, + { label: '宸叉彁浜�', value: true }, + ], } }, components: { @@ -847,10 +979,11 @@ SampleTableForm, SalesPartBatchDialog, TableFormDEesc, - CustomerorderReturnDialog + CustomerorderReturnDialog, + TechnologyForm, }, computed: { - ...mapGetters(['permissions']) + ...mapGetters(['permissions']), }, watch: { exportDialogVisible(newVal) { @@ -864,19 +997,21 @@ this.getData() } }, - immediate: true + immediate: true, }, - interrelatedOrderId(newVal){ - if(newVal){ - getInterrelatedOrder(newVal).then(res=>{ - if(res.status===200){ - this.interrelatedOrderData = res.data.data - } - }).catch(error=>{ - console.error(error) - }) - } - } + interrelatedOrderId(newVal) { + if (newVal) { + getInterrelatedOrder(newVal) + .then((res) => { + if (res.status === 200) { + this.interrelatedOrderData = res.data.data + } + }) + .catch((error) => { + console.error(error) + }) + } + }, }, mounted() { this.initQueryParams() @@ -884,30 +1019,32 @@ created() { // this.getManufactureAttrs() this.getTitles() + if (this.permissions.plan_customerorder_add) { this.table.toolbar.push({ text: '鏂板閿�鍞鍗�', type: 'primary', fun: this.addSampleCustomerOrder, disabled: false, - permitArr: [] + permitArr: [], }) + } if (this.permissions.customerorder_from_otc) { this.table.toolbar.push({ text: '鑾峰彇閿�鍞鍗�', type: 'primary', fun: this.syncERP, disabled: false, - permitArr: [] + permitArr: [], }) } if (this.permissions.customerorder_submit_oa) { this.table.toolbar.push({ - text: '鎻愪氦瀹℃牳', + text: '鎻愪氦OA', type: 'primary', fun: this.auditCustomerOrder, disabled: false, permitArr: [], - loading: false + loading: false, }) } if (this.permissions.customerorder_set_salesparts) { @@ -916,85 +1053,118 @@ type: 'primary', fun: this.setSalesPart, disabled: false, - permitArr: [] + permitArr: [], }) } + if(this.permissions.plan_download_process_file){ + this.table.toolbar.push({ + text: '涓嬭浇宸ヨ壓鏂囦欢', + disabled: false, + type: 'primary', + fun: this.downloadWord, + permitArr: ['03plan','04planed'], + }) + } + if(this.permissions.plan_download_product_file){ + this.table.toolbar.push({ + text: '涓嬭浇鎺掍骇鍗�', + disabled: false, + type: 'primary', + permitArr: [], + fun: this.downloadProductionScheduling, + }) + } + if(this.permissions.plan_relevance_order){ this.table.toolbar.push({ - text: '涓嬭浇Word', - disabled: false, - type: 'primary', - fun: this.downloadWord, - permitArr: ['03plan','04planed'], + text: '鍏宠仈璁㈠崟', + disabled: false, + type: 'primary', + fun: this.interrelatedOrderFun, + permitArr: [], }) - 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, - permitArr: [] + permitArr: [], }) } }, methods: { - checkHandOrder(val){ - this.$confirm('纭瀹℃牳閫氳繃璇ラ攢鍞鍗曞悧?', '鎻愮ず', { - confirmButtonText: '閫氳繃', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - checkHanderOrder(val.id).then(res=>{ - if(res.status===200){ - this.$message.success("瀹℃牳閫氳繃") + 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 - } + } + }) + .catch((error) => { + console.error(error) + }) }) - if(autoId==null || handId==null){ - this.$message.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 + }, + //涓嬭浇鎺掍骇閫氱煡鍗� + downloadProductionScheduling(){ + let ids = this.multipleSelection.map(obj => obj.id) + if(ids.length<1){ + this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�") return } - interrelatedOrder({ - customerOrderAutoId: autoId, - customerOrderHandId: handId - }).then(res=>{ + downloadProduct(ids).then(res=>{ if(res.status===200){ - this.$message.success("鍏宠仈鎴愬姛") + transform(res) } }).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){ @@ -1006,17 +1176,18 @@ const blob = response.data const link = document.createElement('a') link.href = URL.createObjectURL(blob) - const disposition = response.headers["content-disposition"] + 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() { + window.setTimeout(function () { URL.revokeObjectURL(blob) document.body.removeChild(link) }, 0) - }).catch(error=>{ - console.error(error); + }) + .catch((error) => { + console.error(error) }) }, getOtcPartSyncOptionList() { @@ -1027,7 +1198,7 @@ queryParam.push( Object.assign({ prop: 'coState', - searchInfoType: 'select' + searchInfoType: 'select', // propVal: '01partUnCheck' // propVal: '02technologyUnCheck' }) @@ -1036,8 +1207,9 @@ this.getData() }, - getData() { - this.$refs.customerOrderTable.getDataList() + async getData() { + await this.$refs.customerOrderTable.getDataList() + this.$refs.customerOrderTable.toggleRowExpansion() }, // 鑾峰彇鏁版嵁鍒楄〃鍘婚櫎宸插畬鎴愮姸鎬佺殑 handleDataList(command) { @@ -1083,17 +1255,17 @@ 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 + 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) { @@ -1106,16 +1278,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) }) }, // 鎵撳紑鏃ユ湡閫夋嫨妗� @@ -1172,46 +1351,34 @@ // 瀹℃牳閿�鍞鍗� auditCustomerOrder() { if (this.multipleSelection.length > 0) { - if (this.judgeCoState(this.multipleSelection)) { - let flag = true - const ids = [] - this.multipleSelection.forEach((item) => { - if (item.partNo != null && item.partNo !== '') { - ids.push(item.id) - } else { - flag = false - } - }) - if (flag) { - - checkOA(this.multipleSelection.map((e) => e.id),{}).then((res) => { - if (!res.data.data.success) { - this.$confirm(`${res.data.data.message}`, '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - closeOnClickModal: false, - type: 'warning' - }).then(() => { - this.auditCustomerOrderSure(ids) - }) - } else { - this.auditCustomerOrderSure(ids) - } - }) + let flag = true + const ids = [] + this.multipleSelection.forEach((item) => { + if (item.partNo != null && item.partNo !== '') { + ids.push(item.id) } else { - this.$message.error('瀛樺湪閿�鍞鍗曟湭缁戝畾閿�鍞欢锛�') + flag = false } + }) + if (flag) { + checkOA( + this.multipleSelection.map((e) => e.id) + ).then((res) => { + if (res.data.data.success) { + this.auditCustomerOrderSure(ids) + } + }).catch(error=>{ + this.$message.error(error.message) + }) } else { - this.$message.error('閿�鍞鍗曞鏍哥姸鎬佷负浣滃簾锛屼笉鍙繘琛屾搷浣滐紒') + this.$message.error('瀛樺湪閿�鍞鍗曟湭缁戝畾闆朵欢鍙凤紒') } } else { this.$message.error('璇峰厛鍕鹃�夐攢鍞鍗曪紒') } }, auditCustomerOrderSure(ids) { - const toolbar = this.table.toolbar.find( - (item) => item.text === '鎻愪氦瀹℃牳' - ) + const toolbar = this.table.toolbar.find((item) => item.text === '鎻愪氦OA') if (toolbar) { toolbar.loading = true auditCustomerOrder(ids) @@ -1221,7 +1388,7 @@ this.$message.success(resData.msg) this.getData() } else { - this.$message.error('鎻愪氦瀹℃牳澶辫触锛�') + this.$message.error('鎻愪氦OA澶辫触锛�') } toolbar.loading = false }) @@ -1239,7 +1406,7 @@ id: row.id, customerOrderNo: row.customerOrderNo, splitQuantity: '', - title: '' + title: '', } this.$nextTick(() => { this.$refs.packageExportForm.resetFields() @@ -1255,7 +1422,7 @@ exportCustomerOrderSplit({ id: this.packageExport.form.id, splitQuantity: this.packageExport.form.splitQuantity, - title: this.packageExport.form.title + title: this.packageExport.form.title, }) .then((response) => { transform(response) @@ -1269,13 +1436,13 @@ }, // 浣滃簾 cancelHandle(row) { - this.$confirm('纭浣滃簾id涓恒��' + row.id + '銆戠殑鏁版嵁?','鎻愮ず' , { + this.$confirm('纭浣滃簾id涓恒��' + row.id + '銆戠殑鏁版嵁?', '鎻愮ず', { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', closeOnClickModal: false, - type: 'warning' + type: 'warning', }).then(() => { - dropByContractNo({id:row.id}).then((res) => { + dropByContractNo({ id: row.id }).then((res) => { if (res.data.code === 0) { this.$message.success('浣滃簾鎴愬姛') this.getData() @@ -1310,7 +1477,7 @@ confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', closeOnClickModal: false, - type: 'warning' + type: 'warning', }) .then(() => { return delCustomerOrder(row.id) @@ -1324,7 +1491,7 @@ handleSelectionChange(val) { // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳 // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬� - var stateArr = val.map(function(value, index) { + var stateArr = val.map(function (value, index) { return value.coState }) // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲� @@ -1409,6 +1576,14 @@ }, getIsAudit(row, column, cellValue) { this.isAuditList.forEach((obj) => { + if (obj.value === cellValue) { + cellValue = obj.label + } + }) + return cellValue + }, + checkIsOa(row, column, cellValue) { + this.isOaList.forEach((obj) => { if (obj.value === cellValue) { cellValue = obj.label } @@ -1538,9 +1713,9 @@ } else { if (this.judgeCoState(this.multipleSelection)) { if (event == 'RELEVANCE') { - if(!this.multipleSelection[0].isPass){ - this.$message.error("璇峰厛瀹℃牳閫氳繃锛屽啀鍏宠仈宸ヨ壓鏂囦欢") - return + if (!this.multipleSelection[0].isPass) { + this.$message.error('璇峰厛瀹℃牳閫氳繃锛屽啀鍏宠仈宸ヨ壓鏂囦欢') + return } const firstPartNo = this.multipleSelection[0].partNo this.multipleSelection.forEach((item) => { @@ -1634,7 +1809,7 @@ if (!isLt10M) { this.$message({ message: '鏂囦欢澶у皬', - type: 'warning' + type: 'warning', }) } return isLt10M @@ -1646,7 +1821,7 @@ } else { this.$message({ message: '涓婁紶鎴愬姛', - type: 'success' + type: 'success', }) this.getData() } @@ -1664,7 +1839,7 @@ downDataTemplate() { uploadBatchTemplate().then((response) => { const blob = new Blob([response.data], { - type: 'application/force-download' + type: 'application/force-download', }) const filename = decodeURI('妯℃澘鏂囦欢.xlsx') // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠� @@ -1704,10 +1879,10 @@ // } else { // this.$message.error('璇烽�夋嫨鑷冲皯涓�鏉¢攢鍞鍗�') // } - this.$refs['exportForm'].validate(valid => { - if(valid){ + this.$refs['exportForm'].validate((valid) => { + if (valid) { const exportTime = this.dataForm.exportTime - let queryParam=this.$refs.customerOrderTable.getQueryParam(); + let queryParam = this.$refs.customerOrderTable.getQueryParam() queryParam.selectTime = exportTime exportCustomerOrder(queryParam) .then((response) => { @@ -1749,7 +1924,7 @@ if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { otcCustomerOrderSync({ selectTime: this.dataForm.selectTime, - pathCode: '1' + pathCode: '1', }) .then((response) => { this.table.toolbar.find( @@ -1777,7 +1952,41 @@ ).loading = false this.$message.error('璇峰厛閫夋嫨鏃ユ湡') } + }, + handleCheck(){ + if (this.multipleSelection.length > 0) { + for(let i=0 ;i<this.multipleSelection.length;i++){ + if(this.multipleSelection[i].sourceId==0){ + this.$message.error('璇烽�夋嫨鎵嬪姩杈撳叆鐨勯攢鍞鍗�') + return; + } + if(this.multipleSelection[i].isPass){ + this.$message.error('璇烽�夋嫨鏈鏍搁�氳繃鐨勯攢鍞鍗�') + return; + } + } + this.$confirm('纭瀹℃牳閫氳繃閫変腑鐨勯攢鍞鍗曞悧?', '鎻愮ず', { + confirmButtonText: '閫氳繃', + cancelButtonText: '鍙栨秷', + type: 'warning', + }) + .then(() => { + checkHanderOrder(this.multipleSelection) + .then((res) => { + if (res.status === 200) { + this.$message.success('瀹℃牳閫氳繃') + this.getData() + } + }) + .catch((error) => { + console.error(error) + }) + }) + .catch(() => {}) + } else { + this.$message.error('璇烽�夋嫨鑷冲皯涓�鏉¢攢鍞鍗�') + } } - } + }, } </script> -- Gitblit v1.9.3