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 | 1056 ++++++++++++++++++++++++---------------------------------- 1 files changed, 438 insertions(+), 618 deletions(-) diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue index 1810399..1e5ebda 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" @@ -38,10 +23,10 @@ </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item + :key="index" :command="item.command" - v-for="item in documentTagArr" - :disabled="item.disabled" - > + v-for="(item,index) in documentTagArr" + :disabled="item.disabled"> {{ item.label }} </el-dropdown-item> </el-dropdown-menu> @@ -57,42 +42,21 @@ </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item + :key="index" :command="item.command" - v-for="item 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;" - type="primary" - @click="exportStandBook" - >瀵煎嚭鍙拌处</el-button - > - <el-button - v-if="permissions.plan_customerorder_return" - style="margin-left:10px;" - type="primary" - @click="returnOrder" - >璁㈠崟閫�鍥�</el-button - > + @click="()=>exportDialogVisible=true" + >瀵煎嚭鍙拌处</el-button> </template> </ttable> - <!-- 寮圭獥, 鏃ユ湡閫夋嫨 --> <ConfirmPullCustomerorder v-if="showPullCustomerOrderVisible" @@ -189,6 +153,26 @@ </span> <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-form-item label="鏃ユ湡" prop="exportTime"> + <el-date-picker + v-model="dataForm.exportTime" + type="datetime" + style="width:100%" + placeholder="閫夋嫨鏃ユ湡鏃堕棿" + 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> <!-- 绠辩爜淇℃伅瀵煎嚭 --> <el-dialog title="绠辩爜淇℃伅瀵煎嚭" @@ -240,28 +224,53 @@ </el-dialog> </basic-container> - <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="30%"> + <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="20%"> <div style="display: flex;justify-content: center"> - <el-date-picker - v-model="syncDate" - type="daterange" - value-format="yyyy-MM-dd" - range-separator="鑷�" - start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" - :picker-options="pickerOptions" - > - </el-date-picker> + <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"> + </el-date-picker> + </el-form-item> + </el-form> </div> <span slot="footer" class="dialog-footer"> <el-button @click="syncDateVisible = false">鍙� 娑�</el-button> <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,6 +282,7 @@ import MpsRequirements from './mps-requirements' import SalesPartBatchDialog from './sales-part-batch.vue' import CustomerorderReturnDialog from './customerorder-return.vue' +import { otcCustomerOrderSync } from '@/api/plan/customerorder' import { delCustomerOrder, fetchListCustomerOrder, @@ -288,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' @@ -300,6 +311,17 @@ export default { data() { return { + interrelatedOrderId: null, + interrelatedOrderData: [], + showInterrelatedOrderDialog: false, + uniqueStateArr: [], + dataForm: { + selectTime: null, + exportTime: null + }, + dataRule: { + exportTime:[{required:true,message:'瀵煎嚭鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}] + }, pickerOptions: { onPick: ({ maxDate, minDate }) => { if (minDate && this.pickerMinDate) { @@ -318,6 +340,7 @@ return false } }, + exportDialogVisible: false, syncDateVisible: false, syncDate: [], showCustomerorderReturn: false, @@ -406,7 +429,7 @@ isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳 isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H isSearch: true, // 楂樼骇鏌ヨ鎸夐挳 - defaultOrderBy: { column: 'createTime', direction: 'desc' }, + defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' }, cancelRunCreated: true }, table: { @@ -419,9 +442,8 @@ { minWidth: '100', width: '100px', - prop: 'customerOrderNo', + prop: 'contractNo', label: '鍚堝悓缂栧彿', - // label: '璁㈠崟鍙�', sort: true, isTrue: true, isSearch: true, @@ -431,8 +453,7 @@ { minWidth: '120', prop: 'entityName', - label: '鍚堝悓涓婚', - sort: false, + label: '宸ョ▼鍚嶇О', isTrue: true, isSearch: true, searchInfoType: 'text' @@ -445,6 +466,19 @@ isTrue: true, isSearch: true, searchInfoType: 'text' + }, + { + minWidth: '100', + prop: 'sourceId', + label: '娣诲姞鏉ユ簮', + isTag: true, + isTrue: true, + isSearch: true, + searchInfoType: 'select', + formatter: this.getSourceId, + optList: () => { + return this.sourceIdList + } }, { minWidth: '200', @@ -460,42 +494,13 @@ { minWidth: '120', prop: 'placeOrderDate', - label: '绛捐鏃ユ湡', + label: '涓嬪崟鏃ユ湡', sort: true, isTrue: true, isSearch: true, searchInfoType: 'text', formatter: this.formatDutyDate }, - { - minWidth: '120', - prop: 'factoryPlaceOrderDate', - label: '寮�濮嬫棩鏈�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text', - formatter: this.formatDutyDate - }, - { - minWidth: '120', - prop: 'endTime', - label: '缁堟鏃ユ湡', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text', - formatter: this.formatDutyDate - }, - // { - // minWidth: '120', - // prop: 'customerNo', - // label: '瀹㈡埛缂栧彿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, { minWidth: '120', prop: 'customerName', @@ -505,16 +510,6 @@ isSearch: true, searchInfoType: 'text' }, - // { - // minWidth: '120', - // prop: 'customerContractNo', - // label: '瀹㈡埛璁㈠崟鍙�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - { minWidth: '120', prop: 'coState', @@ -531,7 +526,7 @@ { minWidth: '120', prop: 'isAudit', - label: '瀹℃牳鐘舵��', + label: 'PLM瀹℃牳鐘舵��', sort: true, isTrue: true, isSearch: true, @@ -542,107 +537,23 @@ } }, { - minWidth: '80', - prop: 'ifsDeliveryNo', - label: '鍚堝悓鍒嗙被', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'ifsLineItemNo', - label: '鍚堝悓鏉ユ簮', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'returnStatus', - label: '鍚堝悓鐘舵��', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'originalContractStatus', - label: '鍑哄簱鐘舵��', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - - { minWidth: '120', - prop: 'ifsSalesUnit', - label: '鍚敤鐘舵��', + prop: 'isPass', + label: '瀹℃牳閫氳繃鐘舵��', sort: true, isTrue: true, isSearch: true, - searchInfoType: 'text' + searchInfoType: 'select', + formatter: this.checkIsPass, + optList: () => { + return this.isPassList + } }, - // { - // minWidth: '120', - // prop: 'coLineNo', - // label: 'GSM琛屽彿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // { - // minWidth: '120', - // prop: 'otcLineNo', - // label: 'OTC琛屽彿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // // 鐘舵�� - // { - // minWidth: '120', - // prop: 'otcPartSync', - // label: 'OTC鎺ㄩ�佺姸鎬�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'select', - // optList: () => { - // return this.getOtcPartSyncOptionList() - // }, - // formatter: (row, column, cellValue) => { - // var formatVal - // if (cellValue == null) { - // formatVal = '' - // } else if (cellValue) { - // formatVal = '宸插悓姝�' - // } else { - // formatVal = '鏈悓姝�' - // } - // return formatVal - // } - // }, - // { - // minWidth: '120', - // prop: 'verifyDate', - // label: 'OTC瀹℃牳鏃堕棿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'datetimerange' - // }, { minWidth: '120', width: '100px', prop: 'partNo', - label: '闆朵欢鍙�', + label: '浜у搧缂栧彿', sort: true, isTrue: true, isSearch: true, @@ -651,8 +562,8 @@ { minWidth: '120', width: '100px', - prop: 'customerPartName', - label: '闆朵欢鍚嶇О', + prop: 'productName', + label: '浜у搧鍚嶇О', sort: true, isTrue: true, isSearch: true, @@ -662,7 +573,7 @@ minWidth: '120', width: '100px', prop: 'productType', - label: '鍨嬪彿', + label: '闅跺睘鍝佺墝', isTrue: true, isSearch: true, searchInfoType: 'text' @@ -671,7 +582,7 @@ minWidth: '120', width: '100px', prop: 'otcUnit', - label: '闆朵欢灞炴��', + label: '鍗曚綅', isTrue: true, isSearch: true, searchInfoType: 'text' @@ -688,45 +599,8 @@ }, { minWidth: '120', - width: '100px', - prop: 'outerColor', - label: '澶栨姢棰滆壊', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '120', - prop: 'otcQuantity', - label: '閿�鍞暟閲�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'otcUnit', - label: '閿�鍞崟浣�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '120', prop: 'buyQtyDue', - label: '搴撳瓨鏁伴噺', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'unit', - label: '闆朵欢鍗曚綅', + label: '鏁伴噺', sort: true, isTrue: true, isSearch: true, @@ -734,253 +608,6 @@ }, { minWidth: '140', - prop: 'requireNumber', - label: '宸蹭笅鍙戞暟閲�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'customerPartSpec', - label: '瀹㈡埛闆朵欢瑙勬牸', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'finalCustomerName', - label: '鏈�缁堝鎴峰悕绉�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'productGroup', - label: '浜у搧鍒嗙粍', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'productType', - label: '浜у搧绫诲瀷', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'centralizedMiningProperty', - label: '閲囬泦鎬ц川', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'orderDescription', - label: '璁㈠崟璇存槑', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'division', - label: '浜嬩笟閮�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'printType', - label: '鍗板瓧鏂瑰紡', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'printingRequirements', - label: '鍗板瓧瑕佹眰', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'printContent', - label: '鍗板瓧鍐呭', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'packageRequire', - label: '鍖呰瑕佹眰', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'qualityRequire', - label: '璐ㄩ噺瑕佹眰', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'otherProductRequire', - label: '鐢熶骇闇�姹傝鏄�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'divisionSystem', - label: '绯荤粺', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'shippingAddress', - label: '鏀惰揣鍦板潃', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'salesmanName', - label: '涓氬姟鍛�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'lengthRequirement', - label: '鐩橀暱瑕佹眰', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'remark', - label: '璁㈠崟琛屽娉�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - prop: 'comment', - label: '璁㈠崟澶村娉�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - // { - // minWidth: '80', - // prop: 'ifsLineNo', - // label: 'IFS琛屽彿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // { - // minWidth: '80', - // prop: 'ifsDeliveryNo', - // label: 'IFS浜よ揣鍙�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - // { - // minWidth: '80', - // prop: 'ifsLineItemNo', - // label: 'IFS琛岄」鍙�', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'text' - // }, - { - minWidth: '80', - prop: 'salesPartNo', - label: '閿�鍞欢鍙�', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '80', - prop: 'salesPartName', - label: '閿�鍞欢鎻忚堪', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'text' - }, - { - minWidth: '140', - width: '120', - prop: 'wantedDeliveryDate', - label: '鏈熸湜浜よ揣鏃堕棿', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'datetimerange', - formatter: this.formatDutyDate - }, - { - minWidth: '200', - width: '120', - prop: 'plannedDeliveryDate', - label: '璁″垝浜よ揣鏃堕棿', - sort: true, - isTrue: true, - isSearch: true, - searchInfoType: 'datetimerange', - formatter: this.formatDutyDate - }, - { - minWidth: '120', prop: 'manufactureAttr', label: '鍒堕�犲睘鎬�', sort: true, @@ -989,43 +616,98 @@ searchInfoType: 'select', formatter: this.getManufactureAttr, optList: () => { - return this.manufactureAttrs + return this.manufactureAttrList } - } - // { - // minWidth: '200', - // width: '120', - // prop: 'createTime', - // label: '鍒涘缓鏃堕棿', - // sort: true, - // isTrue: true, - // isSearch: true, - // searchInfoType: 'datetimerange', - // formatter: this.formatDutyDate - // } + }, + { + minWidth: '140', + prop: 'customerPartSpec', + label: '瑙勬牸鍨嬪彿', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '140', + prop: 'returnStatus', + label: '鍚堝悓姝f湰鐘舵��', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '140', + prop: 'originalContractStatus', + label: '姝f湰鐘舵��', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '140', + prop: 'salesMan', + label: '涓氬姟鍛�', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'text' + }, + { + minWidth: '140', + width: '120', + prop: 'deliveryDate', + label: '浜よ揣鏃堕棿', + sort: true, + isTrue: true, + isSearch: true, + searchInfoType: 'datetimerange', + formatter: this.formatDutyDate + }, ], toolbar: [], operator: [ + // { + // text: '璁㈠崟璇存槑', + // type: 'text', + // size: 'small', + // fun: this.openCustomerOrder + // }, + // { + // text: '鏌ョ湅搴撳瓨', + // type: 'text', + // size: 'small', + // fun: this.stockHandle + // }, + // { + // text: '绠辩爜淇℃伅瀵煎嚭', + // type: 'text', + // size: 'small', + // fun: this.packageExportHandle + // }, { - text: '璁㈠崟璇存槑', + text: '瀹℃牳', type: 'text', size: 'small', - fun: this.openCustomerOrder + fun: this.checkHandOrder, + showFun: (row)=>{return row.sourceId==='1'}, + show: { + val: [ + false, + ], + key: 'isPass' + } }, { - text: '鏌ョ湅搴撳瓨', + text: '宸插叧鑱旇鍗�', type: 'text', size: 'small', - fun: this.stockHandle + fun: this.showInterrelatedOrder, }, { - text: '绠辩爜淇℃伅瀵煎嚭', - type: 'text', - size: 'small', - fun: this.packageExportHandle - }, - { - text: '浣滃簾', + text: '鍒犻櫎', type: 'text', size: 'small', fun: this.cancelHandle, @@ -1043,8 +725,8 @@ operatorConfig: { fixed: 'right', label: '鎿嶄綔', - width: 260, - minWidth: 100 + width: 200, + minWidth: 200 } }, addOrUpdateVisible: false, @@ -1074,6 +756,16 @@ label: '璁㈠崟缂栬緫' } ], + manufactureAttrList: [{ + label: '鏅��', + value: 'N' + },{ + label: '鏍峰搧', + value: 'S' + },{ + label: '鐮斿彂', + value: 'D' + }], isAuditList: [ { value: '01draft', @@ -1092,6 +784,13 @@ label: '閫�鍥�' } ], + sourceIdList: [{ + label: '鍚屾', + value: "0" + },{ + label: '鎵嬪姩', + value: "1" + }], stockVisible: false, partName: null, showPullCustomerOrderVisible: false, @@ -1133,7 +832,8 @@ } ], showSalesPartBatch: false, - addOrUpdateEescVisible: false + addOrUpdateEescVisible: false, + isPassList: [{label:'鏈�氳繃',value: false},{label: '閫氳繃',value: true}] } }, components: { @@ -1153,6 +853,11 @@ ...mapGetters(['permissions']) }, watch: { + exportDialogVisible(newVal) { + if (!newVal) { + this.$refs.exportForm.resetFields() + } + }, coState: { handler(newValue, oldValue) { if (newValue) { @@ -1160,44 +865,25 @@ } }, 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() }, created() { - this.getManufactureAttrs() + // 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', @@ -1205,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: '鑾峰彇閿�鍞鍗�', @@ -1220,16 +898,6 @@ fun: this.syncERP, disabled: false, 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) { @@ -1247,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 }, @@ -1267,9 +1027,9 @@ queryParam.push( Object.assign({ prop: 'coState', - searchInfoType: 'select', + searchInfoType: 'select' // propVal: '01partUnCheck' - propVal: '02technologyUnCheck' + // propVal: '02technologyUnCheck' }) ) this.$refs.customerOrderTable.setQueryParam(queryParam) @@ -1292,14 +1052,14 @@ if (this.judgeCoState(this.multipleSelection)) { // 鍒ゆ柇涓�涓嬪墿浣欐暟閲忔槸鍚﹀ぇ浜�0 for (let i = 0, len = this.multipleSelection.length; i < len; i++) { - if ( - this.multipleSelection[i].buyQtyDue - - this.multipleSelection[i].requireNumber <= - 0 - ) { - this.$message.error('璇烽�夊簱瀛樻暟閲忓ぇ浜庡凡涓嬪彂鏁伴噺鐨勯攢鍞鍗�') - return - } + // if ( + // this.multipleSelection[i].buyQtyDue - + // this.multipleSelection[i].requireNumber <= + // 0 + // ) { + // this.$message.error('璇烽�夊簱瀛樻暟閲忓ぇ浜庡凡涓嬪彂鏁伴噺鐨勯攢鍞鍗�') + // return + // } if ( !( this.multipleSelection[i].isAudit != null && @@ -1323,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) @@ -1334,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) }) }, // 鎵撳紑鏃ユ湡閫夋嫨妗� @@ -1404,15 +1183,15 @@ let flag = true const ids = [] this.multipleSelection.forEach((item) => { - if (item.salesPartNo != null && item.salesPartNo !== '') { + if (item.partNo != null && item.partNo !== '') { ids.push(item.id) } else { flag = false } }) if (flag) { - checkOA(this.multipleSelection.map((e) => e.id)).then((res) => { - console.log(res) + + checkOA(this.multipleSelection.map((e) => e.id),{}).then((res) => { if (!res.data.data.success) { this.$confirm(`${res.data.data.message}`, '鎻愮ず', { confirmButtonText: '纭畾', @@ -1461,7 +1240,6 @@ // 绠辩爜淇℃伅瀵煎嚭 packageExportHandle(row) { - console.log(row.otcQuantity) if (row.otcQuantity) { this.packageExport.visible = true this.packageExport.form = { @@ -1498,13 +1276,13 @@ }, // 浣滃簾 cancelHandle(row) { - this.$confirm('鏄惁纭浣滃簾閿�鍞鍗曞彿涓�' + row.customerOrderNo + '鎻愮ず', { + this.$confirm('纭浣滃簾id涓恒��' + row.id + '銆戠殑鏁版嵁?','鎻愮ず' , { confirmButtonText: '纭畾', cancelButtonText: '鍙栨秷', closeOnClickModal: false, type: 'warning' }).then(() => { - dropByContractNo(row.customerOrderNo).then((res) => { + dropByContractNo({id:row.id}).then((res) => { if (res.data.code === 0) { this.$message.success('浣滃簾鎴愬姛') this.getData() @@ -1577,6 +1355,21 @@ 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 }, getCustomerCoState(row, column, cellValue) { @@ -1587,23 +1380,31 @@ }) return cellValue }, - getManufactureAttr(row, column, cellValue) { - this.manufactureAttrs.forEach((obj) => { + getSourceId(row, column, cellValue) { + this.sourceIdList.forEach((obj) => { if (obj.value === cellValue) { cellValue = obj.label } }) return cellValue }, - getManufactureAttrs() { - remote('manufacture_attr_type').then((response) => { - if (response.data.code === 0) { - this.manufactureAttrs = response.data.data - } else { - this.manufactureAttrs = [] + getManufactureAttr(row, column, cellValue) { + this.manufactureAttrList.forEach((obj) => { + if (obj.value === cellValue) { + cellValue = obj.label } }) + return cellValue }, + // getManufactureAttrs() { + // remote('manufacture_attr_type').then((response) => { + // if (response.data.code === 0) { + // this.manufactureAttrs = response.data.data + // } else { + // this.manufactureAttrs = [] + // } + // }) + // }, getTitles() { remote('order_export_title_type').then((response) => { if (response.data.code === 0) { @@ -1744,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) { @@ -1752,7 +1557,7 @@ '瀛樺湪閿�鍞鍗曞凡鍏宠仈宸ヨ壓鏂囦欢锛屽闇�鏇存敼锛岃鍏堣В闄ゅ叧鑱�' ) } - if (item.salesPartNo == null || item.salesPartNo === '') { + if (item.partNo == null || item.partNo === '') { status = true this.$message.error('瀛樺湪閿�鍞鍗曟湭缁戝畾閿�鍞欢锛岃鍏堢粦瀹�') } @@ -1882,7 +1687,6 @@ }, // 瀵煎嚭鍙拌处 exportStandBook() { - // console.log(this.$refs.customerOrderTable.getQueryParam(),"SSS") // if (this.multipleSelection.length > 0) { // let ids = '' // this.multipleSelection.forEach((item) => { @@ -1907,11 +1711,18 @@ // } else { // this.$message.error('璇烽�夋嫨鑷冲皯涓�鏉¢攢鍞鍗�') // } - exportCustomerOrder(this.$refs.customerOrderTable.getQueryParam()) - .then((response) => { - transform(response) - }) - .catch(() => {}) + this.$refs['exportForm'].validate(valid => { + if(valid){ + const exportTime = this.dataForm.exportTime + let queryParam=this.$refs.customerOrderTable.getQueryParam(); + queryParam.selectTime = exportTime + exportCustomerOrder(queryParam) + .then((response) => { + transform(response) + }) + .catch(() => {}) + } + }) }, setSalesPart() { if (this.multipleSelection.length > 0) { @@ -1942,28 +1753,37 @@ this.syncDateVisible = false this.table.toolbar.find((e) => e.text === '鑾峰彇閿�鍞鍗�').loading = true - syncOrder({ - startTime: this.syncDate[0], - endTime: this.syncDate[1] - }) - .then((res) => { - this.table.toolbar.find( - (e) => e.text === '鑾峰彇閿�鍞鍗�' - ).loading = false - const resData = res.data - if (resData.code === 0) { - this.$message.success(resData.data) - this.getData() - } else { - this.$message.error('鍚屾澶辫触') - } + if (this.dataForm.selectTime != null && this.dataForm.selectTime != '') { + otcCustomerOrderSync({ + selectTime: this.dataForm.selectTime, + pathCode: '1' }) - .catch((e) => { - this.table.toolbar.find( - (e) => e.text === '鑾峰彇閿�鍞鍗�' - ).loading = false - this.$forceUpdate() - }) + .then((response) => { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + const resData = response.data + if (resData.code === 0) { + this.$message.success('鎷夊彇閿�鍞鍗曟垚鍔燂紱' + resData.msg) + this.dataForm.selectTime = null + this.$emit('refreshDataList') + this.getData() + } else { + this.$message.success('鎷夊彇閿�鍞鍗曞け璐�') + } + }) + .catch((e) => { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + this.$forceUpdate() + }) + } else { + this.table.toolbar.find( + (e) => e.text === '鑾峰彇閿�鍞鍗�' + ).loading = false + this.$message.error('璇峰厛閫夋嫨鏃ユ湡') + } } } } -- Gitblit v1.9.3