From e2c3d91242be8953c5d73ddddc04839b22a9f1e1 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 14 十一月 2023 14:56:45 +0800
Subject: [PATCH] 	new file:   src/const/crud/customerOrder/customerOrderForm.js 	modified:   src/views/common/ztt-table.vue 	modified:   src/views/plan/customerorder/index.vue 	modified:   src/views/plan/customerorder/sample-customerorder-form.vue

---
 src/views/plan/customerorder/index.vue                     |  576 +++++------------------------------
 src/const/crud/customerOrder/customerOrderForm.js          |  113 +++++++
 src/views/plan/customerorder/sample-customerorder-form.vue |  254 +++------------
 src/views/common/ztt-table.vue                             |    3 
 4 files changed, 255 insertions(+), 691 deletions(-)

diff --git a/src/const/crud/customerOrder/customerOrderForm.js b/src/const/crud/customerOrder/customerOrderForm.js
new file mode 100644
index 0000000..8f0e9b8
--- /dev/null
+++ b/src/const/crud/customerOrder/customerOrderForm.js
@@ -0,0 +1,113 @@
+/*
+ *    Copyright (c) 2018-2025, ztt All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the pig4cloud.com developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: ztt
+ */
+export const tableOption = {
+  border: true,
+  index: true,
+  height: '292px',
+  indexLabel: '搴忓彿',
+  menuAlign: 'center',
+  menuWidth: 100,
+  editBtn: false,
+  delBtn: false,
+  align: 'center',
+  addBtn: false,
+  addRowBtn: true,
+  cancelBtn: false,
+  refreshBtn: false, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
+  columnBtn: false, // 鏄惁鏄剧ず鏄惧奖鎸夐挳H
+  column: [{
+    label: '闆朵欢鍙�',
+    slot: true,
+    formSlot: true,
+    cell: true,
+    prop: 'partNo',
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '闆朵欢瑙勬牸',
+    prop: 'customerPartSpec',
+    type: 'input',
+    cell: true,
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '鍒堕�犲睘鎬�',
+    prop: 'manufactureAttr',
+    cell: true,
+    type: 'select',
+    minWidth: 200,
+    span: 24,
+    dicData:[{
+        label: '鏅��',
+        value: 'N'
+    },{
+        label: '鏍峰搧',
+        value: 'S'
+    },{
+        label: '鐮斿彂',
+        value: 'D'
+    }]
+  }, {
+    label: '浜у搧鍚嶇О',
+    prop: 'productName',
+    cell: true,
+    type: 'input',
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '闅跺睘鍝佺墝',
+    prop: 'productType',
+    cell: true,
+    type: 'input',
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '鍗曚綅',
+    prop: 'otcUnit',
+    slot: true,
+    formSlot: true,
+    cell: true,
+    type: 'input',
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '鏁伴噺',
+    prop: 'buyQtyDue',
+    cell: true,
+    type: 'input',
+    dataType: 'number',
+    minWidth: 200,
+    span: 24,
+    rules:[{message:'绫诲瀷蹇呴』鏄暟瀛�',trigger:'blur'}]
+  }, {
+    label: '鏀惰揣鍦板潃',
+    prop: 'shippingAddress',
+    cell: true,
+    type: 'input',
+    minWidth: 200,
+    span: 24
+  }, {
+    label: '浜у搧澶囨敞',
+    prop: 'remark',
+    cell: true,
+    type: 'textarea',
+    minWidth: 200,
+    span: 24,
+    minRows: 1,
+    maxRows: 3
+  }, ]
+}
diff --git a/src/views/common/ztt-table.vue b/src/views/common/ztt-table.vue
index 209e67a..1127f78 100644
--- a/src/views/common/ztt-table.vue
+++ b/src/views/common/ztt-table.vue
@@ -327,6 +327,9 @@
               <template v-else>
                 <template v-if="!item.render">
                   <template v-if="item.formatter">
+                    <span v-if="item.isTag">
+                      <el-tag type="success">aaa</el-tag>
+                    </span>
                     <span
                       v-html="
                         item.formatter(scope.row, item, scope.row[item.prop])
diff --git a/src/views/plan/customerorder/index.vue b/src/views/plan/customerorder/index.vue
index 711cf02..5541cc9 100644
--- a/src/views/plan/customerorder/index.vue
+++ b/src/views/plan/customerorder/index.vue
@@ -21,8 +21,9 @@
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
+                :key="index"
                 :command="item.command"
-                v-for="item in stateTagArr"
+                v-for="(item,index) in stateTagArr"
                 :disabled="item.disabled"
                 >{{ item.label }}</el-dropdown-item
               >
@@ -38,8 +39,9 @@
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
+                :key="index"
                 :command="item.command"
-                v-for="item in documentTagArr"
+                v-for="(item,index) in documentTagArr"
                 :disabled="item.disabled"
               >
                 {{ item.label }}
