فهرست منبع

产品下线 通用编码

chenrui 3 سال پیش
والد
کامیت
cf9b045dec

+ 20 - 3
src/views/common/productCodeList.vue

@@ -3,6 +3,7 @@
     show-search
     label-in-value
     :value="dealerName"
+    :mode="mode"
     placeholder="请输入编码搜索"
     style="width: 100%"
     :filter-option="false"
@@ -21,6 +22,12 @@
 import debounce from 'lodash/debounce'
 import { productCodeQueryList } from '@/api/productUniversalCode'
 export default {
+  props: {
+    mode: {
+      type: String,
+      default: 'default'
+    }
+  },
   data () {
     this.lastFetchId = 0
     this.fetchUser = debounce(this.fetchUser, 800)
@@ -47,9 +54,19 @@ export default {
       })
     },
     handleChange (value) {
-      if (value && value.key) {
-        const ind = this.data.findIndex(item => item.productSn == value.key)
-        value.row = ind != -1 ? this.data[ind] : undefined
+      const _this = this
+      if (this.mode == 'default') { //  单选
+        if (value && value.key) {
+          const ind = _this.data.findIndex(item => item.productSn == value.key)
+          value.row = ind != -1 ? _this.data[ind] : undefined
+        }
+      } else if (this.mode == 'multiple') { //  多选
+        if (value.length > 0) {
+          value.map(subItem => {
+            const ind = _this.data.findIndex(item => item.productSn == subItem.key)
+            subItem.row = ind != -1 ? _this.data[ind] : undefined
+          })
+        }
       }
       Object.assign(this, {
         dealerName: value,

+ 2 - 2
src/views/productManagement/productInfo/list.vue

@@ -384,7 +384,7 @@ export default {
       _this.selectedRows.map(item => {
         if (item.state == 'ONLINE') {
           num++
-          _this.offlineProductList.push({ productSn: item.productSn, code: item.code, commonCode: '' })
+          _this.offlineProductList.push({ productSn: item.productSn, code: item.code, commonProductList: [] })
         }
       })
       if (num < 1) {
@@ -433,7 +433,7 @@ export default {
     },
     // 下线
     handleDownline (row) {
-      this.offlineProductList.push({ productSn: row.productSn, code: row.code, commonCode: '' })
+      this.offlineProductList.push({ productSn: row.productSn, code: row.code, commonProductList: [] })
       this.openOfflineModal = true
     },
     // 删除

+ 14 - 12
src/views/productManagement/productInfo/offlineModal.vue

@@ -39,15 +39,8 @@
             :pagination="false"
             bordered>
             <!-- 通用编码 -->
-            <template slot="commonCode" slot-scope="text, record" >
-            <div>
-              <a-input
-              id="productInfoOffline-commonCode"
-              :maxLength="60"
-              v-model="record.commonCode"
-              placeholder="请输入通用编码(最多60个字符)"
-              allowClear />
-            </div>
+            <template slot="commonProductList" slot-scope="text, record" >
+              <productCodeList ref="productCodeList" mode="multiple" @change="e => productCodeChange(e, record)" />
             </template>
           </a-table>
         </a-form-model-item>
@@ -70,10 +63,11 @@
 
 <script>
 import { VSelect } from '@/components'
+import productCodeList from '@/views/common/productCodeList.vue'
 import { productOffline } from '@/api/product'
 export default {
   name: 'ProductInfoDetailModal',
-  components: { VSelect },
+  components: { VSelect, productCodeList },
   props: {
     openModal: { //  弹框显示状态
       type: Boolean,
@@ -105,19 +99,27 @@ export default {
       },
       columns: [
         { title: '产品编码', dataIndex: 'code', width: 220, align: 'center', customRender: function (text) { return text || '--' } },
-        { title: '通用编码', scopedSlots: { customRender: 'commonCode' }, align: 'center' }
+        { title: '通用编码', scopedSlots: { customRender: 'commonProductList' }, align: 'center' }
       ],
       loadData: []
     }
   },
   methods: {
+    productCodeChange (val, row) {
+      row.commonProductList = []
+      if (val.length > 0) {
+        val.map(item => {
+          row.commonProductList.push({ code: item.row && item.row.code ? item.row.code : undefined, productSn: item.key || undefined })
+        })
+      }
+    },
     //  确定 下线
     handleSubmit () {
       const _this = this
       if (_this.form.offlineReasonType == '通用') {
         const arr = []
         this.loadData.map((item, index) => {
-          if (!item.commonCode) {
+          if (item.commonProductList.length < 1) {
             arr.push(index + 1)
           }
         })

+ 0 - 2
src/views/productManagement/productUniversal/editModal.vue

@@ -90,13 +90,11 @@ export default {
   },
   methods: {
     productCodeChange (val) {
-      console.log(val)
       this.form.productSn = val.key || undefined
       this.form.productCode = val.row && val.row.code ? val.row.code : undefined
       this.productName = val.row && val.row.name ? val.row.name : undefined
     },
     productUniversalCodeChange (val) {
-      console.log(val)
       this.form.productCommonSn = val.key || undefined
       this.form.productCommonCode = val.row && val.row.code ? val.row.code : undefined
       this.productCommonName = val.row && val.row.name ? val.row.name : undefined