yusheng 1 anno fa
parent
commit
dfa5c5d578
31 ha cambiato i file con 1194 aggiunte e 999 eliminazioni
  1. 21 8
      src/BIZComponents/inventoryTable.vue
  2. 22 22
      src/BIZComponents/inventoryTableDetails.vue
  3. 45 10
      src/BIZComponents/product-list.vue
  4. 7 5
      src/BIZComponents/saleGeneralityInventoryTable.vue
  5. 7 0
      src/enum/dict.js
  6. 8 5
      src/views/purchasingManage/inquiryManage/components/detailDialog.vue
  7. 7 5
      src/views/purchasingManage/inquiryManage/components/inventoryTable.vue
  8. 860 834
      src/views/purchasingManage/producerManage/components/addContactDialog.vue
  9. 10 2
      src/views/purchasingManage/producerManage/components/contactDetailDialog.vue
  10. 7 5
      src/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue
  11. 8 5
      src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue
  12. 8 6
      src/views/purchasingManage/purchaseOrder/components/detailDialog.vue
  13. 7 6
      src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue
  14. 11 1
      src/views/purchasingManage/purchaseOrder/components/supplierGoodsListDialog.vue
  15. 7 6
      src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue
  16. 7 5
      src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue
  17. 8 6
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/detailDialog.vue
  18. 7 5
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/inventoryTable.vue
  19. 10 1
      src/views/purchasingManage/purchaseOrder/returnGoods/components/inventoryTable.vue
  20. 7 5
      src/views/purchasingManage/purchasePlanManage/components/inventoryTable.vue
  21. 10 2
      src/views/purchasingManage/supplierManage/components/addContactDialog.vue
  22. 7 4
      src/views/purchasingManage/supplierManage/components/contactDetailDialog.vue
  23. 8 6
      src/views/saleManage/contact/components/addContactDialog.vue
  24. 1 0
      src/views/saleManage/saleOrder/components/addDialog.vue
  25. 11 10
      src/views/saleManage/saleOrder/invoice/components/detailDialog.vue
  26. 8 6
      src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue
  27. 47 14
      src/views/saleManage/saleOrder/invoice/components/print-template-js.vue
  28. 11 1
      src/views/saleManage/saleOrder/invoice/components/replaceTable.vue
  29. 2 2
      src/views/saleManage/saleOrder/invoice/index.vue
  30. 8 6
      src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturn.vue
  31. 7 6
      src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturnDetail.vue

+ 21 - 8
src/BIZComponents/inventoryTable.vue

@@ -578,6 +578,7 @@
       classType="1"
       :is-get-inventory-total="true"
       @changeParent="changeParent"
+      :isSupplier="isSupplier"
     ></product-list>
     <head-list ref="headRef" @changeParent="changeAnswer"></head-list>
     <ProductionVersion
@@ -597,7 +598,7 @@
   import { getInventoryTotalAPI } from '@/api/wms';
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
-  import { pricingWayList } from '@/enum/dict.js';
+  import { pricingWayList,lbjtList } from '@/enum/dict.js';
   import { changeCount } from '@/BIZComponents/setProduct.js';
   import { contactQueryByCategoryIdsAPI } from '@/api/saleManage/contact';
   const dayjs = require('dayjs');
@@ -687,7 +688,15 @@
         //临时
         type: Boolean,
         default: false
+      },
+      isSupplier: {
+        //供应商
+        type: Boolean,
+        default: false
       }
+      
+      
+      
     },
     data() {
       const defaultForm = {
@@ -911,11 +920,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row?.produceType
-                ?.map((item) => {
-                  return this.getDictValue('生产类型', item);
-                })
-                ?.toString();
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
 
@@ -1047,7 +1057,6 @@
     },
 
     created() {
-      this.requestDict('生产类型');
       this.requestDict('保质期单位');
     },
     methods: {
@@ -1334,9 +1343,13 @@
           this.$set(parasm, 'weightUnit', item.weightUnit);
           this.$set(parasm, 'singleWeight', item.netWeight);
           this.$set(parasm, 'pricingWay', item.pricingWay || 1);
-
+     
           this.$set(parasm, 'imgCode', item.imgCode);
           this.$set(parasm, 'produceType', item.componentAttribute);
+          if(this.isSupplier){
+            this.$set(parasm, 'entrustedEnterpriseIdList', item.entrustedEnterpriseIdList);
+            this.$set(parasm, 'entrustedEnterpriseId', item.entrustedEnterpriseId);
+          }
           this.$set(parasm, 'approvalNumber', item.extField?.approvalNumber);
           this.$set(
             parasm,

+ 22 - 22
src/BIZComponents/inventoryTableDetails.vue

@@ -62,7 +62,7 @@
   import dictMixins from '@/mixins/dictMixins';
 
   import fileMain from '@/components/addDoc/index.vue';
-  import { pricingWayList } from '@/enum/dict.js';
+  import { lbjtList } from '@/enum/dict.js';
   import { contactQueryByCategoryIdsAPI } from '@/api/saleManage/contact';
 
   const dayjs = require('dayjs');
@@ -352,11 +352,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row?.produceType
-                ?.map((item) => {
-                  return this.getDictValue('生产类型', item);
-                })
-                ?.toString();
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {
@@ -474,20 +475,19 @@
 
     created() {
       this.requestDict('产地');
-      this.requestDict('生产类型');
     },
     methods: {
-      // async getSupplierObj(productList, queryName) {
-      //   try {
-      //     let categoryIds = productList.map((item) => item[queryName]);
-      //     return await contactQueryByCategoryIdsAPI({
-      //       categoryIds,
-      //       isQueryEE: 1
-      //     });
-      //   } catch (e) {
-      //     return Promise.resolve({});
-      //   }
-      // },
+      async getSupplierObj(productList, queryName) {
+        try {
+          let categoryIds = productList.map((item) => item[queryName]);
+          return await contactQueryByCategoryIdsAPI({
+            categoryIds,
+            isQueryEE: 1
+          });
+        } catch (e) {
+          return Promise.resolve({});
+        }
+      },
 
       // 返回列表数据
       getTableValue() {
@@ -557,10 +557,10 @@
               data?.contractVO?.discountTotalPrice;
           }
           this.setDeliveryDays()
-          // this.supplierObj = await this.getSupplierObj(
-          //   productList,
-          //   'productId'
-          // );
+          this.supplierObj = await this.getSupplierObj(
+            productList,
+            'productId'
+          );
           this.$refs.table.reload();
         }
       }

+ 45 - 10
src/BIZComponents/product-list.vue

@@ -73,6 +73,8 @@
   import { getInventoryTotalAPI } from '@/api/wms';
   import cBomList from './cBom-list.vue';
   import { getByCode } from '@/api/system/dictionary-data';
+  import { contactQueryByCategoryIdsAPI } from '@/api/saleManage/contact';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     components: {
@@ -95,6 +97,11 @@
       isShowCBom: {
         type: Boolean,
         default: false
+      },
+      /*是否需要供应商*/
+      isSupplier: {
+        type: Boolean,
+        default: false
       }
     },
 
@@ -127,8 +134,7 @@
             type: 'selection',
             columnKey: 'selection',
             align: 'center',
-            reserveSelection: true,
-            
+            reserveSelection: true
           },
           {
             columnKey: 'index',
@@ -165,11 +171,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.componentAttribute && row.componentAttribute.length
-                ? row.componentAttribute
-                    .map((item) => this.getDictV('productionType', item))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             },
             minWidth: 110
           },
@@ -291,8 +298,8 @@
 
       /* 刷新表格 */
       reload(where) {
-        where.categoryLevelId=this.curNodeData?.id
-        
+        where.categoryLevelId = this.curNodeData?.id;
+
         this.$refs.table.reload({ pageNum: 1, where: where });
       },
 
@@ -326,7 +333,23 @@
         this.$refs.table.clearSelection();
         this.radio = '';
       },
-
+      async getSupplierObj(productList, queryName) {
+        try {
+          let categoryIds = productList
+            .filter((item) => item.id)
+            .map((item) => item.id);
+          if (categoryIds.length > 0) {
+            return await contactQueryByCategoryIdsAPI({
+              categoryIds,
+              isQueryEE: 1
+            });
+          } else {
+            return Promise.resolve({});
+          }
+        } catch (e) {
+          return Promise.resolve({});
+        }
+      },
       async selected() {
         if (!this.current && !this.selection.length) {
           return this.$message.warning('请至少选择一条数据');
@@ -361,6 +384,18 @@
             item.availableCountBase = find.availableCountBase;
           });
         }
+        //获取供应商
+        if (this.isSupplier) {
+          let supplierList = await this.getSupplierObj(list);
+          list.forEach((item) => {
+            item['entrustedEnterpriseIdList'] = supplierList[item.id];
+            if (supplierList[item.id]?.length === 1) {
+              item['entrustedEnterpriseId'] =
+                supplierList[item.id][0].id;
+            }
+          });
+        }
+        console.log(list,'list')
         this.$emit('changeParent', list, this.currentIndex);
         this.handleClose();
       }

+ 7 - 5
src/BIZComponents/saleGeneralityInventoryTable.vue

@@ -609,6 +609,7 @@
   import { getInventoryTotalAPI } from '@/api/wms';
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   const dayjs = require('dayjs');
 
@@ -820,11 +821,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 7 - 0
src/enum/dict.js

@@ -228,3 +228,10 @@ export const outsourceSceneList = [
   { value: 3, label: '多工序' },
   { value: 4, label: '首工序及多工序' }
 ];