@@ -58,12 +60,20 @@
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item
                 :command="item.command"
-                v-for="item in commitStateTagArr"
+                :key="index"
+                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_ifs_line"
+            style="margin-left:10px;"
+            type="primary"
+            @click="pullIfsLineNo"
+            >鑾峰彇OTC琛屽彿</el-button
+          >
           <el-button
             v-if="permissions.customerorder_push_otc"
             style="margin-left:10px;"
@@ -419,9 +429,8 @@
           {
             minWidth: '100',
             width: '100px',
-            prop: 'customerOrderNo',
+            prop: 'contractNo',
             label: '鍚堝悓缂栧彿',
-            // label: '璁㈠崟鍙�',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -431,8 +440,7 @@
           {
             minWidth: '120',
             prop: 'entityName',
-            label: '鍚堝悓涓婚',
-            sort: false,
+            label: '宸ョ▼鍚嶇О',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -445,6 +453,19 @@
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
+          },
+          {
+            minWidth: '120',
+            prop: 'sourceId',
+            label: '娣诲姞鏉ユ簮',
+            isTag: true,
+            isTrue: true,
+            isSearch: true,
+            searchInfoType: 'select',
+            formatter: this.getSourceId,
+            optList: () => {
+              return this.sourceIdList
+            }
           },
           {
             minWidth: '200',
@@ -460,42 +481,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 +497,6 @@
             isSearch: true,
             searchInfoType: 'text'
           },
-          // {
-          //   minWidth: '120',
-          //   prop: 'customerContractNo',
-          //   label: '瀹㈡埛璁㈠崟鍙�',
-          //   sort: true,
-          //   isTrue: true,
-          //   isSearch: true,
-          //   searchInfoType: 'text'
-          // },
-
           {
             minWidth: '120',
             prop: 'coState',
@@ -541,108 +523,20 @@
               return this.isAuditList
             }
           },
-          {
-            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: '鍚敤鐘舵��',
-            sort: true,
-            isTrue: true,
-            isSearch: true,
-            searchInfoType: 'text'
-          },
           // {
