From 6ac64fea29fa0df01f9d0e70372e086de9725aa1 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 06 三月 2024 19:50:01 +0800 Subject: [PATCH] Merge branch 'master' of http://114.132.189.42:9002/r/mes-ocea-before --- src/views/plan/customerorder/index.vue | 783 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 518 insertions(+), 265 deletions(-) diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index 63575e6..3b0251a 100644 --- a/src/views/plan/customerorder/index.vue +++ b/src/views/plan/customerorder/index.vue @@ -8,26 +8,11 @@ :prelang="prelang" :options="options" :ajaxFun="ajaxFun" + :toolbarMaxLength="4" :paramArr="type" ref="customerOrderTable" > <template #toolbar> - <!-- <el-dropdown - v-if="permissions.customerorder_state_change" - @command="handleCommand" - > - <el-button> - 鐘舵�佹敼鍙�<i class="el-icon-arrow-down el-icon--right"></i> - </el-button> - <el-dropdown-menu slot="dropdown"> - <el-dropdown-item - :command="item.command" - v-for="item in stateTagArr" - :disabled="item.disabled"> - {{ item.label }} - </el-dropdown-item> - </el-dropdown-menu> - </el-dropdown> --> <el-dropdown v-if="permissions.customerorder_doc_relate" @command="documentHandle" @@ -40,8 +25,9 @@ <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> @@ -59,38 +45,18 @@ <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 - v-if="permissions.customerorder_push_otc" - style="margin-left:10px;" - type="primary" - @click="pushOtc" - >鎺ㄩ�丒RP</el-button - > --> - <!-- <el-button - style="margin-left:10px;" - type="primary" - @click="importOutPutBatch" - >瀵煎叆浜у嚭鎵规</el-button - > --> <el-button - style="margin-left:10px;" + style="margin-left: 10px" type="primary" - @click="()=>exportDialogVisible=true" + @click="() => (exportDialogVisible = true)" >瀵煎嚭鍙拌处</el-button > - <!-- <el-button - v-if="permissions.plan_customerorder_return" - style="margin-left:10px;" - type="primary" - @click="returnOrder" - >璁㈠崟閫�鍥�</el-button - > --> </template> </ttable> <!-- 寮圭獥, 鏃ユ湡閫夋嫨 --> @@ -156,7 +122,7 @@ <div> <div> <el-upload - style="margin-left:8px;display: inline;" + style="margin-left: 8px; display: inline" class="upload-demo" drag :headers="headers" @@ -177,7 +143,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 > @@ -190,25 +156,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="绠辩爜淇℃伅瀵煎嚭" @@ -221,7 +198,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 /> @@ -261,14 +238,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> @@ -278,10 +262,100 @@ <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' @@ -309,7 +383,9 @@ exportCustomerOrder, exportCustomerOrderSplit, syncOrder, - dropByContractNo + dropByContractNo, + downloadProduct, + downloadWordFile } from '../../../api/plan/customerorder' import DocumentTable from '@/views/common/document.vue' import { remote } from '@/api/admin/dict' @@ -321,12 +397,18 @@ export default { data() { return { + interrelatedOrderId: null, + interrelatedOrderData: [], + showInterrelatedOrderDialog: false, + 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 }) => { @@ -344,7 +426,7 @@ ) } return false - } + }, }, exportDialogVisible: false, syncDateVisible: false, @@ -357,58 +439,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: '', @@ -420,7 +502,7 @@ uploadInfo: { // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl isShow: false, - url: '' + url: '', }, prelang: 'operation', options: { @@ -435,8 +517,8 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'createTime', direction: 'desc' }, - cancelRunCreated: true + defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' }, + cancelRunCreated: true, }, table: { total: 0, @@ -454,7 +536,7 @@ isTrue: true, isSearch: true, searchInfoType: 'text', - render: { fun: this.addOrUpdateHandle } + render: { fun: this.addOrUpdateHandle }, }, { minWidth: '120', @@ -462,7 +544,7 @@ label: '宸ョ▼鍚嶇О', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -471,10 +553,10 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { - minWidth: '120', + minWidth: '100', prop: 'sourceId', label: '娣诲姞鏉ユ簮', isTag: true, @@ -484,7 +566,7 @@ formatter: this.getSourceId, optList: () => { return this.sourceIdList - } + }, }, { minWidth: '200', @@ -495,7 +577,7 @@ isTrue: true, isSearch: true, searchInfoType: 'datetimerange', - formatter: this.formatDutyDate + formatter: this.formatDutyDate, }, { minWidth: '120', @@ -505,7 +587,7 @@ isTrue: true, isSearch: true, searchInfoType: 'text', - formatter: this.formatDutyDate + formatter: this.formatDutyDate, }, { minWidth: '120', @@ -514,7 +596,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -527,12 +609,12 @@ formatter: this.getCustomerCoState, optList: () => { return this.coStateList - } + }, }, { minWidth: '120', prop: 'isAudit', - label: '瀹℃牳鐘舵��', + label: 'PLM瀹℃牳鐘舵��', sort: true, isTrue: true, isSearch: true, @@ -540,17 +622,34 @@ formatter: this.getIsAudit, optList: () => { 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', + prop: 'isOa', + label: '鏄惁鎻愪氦oa', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'select', + formatter: this.checkIsOa, + optList: () => { + return this.isOaList + }, + }, { minWidth: '120', width: '100px', @@ -559,7 +658,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -569,7 +668,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -578,7 +677,7 @@ label: '闅跺睘鍝佺墝', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -587,7 +686,7 @@ label: '鍗曚綅', isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -597,7 +696,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '120', @@ -606,7 +705,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -619,7 +718,7 @@ formatter: this.getManufactureAttr, optList: () => { return this.manufactureAttrList - } + }, }, { minWidth: '140', @@ -628,7 +727,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -637,7 +736,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -646,7 +745,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -655,7 +754,7 @@ sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'text', }, { minWidth: '140', @@ -666,7 +765,7 @@ isTrue: true, isSearch: true, searchInfoType: 'datetimerange', - formatter: this.formatDutyDate + formatter: this.formatDutyDate, }, ], toolbar: [], @@ -690,6 +789,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', @@ -698,82 +816,89 @@ val: [ '01partUnCheck', '02technologyUnCheck', - '03plan' + '03plan', // '04planed' ], - key: 'coState' - } - } + key: 'coState', + }, + }, ], operatorConfig: { fixed: 'right', label: '鎿嶄綔', - width: 100, - minWidth: 100 - } + width: 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, @@ -785,20 +910,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', @@ -807,15 +932,23 @@ otcPartSyncOptionList: [ { value: true, - label: '宸插悓姝�' + label: '宸插悓姝�', }, { value: false, - label: '鏈悓姝�' - } + label: '鏈悓姝�', + }, ], showSalesPartBatch: false, - addOrUpdateEescVisible: false + addOrUpdateEescVisible: false, + isPassList: [ + { label: '鏈�氳繃', value: false }, + { label: '閫氳繃', value: true }, + ], + isOaList: [ + { label: '鏈彁浜�', value: false }, + { label: '宸叉彁浜�', value: true }, + ], } }, components: { @@ -829,10 +962,10 @@ SampleTableForm, SalesPartBatchDialog, TableFormDEesc, - CustomerorderReturnDialog + CustomerorderReturnDialog, }, computed: { - ...mapGetters(['permissions']) + ...mapGetters(['permissions']), }, watch: { exportDialogVisible(newVal) { @@ -846,8 +979,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) + }) + } + }, }, mounted() { this.initQueryParams() @@ -855,78 +1001,30 @@ 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', fun: this.addSampleCustomerOrder, disabled: false, - permitArr: [] + 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: '鑾峰彇閿�鍞鍗�', type: 'primary', fun: this.syncERP, disabled: false, - permitArr: [] + 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: '鎻愪氦瀹℃牳', + text: '鎻愪氦OA', type: 'primary', fun: this.auditCustomerOrder, disabled: false, permitArr: [], - loading: false + loading: false, }) } if (this.permissions.customerorder_set_salesparts) { @@ -934,18 +1032,138 @@ text: '璁剧疆閿�鍞欢', type: 'primary', fun: this.setSalesPart, - disabled: false + disabled: false, + permitArr: [], }) } + this.table.toolbar.push({ + text: '涓嬭浇宸ヨ壓鏂囦欢', + disabled: false, + type: 'primary', + fun: this.downloadWord, + permitArr: ['03plan','04planed'], + }) + this.table.toolbar.push({ + text: '涓嬭浇鎺掍骇鍗�', + disabled: false, + type: 'primary', + permitArr: [], + fun: this.downloadProductionScheduling, + }) + 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 + }, + //涓嬭浇鎺掍骇閫氱煡鍗� + downloadProductionScheduling(){ + let ids = this.multipleSelection.map(obj => obj.id) + if(ids.length<1){ + this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�") + return + } + downloadProduct({ids: ids}).then(res=>{ + if(res.status===200){ + transform(res) + } + }).catch(error=>{ + console.error(error) + }) + }, + //涓嬭浇宸ヨ壓鏂囦欢 + 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 }, @@ -954,7 +1172,7 @@ queryParam.push( Object.assign({ prop: 'coState', - searchInfoType: 'select' + searchInfoType: 'select', // propVal: '01partUnCheck' // propVal: '02technologyUnCheck' }) @@ -1010,6 +1228,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) @@ -1021,16 +1251,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) }) }, // 鎵撳紑鏃ユ湡閫夋嫨妗� @@ -1087,45 +1324,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) @@ -1135,7 +1361,7 @@ this.$message.success(resData.msg) this.getData() } else { - this.$message.error('鎻愪氦瀹℃牳澶辫触锛�') + this.$message.error('鎻愪氦OA澶辫触锛�') } toolbar.loading = false }) @@ -1153,7 +1379,7 @@ id: row.id, customerOrderNo: row.customerOrderNo, splitQuantity: '', - title: '' + title: '', } this.$nextTick(() => { this.$refs.packageExportForm.resetFields() @@ -1169,7 +1395,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) @@ -1183,13 +1409,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() @@ -1224,7 +1450,7 @@ confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', closeOnClickModal: false, - type: 'warning' + type: 'warning', }) .then(() => { return delCustomerOrder(row.id) @@ -1238,7 +1464,7 @@ handleSelectionChange(val) { // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳 // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬� - var stateArr = val.map(function(value, index) { + var stateArr = val.map(function (value, index) { return value.coState }) // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲� @@ -1260,6 +1486,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 @@ -1308,6 +1549,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 } @@ -1437,6 +1686,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) { @@ -1529,7 +1782,7 @@ if (!isLt10M) { this.$message({ message: '鏂囦欢澶у皬', - type: 'warning' + type: 'warning', }) } return isLt10M @@ -1541,7 +1794,7 @@ } else { this.$message({ message: '涓婁紶鎴愬姛', - type: 'success' + type: 'success', }) this.getData() } @@ -1559,7 +1812,7 @@ downDataTemplate() { uploadBatchTemplate().then((response) => { const blob = new Blob([response.data], { - type: 'application/force-download' + type: 'application/force-download', }) const filename = decodeURI('妯℃澘鏂囦欢.xlsx') // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠� @@ -1599,10 +1852,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) => { @@ -1644,7 +1897,7 @@ if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { otcCustomerOrderSync({ selectTime: this.dataForm.selectTime, - pathCode: '1' + pathCode: '1', }) .then((response) => { this.table.toolbar.find( @@ -1672,7 +1925,7 @@ ).loading = false this.$message.error('璇峰厛閫夋嫨鏃ユ湡') } - } - } + }, + }, } </script> -- Gitblit v1.9.3