+//属性类型
+export const lbjtList = {
+  1: '自制件',
+  2: '采购件',
+  3: '外协件',
+  4: '受托件'
+};

+ 8 - 5
src/views/purchasingManage/inquiryManage/components/detailDialog.vue

@@ -138,6 +138,8 @@
   import {
     contactQueryByCategoryIdsAPI,
   } from '@/api/saleManage/contact';
+  import { lbjtList } from '@/enum/dict.js';
+
   export default {
     mixins: [dictMixins],
     components: {
@@ -317,11 +319,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           {

+ 7 - 5
src/views/purchasingManage/inquiryManage/components/inventoryTable.vue

@@ -124,6 +124,7 @@
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -368,11 +369,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 860 - 834
src/views/purchasingManage/producerManage/components/addContactDialog.vue

@@ -236,12 +236,12 @@
               <el-col :span="8">
                 <el-form-item prop="businessLicenseFiles" label="营业执照附件">
                   <fileMain v-model="form.businessLicenseFile"></fileMain>
-<!--                  <fileUpload-->
-<!--                    v-model="form.businessLicenseFiles"-->
-<!--                    module="main"-->
-<!--                    :showLib="false"-->
-<!--                    :limit="1"-->
-<!--                  />-->
+                  <!--                  <fileUpload-->
+                  <!--                    v-model="form.businessLicenseFiles"-->
+                  <!--                    module="main"-->
+                  <!--                    :showLib="false"-->
+                  <!--                    :limit="1"-->
+                  <!--                  />-->
                 </el-form-item>
               </el-col>
             </el-col>
@@ -579,7 +579,11 @@
               详情
             </el-link>
             <el-link
-              v-if="(isNeed_process_is_close&&[0, 3].includes(scope.row.processStatus))||!isNeed_process_is_close"
+              v-if="
+                (isNeed_process_is_close &&
+                  [0, 3].includes(scope.row.processStatus)) ||
+                !isNeed_process_is_close
+              "
               type="primary"
               :underline="false"
               icon="el-icon-edit"
@@ -589,7 +593,11 @@
             </el-link>
 
             <el-link
-              v-if="(isNeed_process_is_close&&[0, 3].includes(scope.row.processStatus))||!isNeed_process_is_close"
+              v-if="
+                (isNeed_process_is_close &&
+                  [0, 3].includes(scope.row.processStatus)) ||
+                !isNeed_process_is_close
+              "
               type="primary"
               :underline="false"
               icon="el-icon-plus"
@@ -606,7 +614,11 @@
             >
               <template v-slot:reference>
                 <el-link
-                  v-if="(isNeed_process_is_close&&[0, 3].includes(scope.row.processStatus))||!isNeed_process_is_close"
+                  v-if="
+                    (isNeed_process_is_close &&
+                      [0, 3].includes(scope.row.processStatus)) ||
+                    !isNeed_process_is_close
+                  "
                   type="danger"
                   :underline="false"
                   icon="el-icon-delete"
@@ -633,8 +645,11 @@
         :disabled="activeName == 6"
         >下一步</el-button
       >
-      <el-button type="primary" v-if="activeName == 6||title!='新建生产厂家'" @click="save"
-      v-click-once
+      <el-button
+        type="primary"
+        v-if="activeName == 6 || title != '新建生产厂家'"
+        @click="save"
+        v-click-once
         >保存</el-button
       >
       <el-button @click="cancel">返回</el-button>
@@ -666,871 +681,882 @@
 </template>
 
 <script>
-import {
-  contactDetail,
-  contactQcPackPageAPI,
-  contactSave,
-  contactUpdate,
-  contactQcPackDeleteAPI,
-  contactQcSubmit
-} from '@/api/saleManage/contact';
-import { categoryData } from 'element-china-category-data';
-import fileUpload from '@/components/upload/fileUpload';
-import { cityData } from 'ele-admin/packages/utils/regions';
-import dictMixins from '@/mixins/dictMixins';
-import deptSelect from '@/components/CommomSelect/dept-select.vue';
-import personSelect from '@/components/CommomSelect/person-select.vue';
-import { listOrganizations } from '@/api/system/organization';
-import { copyObj } from '@/utils/util';
-import certificateQualificationsDialog from '@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue';
-import parentList from './parentList.vue';
-import { reviewStatus } from '@/enum/dict';
-import productList from '@/BIZComponents/product-list.vue';
-import fileMain from "@/components/addDoc/index.vue";
+  import {
+    contactDetail,
+    contactQcPackPageAPI,
+    contactSave,
+    contactUpdate,
+    contactQcPackDeleteAPI,
+    contactQcSubmit
+  } from '@/api/saleManage/contact';
+  import { categoryData } from 'element-china-category-data';
+  import fileUpload from '@/components/upload/fileUpload';
+  import { cityData } from 'ele-admin/packages/utils/regions';
+  import dictMixins from '@/mixins/dictMixins';
+  import deptSelect from '@/components/CommomSelect/dept-select.vue';
+  import personSelect from '@/components/CommomSelect/person-select.vue';
+  import { listOrganizations } from '@/api/system/organization';
+  import { copyObj } from '@/utils/util';
+  import certificateQualificationsDialog from '@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue';
+  import parentList from './parentList.vue';
+  import { reviewStatus,lbjtList } from '@/enum/dict';
+  import productList from '@/BIZComponents/product-list.vue';
+  import fileMain from '@/components/addDoc/index.vue';
 
-export default {
-  props: {
-    categoryTreeList: Array
-  },
-  mixins: [dictMixins],
-  components: {
-    fileMain,
-    productList,
-    fileUpload,
-    deptSelect,
-    personSelect,
-    parentList,
-    certificateQualificationsDialog
-  },
-  data() {
-    let formDef = {
-      address: '',
-      addressId: 0,
-      addressName: '',
-      authorizationLimit: 0,
-      businessLicenseFiles: [],
-      businessLicenseFile: [],
-      businessScope: '',
-      categoryId: '',
-      level: '',
-      companyCategoryId: '',
-      companyCategoryName: '',
-      parentId: null,
-      industry: '',
-      industryCode: '',
-      industryFullName: '',
-      mainProduct: '',
-      name: '',
-      officialIndustry: '',
-      phone: '',
-      registerDate: '',
-      legalPerson: '',
-      registeredCapital: '',
-      remark: '',
-      serialNo: '',
-      simpleName: '',
-      type: 3,
-      unifiedSocialCreditCode: ''
-    };
-    let otherFormDef = {
-      settlementMode: '',
-      settlementModeName: '',
-      taxRate: 0,
-      address: '',
-      addressId: '',
-      deptId: '',
-      deptName: '',
-      discount: 0,
-      salesmanId: '',
-      salesmanName: '',
-      sender: '',
-      senderPhone: ''
-    };
-    return {
-      visible: false,
-      certificateQualificationsDialogFlag: false,
-      title: '',
-      row: {},
-      activeName: 1,
-      formDef,
-      otherFormDef,
-      form: copyObj(formDef),
-      otherForm: copyObj(otherFormDef),
-      // removeBankList: [],
-      // removeLinkList: [],
-      tableBankData: [],
-      tableLinkData: [],
-      categoryIdList: [],
-      supplyList: [],
-      ifChiefList: [
-        {
-          value: 0,
-          label: '否'
-        },
-        {
-          value: 1,
-          label: '是'
-        }
-      ],
-      bankColumns: [
-        {
-          type: 'index',
-          width: 55,
-          align: 'center'
-        },
-        {
-          label: '单位名称',
-          prop: 'accountName',
-          slot: 'accountName',
-          action: 'accountName',
-          headerSlot: 'accountNameHeader',
-          align: 'center'
-        },
-        {
-          label: '银行账号',
-          prop: 'accountNo',
-          slot: 'accountNo',
-          action: 'accountNo',
-          align: 'center'
-        },
-        {
-          label: '开户行',
-          prop: 'bankName',
-          slot: 'bankName',
-          action: 'bankName',
-          align: 'center'
-        },
-        {
-          label: '银行银联号',
-          prop: 'interbankNo',
-          slot: 'interbankNo',
-          action: 'interbankNo',
-          align: 'center'
-        },
-        {
-          action: 'action',
-          slot: 'action',
-          label: '操作',
-          align: 'center'
-        }
-      ],
-      linkColumns: [
-        {
-          type: 'index',
-          width: 55,
-          align: 'center'
-        },
-        {
-          label: '姓名',
-          prop: 'linkName',
-          slot: 'linkName',
-          action: 'linkName',
-          headerSlot: 'linkNameHeader',
-          align: 'center'
-        },
-        {
-          label: '手机',
-          prop: 'mobilePhone',
-          slot: 'mobilePhone',
-          action: 'mobilePhone',
-          headerSlot: 'mobilePhoneHeader',
-          align: 'center'
-        },
+  export default {
+    props: {
+      categoryTreeList: Array
+    },
+    mixins: [dictMixins],
+    components: {
+      fileMain,
+      productList,
+      fileUpload,
+      deptSelect,
+      personSelect,
+      parentList,
+      certificateQualificationsDialog
+    },
+    data() {
+      let formDef = {
+        address: '',
+        addressId: 0,
+        addressName: '',
+        authorizationLimit: 0,
+        businessLicenseFiles: [],
+        businessLicenseFile: [],
+        businessScope: '',
+        categoryId: '',
+        level: '',
+        companyCategoryId: '',
+        companyCategoryName: '',
+        parentId: null,
+        industry: '',
+        industryCode: '',
+        industryFullName: '',
+        mainProduct: '',
+        name: '',
+        officialIndustry: '',
+        phone: '',
+        registerDate: '',
+        legalPerson: '',
+        registeredCapital: '',
+        remark: '',
+        serialNo: '',
+        simpleName: '',
+        type: 3,
+        unifiedSocialCreditCode: ''
+      };
+      let otherFormDef = {
+        settlementMode: '',
+        settlementModeName: '',
+        taxRate: 0,
+        address: '',
+        addressId: '',
+        deptId: '',
+        deptName: '',
+        discount: 0,
+        salesmanId: '',
+        salesmanName: '',
+        sender: '',
+        senderPhone: ''
+      };
+      return {
+        visible: false,
+        certificateQualificationsDialogFlag: false,
+        title: '',
+        row: {},
+        activeName: 1,
+        formDef,
+        otherFormDef,
+        form: copyObj(formDef),
+        otherForm: copyObj(otherFormDef),
+        // removeBankList: [],
+        // removeLinkList: [],
+        tableBankData: [],
+        tableLinkData: [],
+        categoryIdList: [],
+        supplyList: [],
+        ifChiefList: [
+          {
+            value: 0,
+            label: '否'
+          },
+          {
+            value: 1,
+            label: '是'
+          }
+        ],
+        bankColumns: [
+          {
+            type: 'index',
+            width: 55,
+            align: 'center'
+          },
+          {
+            label: '单位名称',
+            prop: 'accountName',
+            slot: 'accountName',
+            action: 'accountName',
+            headerSlot: 'accountNameHeader',
+            align: 'center'
+          },
+          {
+            label: '银行账号',
+            prop: 'accountNo',
+            slot: 'accountNo',
+            action: 'accountNo',
+            align: 'center'
+          },
+          {
+            label: '开户行',
+            prop: 'bankName',
+            slot: 'bankName',
+            action: 'bankName',
+            align: 'center'
+          },
+          {
+            label: '银行银联号',
+            prop: 'interbankNo',
+            slot: 'interbankNo',
+            action: 'interbankNo',
+            align: 'center'
+          },
+          {
+            action: 'action',
+            slot: 'action',
+            label: '操作',
+            align: 'center'
+          }
+        ],
+        linkColumns: [
+          {
+            type: 'index',
+            width: 55,
+            align: 'center'
+          },
+          {
+            label: '姓名',
+            prop: 'linkName',
+            slot: 'linkName',
+            action: 'linkName',
+            headerSlot: 'linkNameHeader',
+            align: 'center'
+          },
+          {
+            label: '手机',
+            prop: 'mobilePhone',
+            slot: 'mobilePhone',
+            action: 'mobilePhone',
+            headerSlot: 'mobilePhoneHeader',
+            align: 'center'
+          },
 
-        {
-          label: '电话',
-          prop: 'phone',
-          slot: 'phone',
-          action: 'phone',
-          align: 'center'
-        },
+          {
+            label: '电话',
+            prop: 'phone',
+            slot: 'phone',
+            action: 'phone',
+            align: 'center'
+          },
 
-        {
-          label: '微信号',
-          prop: 'wechat',
-          slot: 'wechat',
-          action: 'wechat',
-          align: 'center'
-        },
+          {
+            label: '微信号',
+            prop: 'wechat',
+            slot: 'wechat',
+            action: 'wechat',
+            align: 'center'
+          },
 
-        {
-          label: '邮箱',
-          prop: 'email',
-          slot: 'email',
-          action: 'email',
-          align: 'center'
-        },
-        {
-          label: '职务',
-          prop: 'post',
-          slot: 'post',
-          action: 'post',
-          align: 'center'
-        },
-        {
-          label: '状态',
-          prop: 'status',
-          slot: 'status',
-          action: 'status',
-          headerSlot: 'statusHeader',
-          align: 'center'
-        },
-        {
-          label: '是否首要',
-          prop: 'ifChief',
-          slot: 'ifChief',
-          action: 'ifChief',
-          align: 'center'
-        },
-        {
-          label: '备注',
-          prop: 'remark',
-          slot: 'remark',
-          action: 'remark',
-          align: 'center'
-        },
-        {
-          action: 'action',
-          slot: 'action',
-          label: '操作',
-          align: 'center'
-        }
-      ],
-      certificateColumns: [
-        {
-          type: 'index',
-          width: 55,
-          align: 'center'
-        },
-        {
-          label: '编码',
-          prop: 'code',
-          slot: 'code',
-          align: 'center',
-          minWidth: 120
-        },
-        {
-          label: '名称',
-          prop: 'name',
-          slot: 'name',
-          align: 'center',
-          minWidth: 120
-        },
-        // {
-        //   label: '创建人',
-        //   prop: 'createUserName',
-        //   slot: 'createUserName',
-        //   align: "center",
-        //   width: 120
-        // },
-        {
-          label: '创建时间',
-          prop: 'createTime',
-          slot: 'createTime',
-          align: 'center',
-          minWidth: 120
-        },
-        {
-          label: '备注',
-          prop: 'remark',
-          slot: 'remark',
-          align: 'center',
-          minWidth: 120
-        },
-        {
-          label: '状态',
-          prop: 'processStatus',
-          slot: 'processStatus',
-          align: 'center',
-          width: 120,
-          formatter: (_row, _column, cellValue) => {
-            return reviewStatus[_row.processStatus];
+          {
+            label: '邮箱',
+            prop: 'email',
+            slot: 'email',
+            action: 'email',
+            align: 'center'
+          },
+          {
+            label: '职务',
+            prop: 'post',
+            slot: 'post',
+            action: 'post',
+            align: 'center'
+          },
+          {
+            label: '状态',
+            prop: 'status',
+            slot: 'status',
+            action: 'status',
+            headerSlot: 'statusHeader',
+            align: 'center'
+          },
+          {
+            label: '是否首要',
+            prop: 'ifChief',
+            slot: 'ifChief',
+            action: 'ifChief',
+            align: 'center'
+          },
+          {
+            label: '备注',
+            prop: 'remark',
+            slot: 'remark',
+            action: 'remark',
+            align: 'center'
+          },
+          {
+            action: 'action',
+            slot: 'action',
+            label: '操作',
+            align: 'center'
           }
-        },
-        {
-          action: 'action',
-          slot: 'action',
-          label: '操作',
-          align: 'center',
-          width: 200
-        }
-      ],
-      supplyColumns: [
-        {
-          columnKey: 'index',
-          type: 'index',
-          width: 50,
-          align: 'center',
-          showOverflowTooltip: true,
-          label: '序号'
-        },
-        {
-          prop: 'productCode',
-          label: '编码',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        {
-          prop: 'productName',
-          label: '名称',
-          align: 'center',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        {
-          prop: 'imgCode',
-          align: 'center',
-          label: '图号/件号',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        {
-          prop: 'produceType',
-          align: 'center',
-          label: '属性类型',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        // {
-        //   prop: 'approvalNumber',
-        //   align: 'center',
-        //   label: '批准文号',
-        //   showOverflowTooltip: true,
-        //   minWidth: 110
-        // },
-        {
-          prop: 'packingSpecification',
-          align: 'center',
-          label: '包装规格',
-          showOverflowTooltip: true,
-          minWidth: 110
-        },
-        {
-          prop: 'brandNum',
-          align: 'center',
-          label: '牌号',
-          showOverflowTooltip: true
-        },
-        {
-          prop: 'modelType',
-          label: '型号',
-          align: 'center',
-          showOverflowTooltip: true
-        },
-        {
-          prop: 'specification',
-          label: '规格',
-          align: 'center',
-          showOverflowTooltip: true
-        },
-        {
-          prop: 'measuringUnit',
-          label: '计量单位',
-          showOverflowTooltip: true,
-          align: 'center',
-          minWidth: 90
-        },
-
-        // {
-        //   prop: 'weightUnit',
-        //   label: '重量单位',
-        //   showOverflowTooltip: true,
-        //   align: 'center',
-        //   minWidth: 90
-        // },
-        //
-        // {
-        //   prop: 'roughWeight',
-        //   label: '毛重',
-        //   showOverflowTooltip: true,
-        //   align: 'center',
-        //   minWidth: 90
-        // },
-        //
-        // {
-        //   prop: 'netWeight',
-        //   label: '净重',
-        //   showOverflowTooltip: true,
-        //   align: 'center',
-        //   minWidth: 90
-        // },
-        //
-        // {
-        //   prop: 'packingUnit',
-        //   align: 'center',
-        //   label: '包装单位',
-        //   showOverflowTooltip: true
-        // },
-        // {
-        //   prop: 'categoryLevelPath',
-        //   label: '分类',
-        //   align: 'center',
-        //   showOverflowTooltip: true
-        // },
-        {
-          slot: 'action',
-          align: 'center',
-          minWidth: 90,
-          fixed: 'right',
-          label: '操作'
-        }
-      ],
-      rules: {
-        categoryId: [
-          { required: true, message: '请选择生产厂家分类', trigger: 'change' }
         ],
-        name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
-        authorizationLimit: [
-          { required: true, message: '请输入授信额度', trigger: 'blur' }
+        certificateColumns: [
+          {
+            type: 'index',
+            width: 55,
+            align: 'center'
+          },
+          {
+            label: '编码',
+            prop: 'code',
+            slot: 'code',
+            align: 'center',
+            minWidth: 120
+          },
+          {
+            label: '名称',
+            prop: 'name',
+            slot: 'name',
+            align: 'center',
+            minWidth: 120
+          },
+          // {
+          //   label: '创建人',
+          //   prop: 'createUserName',
+          //   slot: 'createUserName',
+          //   align: "center",
+          //   width: 120
+          // },
+          {
+            label: '创建时间',
+            prop: 'createTime',
+            slot: 'createTime',
+            align: 'center',
+            minWidth: 120
+          },
+          {
+            label: '备注',
+            prop: 'remark',
+            slot: 'remark',
+            align: 'center',
+            minWidth: 120
+          },
+          {
+            label: '状态',
+            prop: 'processStatus',
+            slot: 'processStatus',
+            align: 'center',
+            width: 120,
+            formatter: (_row, _column, cellValue) => {
+              return reviewStatus[_row.processStatus];
+            }
+          },
+          {
+            action: 'action',
+            slot: 'action',
+            label: '操作',
+            align: 'center',
+            width: 200
+          }
         ],
+        supplyColumns: [
+          {
+            columnKey: 'index',
+            type: 'index',
+            width: 50,
+            align: 'center',
+            showOverflowTooltip: true,
+            label: '序号'
+          },
+          {
+            prop: 'productCode',
+            label: '编码',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'productName',
+            label: '名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'imgCode',
+            align: 'center',
+            label: '图号/件号',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'produceType',
+            align: 'center',
+            label: '属性类型',
+            showOverflowTooltip: true,
+            minWidth: 110,
+            formatter: (row, column) => {
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
+              }
+            }
+          },
+          // {
+          //   prop: 'approvalNumber',
+          //   align: 'center',
+          //   label: '批准文号',
+          //   showOverflowTooltip: true,
+          //   minWidth: 110
+          // },
+          {
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'brandNum',
+            align: 'center',
+            label: '牌号',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'modelType',
+            label: '型号',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true,
+            align: 'center',
+            minWidth: 90
+          },
 
-        addressId: [
-          { required: true, message: '请选择地址', trigger: 'change' }
-        ]
-      },
-      otherRules: {
-        // settlementMode: [
-        //   { required: true, message: '请输入结算方式', trigger: 'blur' }
-        // ],
-        taxRate: [{ required: true, message: '请输入税率', trigger: 'change' }],
-
-        sender: [
-          { required: true, message: '请输入收件人', trigger: 'change' }
+          // {
+          //   prop: 'weightUnit',
+          //   label: '重量单位',
+          //   showOverflowTooltip: true,
+          //   align: 'center',
+          //   minWidth: 90
+          // },
+          //
+          // {
+          //   prop: 'roughWeight',
+          //   label: '毛重',
+          //   showOverflowTooltip: true,
+          //   align: 'center',
+          //   minWidth: 90
+          // },
+          //
+          // {
+          //   prop: 'netWeight',
+          //   label: '净重',
+          //   showOverflowTooltip: true,
+          //   align: 'center',
+          //   minWidth: 90
+          // },
+          //
+          // {
+          //   prop: 'packingUnit',
+          //   align: 'center',
+          //   label: '包装单位',
+          //   showOverflowTooltip: true
+          // },
+          // {
+          //   prop: 'categoryLevelPath',
+          //   label: '分类',
+          //   align: 'center',
+          //   showOverflowTooltip: true
+          // },
+          {
+            slot: 'action',
+            align: 'center',
+            minWidth: 90,
+            fixed: 'right',
+            label: '操作'
+          }
         ],
+        rules: {
+          categoryId: [
+            { required: true, message: '请选择生产厂家分类', trigger: 'change' }
+          ],
+          name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
+          authorizationLimit: [
+            { required: true, message: '请输入授信额度', trigger: 'blur' }
+          ],
 
-        senderPhone: [
-          { required: true, message: '请输入收件人电话', trigger: 'change' }
-        ],
+          addressId: [
+            { required: true, message: '请选择地址', trigger: 'change' }
+          ]
+        },
+        otherRules: {
+          // settlementMode: [
+          //   { required: true, message: '请输入结算方式', trigger: 'blur' }
+          // ],
+          taxRate: [
+            { required: true, message: '请输入税率', trigger: 'change' }
+          ],
 
-        addressId: [
-          { required: true, message: '请选择收件人地址', trigger: 'change' }
-        ],
+          sender: [
+            { required: true, message: '请输入收件人', trigger: 'change' }
+          ],
 
-        address: [
-          { required: true, message: '请输入收件人详细地址', trigger: 'blur' }
-        ]
-      },
-      options: {
-        cityData,
-        categoryData
-      },
-      // 提交状态
-      loading: false,
-      // 是否是修改
-      isUpdate: false,
+          senderPhone: [
+            { required: true, message: '请输入收件人电话', trigger: 'change' }
+          ],
 
-      // 组织机构树形结构数据
-      groupTreeData: [],
-      // 组织机构平铺数据
-      groupData: []
-    };
-  },
-  watch: {
-    categoryIdList(val) {
-      if (val.length > 0) {
-        this.$refs.form.clearValidate('categoryId');
-        this.form.categoryId = this.categoryIdList.join(',');
-      } else {
-        this.form.categoryId = '';
-        this.$refs.form.validateField('categoryId');
-      }
-    }
-  },
-  created() {
-    this.getGroupAll();
-  },
-  methods: {
-    async open(type, row, contactCategoryId) {
-      this.title = type;
-      this.row = row;
-      this.visible = true;
-      if (type == '新建生产厂家') {
-        this.isUpdate = false;
-        // 默认带出列表页面选中的分类
-        this.form.categoryId = contactCategoryId;
-      } else {
-        this.isUpdate = true;
-        await this._getById(row.id);
-      }
-    },
+          addressId: [
+            { required: true, message: '请选择收件人地址', trigger: 'change' }
+          ],
 
-    // 获取公司数据
-    getGroupAll() {
-      listOrganizations().then((list) => {
-        this.groupData = list;
-        this.groupTreeData = this.$util.toTreeData({
-          data: list,
-          idField: 'id',
-          parentIdField: 'parentId'
-        });
-      });
-    },
+          address: [
+            { required: true, message: '请输入收件人详细地址', trigger: 'blur' }
+          ]
+        },
+        options: {
+          cityData,
+          categoryData
+        },
+        // 提交状态
+        loading: false,
+        // 是否是修改
+        isUpdate: false,
 
-    handleActive(val) {
-      if (val.name == '6') {
-        this.reload();
-      }
-    },
-    // 选择负责人部门
-    change_principalDep(id) {
-      const info = this.groupData.find((e) => e.id == id);
-      this.otherForm.deptName = info.name;
-      this.otherForm.salesmanId = '';
-      this.otherForm.salesmanName = '';
-      // 根据部门获取人员
-      const params = { groupId: id };
-      this.$nextTick(() => {
-        this.$refs.directorRef.getList(params);
-      });
-    },
-    salesmanChange(val, info) {
-      this.otherForm.salesmanName = info.name;
-    },
-    settlementModeChange(info) {
-      this.otherForm.settlementModeName = info.dictValue;
-    },
-    ifChiefChange(value, idx) {
-      if (value === 1) {
-        this.tableLinkData.forEach((e) => (e.ifChief = 0));
-        this.tableLinkData[idx].ifChief = 1;
-      }
-    },
-    addBank() {
-      this.tableBankData.push({
-        accountName: '',
-        accountNo: '',
-        bankName: '',
-        interbankNo: ''
-      });
-    },
-    addLink() {
-      this.tableLinkData.push({
-        linkName: '',
-        mobilePhone: '',
-        phone: '',
-        email: '',
-        post: '',
-        status: '',
-        ifChief: 0,
-        remark: ''
-      });
-    },
-    handleBankDel(row, index) {
-      this.tableBankData.splice(index, 1);
-      if (row?.id) {
-        //   this.removeBankList.push(row.id);
-      }
+        // 组织机构树形结构数据
+        groupTreeData: [],
+        // 组织机构平铺数据
+        groupData: []
+      };
     },
-    handleLinkDel(row, index) {
-      this.tableLinkData.splice(index, 1);
-      if (row?.id) {
-        //   this.removeLinkList.push(row.id);
+    watch: {
+      categoryIdList(val) {
+        if (val.length > 0) {
+          this.$refs.form.clearValidate('categoryId');
+          this.form.categoryId = this.categoryIdList.join(',');
+        } else {
+          this.form.categoryId = '';
+          this.$refs.form.validateField('categoryId');
+        }
       }
     },
-    //新增/查看/修改资质
-    addCertificate(type, row) {
-      this.certificateQualificationsDialogFlag = true;
-      this.$nextTick(() => {
-        this.$refs.certificateQualificationsDialogRef.init(type, row);
-      });
+    created() {
+      this.getGroupAll();
     },
-    /* 证书资质表格数据源 */
-    tableCertificateData({ page, limit, where }) {
-      if (!this.form.id) return [];
-      return contactQcPackPageAPI({
-        certificationType: '3',
-        relationId: this.form.id
-      });
-    },
-    /* 刷新表格 */
-    reload(where) {
-      where = {
-        certificationType: '3',
-        relationId: this.form.id
-      };
-      this.$refs.certificateTable.reload({ ...where });
-    },
-    //删除资质包
-    handleRemove(row) {
-      contactQcPackDeleteAPI([row.id]).then((res) => {
-        this.$message.success('删除成功!');
-        this.reload();
-      });
-    },
-    formValid() {
-      return new Promise((resolve, reject) => {
-        this.$refs.form.validate((valid) => {
-          if (!valid) {
-            this.activeName = 1;
-            reject(false);
-          } else {
-            resolve(true);
-          }
+    methods: {
+      async open(type, row, contactCategoryId) {
+        this.title = type;
+        this.row = row;
+        this.visible = true;
+        if (type == '新建生产厂家') {
+          this.isUpdate = false;
+          // 默认带出列表页面选中的分类
+          this.form.categoryId = contactCategoryId;
+        } else {
+          this.isUpdate = true;
+          await this._getById(row.id);
+        }
+      },
+
+      // 获取公司数据
+      getGroupAll() {
+        listOrganizations().then((list) => {
+          this.groupData = list;
+          this.groupTreeData = this.$util.toTreeData({
+            data: list,
+            idField: 'id',
+            parentIdField: 'parentId'
+          });
         });
-      });
-    },
-    otherFormValid() {
-      return new Promise((resolve, reject) => {
-        this.$refs.otherForm.validate((valid) => {
-          if (!valid) {
-            this.activeName = 4;
+      },
+
+      handleActive(val) {
+        if (val.name == '6') {
+          this.reload();
+        }
+      },
+      // 选择负责人部门
+      change_principalDep(id) {
+        const info = this.groupData.find((e) => e.id == id);
+        this.otherForm.deptName = info.name;
+        this.otherForm.salesmanId = '';
+        this.otherForm.salesmanName = '';
+        // 根据部门获取人员
+        const params = { groupId: id };
+        this.$nextTick(() => {
+          this.$refs.directorRef.getList(params);
+        });
+      },
+      salesmanChange(val, info) {
+        this.otherForm.salesmanName = info.name;
+      },
+      settlementModeChange(info) {
+        this.otherForm.settlementModeName = info.dictValue;
+      },
+      ifChiefChange(value, idx) {
+        if (value === 1) {
+          this.tableLinkData.forEach((e) => (e.ifChief = 0));
+          this.tableLinkData[idx].ifChief = 1;
+        }
+      },
+      addBank() {
+        this.tableBankData.push({
+          accountName: '',
+          accountNo: '',
+          bankName: '',
+          interbankNo: ''
+        });
+      },
+      addLink() {
+        this.tableLinkData.push({
+          linkName: '',
+          mobilePhone: '',
+          phone: '',
+          email: '',
+          post: '',
+          status: '',
+          ifChief: 0,
+          remark: ''
+        });
+      },
+      handleBankDel(row, index) {
+        this.tableBankData.splice(index, 1);
+        if (row?.id) {
+          //   this.removeBankList.push(row.id);
+        }
+      },
+      handleLinkDel(row, index) {
+        this.tableLinkData.splice(index, 1);
+        if (row?.id) {
+          //   this.removeLinkList.push(row.id);
+        }
+      },
+      //新增/查看/修改资质
+      addCertificate(type, row) {
+        this.certificateQualificationsDialogFlag = true;
+        this.$nextTick(() => {
+          this.$refs.certificateQualificationsDialogRef.init(type, row);
+        });
+      },
+      /* 证书资质表格数据源 */
+      tableCertificateData({ page, limit, where }) {
+        if (!this.form.id) return [];
+        return contactQcPackPageAPI({
+          certificationType: '3',
+          relationId: this.form.id
+        });
+      },
+      /* 刷新表格 */
+      reload(where) {
+        where = {
+          certificationType: '3',
+          relationId: this.form.id
+        };
+        this.$refs.certificateTable.reload({ ...where });
+      },
+      //删除资质包
+      handleRemove(row) {
+        contactQcPackDeleteAPI([row.id]).then((res) => {
+          this.$message.success('删除成功!');
+          this.reload();
+        });
+      },
+      formValid() {
+        return new Promise((resolve, reject) => {
+          this.$refs.form.validate((valid) => {
+            if (!valid) {
+              this.activeName = 1;
+              reject(false);
+            } else {
+              resolve(true);
+            }
+          });
+        });
+      },
+      otherFormValid() {
+        return new Promise((resolve, reject) => {
+          this.$refs.otherForm.validate((valid) => {
+            if (!valid) {
+              this.activeName = 4;
+              reject(false);
+            } else {
+              resolve(true);
+            }
+          });
+        });
+      },
+      tableLinkDataValid() {
+        return new Promise((resolve, reject) => {
+          if (this.tableLinkData.length == 0) {
+            this.activeName = 3;
+            this.$message.error('联系人信息至少有1条');
             reject(false);
           } else {
             resolve(true);
           }
         });
-      });
-    },
-    tableLinkDataValid() {
-      return new Promise((resolve, reject) => {
-        if (this.tableLinkData.length == 0) {
-          this.activeName = 3;
-          this.$message.error('联系人信息至少有1条');
-          reject(false);
-        } else {
-          resolve(true);
-        }
-      });
-    },
-    getValidate() {
-      return Promise.all([
-        this.formValid(),
-        this.otherFormValid(),
-        this.tableLinkDataValid()
-      ]);
-    },
+      },
+      getValidate() {
+        return Promise.all([
+          this.formValid(),
+          this.otherFormValid(),
+          this.tableLinkDataValid()
+        ]);
+      },
 
-    async pageChange(type) {
-      if (type == 'up') {
-        this.activeName -= 1;
-      }
-      if (type == 'next') {
-        if (this.activeName == 1 && !(await this.formValid())) {
-          return;
-        }
-        if (this.activeName == 3 && !(await this.tableLinkDataValid())) {
-          this.$message.error('联系人信息至少有1条');
-          return;
-        }
-        if (this.activeName == 4 && !(await this.otherFormValid())) {
-          return;
+      async pageChange(type) {
+        if (type == 'up') {
+          this.activeName -= 1;
         }
-        this.activeName += 1;
-      }
-    },
-    //开启资质提交流程
-    async submit(row) {
-      await contactQcSubmit({ businessId: row.id, certificationType: '3' });
-      this.reload();
-    },
-    async save() {
-      try {
-        await this.getValidate();
-        // 表单验证通过,执行保存操作
-        this.loading = true;
-        // 基本信息处理
-        if (this.$refs.address.getCheckedNodes()) {
-          let node = this.$refs.address.getCheckedNodes()[0];
-          if (node) {
-            this.form.addressId = node.path.join();
-            this.form.addressName = node.pathLabels.join();
-          } else {
-            this.form.addressId = '';
-            this.form.addressName = '';
+        if (type == 'next') {
+          if (this.activeName == 1 && !(await this.formValid())) {
+            return;
+          }
+          if (this.activeName == 3 && !(await this.tableLinkDataValid())) {
+            this.$message.error('联系人信息至少有1条');
+            return;
+          }
+          if (this.activeName == 4 && !(await this.otherFormValid())) {
+            return;
           }
+          this.activeName += 1;
         }
+      },
+      //开启资质提交流程
+      async submit(row) {
+        await contactQcSubmit({ businessId: row.id, certificationType: '3' });
+        this.reload();
+      },
+      async save() {
+        try {
+          await this.getValidate();
+          // 表单验证通过,执行保存操作
+          this.loading = true;
+          // 基本信息处理
+          if (this.$refs.address.getCheckedNodes()) {
+            let node = this.$refs.address.getCheckedNodes()[0];
+            if (node) {
+              this.form.addressId = node.path.join();
+              this.form.addressName = node.pathLabels.join();
+            } else {
+              this.form.addressId = '';
+              this.form.addressName = '';
+            }
+          }
 
-        if (this.$refs.industry.getCheckedNodes()) {
-          let node = this.$refs.industry.getCheckedNodes()[0];
-          if (node) {
-            this.form.industryCode = node.path.join();
-            this.form.industryFullName = node.pathLabels.join();
+          if (this.$refs.industry.getCheckedNodes()) {
+            let node = this.$refs.industry.getCheckedNodes()[0];
+            if (node) {
+              this.form.industryCode = node.path.join();
+              this.form.industryFullName = node.pathLabels.join();
+            } else {
+              this.form.industryCode = '';
+              this.form.industryFullName = '';
+            }
+          }
+          if (this.form.companyCategoryId) {
+            this.form.companyCategoryName = this.getDictValue(
+              '营业类型',
+              this.form.companyCategoryId
+            );
+          }
+          // if (
+          //   this.form.businessLicenseFiles &&
+          //   this.form.businessLicenseFiles.length > 0
+          // ) {
+          //   this.form.businessLicenseFile = this.form.businessLicenseFiles[0];
+          // } else {
+          //   this.form.businessLicenseFile = null;
+          // }
+
+          // 其他信息处理
+          if (this.form.settlementMode) {
+            this.form.settlementModeName = this.getDictValue(
+              '结算方式',
+              this.form.settlementMode
+            );
+          }
+          if (this.$refs.sendAddress.getCheckedNodes()) {
+            let node = this.$refs.sendAddress.getCheckedNodes()[0];
+            if (node) {
+              this.otherForm.addressId = node.path.join();
+              this.otherForm.addressName = node.pathLabels.join();
+            } else {
+              this.otherForm.addressId = '';
+              this.otherForm.addressName = '';
+            }
+          }
+
+          if (!this.isUpdate) {
+            delete this.form.id;
           } else {
-            this.form.industryCode = '';
-            this.form.industryFullName = '';
+            //   this.form.removeBankList = this.removeBankList;
+            //   this.form.removeLinkList = this.removeLinkList;
           }
+          const data = {
+            base: this.form,
+            other: this.otherForm,
+            bankList: this.tableBankData,
+            linkList: this.tableLinkData,
+            productList: this.supplyList
+          };
+          if (this.isUpdate) {
+            contactUpdate(data)
+              .then((res) => {
+                this.loading = false;
+                this.$message.success('修改成功');
+                this.cancel();
+                this.$emit('done');
+              })
+              .catch((e) => {
+                //this.loading = false;
+              });
+          } else {
+            contactSave(data)
+              .then((id) => {
+                this.loading = false;
+                this.$message.success('新增成功');
+                this.cancel();
+                this.$emit('done');
+
+                // this._getById(id);
+                // this.title = '编辑客户';
+                // this.$emit('done');
+                // this.isUpdate = true;
+              })
+              .catch((e) => {
+                //this.loading = false;
+              });
+          }
+        } catch (error) {
+          // 表单验证未通过,不执行保存操作
         }
-        if (this.form.companyCategoryId) {
-          this.form.companyCategoryName = this.getDictValue(
-            '营业类型',
-            this.form.companyCategoryId
-          );
-        }
+      },
+      cancel() {
+        this.$nextTick(() => {
+          this.activeName = 1;
+          // 关闭后,销毁所有的表单数据
+          this.$refs['otherForm'] && this.$refs['otherForm'].resetFields();
+          this.$refs['formRef'] && this.$refs['formRef'].resetFields();
+          (this.form = copyObj(this.formDef)),
+            (this.otherForm = copyObj(this.otherFormDef)),
+            (this.tableBankData = []);
+          this.tableLinkData = [];
+          this.categoryIdList = [];
+          this.visible = false;
+        });
+      },
+      async _getById(id) {
+        const data = await contactDetail(id);
+        this.form = data.base || {};
+        this.otherForm = data.other || {};
+        this.tableBankData = data.bankList || [];
+        this.tableLinkData = data.linkList || [];
+        this.supplyList = data.productList || [];
         // if (
-        //   this.form.businessLicenseFiles &&
-        //   this.form.businessLicenseFiles.length > 0
+        //   data.base.businessLicenseFile &&
+        //   data.base.businessLicenseFile !== ''
         // ) {
-        //   this.form.businessLicenseFile = this.form.businessLicenseFiles[0];
-        // } else {
-        //   this.form.businessLicenseFile = null;
+        //   this.$set(this.form, 'businessLicenseFiles', [
+        //     data.base.businessLicenseFile
+        //   ]);
         // }
-
-        // 其他信息处理
-        if (this.form.settlementMode) {
-          this.form.settlementModeName = this.getDictValue(
-            '结算方式',
-            this.form.settlementMode
-          );
+        this.categoryIdList = this.form.categoryId.split(',');
+        if (this.tableLinkData && this.tableLinkData.length > 0) {
+          this.tableLinkData.forEach((e) => (e.status = e.status + ''));
         }
-        if (this.$refs.sendAddress.getCheckedNodes()) {
-          let node = this.$refs.sendAddress.getCheckedNodes()[0];
-          if (node) {
-            this.otherForm.addressId = node.path.join();
-            this.otherForm.addressName = node.pathLabels.join();
-          } else {
-            this.otherForm.addressId = '';
-            this.otherForm.addressName = '';
-          }
+        if (this.otherForm.settlementMode) {
+          this.otherForm.settlementMode = this.otherForm.settlementMode + '';
         }
-
-        if (!this.isUpdate) {
-          delete this.form.id;
-        } else {
-          //   this.form.removeBankList = this.removeBankList;
-          //   this.form.removeLinkList = this.removeLinkList;
+        if (this.form.level) {
+          this.form.level = this.form.level + '';
         }
-        const data = {
-          base: this.form,
-          other: this.otherForm,
-          bankList: this.tableBankData,
-          linkList: this.tableLinkData,
-          productList: this.supplyList
-        };
-        if (this.isUpdate) {
-          contactUpdate(data)
-            .then((res) => {
-              this.loading = false;
-              this.$message.success('修改成功');
-              this.cancel();
-              this.$emit('done');
-            })
-            .catch((e) => {
-              //this.loading = false;
-            });
-        } else {
-          contactSave(data)
-            .then((id) => {
-              this.loading = false;
-              this.$message.success('新增成功');
-              this.cancel();
-              this.$emit('done');
-
-              // this._getById(id);
-              // this.title = '编辑客户';
-              // this.$emit('done');
-              // this.isUpdate = true;
-            })
-            .catch((e) => {
-              //this.loading = false;
-            });
+        // 回显地址选择器
+        if (this.form.addressId && this.form.addressId.length > 0) {
+          this.form.addressId = this.form.addressId.split(',');
         }
-      } catch (error) {
-        // 表单验证未通过,不执行保存操作
-      }
-    },
-    cancel() {
-      this.$nextTick(() => {
-        this.activeName = 1;
-        // 关闭后,销毁所有的表单数据
-        this.$refs['otherForm'] && this.$refs['otherForm'].resetFields();
-        this.$refs['formRef'] && this.$refs['formRef'].resetFields();
-        (this.form = copyObj(this.formDef)),
-          (this.otherForm = copyObj(this.otherFormDef)),
-          (this.tableBankData = []);
-        this.tableLinkData = [];
-        this.categoryIdList = [];
-        this.visible = false;
-      });
-    },
-    async _getById(id) {
-      const data = await contactDetail(id);
-      this.form = data.base || {};
-      this.otherForm = data.other || {};
-      this.tableBankData = data.bankList || [];
-      this.tableLinkData = data.linkList || [];
-      this.supplyList = data.productList || [];
-      // if (
-      //   data.base.businessLicenseFile &&
-      //   data.base.businessLicenseFile !== ''
-      // ) {
-      //   this.$set(this.form, 'businessLicenseFiles', [
-      //     data.base.businessLicenseFile
-      //   ]);
-      // }
-      this.categoryIdList = this.form.categoryId.split(',');
-      if (this.tableLinkData && this.tableLinkData.length > 0) {
-        this.tableLinkData.forEach((e) => (e.status = e.status + ''));
-      }
-      if (this.otherForm.settlementMode) {
-        this.otherForm.settlementMode = this.otherForm.settlementMode + '';
-      }
-      if (this.form.level) {
-        this.form.level = this.form.level + '';
-      }
-      // 回显地址选择器
-      if (this.form.addressId && this.form.addressId.length > 0) {
-        this.form.addressId = this.form.addressId.split(',');
-      }
-      if (this.otherForm.addressId && this.otherForm.addressId.length > 0) {
-        this.otherForm.addressId = this.otherForm.addressId.split(',');
-      }
-      // 回显行业
-      if (this.form.industryCode && this.form.industryCode.length > 0) {
-        this.form.industry = this.form.industryCode.split(',');
-      }
-      if (this.otherForm.deptId) {
-        // 编辑时,默认查询组织相关的用户列表,用于回显
-        this.$nextTick(async () => {
-          await this.$refs.directorRef.getList({
-            groupId: this.otherForm.deptId
+        if (this.otherForm.addressId && this.otherForm.addressId.length > 0) {
+          this.otherForm.addressId = this.otherForm.addressId.split(',');
+        }
+        // 回显行业
+        if (this.form.industryCode && this.form.industryCode.length > 0) {
+          this.form.industry = this.form.industryCode.split(',');
+        }
+        if (this.otherForm.deptId) {
+          // 编辑时,默认查询组织相关的用户列表,用于回显
+          this.$nextTick(async () => {
+            await this.$refs.directorRef.getList({
+              groupId: this.otherForm.deptId
+            });
           });
-        });
-      }
-    },
+        }
+      },
 
-    handParent() {
-      let item = {
-        id: this.form.parentId
-      };
-      this.$refs.parentRef.open(item);
-    },
+      handParent() {
+        let item = {
+          id: this.form.parentId
+        };
+        this.$refs.parentRef.open(item);
+      },
 
-    changeParent(obj) {
-      this.$set(this.form, 'parentId', obj.id);
-      this.$set(this.form, 'parentName', obj.name);
-    },
-    //选择产品
-    handSelectSupply() {
-      this.$refs.productListRef.open(this.supplyList, -1);
-    },
-    getSupplyList(obj) {
-      obj.forEach((item, index) => {
-        let params = {};
-        this.$set(params, 'contactId', this.row.id);
-        this.$set(params, 'productId', item.id);
-        this.$set(params, 'categoryName', item.name);
-        this.$set(params, 'productCategoryId', item.categoryLevelId);
-        this.$set(params, 'productBrand', item.brandNum);
-        this.$set(params, 'productCategoryName', item.categoryLevelPath);
-        this.$set(params, 'productCode', item.code);
-        this.$set(params, 'productName', item.name);
-        this.$set(params, 'modelType', item.modelType);
-        this.$set(params, 'availableCountBase', item.availableCountBase);
-        this.$set(params, 'measuringUnit', item.measuringUnit);
-        this.$set(params, 'specification', item.specification);
-        this.$set(params, 'weightUnit', item.weightUnit);
-        this.$set(params, 'imgCode', item.imgCode);
-        this.$set(params, 'produceType', item.componentAttribute);
-        this.$set(params, 'approvalNumber', item.approvalNumber);
-        this.$set(params, 'packingSpecification', item.packingSpecification);
-        this.supplyList.push(params);
-      });
-    },
-    //删除供货产品
-    handleRemoveSupply(index) {
-      this.supplyList.splice(index, 1);
+      changeParent(obj) {
+        this.$set(this.form, 'parentId', obj.id);
+        this.$set(this.form, 'parentName', obj.name);
+      },
+      //选择产品
+      handSelectSupply() {
+        this.$refs.productListRef.open(this.supplyList, -1);
+      },
+      getSupplyList(obj) {
+        obj.forEach((item, index) => {
+          let params = {};
+          this.$set(params, 'contactId', this.row.id);
+          this.$set(params, 'productId', item.id);
+          this.$set(params, 'categoryName', item.name);
+          this.$set(params, 'productCategoryId', item.categoryLevelId);
+          this.$set(params, 'productBrand', item.brandNum);
+          this.$set(params, 'productCategoryName', item.categoryLevelPath);
+          this.$set(params, 'productCode', item.code);
+          this.$set(params, 'productName', item.name);
+          this.$set(params, 'modelType', item.modelType);
+          this.$set(params, 'availableCountBase', item.availableCountBase);
+          this.$set(params, 'measuringUnit', item.measuringUnit);
+          this.$set(params, 'specification', item.specification);
+          this.$set(params, 'weightUnit', item.weightUnit);
+          this.$set(params, 'imgCode', item.imgCode);
+          this.$set(params, 'produceType', item.componentAttribute);
+          this.$set(params, 'approvalNumber', item.approvalNumber);
+          this.$set(params, 'packingSpecification', item.packingSpecification);
+          this.supplyList.push(params);
+        });
+      },
+      //删除供货产品
+      handleRemoveSupply(index) {
+        this.supplyList.splice(index, 1);
+      }
     }
-  }
-};
+  };
 </script>

+ 10 - 2
src/views/purchasingManage/producerManage/components/contactDetailDialog.vue

@@ -540,7 +540,7 @@ import dictMixins from '@/mixins/dictMixins';
 import deptSelect from '@/components/CommomSelect/dept-select.vue';
 import personSelect from '@/components/CommomSelect/person-select.vue';
 import {copyObj} from '@/utils/util';
-import {reviewStatus, reviewStatusEnum} from "@/enum/dict";
+import {reviewStatus, reviewStatusEnum,lbjtList} from "@/enum/dict";
 import certificateQualificationsDialog
   from "@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue";
 import {getTableList} from '@/api/purchasingManage/purchaseOrder';
@@ -1305,7 +1305,15 @@ export default {
           align: 'center',
           label: 'produceType',
           showOverflowTooltip: true,
-          minWidth: 110
+          minWidth: 110,
+          formatter: (row, column) => {
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
         },
         // {
         //   prop: 'approvalNumber',

+ 7 - 5
src/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue

@@ -180,6 +180,7 @@
   import fileMain from '@/components/addDoc/index';
   import modalTitle from '@/BIZComponents/modalTitle.vue';
   import { getByCode } from '@/api/system/dictionary-data';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -342,11 +343,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                .map((item) => this.getDictValue('生产类型', item))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 8 - 5
src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue

@@ -375,6 +375,8 @@
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+import { lbjtList } from '@/enum/dict.js';
+
   export default {
     mixins: [dictMixins],
     components: {
@@ -525,11 +527,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 8 - 6
src/views/purchasingManage/purchaseOrder/components/detailDialog.vue

@@ -451,7 +451,8 @@
   import fileMain from '@/components/addDoc/index.vue';
   import billDetailDialog from '@/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue';
   import modalTitle from '@/BIZComponents/modalTitle.vue';
-  import { orderSourceType, outsourceSceneList } from '@/enum/dict';
+  import { orderSourceType, outsourceSceneList,lbjtList } from '@/enum/dict';
+
   export default {
     mixins: [dictMixins],
     components: {
@@ -678,11 +679,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
 

+ 7 - 6
src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue

@@ -514,7 +514,7 @@
   import billDetailDialog from './billDetailDialog.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
   import { getCode } from '@/components/addDoc/api/index.js';
-  import { pricingWayList } from '@/enum/dict.js';
+  import { pricingWayList,lbjtList } from '@/enum/dict.js';
   import { getInventoryTotalAPI } from '@/api/wms';
 
   const dayjs = require('dayjs');
@@ -745,11 +745,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
 

+ 11 - 1
src/views/purchasingManage/purchaseOrder/components/supplierGoodsListDialog.vue

@@ -52,6 +52,8 @@
   import { contactDetail, contactUpdate } from '@/api/saleManage/contact';
   import { getInventoryTotalAPI } from '@/api/wms';
   import productList from '@/BIZComponents/product-list.vue';
+  import { lbjtList } from '@/enum/dict.js';
+
   export default {
     name: 'generateContractsDialog',
     props: {
@@ -110,7 +112,15 @@
             align: 'center',
             label: '属性类型',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter: (row, column) => {
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
           },
           // {
           //   prop: 'approvalNumber',

+ 7 - 6
src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue

@@ -163,7 +163,7 @@
 <script>
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
-  import { reviewStatusEnum } from '@/enum/dict';
+  import { reviewStatusEnum,lbjtList } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 
@@ -277,11 +277,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
             {

+ 7 - 5
src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue

@@ -235,6 +235,7 @@
   import { getOutInBySourceBizNoAPI } from '@/api/saleManage/returnGoods';
   import fileMain from '@/components/addDoc/index.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -349,11 +350,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 8 - 6
src/views/purchasingManage/purchaseOrder/outSourceSend/components/detailDialog.vue

@@ -141,7 +141,7 @@
 <script>
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
-  import { reviewStatusEnum } from '@/enum/dict';
+  import { reviewStatusEnum,lbjtList } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import { getPurchaseOutSourceSendDetailAPI } from '@/api/purchasingManage/outSourceSend';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
@@ -149,6 +149,7 @@
   import fileMain from '@/components/addDoc/index.vue';
   import modalTitle from '@/BIZComponents/modalTitle.vue';
   import outBoundDetails from '@/BIZComponents/outdetails.vue';
+
   export default {
     mixins: [dictMixins],
     components: {
@@ -246,11 +247,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           {

+ 7 - 5
src/views/purchasingManage/purchaseOrder/outSourceSend/components/inventoryTable.vue

@@ -180,6 +180,7 @@
   import { getFile } from '@/api/system/file';
   import fileMain from '@/components/addDoc/index.vue';
   import { getCode } from '@/components/addDoc/api/index.js';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -283,11 +284,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 10 - 1
src/views/purchasingManage/purchaseOrder/returnGoods/components/inventoryTable.vue

@@ -256,6 +256,7 @@
   } from '@/api/saleManage/saleorder';
   import outboundDetailsDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/outboundDetailsDialog.vue';
   import innertboundDetailsDialog from './innerboundDetailsDialog.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -359,7 +360,15 @@
             prop: 'produceType',
             align: 'center',
             label: '属性类型',
-            showOverflowTooltip: true
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
           },
           // {
           //   width: 120,

+ 7 - 5
src/views/purchasingManage/purchasePlanManage/components/inventoryTable.vue

@@ -417,6 +417,7 @@
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -643,11 +644,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 10 - 2
src/views/purchasingManage/supplierManage/components/addContactDialog.vue

@@ -690,7 +690,7 @@
   import { copyObj } from '@/utils/util';
   import certificateQualificationsDialog from '@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue';
   import parentList from './parentList.vue';
-  import { reviewStatus } from '@/enum/dict';
+  import { reviewStatus,lbjtList } from '@/enum/dict';
   import productList from '@/BIZComponents/product-list.vue';
   import fileMain from '@/components/addDoc/index.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
@@ -1021,7 +1021,15 @@
             align: 'center',
             label: '属性类型',
             showOverflowTooltip: true,
-            minWidth: 110
+            minWidth: 110,
+            formatter: (row, column) => {
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
           },
           // {
           //   prop: 'approvalNumber',

+ 7 - 4
src/views/purchasingManage/supplierManage/components/contactDetailDialog.vue

@@ -525,7 +525,7 @@ import dictMixins from '@/mixins/dictMixins';
 import deptSelect from '@/components/CommomSelect/dept-select.vue';
 import personSelect from '@/components/CommomSelect/person-select.vue';
 import {copyObj} from '@/utils/util';
-import {reviewStatus, reviewStatusEnum} from "@/enum/dict";
+import {reviewStatus, reviewStatusEnum,lbjtList} from "@/enum/dict";
 import certificateQualificationsDialog
   from "@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue";
 import {getTableList} from '@/api/purchasingManage/purchaseOrder';
@@ -1292,9 +1292,12 @@ export default {
           showOverflowTooltip: true,
           minWidth: 110,
           formatter: (row, column) => {
-              return row?.produceType?.map((item) =>{
-               return this.getDictValue('生产类型', item)
-              })?.toString()
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
         },
         // {

+ 8 - 6
src/views/saleManage/contact/components/addContactDialog.vue

@@ -845,7 +845,7 @@
   import parentList from './parentList.vue';
   // import certificateQualificationsDialog from '@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue';
   import certificateQualificationsDialog from './certificateQualificationsDialog.vue';
-  import { reviewStatus } from '@/enum/dict';
+  import { reviewStatus,lbjtList } from '@/enum/dict';
   import { deepClone } from '@/utils';
   import searchTable from '@/views/saleManage/saleOrder/components/searchTable.vue';
   import { getTableList } from '@/api/saleManage/saleorder';
@@ -853,6 +853,7 @@
   import modalTitle from '@/BIZComponents/modalTitle.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { getByCode } from '@/api/system/dictionary-data';
+
   export default {
     props: {
       categoryTreeList: Array
@@ -1022,11 +1023,12 @@
             showOverflowTooltip: true,
             minWidth: 110,
             formatter: (row, column) => {
-              return row?.produceType
-                ?.map((item) => {
-                  return this.getDictValue('生产类型', item);
-                })
-                ?.toString();
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {

+ 1 - 0
src/views/saleManage/saleOrder/components/addDialog.vue

@@ -290,6 +290,7 @@
         :isContractId="!!form.contractId"
         :isChangeCount="false"
         :needProduce="form.needProduce"
+        :isSupplier="true"
       ></inventoryTable>
       <!--        @change="handleChange"-->
       <el-row v-if="form.needProduce == 1">

+ 11 - 10
src/views/saleManage/saleOrder/invoice/components/detailDialog.vue

@@ -208,7 +208,7 @@
 <script>
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
-  import { reviewStatusEnum } from '@/enum/dict';
+  import { reviewStatusEnum,lbjtList } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import { getSendSaleOrderrecordDetailSplit } from '@/api/saleManage/saleordersendrecord';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
@@ -290,9 +290,9 @@
       this.requestDict('生产类型');
     },
     computed: {
-      // clientEnvironmentId() {
-      //   return this.$store.state.user.info.clientEnvironmentId;
-      // },
+      clientEnvironmentId() {
+        return this.$store.state.user.info.clientEnvironmentId;
+      },
       competAnalysisListcolumns() {
         return [
         {
@@ -364,11 +364,12 @@
             align: 'center',
             label: '属性类型',
             formatter: (row, column) => {
-              return row?.produceType
-                ?.map((item) => {
-                  return this.getDictValue('生产类型', item);
-                })
-                ?.toString();
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             },
             showOverflowTooltip: true
           },
@@ -435,7 +436,7 @@
             label: '发货块数',
             slot: 'blockCount',
             align: 'center',
-            // show: this.clientEnvironmentId == '4'
+            show: this.clientEnvironmentId == '4'
           },
           {
             width: 120,

+ 8 - 6
src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue

@@ -341,6 +341,7 @@
   import fileMain from '@/components/addDoc/index.vue';
   import selectStockLedgerDialog from '@/BIZComponents/selectStockLedger/selectStockLedgerDialog.vue'; //库存台账
   import BIZproductList from '@/BIZComponents/product-list.vue';
+  import { lbjtList } from '@/enum/dict.js';
 
   // import { changeCount } from '@/BIZComponents/setProduct.js';
   export default {
@@ -513,11 +514,12 @@
             align: 'center',
             label: '属性类型',
             formatter: (row, column) => {
-              return row?.produceType
-                ?.map((item) => {
-                  return this.getDictValue('生产类型', item);
-                })
-                ?.toString();
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             },
             showOverflowTooltip: true
           },
@@ -583,7 +585,7 @@
             label: '发货块数',
             slot: 'blockCount',
             align: 'center',
-            // show: this.clientEnvironmentId == '4'
+            show: this.clientEnvironmentId == '4'
           },
           {
             width: 120,

+ 47 - 14
src/views/saleManage/saleOrder/invoice/components/print-template-js.vue

@@ -66,18 +66,18 @@
             <td style="padding: 5px"> 备注</td>
           </tr>
 
-          <tr align="center" v-for="(item, index) in formData.productList">
+          <tr align="center" v-for="(item, index) in outBound.outInDetailRecordRequestList">
             <td style="padding: 5px"> {{ index + 1 }} </td>
-            <td style="padding: 5px"> {{ item.productName }} </td>
+            <td style="padding: 5px"> {{ item.categoryName }} </td>
             <td style="padding: 5px">
-              {{ item.packingSpecification }}/{{ item.modelType }}
+              {{ item.specification }}/{{ item.categoryModel }}
             </td>
             <td style="padding: 5px"> 嘉实(湖南)医院科技有限公司</td>
-            <td style="padding: 5px"> {{ item.totalCount }}</td>
-            <td style="padding: 5px"> {{ item.measuringUnit }}</td>
+            <td style="padding: 5px"> {{ item.measureQuantity }}</td>
+            <td style="padding: 5px"> {{ item.measureUnit }}</td>
             <td style="padding: 5px"> {{ item.batchNo }}</td>
             <td style="padding: 5px"> 序列号</td>
-            <td style="padding: 5px"> {{ item.productCode }}</td>
+            <td style="padding: 5px"> {{ item.categoryCode }}</td>
           </tr>
           <tr>
             <td style="padding: 5px" colspan="9">
@@ -101,8 +101,8 @@
           <div>{{ formData.createTime }}</div>
         </div>
         <div style="flex: 1">
-          <div>审核人/日期:</div>
-          <div>12</div>
+          <div>审核人/日期:{{ outBound.createTime }}</div>
+          <div>{{ outBound.extInfo?.createUserName  }}</div>
         </div>
         <div style="flex: 1">
           收货人:{{ formData.linkName }} {{ formData.linkPhone }}
@@ -119,7 +119,7 @@
 
 <script>
   import { getSendSaleOrderrecordDetailSplit } from '@/api/saleManage/saleordersendrecord';
-
+  import { getInfoBySourceBizNoAll } from '@/api/wms';
   import { mapGetters } from 'vuex';
   export default {
     name: 'print',
@@ -132,16 +132,49 @@
         checked: '',
         QRvisible: false,
         isPrintPrice: false,
-        formData: {}
+        formData: {},
+        outBound:{}
       };
     },
 
     methods: {
-      open(id) {
-        getSendSaleOrderrecordDetailSplit(id).then((data) => {
-          this.formData = data;
-          this.QRvisible = true;
+      async _getInfo(sourceBizNo, type, list = []) {
+        let res = {};
+
+        if (dataArray && dataArray.length > 0) {
+          res = JSON.parse(JSON.stringify(dataArray[0]));
+          res['outInDetailList'] = [];
+
+          res['bizNo'] = dataArray.map((item) => item.bizNo);
+        }
+        console.log(res, 'res');
+        // res
+        this.init(res, type);
+      },
+
+      async open(id) {
+        this.formData = await getSendSaleOrderrecordDetailSplit(id);
+        this.QRvisible = true;
+        let dataArray = await getInfoBySourceBizNoAll(
+          this.formData.docNo
+        );
+        console.log(dataArray)
+        this.outBound = JSON.parse(JSON.stringify(dataArray[0]));
+        this.outBound['outInDetailRecordRequestList']=[]
+
+        dataArray.forEach((item) => {
+          item.outInDetailList.forEach((val) => {
+            val.outInDetailRecordRequestList.forEach(j=>{
+              j['categoryName']=val.categoryName
+              j['categoryModel']=val.categoryModel
+              j['specification']=val.specification
+              j['categoryCode']=val.categoryCode
+              
+            })
+            this.outBound['outInDetailRecordRequestList'].push(...val.outInDetailRecordRequestList)
+          });
         });
+        //包装维度
       },
       close() {
         this.QRvisible = false;

+ 11 - 1
src/views/saleManage/saleOrder/invoice/components/replaceTable.vue

@@ -360,6 +360,8 @@
   import stockLedgerDialog from './stockLedger/stockLedgerDialog.vue';
   import getDynamicsColumns from '@/mixins/getDynamicsColumns';
   import fileMain from '@/components/addDoc/index.vue';
+  import { lbjtList } from '@/enum/dict.js';
+
   export default {
     mixins: [dictMixins, getDynamicsColumns],
     props: {
@@ -643,7 +645,15 @@
             prop: 'produceType',
             align: 'center',
             label: '属性类型',
-            showOverflowTooltip: true
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
           },
           ...this.dynamicsColumns,
           {

+ 2 - 2
src/views/saleManage/saleOrder/invoice/index.vue

@@ -56,10 +56,10 @@
                   @click.native="handlePrint('printTemplateJsRef')"
                   >出库单模板一</el-dropdown-item
                 >
-                <!-- <el-dropdown-item
+                <el-dropdown-item
                   @click.native="handlePrint('printTemplateJsYpRef')"
                   >出库单模板二(药品)</el-dropdown-item
-                > -->
+                >
               </el-dropdown-menu>
             </el-dropdown>
           </template>

+ 8 - 6
src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturn.vue

@@ -571,6 +571,7 @@ import {getFile} from "@/api/system/file";
 import {getByCode} from "@/api/system/dictionary-data";
 import {contactQueryByCategoryIdsAPI} from "@/api/saleManage/contact";
 import fileMain from "@/components/addDoc/index.vue";
+import { lbjtList } from '@/enum/dict.js';
 
 const dayjs = require('dayjs');
 
@@ -840,12 +841,13 @@ export default {
           label: '属性类型',
           showOverflowTooltip: true,
           formatter: (row, column) => {
-            return row.produceType && row.produceType.length
-              ? row.produceType
-                  .map((item) => this.getDictValue('生产类型', item + ''))
-                  .join(',')
-              : '';
-          }
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
+            }
         },
         // {
         //   width: 120,

+ 7 - 6
src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturnDetail.vue

@@ -54,7 +54,7 @@
 </template>
 <script>
   import fileMain from '@/components/addDoc/index.vue';
-
+  import { lbjtList } from '@/enum/dict.js';
 
   export default {
     components: {
@@ -244,11 +244,12 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictValue('生产类型', item + ''))
-                    .join(',')
-                : '';
+              if(row.produceType){
+                return row.produceType.map(item=>{
+                  return lbjtList[item]
+                }).toString()
+              }
+          
             }
           },
           // {