-          //   minWidth: '120',
-          //   prop: 'coLineNo',
-          //   label: 'GSM琛屽彿',
+          //   minWidth: '80',
+          //   prop: 'sourceId',
+          //   label: '璁㈠崟鏉ユ簮',
           //   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 +545,8 @@
           {
             minWidth: '120',
             width: '100px',
-            prop: 'customerPartName',
-            label: '闆朵欢鍚嶇О',
+            prop: 'productName',
+            label: '浜у搧鍚嶇О',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -662,7 +556,7 @@
             minWidth: '120',
             width: '100px',
             prop: 'productType',
-            label: '鍨嬪彿',
+            label: '闅跺睘鍝佺墝',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -671,7 +565,7 @@
             minWidth: '120',
             width: '100px',
             prop: 'otcUnit',
-            label: '闆朵欢灞炴��',
+            label: '鍗曚綅',
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
@@ -688,45 +582,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 +591,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,20 +599,56 @@
             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: [
@@ -1162,36 +808,6 @@
   created() {
     this.getManufactureAttrs()
     this.getTitles()
-    /**
-     * {
-            text: '鑾峰彇閿�鍞鍗�',
-            type: 'primary',
-            fun: this.pullCustomerOrder,
-            disabled: false,
-            permitArr: []
-          },
-          {
-            text: '鑾峰彇IFS琛屽彿',
-            type: 'primary',
-            fun: this.pullIfsLineNo,
-            disabled: false,
-            permitArr: [],
-            loading: false
-          },
-          {
-            text: '鎻愪氦瀹℃牳',
-            type: 'primary',
-            fun: this.auditCustomerOrder,
-            disabled: false,
-            permitArr: [],
-            loading: false
-          },
-          {
-            text: '涓荤敓浜ц鍒�',
-            disabled: false,
-            fun: this.masterPlanHandle
-          }
-     */
     this.table.toolbar.push({
       text: '鏂板閿�鍞鍗�',
       type: 'primary',
@@ -1199,14 +815,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: '鑾峰彇閿�鍞鍗�',
@@ -1214,16 +822,6 @@
         fun: this.syncERP,
         disabled: false,
         permitArr: []
-      })
-    }
-    if (this.permissions.customerorder_ifs_line) {
-      this.table.toolbar.push({
-        text: '鑾峰彇OTC琛屽彿',
-        type: 'primary',
-        fun: this.pullIfsLineNo,
-        disabled: false,
-        permitArr: [],
-        loading: false
       })
     }
     if (this.permissions.customerorder_submit_oa) {
diff --git a/src/views/plan/customerorder/sample-customerorder-form.vue b/src/views/plan/customerorder/sample-customerorder-form.vue
index 46fd83d..85f9d64 100644
--- a/src/views/plan/customerorder/sample-customerorder-form.vue
+++ b/src/views/plan/customerorder/sample-customerorder-form.vue
@@ -125,208 +125,33 @@
       </el-form>
     </div>
 
-    <el-divider
-      ><span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span></el-divider
-    >
+    <el-divider>
+      <span style="font-weight:bold;font-size:16px;">璁㈠崟琛�</span>
+    </el-divider>
     <div class="l-mes normal-form">
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>闆朵欢鍙�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.partNo"
-            placeholder=""
-            readonly
-          >
-            <el-button
-              slot="append"
-              icon="el-icon-search"
-              @click="openPartDialog()"
-            ></el-button>
-          </el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍗曚綅</span>
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="dataForm.customerOrder.unit"
-            placeholder=""
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in units"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-col>
-        <el-col :span="2">
-          <span>鏁伴噺</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.buyQtyDue"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>鐢靛帇绛夌骇</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.voltAgeClass"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>浜у搧鍚嶇О</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.productName"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍒堕�犲睘鎬�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-select
-            v-model="dataForm.customerOrder.manufactureAttr"
-            placeholder=""
-            style="width: 100%"
-            disabled
-          >
-            <el-option
-              v-for="item in manufactureAttrs"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>澶栨姢棰滆壊</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.outerColor"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>闆朵欢瑙勬牸</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.customerPartSpec"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍗板瓧绫诲瀷</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.printType"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>鍗板瓧瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.printingRequirements"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鍖呰瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.packageRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>璐ㄩ噺瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.qualityRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>鐢熶骇闇�姹傝鏄�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.otherProductRequire"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>绯荤粺</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.divisionSystem"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鏀惰揣鍦板潃</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.shippingAddress"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
-      <el-row :gutter="20">
-        <el-col :span="2">
-          <span>涓氬姟鍛�</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.salesmanName"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>鐩橀暱瑕佹眰</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.lengthRequirement"
-            placeholder=""
-          ></el-input>
-        </el-col>
-        <el-col :span="2">
-          <span>澶囨敞</span>
-        </el-col>
-        <el-col :span="6">
-          <el-input
-            v-model="dataForm.customerOrder.remark"
-            placeholder=""
-          ></el-input>
-        </el-col>
-      </el-row>
+      <avue-crud ref="crud"
+        show-hide="false"
+        :option="option"
+        :data="tableData">
+          <template slot="partNo" slot-scope="scope">
+            <el-input v-model="scope.row.partNo" placeholder="鏌ヨ闆朵欢鍙�" readonly>
+                <el-button slot="append" icon="el-icon-search" @click="openPartDialog(scope.row.$index)"></el-button>
+            </el-input>
+          </template>
+          <template slot="otcUnit" slot-scope="scope">
+            <el-select v-model="scope.row.otcUnit" placeholder="璇烽�夋嫨鍗曚綅" style="width: 100%">
+              <el-option
+                v-for="item in units"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value" />
+            </el-select>
+          </template>
+          <template slot="menu" slot-scope="scope">
+            <el-button :disabled="tableData.length<2" @click="delRow(scope.row,scope.$index)" 
+            icon="el-icon-circle-close" type="text" size="small">鍙栨秷</el-button>
+          </template>
+      </avue-crud>
     </div>
 
     <span slot="footer" class="dialog-footer">
@@ -370,6 +195,7 @@
 import { remote } from '@/api/admin/dict'
 import PartDialog from '@/views/common/part.vue'
 import { validateSixDecimal } from '@/util/validate'
+import { tableOption } from '@/const/crud/customerOrder/customerOrderForm'
 
 export default {
   components: {
@@ -377,6 +203,22 @@
   },
   data() {
     return {
+      currentSelectRow: null,
+      option: tableOption,
+      tableData: [{
+          "$cellEdit": true,
+          "$index": 0,
+          "partNo": "",
+          "customerPartSpec": "",
+          "manufactureAttr": "",
+          "productName": "",
+          "productType": "",
+          "otcUnit": "",
+          "buyQtyDue": "",
+          "shippingAddress": "",
+          "remark": "",
+          "isTrusted": true
+      }],
       title: '',
       isFullScreen: false,
       visible: false,
@@ -427,6 +269,9 @@
     this.getManufactureAttrs('manufacture_attr_type')
   },
   methods: {
+    delRow(row,index) {
+      this.tableData.splice(index,1)
+    },
     init(id) {
       this.initDataForm()
       this.visible = true
@@ -488,12 +333,17 @@
       })
     },
     // 闆朵欢閫夋嫨
-    openPartDialog() {
+    openPartDialog(index) {
+      this.currentSelectRow = index
       this.showPart = true
     },
     selectPart(part) {
       if (part) {
         this.dataForm.customerOrder.partNo = part.partNo
+        const index = this.currentSelectRow
+          this.tableData[index].partNo = part.partNo
+          this.tableData[index].customerPartSpec = part.specs
+          this.tableData[index].productName = part.partName
       }
     },
     // 鍏ㄥ睆

--
Gitblit v1.9.3