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 |  982 +++++++++++++++++++++++----------------------------------
 1 files changed, 394 insertions(+), 588 deletions(-)

diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index e0d3b29..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="绠辩爜淇℃伅瀵煎嚭"
@@ -258,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'
@@ -289,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'
@@ -301,10 +311,17 @@
 export default {
   data() {
     return {
+      interrelatedOrderId: null,
+      interrelatedOrderData: [],
+      showInterrelatedOrderDialog: false,
+      uniqueStateArr: [],
       dataForm: {
-        selectTime: null
+        selectTime: null,
+        exportTime: null
       },
-      dataRule: {},
+      dataRule: {
+        exportTime:[{required:true,message:'瀵煎嚭鏃ユ湡涓嶈兘涓虹┖',trigger:'change'}]
+      },
       pickerOptions: {
         onPick: ({ maxDate, minDate }) => {
           if (minDate && this.pickerMinDate) {
@@ -323,6 +340,7 @@
           return false
         }
       },
+      exportDialogVisible: false,
       syncDateVisible: false,
       syncDate: [],
       showCustomerorderReturn: false,
@@ -411,7 +429,7 @@
         isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
         isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H
         isSearch: true, // 楂樼骇鏌ヨ鎸夐挳
-        defaultOrderBy: { column: 'createTime', direction: 'desc' },
+        defaultOrderBy: { column: 'placeOrderDate', direction: 'desc' },
         cancelRunCreated: true
       },
       table: {
@@ -424,9 +442,8 @@
           {
             minWidth: '100',
             width: '100px',
-            prop: 'customerOrderNo',
+            prop: 'contractNo',
             label: '鍚堝悓缂栧彿',
-            // label: '璁㈠崟鍙�',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -436,8 +453,7 @@
           {
             minWidth: '120',
             prop: 'entityName',
-            label: '鍚堝悓涓婚',
-            sort: false,
+            label: '宸ョ▼鍚嶇О',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -450,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',
@@ -465,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',
@@ -510,16 +510,6 @@
             isSearch: true,
             searchInfoType: 'text'
           },
-          // {
-          //   minWidth: '120',
-          //   prop: 'customerContractNo',
-          //   label: '瀹㈡埛璁㈠崟鍙�',
-          //   sort: true,
-          //   isTrue: true,
-          //   isSearch: true,
-          //   searchInfoType: 'text'
-          // },
-
           {
             minWidth: '120',
             prop: 'coState',
@@ -536,7 +526,7 @@
           {
             minWidth: '120',
             prop: 'isAudit',
-            label: '瀹℃牳鐘舵��',
+            label: 'PLM瀹℃牳鐘舵��',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -547,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,
@@ -656,8 +562,8 @@
           {
             minWidth: '120',
             width: '100px',
-            prop: 'customerPartName',
-            label: '闆朵欢鍚嶇О',
+            prop: 'productName',
+            label: '浜у搧鍚嶇О',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -667,7 +573,7 @@
             minWidth: '120',
             width: '100px',
             prop: 'productType',
-            label: '鍨嬪彿',
+            label: '闅跺睘鍝佺墝',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -676,7 +582,7 @@
             minWidth: '120',
             width: '100px',
             prop: 'otcUnit',
-            label: '闆朵欢灞炴��',
+            label: '鍗曚綅',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -693,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,
@@ -739,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,
@@ -994,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,
@@ -1048,8 +725,8 @@
         operatorConfig: {
           fixed: 'right',
           label: '鎿嶄綔',
-          width: 260,
-          minWidth: 100
+          width: 200,
+          minWidth: 200
         }
       },
       addOrUpdateVisible: false,
@@ -1079,6 +756,16 @@
           label: '璁㈠崟缂栬緫'
         }
       ],
+      manufactureAttrList: [{
+        label: '鏅��',
+        value: 'N'
+      },{
+        label: '鏍峰搧',
+        value: 'S'
+      },{
+        label: '鐮斿彂',
+        value: 'D'
+      }],
       isAuditList: [
         {
           value: '01draft',
@@ -1097,6 +784,13 @@
           label: '閫�鍥�'
         }
       ],
+      sourceIdList: [{
+        label: '鍚屾',
+        value: "0"
+      },{
+        label: '鎵嬪姩',
+        value: "1"
+      }],
       stockVisible: false,
       partName: null,
       showPullCustomerOrderVisible: false,
@@ -1138,7 +832,8 @@
         }
       ],
       showSalesPartBatch: false,
-      addOrUpdateEescVisible: false
+      addOrUpdateEescVisible: false,
+      isPassList: [{label:'鏈�氳繃',value: false},{label: '閫氳繃',value: true}]
     }
   },
   components: {
@@ -1158,6 +853,11 @@
     ...mapGetters(['permissions'])
   },
   watch: {
+    exportDialogVisible(newVal) {
+      if (!newVal) {
+        this.$refs.exportForm.resetFields()
+      }
+    },
     coState: {
       handler(newValue, oldValue) {
         if (newValue) {
@@ -1165,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',
@@ -1210,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: '鑾峰彇閿�鍞鍗�',
@@ -1225,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) {
@@ -1252,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
     },
@@ -1272,9 +1027,9 @@
       queryParam.push(
         Object.assign({
           prop: 'coState',
-          searchInfoType: 'select',
+          searchInfoType: 'select'
           // propVal: '01partUnCheck'
-          propVal: '02technologyUnCheck'
+          // propVal: '02technologyUnCheck'
         })
       )
       this.$refs.customerOrderTable.setQueryParam(queryParam)
@@ -1297,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 &&
@@ -1328,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)
@@ -1339,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)
       })
     },
     // 鎵撳紑鏃ユ湡閫夋嫨妗�
@@ -1409,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: '纭畾',
@@ -1466,7 +1240,6 @@
 
     // 绠辩爜淇℃伅瀵煎嚭
     packageExportHandle(row) {
-      console.log(row.otcQuantity)
       if (row.otcQuantity) {
         this.packageExport.visible = true
         this.packageExport.form = {
@@ -1503,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()
@@ -1582,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) {
@@ -1592,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) {
@@ -1749,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) {
@@ -1757,7 +1557,7 @@
                   '瀛樺湪閿�鍞鍗曞凡鍏宠仈宸ヨ壓鏂囦欢锛屽闇�鏇存敼锛岃鍏堣В闄ゅ叧鑱�'
                 )
               }
-              if (item.salesPartNo == null || item.salesPartNo === '') {
+              if (item.partNo == null || item.partNo === '') {
                 status = true
                 this.$message.error('瀛樺湪閿�鍞鍗曟湭缁戝畾閿�鍞欢锛岃鍏堢粦瀹�')
               }
@@ -1887,7 +1687,6 @@
     },
     // 瀵煎嚭鍙拌处
     exportStandBook() {
-      // console.log(this.$refs.customerOrderTable.getQueryParam(),"SSS")
       // if (this.multipleSelection.length > 0) {
       //   let ids = ''
       //   this.multipleSelection.forEach((item) => {
@@ -1912,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) {

--
Gitblit v1.9.3