2213980799@qq.com 1 год назад
Родитель
Сommit
bfb9e2d873

+ 1 - 0
src/BIZComponents/saleGeneralityInventoryTable.vue

@@ -1369,6 +1369,7 @@
           this.$set(parasm, 'measuringUnit', item.measuringUnit);
           this.$set(parasm, 'specification', item.specification);
           this.$set(parasm, 'weightUnit', item.weightUnit);
+          this.$set(parasm, 'singleWeight', item.roughWeight);
 
           this.$set(parasm, 'imgCode', item.imgCode);
           this.$set(parasm, 'produceType', item.produceType);

+ 767 - 772
src/views/contractManage/contractBook/components/inventoryTable.vue

@@ -40,7 +40,8 @@
               icon="el-icon-plus"
               class="ele-btn-icon"
               v-if="!isContractId"
-              @click="handlAdd">
+              @click="handlAdd"
+            >
               新增临时产品
             </el-button>
           </div>
@@ -85,18 +86,18 @@
             trigger: 'change'
           }"
         >
-        <el-input
-            :disabled="isContractId||row.productCode"
+          <el-input
+            :disabled="isContractId || row.productCode"
             v-model="row.productName"
             placeholder="请输入"
-            style="width: 60%;margin-right: 10px;"
+            style="width: 60%; margin-right: 10px"
           ></el-input>
           <el-button
             size="small"
             type="primary"
             @click.native="handParent(row, $index)"
-          >选择
-        </el-button>
+            >选择
+          </el-button>
         </el-form-item>
       </template>
       <template v-slot:headerCustomerMark="{ column }">
@@ -186,9 +187,9 @@
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.productBrand'"
         >
-          <el-input v-model="scope.row.productBrand" 
-          :disabled="scope.row.productCode"
-          
+          <el-input
+            v-model="scope.row.productBrand"
+            :disabled="scope.row.productCode"
           ></el-input>
         </el-form-item>
       </template>
@@ -198,8 +199,9 @@
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.modelType'"
         >
-          <el-input v-model="scope.row.modelType" 
-          :disabled="scope.row.productCode"
+          <el-input
+            v-model="scope.row.modelType"
+            :disabled="scope.row.productCode"
           ></el-input>
         </el-form-item>
       </template>
@@ -208,8 +210,9 @@
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.specification'"
         >
-          <el-input v-model="scope.row.specification" 
-          :disabled="scope.row.productCode"
+          <el-input
+            v-model="scope.row.specification"
+            :disabled="scope.row.productCode"
           ></el-input>
         </el-form-item>
       </template>
@@ -276,7 +279,6 @@
           <el-input
             v-model="scope.row.measuringUnit"
             :disabled="scope.row.productCode"
-
             placeholder="请输入"
           ></el-input>
         </el-form-item>
@@ -590,816 +592,809 @@
   </el-form>
 </template>
 <script>
-  import { numberReg, positiveIntegerReg } from 'ele-admin';
-  import productList from '@/BIZComponents/product-list.vue';
-  import dictMixins from '@/mixins/dictMixins';
-  import fileUpload from '@/components/upload/fileUpload';
-  import headList from '@/BIZComponents/user-select/user-select.vue';
-  import ProductionVersion from '@/components/ProductionVersion2/index.vue';
-  import { getFile } from '@/api/system/file';
-  import fileMain from '@/components/addDoc/index.vue';
+import { numberReg, positiveIntegerReg } from 'ele-admin';
+import productList from '@/BIZComponents/product-list.vue';
+import dictMixins from '@/mixins/dictMixins';
+import fileUpload from '@/components/upload/fileUpload';
+import headList from '@/BIZComponents/user-select/user-select.vue';
+import ProductionVersion from '@/components/ProductionVersion2/index.vue';
+import { getFile } from '@/api/system/file';
+import fileMain from '@/components/addDoc/index.vue';
 
-  const dayjs = require('dayjs');
+const dayjs = require('dayjs');
 
-  export default {
-    mixins: [dictMixins],
-    components: {
-      fileMain,
-      productList,
-      fileUpload,
-      headList,
-      ProductionVersion
+export default {
+  mixins: [dictMixins],
+  components: {
+    fileMain,
+    productList,
+    fileUpload,
+    headList,
+    ProductionVersion
+  },
+  props: {
+    pageName: {
+      default: '',
+      type: String
     },
-    props: {
-      pageName: {
-        default: '',
-        type: String
-      },
-      isDiscountTotalPrice: {
-        default: false,
-        type: Boolean
-      },
-      isDeliveryDeadline: {
-        default: true,
-        type: Boolean
-      },
-      isGuaranteePeriod: {
-        default: true,
-        type: Boolean
-      },
-      isCustomerMark: {
-        default: true,
-        type: Boolean
-      },
-      customerMark:'',
-      
-      contractBookType: {
-        default: 1
-      },
-      isContractId: {
-        type: Boolean,
-        default: false
-      },
-      pricingWay: {
-        type: [Number, String],
-        default: 1
-      },
-      detailType: {
-        default: 0
-      }
+    isDiscountTotalPrice: {
+      default: false,
+      type: Boolean
     },
-    data() {
-      const defaultForm = {
-        key: null,
-        endTime: '',
-        isFirst: 0,
-        name: '',
-        startTime: '',
-        workHour: '',
-        guaranteePeriodUnitCode: '',
-        technicalDrawings: []
-      };
-      return {
-        allPrice: 0.0,
-        numberReg,
-        defaultForm,
-        form: {
-          discountTotalPrice: '',
-          datasource: []
-        },
-        rules: {}
-      };
+    isDeliveryDeadline: {
+      default: true,
+      type: Boolean
+    },
+    isGuaranteePeriod: {
+      default: true,
+      type: Boolean
+    },
+    isCustomerMark: {
+      default: true,
+      type: Boolean
+    },
+    customerMark: '',
+
+    contractBookType: {
+      default: 1
+    },
+    isContractId: {
+      type: Boolean,
+      default: false
+    },
+    pricingWay: {
+      type: [Number, String],
+      default: 1
     },
-    computed: {
-      canHandl() {
-        return this.form.datasource.length;
+    detailType: {
+      default: 0
+    }
+  },
+  data() {
+    const defaultForm = {
+      key: null,
+      endTime: '',
+      isFirst: 0,
+      name: '',
+      startTime: '',
+      workHour: '',
+      guaranteePeriodUnitCode: '',
+      technicalDrawings: []
+    };
+    return {
+      allPrice: 0.0,
+      numberReg,
+      defaultForm,
+      form: {
+        discountTotalPrice: '',
+        datasource: []
       },
-      columns() {
-        return [
-          {
-            width: 45,
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-            fixed: 'left'
-          },
-          {
-            width: 250,
-            prop: 'productName',
-            label: '名称',
-            slot: 'productName',
-            headerSlot: 'headerProductName',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'productCode',
-            label: '编码',
-            slot: 'productCode',
-            align: 'center'
-          },
-          {
-            width: 200,
-            prop: 'customerMark',
-            label: '客户代号',
-            slot: 'customerMark',
-            headerSlot: 'headerCustomerMark',
-            show: this.isCustomerMark,
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'totalCount',
-            label: '数量',
-            slot: 'totalCount',
-            headerSlot: 'headerTotalCount',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'availableCountBase',
-            label: '库存数量',
-            slot: 'availableCountBase',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'singlePrice',
-            label: '单价',
-            slot: 'singlePrice',
-            headerSlot: 'headerSinglePrice',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 120,
-            prop: 'singleWeight',
-            label: '单重',
-            slot: 'singleWeight',
-            // headerSlot: 'headerSingleWeight',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'customerExpectDeliveryDeadline',
-            label: this.contractBookType == 1 ? '客户期望交期' : '交付日期',
-            slot: 'customerExpectDeliveryDeadline',
-            headerSlot: 'headerCustomerExpectDeliveryDeadline',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'produceDeliveryDeadline',
-            label: '生产交付交期',
-            slot: 'produceDeliveryDeadline',
-            show: this.contractBookType == 1 ? true : false,
-            align: 'center'
-          },
-          {
-            width: 200,
-            prop: 'productCategoryName',
-            label: '类型',
-            slot: 'productCategoryName',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'productBrand',
-            label: '牌号',
-            slot: 'productBrand',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'modelType',
-            label: '型号',
-            slot: 'modelType',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'specification',
-            label: '规格',
-            slot: 'specification',
-            align: 'center'
-          },
+      rules: {}
+    };
+  },
+  computed: {
+    canHandl() {
+      return this.form.datasource.length;
+    },
+    columns() {
+      return [
+        {
+          width: 45,
+          type: 'index',
+          columnKey: 'index',
+          align: 'center',
+          fixed: 'left'
+        },
+        {
+          width: 250,
+          prop: 'productName',
+          label: '名称',
+          slot: 'productName',
+          headerSlot: 'headerProductName',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'productCode',
+          label: '编码',
+          slot: 'productCode',
+          align: 'center'
+        },
+        {
+          width: 200,
+          prop: 'customerMark',
+          label: '客户代号',
+          slot: 'customerMark',
+          headerSlot: 'headerCustomerMark',
+          show: this.isCustomerMark,
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'totalCount',
+          label: '数量',
+          slot: 'totalCount',
+          headerSlot: 'headerTotalCount',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'availableCountBase',
+          label: '库存数量',
+          slot: 'availableCountBase',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'singlePrice',
+          label: '单价',
+          slot: 'singlePrice',
+          headerSlot: 'headerSinglePrice',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 120,
+          prop: 'singleWeight',
+          label: '单重',
+          slot: 'singleWeight',
+          // headerSlot: 'headerSingleWeight',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'customerExpectDeliveryDeadline',
+          label: this.contractBookType == 1 ? '客户期望交期' : '交付日期',
+          slot: 'customerExpectDeliveryDeadline',
+          headerSlot: 'headerCustomerExpectDeliveryDeadline',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'produceDeliveryDeadline',
+          label: '生产交付交期',
+          slot: 'produceDeliveryDeadline',
+          show: this.contractBookType == 1 ? true : false,
+          align: 'center'
+        },
+        {
+          width: 200,
+          prop: 'productCategoryName',
+          label: '类型',
+          slot: 'productCategoryName',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'productBrand',
+          label: '牌号',
+          slot: 'productBrand',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'modelType',
+          label: '型号',
+          slot: 'modelType',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'specification',
+          label: '规格',
+          slot: 'specification',
+          align: 'center'
+        },
 
-          {
-            width: 120,
-            prop: 'measuringUnit',
-            label: '计量单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
+        {
+          width: 120,
+          prop: 'measuringUnit',
+          label: '计量单位',
+          slot: 'measuringUnit',
+          align: 'center'
+        },
 
-          {
-            width: 120,
-            prop: 'totalWeight',
-            label: '总重',
-            slot: 'totalWeight',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'weightUnit',
-            label: '重量单位',
-            slot: 'weightUnit',
-            align: 'center'
-          },
+        {
+          width: 120,
+          prop: 'totalWeight',
+          label: '总重',
+          slot: 'totalWeight',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'weightUnit',
+          label: '重量单位',
+          slot: 'weightUnit',
+          align: 'center'
+        },
 
-          {
-            width: 160,
-            prop: 'discountSinglePrice',
-            label: '折让单价',
-            align: 'center',
-            show: !this.detailType,
+        {
+          width: 160,
+          prop: 'discountSinglePrice',
+          label: '折让单价',
+          align: 'center',
+          show: !this.detailType,
 
-            formatter: (_row, _column, cellValue) => {
-              return _row.discountSinglePrice
-                ? Number(_row.discountSinglePrice).toFixed(2)
-                : '';
-            }
-          },
-          {
-            width: 120,
-            prop: 'totalPrice',
-            label: '合计',
-            slot: 'totalPrice',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 160,
-            prop: 'discountTotalPrice',
-            label: '折让合计',
-            align: 'center',
-            show: !this.detailType,
-            formatter: (_row, _column, cellValue) => {
-              return _row.discountTotalPrice
-                ? Number(_row.discountTotalPrice).toFixed(2)
-                : '';
-            }
-          },
+          formatter: (_row, _column, cellValue) => {
+            return _row.discountSinglePrice
+              ? Number(_row.discountSinglePrice).toFixed(2)
+              : '';
+          }
+        },
+        {
+          width: 120,
+          prop: 'totalPrice',
+          label: '合计',
+          slot: 'totalPrice',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 160,
+          prop: 'discountTotalPrice',
+          label: '折让合计',
+          align: 'center',
+          show: !this.detailType,
+          formatter: (_row, _column, cellValue) => {
+            return _row.discountTotalPrice
+              ? Number(_row.discountTotalPrice).toFixed(2)
+              : '';
+          }
+        },
 
-          // {
-          //   width: 80,
-          //   prop: 'deliveryDays',
-          //   label: '交期(天)',
-          //   slot: 'deliveryDays'
-          // },
-          // {
-          //   width: 160,
-          //   prop: 'deliveryDeadline',
-          //   label: '交期截止日期',
-          //   slot: 'deliveryDeadline',
-          //   show: this.isDeliveryDeadline
-          // },
+        // {
+        //   width: 80,
+        //   prop: 'deliveryDays',
+        //   label: '交期(天)',
+        //   slot: 'deliveryDays'
+        // },
+        // {
+        //   width: 160,
+        //   prop: 'deliveryDeadline',
+        //   label: '交期截止日期',
+        //   slot: 'deliveryDeadline',
+        //   show: this.isDeliveryDeadline
+        // },
 
-          {
-            width: 200,
-            prop: 'guaranteePeriod',
-            label: '质保期',
-            slot: 'guaranteePeriod',
-            align: 'center'
-          },
-          {
-            width: 200,
-            prop: 'guaranteePeriodDeadline',
-            label: '质保期截止日期',
-            slot: 'guaranteePeriodDeadline',
-            show: this.isGuaranteePeriod,
-            align: 'center'
-          },
-          // {
-          //   width: 120,
-          //   prop: 'guaranteePeriodUnitCode',
-          //   label: '',
-          //   slot: 'guaranteePeriodUnitCode'
-          // },
-          {
-            width: 220,
-            prop: 'customerReqFiles',
-            label: '客户需求',
-            slot: 'customerReqFiles',
-            align: 'center'
-          },
-          {
-            width: 130,
-            prop: 'technicalAnswerName',
-            label: '技术答疑人',
-            slot: 'technicalAnswerName',
-            align: 'center'
-          },
-          {
-            width: 220,
-            prop: 'technicalParams',
-            label: '技术参数',
-            slot: 'technicalParams',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'technicalDrawings',
-            label: '技术图纸',
-            slot: 'technicalDrawings',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'technologyRouteName',
-            label: '工艺路线',
-            slot: 'technologyRouteName',
-            show: this.contractBookType == 1 ? true : false,
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'industryArtFiles',
-            label: '工艺附件',
-            slot: 'industryArtFiles',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'otherFiles',
-            label: '其他附件',
-            slot: 'otherFiles',
-            align: 'center'
-          },
-          {
-            width: 220,
-            prop: 'remark',
-            label: '备注',
-            slot: 'remark',
-            align: 'center'
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 120,
-            align: 'center',
-            resizable: false,
-            slot: 'action',
-            fixed: 'right',
-            showOverflowTooltip: true
-          }
-        ];
-      }
+        {
+          width: 200,
+          prop: 'guaranteePeriod',
+          label: '质保期',
+          slot: 'guaranteePeriod',
+          align: 'center'
+        },
+        {
+          width: 200,
+          prop: 'guaranteePeriodDeadline',
+          label: '质保期截止日期',
+          slot: 'guaranteePeriodDeadline',
+          show: this.isGuaranteePeriod,
+          align: 'center'
+        },
+        // {
+        //   width: 120,
+        //   prop: 'guaranteePeriodUnitCode',
+        //   label: '',
+        //   slot: 'guaranteePeriodUnitCode'
+        // },
+        {
+          width: 220,
+          prop: 'customerReqFiles',
+          label: '客户需求',
+          slot: 'customerReqFiles',
+          align: 'center'
+        },
+        {
+          width: 130,
+          prop: 'technicalAnswerName',
+          label: '技术答疑人',
+          slot: 'technicalAnswerName',
+          align: 'center'
+        },
+        {
+          width: 220,
+          prop: 'technicalParams',
+          label: '技术参数',
+          slot: 'technicalParams',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'technicalDrawings',
+          label: '技术图纸',
+          slot: 'technicalDrawings',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'technologyRouteName',
+          label: '工艺路线',
+          slot: 'technologyRouteName',
+          show: this.contractBookType == 1 ? true : false,
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'industryArtFiles',
+          label: '工艺附件',
+          slot: 'industryArtFiles',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'otherFiles',
+          label: '其他附件',
+          slot: 'otherFiles',
+          align: 'center'
+        },
+        {
+          width: 220,
+          prop: 'remark',
+          label: '备注',
+          slot: 'remark',
+          align: 'center'
+        },
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 120,
+          align: 'center',
+          resizable: false,
+          slot: 'action',
+          fixed: 'right',
+          showOverflowTooltip: true
+        }
+      ];
+    }
+  },
+
+  watch: {
+    contractBookType(n) {
+      this.columns.forEach((item) => {
+        if (item.label == '生产交付交期' || item.label == '工艺路线') {
+          item.show = n == 1 ? true : false;
+        }
+        if (item.prop == 'customerExpectDeliveryDeadline') {
+          item.label = n == 1 ? '客户期望交期' : '交付日期';
+        }
+      });
+      this.$refs.table.reRenderTable();
+    }
+  },
+
+  methods: {
+    positiveIntegerReg() {
+      return positiveIntegerReg;
+    },
+    downloadFile(file) {
+      getFile({ objectName: file.storePath }, file.name);
     },
+    openVersion(index) {
+      this.$refs.versionRefs.open(index);
+    },
+    //工艺路线
+    changeProduct(data, index) {
+      this.$set(this.form.datasource[index], 'technologyRouteName', data.name);
+      this.$set(this.form.datasource[index], 'technologyRouteId', data.id);
+    },
+    setDeliveryDays(row, index, type, isAll) {
+      if (isAll) {
+        this.form.datasource.forEach((item, i) => {
+          // if (item.deliveryDays) {
+          //   this.$set(
+          //     this.form.datasource[i],
+          //     'deliveryDeadline',
+          //     this.setDay(item.deliveryDays)
+          //   );
+          // }
+          // if (item.guaranteePeriodUnitCode) {
+          let guaranteePeriodUnitName = this.guaranteePeriodUnit(
+            item.guaranteePeriodUnitCode
+          );
 
-    watch: {
-      contractBookType(n) {
-        this.columns.forEach((item) => {
-          if (item.label == '生产交付交期' || item.label == '工艺路线') {
-            item.show = n == 1 ? true : false;
-          }
-          if (item.prop == 'customerExpectDeliveryDeadline') {
-            item.label = n == 1 ? '客户期望交期' : '交付日期';
-          }
+          this.$set(
+            this.form.datasource[i],
+            'guaranteePeriodDeadline',
+            guaranteePeriodUnitName != 'second'
+              ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
+              : ''
+          );
+          // }
         });
-        this.$refs.table.reRenderTable();
+        return;
       }
-    },
-
-    methods: {
-      positiveIntegerReg() {
-        return positiveIntegerReg;
-      },
-      downloadFile(file) {
-        getFile({ objectName: file.storePath }, file.name);
-      },
-      openVersion(index) {
-        this.$refs.versionRefs.open(index);
-      },
-      //工艺路线
-      changeProduct(data, index) {
+      // if (type == 'deliveryDays') {
+      //   this.$set(
+      //     this.form.datasource[index],
+      //     'deliveryDeadline',
+      //     this.setDay(row.deliveryDays)
+      //   );
+      // }
+      if (type == 'guaranteePeriod') {
+        let guaranteePeriodUnitName = this.guaranteePeriodUnit(
+          row.guaranteePeriodUnitCode
+        );
         this.$set(
           this.form.datasource[index],
-          'technologyRouteName',
-          data.name
+          'guaranteePeriodDeadline',
+          guaranteePeriodUnitName != 'second'
+            ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName)
+            : ''
         );
-        this.$set(this.form.datasource[index], 'technologyRouteId', data.id);
-      },
-      setDeliveryDays(row, index, type, isAll) {
-        if (isAll) {
-          this.form.datasource.forEach((item, i) => {
-            // if (item.deliveryDays) {
-            //   this.$set(
-            //     this.form.datasource[i],
-            //     'deliveryDeadline',
-            //     this.setDay(item.deliveryDays)
-            //   );
-            // }
-            // if (item.guaranteePeriodUnitCode) {
-            let guaranteePeriodUnitName = this.guaranteePeriodUnit(
-              item.guaranteePeriodUnitCode
-            );
+      }
+    },
+    guaranteePeriodUnit(code) {
+      return code == 3
+        ? 'day'
+        : code == 4
+        ? 'month'
+        : code == 5
+        ? 'year'
+        : 'second';
+    },
+    setDay(addDay, dateType = 'day') {
+      return dayjs(this.contractStartDate || new Date())
+        .add(addDay, dateType)
+        .format('YYYY-MM-DD');
+    },
+    // 返回列表数据
+    getTableValue() {
+      let comitDatasource = this.form.datasource;
+      if (comitDatasource.length === 0) return [];
+      comitDatasource.forEach((v) => {
+        v.detailType = this.detailType;
 
-            this.$set(
-              this.form.datasource[i],
-              'guaranteePeriodDeadline',
-              guaranteePeriodUnitName != 'second'
-                ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
-                : ''
-            );
-            // }
-          });
-          return;
+        if (v.guaranteePeriodUnitCode) {
+          v.guaranteePeriodUnitName = this.getDictValue(
+            '保质期单位',
+            v.guaranteePeriodUnitCode
+          );
         }
-        // if (type == 'deliveryDays') {
-        //   this.$set(
-        //     this.form.datasource[index],
-        //     'deliveryDeadline',
-        //     this.setDay(row.deliveryDays)
-        //   );
-        // }
-        if (type == 'guaranteePeriod') {
-          let guaranteePeriodUnitName = this.guaranteePeriodUnit(
-            row.guaranteePeriodUnitCode
+        v.technicalDrawings = v.technicalDrawings ? v.technicalDrawings : [];
+        v.customerReqFiles = v.customerReqFiles || [];
+        v.industryArtFiles = v.industryArtFiles || [];
+        v.otherFiles = v.otherFiles || [];
+      });
+      return comitDatasource;
+    },
+    getPrice() {
+      return [this.allPrice, this.form.discountTotalPrice];
+    },
+    //改变数量
+    changeCount(row, index) {
+      if (this.detailType) {
+        return;
+      }
+      this.singleWeightChange(row, index);
+      this.getTotalPrice();
+    },
+    //计算总金额
+    getTotalPrice(row) {
+      if (this.form.datasource.length) {
+        let sum = 0;
+        sum = this.getNumTotalPrice();
+        let allsum = sum.toFixed(2);
+        this.allPrice = allsum;
+        this.form.discountTotalPrice = allsum;
+        this.$store.commit('concact/setDiscountAmount', allsum);
+        this.$store.commit('order/setAllcountAmount', allsum);
+        this.$emit('orderDiscountAmount', this.allPrice);
+        this.$refs.table.reload();
+        return allsum;
+      } else {
+        this.allPrice = 0.0;
+        this.form.discountTotalPrice = 0.0;
+        this.$emit('orderDiscountAmount', 0);
+        return 0.0;
+      }
+    },
+    //计算总金额
+    getNumTotalPrice(sum = 0) {
+      this.form.datasource.forEach((r, index) => {
+        this.$set(
+          r,
+          'discountSinglePrice',
+          r.singlePrice ? Number(r.singlePrice) : ''
+        );
+        if (r.singlePrice) {
+          //&& r.totalCount
+          r.totalPrice = this.getAllPrice(r);
+          r.discountTotalPrice = this.getDiscountTotalPrice(r);
+          this.$set(
+            this.form.datasource[index],
+            'totalPrice',
+            Number(r.totalPrice)
           );
           this.$set(
             this.form.datasource[index],
-            'guaranteePeriodDeadline',
-            guaranteePeriodUnitName != 'second'
-              ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName)
-              : ''
+            'discountTotalPrice',
+            Number(r.discountTotalPrice)
           );
+          sum += Number(r.totalPrice);
+        } else {
+          this.$set(r, 'totalPrice', 0);
+          this.$set(r, 'discountTotalPrice', 0);
         }
-      },
-      guaranteePeriodUnit(code) {
-        return code == 3
-          ? 'day'
-          : code == 4
-          ? 'month'
-          : code == 5
-          ? 'year'
-          : 'second';
-      },
-      setDay(addDay, dateType = 'day') {
-        return dayjs(this.contractStartDate || new Date())
-          .add(addDay, dateType)
-          .format('YYYY-MM-DD');
-      },
-      // 返回列表数据
-      getTableValue() {
-        let comitDatasource = this.form.datasource;
-        if (comitDatasource.length === 0) return [];
-        comitDatasource.forEach((v) => {
-          v.detailType = this.detailType;
-
-          if (v.guaranteePeriodUnitCode) {
-            v.guaranteePeriodUnitName = this.getDictValue(
-              '保质期单位',
-              v.guaranteePeriodUnitCode
-            );
-          }
-          v.technicalDrawings = v.technicalDrawings ? v.technicalDrawings : [];
-          v.customerReqFiles = v.customerReqFiles || [];
-          v.industryArtFiles = v.industryArtFiles || [];
-          v.otherFiles = v.otherFiles || [];
-        });
-        return comitDatasource;
-      },
-      getPrice() {
-        return [this.allPrice, this.form.discountTotalPrice];
-      },
-      //改变数量
-      changeCount(row, index) {
-        if (this.detailType) {
+      });
+      return isNaN(sum) ? 0 : sum;
+    },
+    //更新优惠后总金额
+    discountInput(val) {
+      this.$store.commit('concact/setDiscountAmount', val);
+    },
+    //设置优惠后总金额修改产品单价
+    discountInputByOrder(val) {
+      if (val > this.allPrice) {
+        this.form.discountTotalPrice = this.allPrice;
+        this.$message.warning('优惠金额不能大于总计金额');
+      } else {
+        this.form.discountTotalPrice = val;
+      }
+      //获取优惠金额和总计的差价
+      this.form.datasource.forEach((item) => {
+        if (val === 0) {
+          item.discountTotalPrice = 0;
+          item.discountSinglePrice = 0;
           return;
         }
-        this.singleWeightChange(row, index);
-        this.getTotalPrice();
-      },
-      //计算总金额
-      getTotalPrice(row) {
-        if (this.form.datasource.length) {
-          let sum = 0;
-          sum = this.getNumTotalPrice();
-          let allsum = sum.toFixed(2);
-          this.allPrice = allsum;
-          this.form.discountTotalPrice = allsum;
-          this.$store.commit('concact/setDiscountAmount', allsum);
-          this.$store.commit('order/setAllcountAmount', allsum);
-          this.$emit('orderDiscountAmount', this.allPrice);
-          this.$refs.table.reload();
-          return allsum;
-        } else {
-          this.allPrice = 0.0;
-          this.form.discountTotalPrice = 0.0;
-          this.$emit('orderDiscountAmount', 0);
-          return 0.0;
+        if (!val) {
+          item.discountTotalPrice = item.totalPrice;
+          item.discountSinglePrice = item.singlePrice;
+          return;
         }
-      },
-      //计算总金额
-      getNumTotalPrice(sum = 0) {
-        this.form.datasource.forEach((r, index) => {
-          this.$set(
-            r,
-            'discountSinglePrice',
-            r.singlePrice ? Number(r.singlePrice) : ''
+        //获取折让单价
+        item.discountSinglePrice = this.getDiscountSinglePrice(item);
+        item.discountTotalPrice = this.getDiscountTotalPrice(item);
+      });
+      this.$refs.table.reload();
+      this.$store.commit('concact/setDiscountAmount', val);
+    },
+    //获取折让单价
+    getDiscountSinglePrice(row) {
+      let num =
+        (Number(this.form.discountTotalPrice) / Number(this.allPrice)) *
+        Number(row.singlePrice);
+      return isNaN(num) ? 0 : num;
+    },
+    //获取合计
+    getAllPrice(row) {
+      let num = 0;
+      switch (this.pricingWay) {
+        case 1: //按数量计价计算总金额
+          num = Number(row.singlePrice) * Number(row.totalCount);
+          break;
+        case 2: //按重量计价计算总金额
+          num =
+            Number(row.singlePrice) *
+            Number(row.totalCount) *
+            Number(row.singleWeight);
+          break;
+      }
+      return isNaN(num) ? '' : num.toFixed(2);
+    },
+    //获取折让合计
+    getDiscountTotalPrice(row) {
+      let num = 0;
+      switch (this.pricingWay) {
+        case 1: //按数量计价计算折让合计
+          num = Number(row.discountSinglePrice) * (Number(row.totalCount) || 0);
+          break;
+        case 2: //按重量计价计算折让合计
+          num =
+            Number(row.discountSinglePrice) *
+            (Number(row.totalCount) || 0) *
+            (Number(row.singleWeight) || 0);
+          break;
+      }
+      return isNaN(num) ? 0 : num.toFixed(2);
+    },
+    //带料 产出品
+    putTableValueNew(data) {
+      this.form.datasource = data;
+    },
+    //修改回显
+    putTableValue(data) {
+      let productList =
+        (data &&
+          (data.quoteProductList || data.productList || data.detailList)) ||
+        [];
+      if (productList) {
+        productList.forEach((item) => {
+          item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
+            ? item.guaranteePeriodUnitCode + ''
+            : '';
+          // if (item.deliveryDays) {
+          //   item['deliveryDeadline'] =
+          //     item['deliveryDeadline'] || this.setDay(item.deliveryDays);
+          // }
+          let guaranteePeriodUnitName = this.guaranteePeriodUnit(
+            item.guaranteePeriodUnitCode
           );
-          if (r.singlePrice) {
-            //&& r.totalCount
-            r.totalPrice = this.getAllPrice(r);
-            r.discountTotalPrice = this.getDiscountTotalPrice(r);
-            this.$set(
-              this.form.datasource[index],
-              'totalPrice',
-              Number(r.totalPrice)
-            );
-            this.$set(
-              this.form.datasource[index],
-              'discountTotalPrice',
-              Number(r.discountTotalPrice)
-            );
-            sum += Number(r.totalPrice);
-          } else {
-            this.$set(r, 'totalPrice', 0);
-            this.$set(r, 'discountTotalPrice', 0);
-          }
-        });
-        return isNaN(sum) ? 0 : sum;
-      },
-      //更新优惠后总金额
-      discountInput(val) {
-        this.$store.commit('concact/setDiscountAmount', val);
-      },
-      //设置优惠后总金额修改产品单价
-      discountInputByOrder(val) {
-        if (val > this.allPrice) {
-          this.form.discountTotalPrice = this.allPrice;
-          this.$message.warning('优惠金额不能大于总计金额');
-        } else {
-          this.form.discountTotalPrice = val;
-        }
-        //获取优惠金额和总计的差价
-        this.form.datasource.forEach((item) => {
-          if (val === 0) {
-            item.discountTotalPrice = 0;
-            item.discountSinglePrice = 0;
-            return;
-          }
-          if (!val) {
-            item.discountTotalPrice = item.totalPrice;
-            item.discountSinglePrice = item.singlePrice;
-            return;
+          if (item.guaranteePeriod && item.guaranteePeriodUnitCode) {
+            item['guaranteePeriodDeadline'] =
+              item['guaranteePeriodDeadline'] ||
+              guaranteePeriodUnitName != 'second'
+                ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
+                : '';
           }
-          //获取折让单价
-          item.discountSinglePrice = this.getDiscountSinglePrice(item);
-          item.discountTotalPrice = this.getDiscountTotalPrice(item);
         });
-        this.$refs.table.reload();
-        this.$store.commit('concact/setDiscountAmount', val);
-      },
-      //获取折让单价
-      getDiscountSinglePrice(row) {
-        let num =
-          (Number(this.form.discountTotalPrice) / Number(this.allPrice)) *
-          Number(row.singlePrice);
-        return isNaN(num) ? 0 : num;
-      },
-      //获取合计
-      getAllPrice(row) {
-        let num = 0;
-        switch (this.pricingWay) {
-          case 1: //按数量计价计算总金额
-            num = Number(row.singlePrice) * Number(row.totalCount);
-            break;
-          case 2: //按重量计价计算总金额
-            num =
-              Number(row.singlePrice) *
-              Number(row.totalCount) *
-              Number(row.singleWeight);
-            break;
-        }
-        return isNaN(num) ? '' : num.toFixed(2);
-      },
-      //获取折让合计
-      getDiscountTotalPrice(row) {
-        let num = 0;
-        switch (this.pricingWay) {
-          case 1: //按数量计价计算折让合计
-            num =
-              Number(row.discountSinglePrice) * (Number(row.totalCount) || 0);
-            break;
-          case 2: //按重量计价计算折让合计
-            num =
-              Number(row.discountSinglePrice) *
-              (Number(row.totalCount) || 0) *
-              (Number(row.singleWeight) || 0);
-            break;
-        }
-        return isNaN(num) ? 0 : num.toFixed(2);
-      },
-      //带料 产出品
-      putTableValueNew(data) {
-        this.form.datasource = data;
-      },
-      //修改回显
-      putTableValue(data) {
-        let productList =
-          (data &&
-            (data.quoteProductList || data.productList || data.detailList)) ||
-          [];
-        if (productList) {
-          productList.forEach((item) => {
-            item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
-              ? item.guaranteePeriodUnitCode + ''
-              : '';
-            // if (item.deliveryDays) {
-            //   item['deliveryDeadline'] =
-            //     item['deliveryDeadline'] || this.setDay(item.deliveryDays);
-            // }
-            let guaranteePeriodUnitName = this.guaranteePeriodUnit(
-              item.guaranteePeriodUnitCode
-            );
-            if (item.guaranteePeriod && item.guaranteePeriodUnitCode) {
-              item['guaranteePeriodDeadline'] =
-                item['guaranteePeriodDeadline'] ||
-                guaranteePeriodUnitName != 'second'
-                  ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
-                  : '';
-            }
-          });
-          this.form.datasource = productList;
-          this.allPrice = data?.contractVO?.totalPrice;
-          // this.getTotalPrice();
+        this.form.datasource = productList;
+        this.allPrice = data?.contractVO?.totalPrice;
+        // this.getTotalPrice();
 
-          this.form.discountTotalPrice = data?.contractVO?.discountTotalPrice;
+        this.form.discountTotalPrice = data?.contractVO?.discountTotalPrice;
 
-          // this.discountInput(data?.contractVO?.discountTotalPrice);
-        }
-      },
-      //修改订单未选择合同时回显
-      putTableValueByOrder(row) {
-        let data = { ...row };
-        let productList = (data && data.productList) || [];
-        if (productList) {
-          productList.forEach((item) => {
-            item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
-              ? item.guaranteePeriodUnitCode + ''
-              : '';
-            // if (item.deliveryDays) {
-            //   item['deliveryDeadline'] =
-            //     item['deliveryDeadline'] || this.setDay(item.deliveryDays);
-            // }
-            let guaranteePeriodUnitName = this.guaranteePeriodUnit(
-              item.guaranteePeriodUnitCode
-            );
-            if (item.guaranteePeriod && item.guaranteePeriodUnitCode) {
-              item['guaranteePeriodDeadline'] =
-                item['guaranteePeriodDeadline'] ||
-                guaranteePeriodUnitName != 'second'
-                  ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
-                  : '';
-            }
-          });
-          this.form.datasource = productList;
-          this.allPrice = data.totalAmount;
-          this.form.discountTotalPrice = data.payAmount;
-        }
-      },
-      //计算单重
-      singleWeightChange(row, index) {
-        if (row && row.singleWeight && row.totalCount) {
-          row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
-          this.$set(
-            this.form.datasource[index],
-            'totalWeight',
-            row.totalWeight
+        // this.discountInput(data?.contractVO?.discountTotalPrice);
+      }
+    },
+    //修改订单未选择合同时回显
+    putTableValueByOrder(row) {
+      let data = { ...row };
+      let productList = (data && data.productList) || [];
+      if (productList) {
+        productList.forEach((item) => {
+          item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
+            ? item.guaranteePeriodUnitCode + ''
+            : '';
+          // if (item.deliveryDays) {
+          //   item['deliveryDeadline'] =
+          //     item['deliveryDeadline'] || this.setDay(item.deliveryDays);
+          // }
+          let guaranteePeriodUnitName = this.guaranteePeriodUnit(
+            item.guaranteePeriodUnitCode
           );
-        } else {
-          this.$set(this.form.datasource[index], 'totalWeight', '');
-        }
-        if (this.pricingWay == 2) {
-          this.getTotalPrice(row);
-        }
-      },
-      //选择产品
-      handParent(row, index) {
-        let item = {
-          id: row.productCode
-        };
-        this.$refs.productListRef.open(item, index);
-      },
-      //选择技术人回调
-      changeAnswer(obj, idx) {
-        this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
-        this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
-      },
-      handHead(row, index) {
-        let item = {
-          id: row.technicalAnswerId
-        };
-        this.$refs.headRef.open(item, index);
-      },
-      //选择产品回调
-      changeParent(obj, idx) {
-        console.log(this.customerMark,'sadsa')
-        obj.forEach((item, index) => {
-          let i = idx == -1 ? index : idx;
-          let row = JSON.parse(JSON.stringify(this.defaultForm));
-          row.key = this.form.datasource.length + 1;
-          let parasm = idx == -1 ? row : this.form.datasource[i];
-          this.$set(parasm, 'productId', item.id);
-          this.$set(parasm, 'categoryName', item.name);
-          this.$set(parasm, 'productCategoryId', item.categoryLevelId);
-          this.$set(parasm, 'productBrand', item.brandNum);
-          this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
-          this.$set(parasm, 'productCode', item.code);
-          this.$set(parasm, 'productName', item.name);
-          this.$set(parasm, 'modelType', item.modelType);
-          this.$set(parasm, 'availableCountBase', item.availableCountBase);
-          this.$set(parasm, 'measuringUnit', item.measuringUnit);
-          this.$set(parasm, 'specification', item.specification);
-          this.$set(parasm, 'weightUnit', item.weightUnit);
-          this.$set(parasm, 'customerMark', this.customerMark || '');
-          if (idx == -1) {
-            this.form.datasource.push(row);
+          if (item.guaranteePeriod && item.guaranteePeriodUnitCode) {
+            item['guaranteePeriodDeadline'] =
+              item['guaranteePeriodDeadline'] ||
+              guaranteePeriodUnitName != 'second'
+                ? this.setDay(item.guaranteePeriod, guaranteePeriodUnitName)
+                : '';
           }
         });
-      },
-      remove(row) {
-        let index = this.form.datasource.findIndex((n) => n.key == row.key);
-        if (index !== -1) {
-          this.form.datasource.splice(index, 1);
-          this.setSort();
-        }
-      },
-      // 清空表格
-      restTable() {
-        this.form.datasource = [];
-      },
-      // 重新排序
-      setSort() {
-        this.form.datasource.forEach((n, index) => {
-          n.key = index + 1;
-        });
-      },
-      // 添加
-      handlAdd() {
-        let item = JSON.parse(JSON.stringify(this.defaultForm));
-        item.key = this.form.datasource.length + 1;
-        this.form.datasource.push(item);
-      },
+        this.form.datasource = productList;
+        this.allPrice = data.totalAmount;
+        this.form.discountTotalPrice = data.payAmount;
+      }
+    },
+    //计算单重
+    singleWeightChange(row, index) {
+      if (row && row.singleWeight && row.totalCount) {
+        row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
+        this.$set(this.form.datasource[index], 'totalWeight', row.totalWeight);
+      } else {
+        this.$set(this.form.datasource[index], 'totalWeight', '');
+      }
+      if (this.pricingWay == 2) {
+        this.getTotalPrice(row);
+      }
+    },
+    //选择产品
+    handParent(row, index) {
+      let item = {
+        id: row.productCode
+      };
+      this.$refs.productListRef.open(item, index);
+    },
+    //选择技术人回调
+    changeAnswer(obj, idx) {
+      this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
+      this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
+    },
+    handHead(row, index) {
+      let item = {
+        id: row.technicalAnswerId
+      };
+      this.$refs.headRef.open(item, index);
+    },
+    //选择产品回调
+    changeParent(obj, idx) {
+      console.log(this.customerMark, 'sadsa');
+      obj.forEach((item, index) => {
+        let i = idx == -1 ? index : idx;
+        let row = JSON.parse(JSON.stringify(this.defaultForm));
+        row.key = this.form.datasource.length + 1;
+        let parasm = idx == -1 ? row : this.form.datasource[i];
+        this.$set(parasm, 'productId', item.id);
+        this.$set(parasm, 'categoryName', item.name);
+        this.$set(parasm, 'productCategoryId', item.categoryLevelId);
+        this.$set(parasm, 'productBrand', item.brandNum);
+        this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
+        this.$set(parasm, 'productCode', item.code);
+        this.$set(parasm, 'productName', item.name);
+        this.$set(parasm, 'modelType', item.modelType);
+        this.$set(parasm, 'availableCountBase', item.availableCountBase);
+        this.$set(parasm, 'measuringUnit', item.measuringUnit);
+        this.$set(parasm, 'specification', item.specification);
+        this.$set(parasm, 'weightUnit', item.weightUnit);
+        this.$set(parasm, 'customerMark', this.customerMark || '');
+        this.$set(parasm, 'singleWeight', item.roughWeight);
 
-      validateForm(callback) {
-        //开始表单校验
-        this.$refs.form.validate((valid) => {
-          callback(valid);
-        });
+        if (idx == -1) {
+          this.form.datasource.push(row);
+        }
+      });
+    },
+    remove(row) {
+      let index = this.form.datasource.findIndex((n) => n.key == row.key);
+      if (index !== -1) {
+        this.form.datasource.splice(index, 1);
+        this.setSort();
       }
+    },
+    // 清空表格
+    restTable() {
+      this.form.datasource = [];
+    },
+    // 重新排序
+    setSort() {
+      this.form.datasource.forEach((n, index) => {
+        n.key = index + 1;
+      });
+    },
+    // 添加
+    handlAdd() {
+      let item = JSON.parse(JSON.stringify(this.defaultForm));
+      item.key = this.form.datasource.length + 1;
+      this.form.datasource.push(item);
+    },
+
+    validateForm(callback) {
+      //开始表单校验
+      this.$refs.form.validate((valid) => {
+        callback(valid);
+      });
     }
-  };
+  }
+};
 </script>
 <style lang="scss" scoped>
-  .headbox {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+.headbox {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
 
-    .amount {
-      font-size: 14px;
-      font-weight: bold;
-      padding-right: 30px;
-    }
+  .amount {
+    font-size: 14px;
+    font-weight: bold;
+    padding-right: 30px;
   }
+}
 
-  .time-form .el-form-item {
-    margin-bottom: 0 !important;
-  }
+.time-form .el-form-item {
+  margin-bottom: 0 !important;
+}
 
-  ::v-deep .period {
-    display: flex;
+::v-deep .period {
+  display: flex;
 
-    .borderleftnone {
-      .el-input--medium .el-input__inner {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-      }
+  .borderleftnone {
+    .el-input--medium .el-input__inner {
+      border-top-right-radius: 0;
+      border-bottom-right-radius: 0;
     }
+  }
 
-    .borderrightnone {
-      .el-input--medium .el-input__inner {
-        border-top-left-radius: 0;
-        border-bottom-left-radius: 0;
-      }
+  .borderrightnone {
+    .el-input--medium .el-input__inner {
+      border-top-left-radius: 0;
+      border-bottom-left-radius: 0;
     }
   }
+}
 
-  ::v-deep .time-form tbody > tr:hover > td {
-    background-color: transparent !important;
-  }
+::v-deep .time-form tbody > tr:hover > td {
+  background-color: transparent !important;
+}
 
-  ::v-deep .time-form .el-table tr {
-    background-color: #ffffff;
-  }
+::v-deep .time-form .el-table tr {
+  background-color: #ffffff;
+}
 
-  .pricebox {
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-    font-weight: bold;
-  }
+.pricebox {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+  font-weight: bold;
+}
 </style>

+ 1 - 0
src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue

@@ -649,6 +649,7 @@ export default {
         this.$set(parasm, 'produceType', item.produceType);
         this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
         this.$set(parasm, 'packingSpecification', item.extField.packingSpecification);
+
         if (idx == -1) {
           this.form.datasource.push(row);
         }

+ 732 - 734
src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue

@@ -469,780 +469,778 @@
   </el-form>
 </template>
 <script>
-  import { emailReg, phoneReg, numberReg, positiveIntegerReg } from 'ele-admin';
-  import productList from '@/BIZComponents/product-list.vue';
-  import dictMixins from '@/mixins/dictMixins';
-  import store from '@/store';
-  import fileUpload from '@/components/upload/fileUpload';
-  import headList from '@/BIZComponents/user-select/user-select.vue';
-  import { getFile } from '@/api/system/file';
-  import { getByCode } from '@/api/system/dictionary-data';
-  import fileMain from '@/components/addDoc/index.vue';
-  import billDetailDialog from './billDetailDialog.vue';
-  import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
-  import { getCode } from '@/components/addDoc/api/index.js';
+import { emailReg, phoneReg, numberReg, positiveIntegerReg } from 'ele-admin';
+import productList from '@/BIZComponents/product-list.vue';
+import dictMixins from '@/mixins/dictMixins';
+import store from '@/store';
+import fileUpload from '@/components/upload/fileUpload';
+import headList from '@/BIZComponents/user-select/user-select.vue';
+import { getFile } from '@/api/system/file';
+import { getByCode } from '@/api/system/dictionary-data';
+import fileMain from '@/components/addDoc/index.vue';
+import billDetailDialog from './billDetailDialog.vue';
+import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+import { getCode } from '@/components/addDoc/api/index.js';
 
-  const dayjs = require('dayjs');
+const dayjs = require('dayjs');
 
-  export default {
-    mixins: [dictMixins],
-    props: {
-      isContractId: {
-        type: Boolean,
-        default: false
-      },
-      pricingWay: {
-        type: [Number, String],
-        default: 1
-      },
-      supplierMark: {
-        type: [Number, String],
-        default: ''
-      },
-      detailType: {
-        default: 0
-      }
+export default {
+  mixins: [dictMixins],
+  props: {
+    isContractId: {
+      type: Boolean,
+      default: false
     },
-    components: {
-      taskinstanceDialog,
-      fileMain,
-      productList,
-      fileUpload,
-      billDetailDialog,
-      headList
+    pricingWay: {
+      type: [Number, String],
+      default: 1
     },
-    computed: {
-      canHandl() {
-        return this.form.datasource.length;
-      },
-      contractId() {
-        return this.$store.state.order.contractId;
-      }
+    supplierMark: {
+      type: [Number, String],
+      default: ''
     },
+    detailType: {
+      default: 0
+    }
+  },
+  components: {
+    taskinstanceDialog,
+    fileMain,
+    productList,
+    fileUpload,
+    billDetailDialog,
+    headList
+  },
+  computed: {
+    canHandl() {
+      return this.form.datasource.length;
+    },
+    contractId() {
+      return this.$store.state.order.contractId;
+    }
+  },
 
-    data() {
-      const defaultForm = {
-        key: null,
-        endTime: '',
-        isFirst: 0,
-        name: '',
-        startTime: '',
-        workHour: '',
-        technicalDrawings: []
-      };
-      return {
-        discountTotalPrice: 0.0,
-        allPrice: 0.0,
-        numberReg,
-        positiveIntegerReg,
-        defaultForm,
-        contractStartDate: new Date(),
-        form: {
-          datasource: []
+  data() {
+    const defaultForm = {
+      key: null,
+      endTime: '',
+      isFirst: 0,
+      name: '',
+      startTime: '',
+      workHour: '',
+      technicalDrawings: []
+    };
+    return {
+      discountTotalPrice: 0.0,
+      allPrice: 0.0,
+      numberReg,
+      positiveIntegerReg,
+      defaultForm,
+      contractStartDate: new Date(),
+      form: {
+        datasource: []
+      },
+      rules: {},
+      dictList: {},
+      billDetailDialogFlag: false,
+      taskinstanceDialogFlag: false,
+      columns: [
+        {
+          width: 45,
+          type: 'index',
+          columnKey: 'index',
+          align: 'center',
+          fixed: 'left'
+        },
+        {
+          width: 200,
+          prop: 'productName',
+          label: '名称',
+          slot: 'productName',
+          headerSlot: 'headerProductName',
+          align: 'center',
+          fixed: 'left'
+        },
+        {
+          width: 120,
+          prop: 'productCode',
+          label: '编码',
+          slot: 'productCode',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'requirementTotalCount',
+          label: '采购需求数量',
+          slot: 'requirementTotalCount',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'planTotalCount',
+          label: '采购计划数量',
+          slot: 'planTotalCount',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'inquiryTotalCount',
+          label: '采购核价数量',
+          slot: 'inquiryTotalCount',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'contractTotalCount',
+          label: '采购合同数量',
+          slot: 'contractTotalCount',
+          align: 'center'
+        },
+        {
+          width: 80,
+          prop: 'doneTotalCount',
+          label: '已采数量',
+          slot: 'doneTotalCount',
+          align: 'center'
+        },
+        {
+          width: 80,
+          prop: 'waitTotalCount',
+          label: '待采数量',
+          // slot: 'waitTotalCount',
+          align: 'center'
         },
-        rules: {},
-        dictList: {},
-        billDetailDialogFlag: false,
-        taskinstanceDialogFlag: false,
-        columns: [
-          {
-            width: 45,
-            type: 'index',
-            columnKey: 'index',
-            align: 'center',
-            fixed: 'left'
-          },
-          {
-            width: 200,
-            prop: 'productName',
-            label: '名称',
-            slot: 'productName',
-            headerSlot: 'headerProductName',
-            align: 'center',
-            fixed: 'left'
-          },
-          {
-            width: 120,
-            prop: 'productCode',
-            label: '编码',
-            slot: 'productCode',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'requirementTotalCount',
-            label: '采购需求数量',
-            slot: 'requirementTotalCount',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'planTotalCount',
-            label: '采购计划数量',
-            slot: 'planTotalCount',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'inquiryTotalCount',
-            label: '采购核价数量',
-            slot: 'inquiryTotalCount',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'contractTotalCount',
-            label: '采购合同数量',
-            slot: 'contractTotalCount',
-            align: 'center'
-          },
-          {
-            width: 80,
-            prop: 'doneTotalCount',
-            label: '已采数量',
-            slot: 'doneTotalCount',
-            align: 'center'
-          },
-          {
-            width: 80,
-            prop: 'waitTotalCount',
-            label: '待采数量',
-            // slot: 'waitTotalCount',
-            align: 'center'
-          },
 
-          {
-            width: 150,
-            prop: 'totalCount',
-            label: '数量',
-            slot: 'totalCount',
-            headerSlot: 'headerTotalCount',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'availableCountBase',
-            label: '库存数量',
-            slot: 'availableCountBase',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'singlePrice',
-            label: '单价(含税)',
-            slot: 'singlePrice',
-            headerSlot: 'headerSinglePrice',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 120,
-            prop: 'taxRate',
-            label: '税率',
-            slot: 'taxRate',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 120,
-            prop: 'supplierMark',
-            label: '供应商代号',
-            // headerSlot: 'headerSupplierMark',
-            slot: 'supplierMark',
-            align: 'center'
-          },
-          {
-            width: 200,
-            prop: 'productCategoryName',
-            label: '类型',
-            slot: 'productCategoryName',
-            showOverflowTooltip: true,
-            align: 'center'
-          },
-          {
-            minWidth: 240,
-            prop: 'taskName',
-            label: '工序',
-            slot: 'taskName',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'productBrand',
-            label: '牌号',
-            slot: 'productBrand',
-            showOverflowTooltip: true,
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'modelType',
-            label: '型号',
-            slot: 'modelType',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'specification',
-            label: '规格',
-            slot: 'specification',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'imgCode',
-            align: 'center',
-            label: '图号/件号',
-            showOverflowTooltip: true
-          },
-          {
-            width: 120,
-            prop: 'produceType',
-            align: 'center',
-            label: '生产类型',
-            showOverflowTooltip: true,
-            formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
-                    .join(',')
-                : '';
-            }
-          },
-          {
-            width: 120,
-            prop: 'approvalNumber',
-            align: 'center',
-            label: '批准文号',
-            showOverflowTooltip: true
-          },
-          {
-            width: 120,
-            prop: 'packingSpecification',
-            align: 'center',
-            label: '包装规格',
-            showOverflowTooltip: true
-          },
+        {
+          width: 150,
+          prop: 'totalCount',
+          label: '数量',
+          slot: 'totalCount',
+          headerSlot: 'headerTotalCount',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'availableCountBase',
+          label: '库存数量',
+          slot: 'availableCountBase',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'singlePrice',
+          label: '单价(含税)',
+          slot: 'singlePrice',
+          headerSlot: 'headerSinglePrice',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 120,
+          prop: 'taxRate',
+          label: '税率',
+          slot: 'taxRate',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 120,
+          prop: 'supplierMark',
+          label: '供应商代号',
+          // headerSlot: 'headerSupplierMark',
+          slot: 'supplierMark',
+          align: 'center'
+        },
+        {
+          width: 200,
+          prop: 'productCategoryName',
+          label: '类型',
+          slot: 'productCategoryName',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          minWidth: 240,
+          prop: 'taskName',
+          label: '工序',
+          slot: 'taskName',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'productBrand',
+          label: '牌号',
+          slot: 'productBrand',
+          showOverflowTooltip: true,
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'modelType',
+          label: '型号',
+          slot: 'modelType',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'specification',
+          label: '规格',
+          slot: 'specification',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'imgCode',
+          align: 'center',
+          label: '图号/件号',
+          showOverflowTooltip: true
+        },
+        {
+          width: 120,
+          prop: 'produceType',
+          align: 'center',
+          label: '生产类型',
+          showOverflowTooltip: true,
+          formatter: (row, column) => {
+            return row.produceType && row.produceType.length
+              ? row.produceType
+                  .map((item) => this.getDictV('productionType', item + ''))
+                  .join(',')
+              : '';
+          }
+        },
+        {
+          width: 120,
+          prop: 'approvalNumber',
+          align: 'center',
+          label: '批准文号',
+          showOverflowTooltip: true
+        },
+        {
+          width: 120,
+          prop: 'packingSpecification',
+          align: 'center',
+          label: '包装规格',
+          showOverflowTooltip: true
+        },
 
-          {
-            width: 80,
-            prop: 'measuringUnit',
-            label: '计量单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'singleWeight',
-            label: '单重',
-            slot: 'singleWeight',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'totalWeight',
-            label: '总重',
-            slot: 'totalWeight',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'weightUnit',
-            label: '重量单位',
-            slot: 'weightUnit',
-            align: 'center'
-          },
+        {
+          width: 80,
+          prop: 'measuringUnit',
+          label: '计量单位',
+          slot: 'measuringUnit',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'singleWeight',
+          label: '单重',
+          slot: 'singleWeight',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'totalWeight',
+          label: '总重',
+          slot: 'totalWeight',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'weightUnit',
+          label: '重量单位',
+          slot: 'weightUnit',
+          align: 'center'
+        },
 
-          {
-            width: 160,
-            prop: 'discountSinglePrice',
-            label: '折后单价(含税)',
-            slot: 'discountSinglePrice',
-            align: 'center',
-            show: !this.detailType
-          },
+        {
+          width: 160,
+          prop: 'discountSinglePrice',
+          label: '折后单价(含税)',
+          slot: 'discountSinglePrice',
+          align: 'center',
+          show: !this.detailType
+        },
 
-          {
-            width: 120,
-            prop: 'totalPrice',
-            label: '合计(含税)',
-            slot: 'totalPrice',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 120,
-            prop: 'discountTotalPrice',
-            label: '折后合计(含税)',
-            slot: 'discountTotalPrice',
-            align: 'center',
-            show: !this.detailType
-          },
-          {
-            width: 110,
-            prop: 'batchNo',
-            label: '批次号',
-            slot: 'batchNo',
-            align: 'center'
-          },
-          // {
-          //   width: 80,
-          //   prop: 'deliveryDays',
-          //   label: '交期(天)',
-          //   slot: 'deliveryDays'
-          // },
-          {
-            width: 160,
-            prop: 'deliveryDeadline',
-            label: '交期截止日期',
-            slot: 'deliveryDeadline',
-            align: 'center'
-            // headerSlot: 'headerDeadline'
-          },
-          {
-            width: 200,
-            prop: 'guaranteePeriod',
-            label: '质保期',
-            slot: 'guaranteePeriod',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'guaranteePeriodDeadline',
-            label: '	质保截止日期',
-            slot: 'guaranteePeriodDeadline',
-            align: 'center'
-          },
-          // {
-          //   width: 120,
-          //   prop: 'guaranteePeriodUnitCode',
-          //   label: '',
-          //   slot: 'guaranteePeriodUnitCode'
-          // },
-          {
-            width: 130,
-            prop: 'technicalAnswerName',
-            label: '技术答疑人',
-            slot: 'technicalAnswerName',
-            align: 'center'
-          },
-          {
-            width: 220,
-            prop: 'technicalParams',
-            label: '技术参数',
-            slot: 'technicalParams',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'technicalDrawings',
-            label: '技术图纸',
-            slot: 'technicalDrawings',
-            align: 'center'
-          },
-          {
-            width: 220,
-            prop: 'remark',
-            label: '备注',
-            slot: 'remark',
-            align: 'center'
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 120,
-            align: 'center',
-            resizable: false,
-            slot: 'action',
-            fixed: 'right',
-            showOverflowTooltip: true
-          }
-        ]
-      };
+        {
+          width: 120,
+          prop: 'totalPrice',
+          label: '合计(含税)',
+          slot: 'totalPrice',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 120,
+          prop: 'discountTotalPrice',
+          label: '折后合计(含税)',
+          slot: 'discountTotalPrice',
+          align: 'center',
+          show: !this.detailType
+        },
+        {
+          width: 110,
+          prop: 'batchNo',
+          label: '批次号',
+          slot: 'batchNo',
+          align: 'center'
+        },
+        // {
+        //   width: 80,
+        //   prop: 'deliveryDays',
+        //   label: '交期(天)',
+        //   slot: 'deliveryDays'
+        // },
+        {
+          width: 160,
+          prop: 'deliveryDeadline',
+          label: '交期截止日期',
+          slot: 'deliveryDeadline',
+          align: 'center'
+          // headerSlot: 'headerDeadline'
+        },
+        {
+          width: 200,
+          prop: 'guaranteePeriod',
+          label: '质保期',
+          slot: 'guaranteePeriod',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'guaranteePeriodDeadline',
+          label: '	质保截止日期',
+          slot: 'guaranteePeriodDeadline',
+          align: 'center'
+        },
+        // {
+        //   width: 120,
+        //   prop: 'guaranteePeriodUnitCode',
+        //   label: '',
+        //   slot: 'guaranteePeriodUnitCode'
+        // },
+        {
+          width: 130,
+          prop: 'technicalAnswerName',
+          label: '技术答疑人',
+          slot: 'technicalAnswerName',
+          align: 'center'
+        },
+        {
+          width: 220,
+          prop: 'technicalParams',
+          label: '技术参数',
+          slot: 'technicalParams',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'technicalDrawings',
+          label: '技术图纸',
+          slot: 'technicalDrawings',
+          align: 'center'
+        },
+        {
+          width: 220,
+          prop: 'remark',
+          label: '备注',
+          slot: 'remark',
+          align: 'center'
+        },
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 120,
+          align: 'center',
+          resizable: false,
+          slot: 'action',
+          fixed: 'right',
+          showOverflowTooltip: true
+        }
+      ]
+    };
+  },
+  created() {
+    this.getDictList('productionType');
+  },
+  methods: {
+    handleGetBillDetail(row, type) {
+      this.billDetailDialogFlag = true;
+      this.$nextTick(() => {
+        this.$refs.billDetailDialogRef.open(row, type);
+      });
     },
-    created() {
-      this.getDictList('productionType');
+    getDictV(code, val) {
+      if (!this.dictList[code]) return '';
+      return this.dictList[code].find((item) => item.value == val)?.label;
     },
-    methods: {
-      handleGetBillDetail(row, type) {
-        this.billDetailDialogFlag = true;
-        this.$nextTick(() => {
-          this.$refs.billDetailDialogRef.open(row, type);
-        });
-      },
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
-      },
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList[code] = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: values[0],
-            label: item[values[0]]
-          };
-        });
-      },
-      downloadFile(file) {
-        getFile({ objectName: file.storePath }, file.name);
-      },
-      // 返回列表数据
-      getTableValue() {
-        let comitDatasource = this.form.datasource;
+    async getDictList(code) {
+      let { data: res } = await getByCode(code);
+      this.dictList[code] = res.map((item) => {
+        let values = Object.keys(item);
+        return {
+          value: values[0],
+          label: item[values[0]]
+        };
+      });
+    },
+    downloadFile(file) {
+      getFile({ objectName: file.storePath }, file.name);
+    },
+    // 返回列表数据
+    getTableValue() {
+      let comitDatasource = this.form.datasource;
 
-        if (comitDatasource.length === 0) return [];
-        comitDatasource.forEach((v,i) => {
-          v.detailType = this.detailType;
-          // v.totalPrice = (v.totalCount * v.singlePrice)?.toFixed(2) || 0;
-          v.guaranteePeriodUnitName = this.getDictValue(
-            '质保期单位',
-            v.guaranteePeriodUnitCode
-          );
-          v.technicalDrawings = Array.isArray(v.technicalDrawings)
-            ? v.technicalDrawings
-            : [];
-        });
+      if (comitDatasource.length === 0) return [];
+      comitDatasource.forEach((v, i) => {
+        v.detailType = this.detailType;
+        // v.totalPrice = (v.totalCount * v.singlePrice)?.toFixed(2) || 0;
+        v.guaranteePeriodUnitName = this.getDictValue(
+          '质保期单位',
+          v.guaranteePeriodUnitCode
+        );
+        v.technicalDrawings = Array.isArray(v.technicalDrawings)
+          ? v.technicalDrawings
+          : [];
+      });
 
-        return comitDatasource;
-      },
-      getPrice() {
-        return [this.allPrice];
-      },
-      //改变数量
-      changeCount(row, index) {
-        if (this.detailType) {
-          return;
-        }
+      return comitDatasource;
+    },
+    getPrice() {
+      return [this.allPrice];
+    },
+    //改变数量
+    changeCount(row, index) {
+      if (this.detailType) {
+        return;
+      }
 
-        this.singleWeightChange(row, index);
-        this.getTotalPrice();
-      },
-      //计算总金额
-      getTotalPrice() {
-        if (this.form.datasource.length) {
-          let sum = 0;
-          sum = this.getNumTotalPrice();
-          let allsum = sum.toFixed(2);
-          this.allPrice = allsum;
-          this.form.discountTotalPrice = allsum;
-          this.$store.commit('concact/setDiscountAmount', allsum);
-          this.$store.commit('order/setAllcountAmount', allsum);
-          this.$emit('orderDiscountAmount', this.allPrice);
-          this.$refs.table.reload();
-          return allsum;
+      this.singleWeightChange(row, index);
+      this.getTotalPrice();
+    },
+    //计算总金额
+    getTotalPrice() {
+      if (this.form.datasource.length) {
+        let sum = 0;
+        sum = this.getNumTotalPrice();
+        let allsum = sum.toFixed(2);
+        this.allPrice = allsum;
+        this.form.discountTotalPrice = allsum;
+        this.$store.commit('concact/setDiscountAmount', allsum);
+        this.$store.commit('order/setAllcountAmount', allsum);
+        this.$emit('orderDiscountAmount', this.allPrice);
+        this.$refs.table.reload();
+        return allsum;
+      } else {
+        this.allPrice = 0.0;
+        this.form.discountTotalPrice = 0.0;
+        this.$emit('orderDiscountAmount', 0);
+        return 0.0;
+      }
+    },
+    //计算总金额
+    getNumTotalPrice(sum = 0) {
+      this.form.datasource.forEach((r) => {
+        this.$set(
+          r,
+          'discountSinglePrice',
+          r.singlePrice ? Number(r.singlePrice) : ''
+        );
+        if (r.singlePrice && r.totalCount) {
+          r.totalPrice = this.getAllPrice(r);
+          r.discountTotalPrice = this.getDiscountTotalPrice(r);
+          this.$set(r, 'totalPrice', Number(r.totalPrice));
+          this.$set(r, 'discountTotalPrice', Number(r.discountTotalPrice));
+          sum += Number(r.totalPrice);
         } else {
-          this.allPrice = 0.0;
-          this.form.discountTotalPrice = 0.0;
-          this.$emit('orderDiscountAmount', 0);
-          return 0.0;
+          this.$set(r, 'totalPrice', '');
+          this.$set(r, 'discountTotalPrice', '');
         }
-      },
-      //计算总金额
-      getNumTotalPrice(sum = 0) {
-        this.form.datasource.forEach((r) => {
-          this.$set(
-            r,
-            'discountSinglePrice',
-            r.singlePrice ? Number(r.singlePrice) : ''
-          );
-          if (r.singlePrice && r.totalCount) {
-            r.totalPrice = this.getAllPrice(r);
-            r.discountTotalPrice = this.getDiscountTotalPrice(r);
-            this.$set(r, 'totalPrice', Number(r.totalPrice));
-            this.$set(r, 'discountTotalPrice', Number(r.discountTotalPrice));
-            sum += Number(r.totalPrice);
-          } else {
-            this.$set(r, 'totalPrice', '');
-            this.$set(r, 'discountTotalPrice', '');
-          }
-        });
-        return sum;
-      },
+      });
+      return sum;
+    },
 
-      //计算单重
-      singleWeightChange(row, index) {
-        if (row && row.singleWeight && row.totalCount) {
-          row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
-          this.$set(
-            this.form.datasource[index],
-            'totalWeight',
-            row.totalWeight
-          );
+    //计算单重
+    singleWeightChange(row, index) {
+      if (row && row.singleWeight && row.totalCount) {
+        row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
+        this.$set(this.form.datasource[index], 'totalWeight', row.totalWeight);
+      }
+      if (this.pricingWay == 2) {
+        this.getTotalPrice(row);
+      }
+    },
+    //设置优惠后总金额修改产品单价
+    discountInputByOrder(val) {
+      this.form.discountTotalPrice = val;
+      //获取优惠金额和总计的差价
+      this.form.datasource.forEach((item) => {
+        if (val === 0) {
+          item.discountTotalPrice = 0;
+          item.discountSinglePrice = 0;
+          return;
         }
-        if (this.pricingWay == 2) {
-          this.getTotalPrice(row);
+        if (!val) {
+          item.discountTotalPrice = item.totalPrice;
+          item.discountSinglePrice = item.singlePrice;
+          return;
         }
-      },
-      //设置优惠后总金额修改产品单价
-      discountInputByOrder(val) {
-        this.form.discountTotalPrice = val;
-        //获取优惠金额和总计的差价
-        this.form.datasource.forEach((item) => {
-          if (val === 0) {
-            item.discountTotalPrice = 0;
-            item.discountSinglePrice = 0;
-            return;
-          }
-          if (!val) {
-            item.discountTotalPrice = item.totalPrice;
-            item.discountSinglePrice = item.singlePrice;
-            return;
-          }
-          //获取折让单价
-          item.discountSinglePrice = this.getDiscountSinglePrice(item);
-          item.discountTotalPrice = this.getDiscountTotalPrice(item);
-        });
-        this.$refs.table.reload();
-        this.$store.commit('concact/setDiscountAmount', val);
-      },
-      //获取折让单价
-      getDiscountSinglePrice(row) {
-        let num =
-          (Number(this.form.discountTotalPrice) / Number(this.allPrice)) *
-          Number(row.singlePrice);
-        return isNaN(num) ? '' : num;
-      },
-      handleTaskinstance(row, index) {
-        this.taskinstanceDialogFlag = true;
-        this.$nextTick(() => {
-          this.$refs.taskinstanceDialogRef.open(row, index);
+        //获取折让单价
+        item.discountSinglePrice = this.getDiscountSinglePrice(item);
+        item.discountTotalPrice = this.getDiscountTotalPrice(item);
+      });
+      this.$refs.table.reload();
+      this.$store.commit('concact/setDiscountAmount', val);
+    },
+    //获取折让单价
+    getDiscountSinglePrice(row) {
+      let num =
+        (Number(this.form.discountTotalPrice) / Number(this.allPrice)) *
+        Number(row.singlePrice);
+      return isNaN(num) ? '' : num;
+    },
+    handleTaskinstance(row, index) {
+      this.taskinstanceDialogFlag = true;
+      this.$nextTick(() => {
+        this.$refs.taskinstanceDialogRef.open(row, index);
+      });
+    },
+    saveTaskInstance(row = {}) {
+      this.$set(this.form.datasource[row.index], 'taskId', row.id);
+      this.$set(this.form.datasource[row.index], 'taskName', row.name);
+      this.$set(
+        this.form.datasource[row.index],
+        'routingId',
+        row.produceRoutingId
+      );
+    },
+    //获取合计
+    getAllPrice(row) {
+      let num = 0;
+      switch (this.pricingWay) {
+        case 1: //按数量计价计算总金额
+          num = Number(row.singlePrice) * Number(row.totalCount);
+          break;
+        case 2: //按重量计价计算总金额
+          num =
+            Number(row.singlePrice) *
+            Number(row.totalCount) *
+            Number(row.singleWeight);
+          break;
+      }
+      return isNaN(num) ? '' : num.toFixed(2);
+    },
+    //获取折让合计
+    getDiscountTotalPrice(row) {
+      let num = 0;
+      switch (this.pricingWay) {
+        case 1: //按数量计价计算折让合计
+          num = Number(row.discountSinglePrice) * Number(row.totalCount);
+          break;
+        case 2: //按重量计价计算折让合计
+          num =
+            Number(row.discountSinglePrice) *
+            Number(row.totalCount) *
+            Number(row.singleWeight);
+          break;
+      }
+      return isNaN(num) ? '' : num.toFixed(2);
+    },
+    //修改回显
+    putTableValue(data, contractStartDate) {
+      if (contractStartDate) {
+        this.contractStartDate = contractStartDate;
+      }
+      if (data) {
+        data.forEach((item) => {
+          item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
+            ? item.guaranteePeriodUnitCode + ''
+            : '';
+          item.deliveryDeadline = item.customerExpectDeliveryDeadline;
+          // if (item.deliveryDays) {
+          //   item['deliveryDeadline'] = this.setDay(item.deliveryDays);//customerExpectDeliveryDeadline
+          // }
         });
-      },
-      saveTaskInstance(row = {}) {
-        this.$set(this.form.datasource[row.index], 'taskId', row.id);
-        this.$set(this.form.datasource[row.index], 'taskName', row.name);
+        this.form.datasource = data;
+      }
+    },
+    //选择产品
+    handParent(row, index) {
+      let item = {
+        id: row.productCode
+      };
+      this.$refs.productListRef.open(item, index);
+    },
+    //选择技术人回调
+    changeAnswer(obj, idx) {
+      this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
+      this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
+    },
+    handHead(row, index) {
+      let item = {
+        id: row.technicalAnswerId
+      };
+      this.$refs.headRef.open(item, index);
+    },
+    getGoodsListData(obj = []) {
+      obj.forEach((item) => {
+        this.$set(item, 'supplierMark', this.supplierMark);
+        this.form.datasource.push(item);
+      });
+    },
+    //选择产品回调
+    changeParent(obj = [], idx) {
+      obj.forEach(async (item, index) => {
+        let i = idx == -1 ? index : idx;
+        let row = JSON.parse(JSON.stringify(this.defaultForm));
+        row.key = this.form.datasource.length + 1;
+        let parasm = idx == -1 ? row : this.form.datasource[i];
+        this.$set(parasm, 'productId', item.id);
+        this.$set(parasm, 'categoryName', item.name);
+        this.$set(parasm, 'productCategoryId', item.categoryLevelId);
+        this.$set(parasm, 'productBrand', item.brandNum);
+        this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
+        this.$set(parasm, 'productCode', item.code);
+        this.$set(parasm, 'productName', item.name);
+        this.$set(parasm, 'modelType', item.modelType);
+        this.$set(parasm, 'availableCountBase', item.availableCountBase);
+        this.$set(parasm, 'measuringUnit', item.measuringUnit);
+        this.$set(parasm, 'specification', item.specification);
+        this.$set(parasm, 'weightUnit', item.weightUnit);
+        this.$set(parasm, 'imgCode', item.imgCode);
+        this.$set(parasm, 'produceType', item.produceType);
+        this.$set(parasm, 'approvalNumber', item.extField?.approvalNumber);
+        this.$set(parasm, 'singleWeight', item.roughWeight);
+
         this.$set(
-          this.form.datasource[row.index],
-          'routingId',
-          row.produceRoutingId
+          parasm,
+          'packingSpecification',
+          item.extField?.packingSpecification
         );
-      },
-      //获取合计
-      getAllPrice(row) {
-        let num = 0;
-        switch (this.pricingWay) {
-          case 1: //按数量计价计算总金额
-            num = Number(row.singlePrice) * Number(row.totalCount);
-            break;
-          case 2: //按重量计价计算总金额
-            num =
-              Number(row.singlePrice) *
-              Number(row.totalCount) *
-              Number(row.singleWeight);
-            break;
-        }
-        return isNaN(num) ? '' : num.toFixed(2);
-      },
-      //获取折让合计
-      getDiscountTotalPrice(row) {
-        let num = 0;
-        switch (this.pricingWay) {
-          case 1: //按数量计价计算折让合计
-            num = Number(row.discountSinglePrice) * Number(row.totalCount);
-            break;
-          case 2: //按重量计价计算折让合计
-            num =
-              Number(row.discountSinglePrice) *
-              Number(row.totalCount) *
-              Number(row.singleWeight);
-            break;
-        }
-        return isNaN(num) ? '' : num.toFixed(2);
-      },
-      //修改回显
-      putTableValue(data, contractStartDate) {
-        if (contractStartDate) {
-          this.contractStartDate = contractStartDate;
-        }
-        if (data) {
-          data.forEach((item) => {
-            item.guaranteePeriodUnitCode = item.guaranteePeriodUnitCode
-              ? item.guaranteePeriodUnitCode + ''
-              : '';
-            item.deliveryDeadline = item.customerExpectDeliveryDeadline;
-            // if (item.deliveryDays) {
-            //   item['deliveryDeadline'] = this.setDay(item.deliveryDays);//customerExpectDeliveryDeadline
-            // }
-          });
-          this.form.datasource = data;
-        }
-      },
-      //选择产品
-      handParent(row, index) {
-        let item = {
-          id: row.productCode
-        };
-        this.$refs.productListRef.open(item, index);
-      },
-      //选择技术人回调
-      changeAnswer(obj, idx) {
-        this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
-        this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
-      },
-      handHead(row, index) {
-        let item = {
-          id: row.technicalAnswerId
-        };
-        this.$refs.headRef.open(item, index);
-      },
-      getGoodsListData(obj = []) {
-        obj.forEach((item) => {
-          this.$set(item, 'supplierMark', this.supplierMark);
-          this.form.datasource.push(item);
-        });
-      },
-      //选择产品回调
-      changeParent(obj = [], idx) {
-        obj.forEach(async (item, index) => {
-          let i = idx == -1 ? index : idx;
-          let row = JSON.parse(JSON.stringify(this.defaultForm));
-          row.key = this.form.datasource.length + 1;
-          let parasm = idx == -1 ? row : this.form.datasource[i];
-          this.$set(parasm, 'productId', item.id);
-          this.$set(parasm, 'categoryName', item.name);
-          this.$set(parasm, 'productCategoryId', item.categoryLevelId);
-          this.$set(parasm, 'productBrand', item.brandNum);
-          this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
-          this.$set(parasm, 'productCode', item.code);
-          this.$set(parasm, 'productName', item.name);
-          this.$set(parasm, 'modelType', item.modelType);
-          this.$set(parasm, 'availableCountBase', item.availableCountBase);
-          this.$set(parasm, 'measuringUnit', item.measuringUnit);
-          this.$set(parasm, 'specification', item.specification);
-          this.$set(parasm, 'weightUnit', item.weightUnit);
-          this.$set(parasm, 'imgCode', item.imgCode);
-          this.$set(parasm, 'produceType', item.produceType);
-          this.$set(parasm, 'approvalNumber', item.extField?.approvalNumber);
-          this.$set(
-            parasm,
-            'packingSpecification',
-            item.extField?.packingSpecification
-          );
-          this.$set(parasm, 'supplierMark', this.supplierMark);
-          this.$set(parasm, 'batchNo', await getCode('1900101420390125570'));
+        this.$set(parasm, 'supplierMark', this.supplierMark);
+        this.$set(parasm, 'batchNo', await getCode('1900101420390125570'));
 
-          if (idx == -1) {
-            this.form.datasource.push(row);
-          }
-        });
-      },
-      remove(row, index) {
-        this.form.datasource.splice(index, 1);
-        // let index = this.form.datasource.findIndex((n) => n.key == row.key);
-        // if (index !== -1) {
-        //   this.form.datasource.splice(index, 1);
-        //   this.setSort();
-        // }
-      },
-      // 清空表格
-      restTable() {
-        this.form.datasource = [];
-      },
-      // 重新排序
-      setSort() {
-        this.form.datasource.forEach((n, index) => {
-          n.key = index + 1;
-        });
-      },
-      // 添加
-      handlAdd() {
-        let item = JSON.parse(JSON.stringify(this.defaultForm));
-        item.key = this.form.datasource.length + 1;
-        this.form.datasource.push(item);
-      },
-      setDeliveryDays(row, index, type) {
-        if (type == 'deliveryDays') {
-          this.$set(
-            this.form.datasource[index],
-            'deliveryDeadline',
-            this.setDay(row.deliveryDays)
-          );
+        if (idx == -1) {
+          this.form.datasource.push(row);
         }
-        if (type == 'guaranteePeriod') {
-          let guaranteePeriodUnitName = this.guaranteePeriodUnit(
-            row.guaranteePeriodUnitCode
-          );
-          this.$set(
-            this.form.datasource[index],
-            'guaranteePeriodDeadline',
-            guaranteePeriodUnitName != 'second'
-              ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName)
-              : ''
-          );
-        }
-      },
-      guaranteePeriodUnit(code) {
-        return code == 3
-          ? 'day'
-          : code == 4
-          ? 'month'
-          : code == 5
-          ? 'year'
-          : 'second';
-      },
-      setDay(addDay, dateType = 'day') {
-        return dayjs(this.contractStartDate || new Date())
-          .add(addDay, dateType)
-          .format('YYYY-MM-DD');
-      },
-
-      validateForm(callback) {
-        //开始表单校验
-        this.$refs.form.validate((valid) => {
-          callback(valid);
-        });
+      });
+    },
+    remove(row, index) {
+      this.form.datasource.splice(index, 1);
+      // let index = this.form.datasource.findIndex((n) => n.key == row.key);
+      // if (index !== -1) {
+      //   this.form.datasource.splice(index, 1);
+      //   this.setSort();
+      // }
+    },
+    // 清空表格
+    restTable() {
+      this.form.datasource = [];
+    },
+    // 重新排序
+    setSort() {
+      this.form.datasource.forEach((n, index) => {
+        n.key = index + 1;
+      });
+    },
+    // 添加
+    handlAdd() {
+      let item = JSON.parse(JSON.stringify(this.defaultForm));
+      item.key = this.form.datasource.length + 1;
+      this.form.datasource.push(item);
+    },
+    setDeliveryDays(row, index, type) {
+      if (type == 'deliveryDays') {
+        this.$set(
+          this.form.datasource[index],
+          'deliveryDeadline',
+          this.setDay(row.deliveryDays)
+        );
+      }
+      if (type == 'guaranteePeriod') {
+        let guaranteePeriodUnitName = this.guaranteePeriodUnit(
+          row.guaranteePeriodUnitCode
+        );
+        this.$set(
+          this.form.datasource[index],
+          'guaranteePeriodDeadline',
+          guaranteePeriodUnitName != 'second'
+            ? this.setDay(row.guaranteePeriod, guaranteePeriodUnitName)
+            : ''
+        );
       }
+    },
+    guaranteePeriodUnit(code) {
+      return code == 3
+        ? 'day'
+        : code == 4
+        ? 'month'
+        : code == 5
+        ? 'year'
+        : 'second';
+    },
+    setDay(addDay, dateType = 'day') {
+      return dayjs(this.contractStartDate || new Date())
+        .add(addDay, dateType)
+        .format('YYYY-MM-DD');
+    },
+
+    validateForm(callback) {
+      //开始表单校验
+      this.$refs.form.validate((valid) => {
+        callback(valid);
+      });
     }
-  };
+  }
+};
 </script>
 <style lang="scss" scoped>
-  .headbox {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+.headbox {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
 
-    .amount {
-      font-size: 14px;
-      font-weight: bold;
-      padding-right: 30px;
-    }
+  .amount {
+    font-size: 14px;
+    font-weight: bold;
+    padding-right: 30px;
   }
+}
 
-  .time-form .el-form-item {
-    margin-bottom: 0 !important;
-  }
+.time-form .el-form-item {
+  margin-bottom: 0 !important;
+}
 
-  ::v-deep .period {
-    display: flex;
+::v-deep .period {
+  display: flex;
 
-    .borderleftnone {
-      .el-input--medium .el-input__inner {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-      }
+  .borderleftnone {
+    .el-input--medium .el-input__inner {
+      border-top-right-radius: 0;
+      border-bottom-right-radius: 0;
     }
+  }
 
-    .borderrightnone {
-      .el-input--medium .el-input__inner {
-        border-top-left-radius: 0;
-        border-bottom-left-radius: 0;
-      }
+  .borderrightnone {
+    .el-input--medium .el-input__inner {
+      border-top-left-radius: 0;
+      border-bottom-left-radius: 0;
     }
   }
+}
 
-  ::v-deep .time-form tbody > tr:hover > td {
-    background-color: transparent !important;
-  }
+::v-deep .time-form tbody > tr:hover > td {
+  background-color: transparent !important;
+}
 
-  ::v-deep .time-form .el-table tr {
-    background-color: #ffffff;
-  }
+::v-deep .time-form .el-table tr {
+  background-color: #ffffff;
+}
 
-  .pricebox {
-    display: flex;
-    justify-content: flex-start;
-    align-items: center;
-    font-weight: bold;
-  }
+.pricebox {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+  font-weight: bold;
+}
 </style>

+ 533 - 536
src/views/purchasingManage/purchasePlanManage/components/inventoryTable.vue

@@ -93,7 +93,7 @@
         >
           <el-input
             v-model="scope.row.totalCount"
-            @input="singleWeightChange(scope.row,scope.$index)"
+            @input="singleWeightChange(scope.row, scope.$index)"
             placeholder="请输入"
           ></el-input>
         </el-form-item>
@@ -319,7 +319,7 @@
           <el-input
             :disabled="isContractId"
             v-model="scope.row.singleWeight"
-            @input="singleWeightChange(scope.row,scope.$index)"
+            @input="singleWeightChange(scope.row, scope.$index)"
             placeholder="请输入"
           ></el-input>
         </el-form-item>
@@ -400,576 +400,573 @@
   </el-form>
 </template>
 <script>
-  import { numberReg } from 'ele-admin';
-  import productList from '@/BIZComponents/product-list.vue';
-  import dictMixins from '@/mixins/dictMixins';
-  import fileUpload from '@/components/upload/fileUpload';
-  import headList from '@/BIZComponents/user-select/user-select.vue';
-  import timeDialog from '@/components/timeDialog/index.vue';
-  import { copyObj } from '@/utils/util';
-  import supplierList from '@/views/purchasingManage/supplierManage/components/parentList.vue';
-  import { getInventoryTotalAPI } from '@/api/wms';
-  import { getByCode } from '@/api/system/dictionary-data';
-  import fileMain from '@/components/addDoc/index.vue';
-  import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
+import { numberReg } from 'ele-admin';
+import productList from '@/BIZComponents/product-list.vue';
+import dictMixins from '@/mixins/dictMixins';
+import fileUpload from '@/components/upload/fileUpload';
+import headList from '@/BIZComponents/user-select/user-select.vue';
+import timeDialog from '@/components/timeDialog/index.vue';
+import { copyObj } from '@/utils/util';
+import supplierList from '@/views/purchasingManage/supplierManage/components/parentList.vue';
+import { getInventoryTotalAPI } from '@/api/wms';
+import { getByCode } from '@/api/system/dictionary-data';
+import fileMain from '@/components/addDoc/index.vue';
+import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
 
-  export default {
-    mixins: [dictMixins],
-    props: {
-      needInquiry: {
-        type: Number,
-        default: 1
-      },
-      detailType: {
-        type: Number,
-        default: 0
-      }
+export default {
+  mixins: [dictMixins],
+  props: {
+    needInquiry: {
+      type: Number,
+      default: 1
     },
-    components: {
-      taskinstanceDialog,
-      fileMain,
-      supplierList,
-      productList,
-      fileUpload,
-      headList,
-      timeDialog
-    },
-    computed: {
-      isNeedInquiry() {
-        if (this.needInquiry === 1) {
-          // this.form.datasource.forEach(item => {
-          //   item.supplierCode = ''
-          //   item.supplierId = ''
-          //   item.supplierName = ''
-          // })
-        }
-        return this.needInquiry;
+    detailType: {
+      type: Number,
+      default: 0
+    }
+  },
+  components: {
+    taskinstanceDialog,
+    fileMain,
+    supplierList,
+    productList,
+    fileUpload,
+    headList,
+    timeDialog
+  },
+  computed: {
+    isNeedInquiry() {
+      if (this.needInquiry === 1) {
+        // this.form.datasource.forEach(item => {
+        //   item.supplierCode = ''
+        //   item.supplierId = ''
+        //   item.supplierName = ''
+        // })
       }
-    },
-    data() {
-      const defaultForm = {
-        key: null,
-        endTime: '',
-        isFirst: 0,
-        name: '',
-        supplierName: '',
-        weightUnit: ''
-      };
-      return {
-        curIndex: null,
-        numberReg,
-        defaultForm,
-        arrivalWayList: [
-          { label: '一次性到货', value: 1 },
-          { label: '分批到货', value: 2 }
-        ],
-        form: {
-          datasource: []
+      return this.needInquiry;
+    }
+  },
+  data() {
+    const defaultForm = {
+      key: null,
+      endTime: '',
+      isFirst: 0,
+      name: '',
+      supplierName: '',
+      weightUnit: ''
+    };
+    return {
+      curIndex: null,
+      numberReg,
+      defaultForm,
+      arrivalWayList: [
+        { label: '一次性到货', value: 1 },
+        { label: '分批到货', value: 2 }
+      ],
+      form: {
+        datasource: []
+      },
+      taskinstanceDialogFlag: false,
+      rules: {},
+      dictList: {},
+      columns: [
+        {
+          width: 45,
+          type: 'index',
+          columnKey: 'index',
+          align: 'center'
+        },
+        {
+          width: 150,
+          prop: 'productCategoryName',
+          label: '分类',
+          slot: 'productCategoryName',
+          align: 'center'
+        },
+        {
+          width: 140,
+          prop: 'productCode',
+          label: '编码',
+          slot: 'productCode',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'productName',
+          label: '名称',
+          slot: 'productName',
+          headerSlot: 'headerProductName',
+          align: 'center'
+        },
+        {
+          width: 240,
+          prop: 'taskName',
+          label: '工序',
+          slot: 'taskName',
+          align: 'center'
+        },
+        {
+          width: 110,
+          prop: 'batchNo',
+          label: '批次号',
+          slot: 'batchNo',
+          align: 'center'
+        },
+        {
+          width: 90,
+          prop: 'totalCount',
+          label: '数量',
+          slot: 'totalCount',
+          headerSlot: 'headerTotalCount',
+          align: 'center'
+        },
+        {
+          width: 80,
+          prop: 'availableCountBase',
+          label: '库存数量',
+          slot: 'availableCountBase',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'totalWeight',
+          label: '重量',
+          slot: 'totalWeight',
+          align: 'center'
+        },
+        {
+          width: 160,
+          prop: 'arrivalWay',
+          label: '到货方式',
+          slot: 'arrivalWay',
+          headerSlot: 'headerArrivalWay',
+          align: 'center'
+        },
+        {
+          width: 170,
+          prop: 'expectReceiveDate',
+          label: '到货日期',
+          slot: 'expectReceiveDate',
+          headerSlot: 'headerExpectReceiveDate',
+          align: 'center'
         },
-        taskinstanceDialogFlag: false,
-        rules: {},
-        dictList: {},
-        columns: [
-          {
-            width: 45,
-            type: 'index',
-            columnKey: 'index',
-            align: 'center'
-          },
-          {
-            width: 150,
-            prop: 'productCategoryName',
-            label: '分类',
-            slot: 'productCategoryName',
-            align: 'center'
-          },
-          {
-            width: 140,
-            prop: 'productCode',
-            label: '编码',
-            slot: 'productCode',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'productName',
-            label: '名称',
-            slot: 'productName',
-            headerSlot: 'headerProductName',
-            align: 'center'
-          },
-          {
-            width: 240,
-            prop: 'taskName',
-            label: '工序',
-            slot: 'taskName',
-            align: 'center'
-          },
-          {
-            width: 110,
-            prop: 'batchNo',
-            label: '批次号',
-            slot: 'batchNo',
-            align: 'center'
-          },
-          {
-            width: 90,
-            prop: 'totalCount',
-            label: '数量',
-            slot: 'totalCount',
-            headerSlot: 'headerTotalCount',
-            align: 'center'
-          },
-          {
-            width: 80,
-            prop: 'availableCountBase',
-            label: '库存数量',
-            slot: 'availableCountBase',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'totalWeight',
-            label: '重量',
-            slot: 'totalWeight',
-            align: 'center'
-          },
-          {
-            width: 160,
-            prop: 'arrivalWay',
-            label: '到货方式',
-            slot: 'arrivalWay',
-            headerSlot: 'headerArrivalWay',
-            align: 'center'
-          },
-          {
-            width: 170,
-            prop: 'expectReceiveDate',
-            label: '到货日期',
-            slot: 'expectReceiveDate',
-            headerSlot: 'headerExpectReceiveDate',
-            align: 'center'
-          },
 
-          {
-            width: 130,
-            prop: 'supplierName',
-            label: '供应商',
-            slot: 'supplierName',
-            headerSlot: 'headerSupplierName',
-            align: 'center'
-          },
+        {
+          width: 130,
+          prop: 'supplierName',
+          label: '供应商',
+          slot: 'supplierName',
+          headerSlot: 'headerSupplierName',
+          align: 'center'
+        },
 
-          {
-            width: 130,
-            prop: 'brand',
-            label: '品牌',
-            slot: 'brand',
-            align: 'center'
-          },
-          // {
-          //   width: 120,
-          //   prop: 'singleWeight',
-          //   label: '单重',
-          //   slot: 'singleWeight',
-          //   align: 'center'
-          // },
-   
+        {
+          width: 130,
+          prop: 'brand',
+          label: '品牌',
+          slot: 'brand',
+          align: 'center'
+        },
+        // {
+        //   width: 120,
+        //   prop: 'singleWeight',
+        //   label: '单重',
+        //   slot: 'singleWeight',
+        //   align: 'center'
+        // },
 
-          {
-            width: 160,
-            prop: 'technicalDrawings',
-            label: '图纸附件',
-            slot: 'technicalDrawings'
-          },
-          {
-            width: 160,
-            prop: 'files',
-            label: '附件',
-            slot: 'files'
-          },
-          {
-            width: 150,
-            prop: 'productBrand',
-            label: '牌号',
-            slot: 'productBrand',
-            align: 'center'
-          },
-          {
-            width: 130,
-            prop: 'modelType',
-            label: '型号',
-            slot: 'modelType',
-            align: 'center'
-          },
+        {
+          width: 160,
+          prop: 'technicalDrawings',
+          label: '图纸附件',
+          slot: 'technicalDrawings'
+        },
+        {
+          width: 160,
+          prop: 'files',
+          label: '附件',
+          slot: 'files'
+        },
+        {
+          width: 150,
+          prop: 'productBrand',
+          label: '牌号',
+          slot: 'productBrand',
+          align: 'center'
+        },
+        {
+          width: 130,
+          prop: 'modelType',
+          label: '型号',
+          slot: 'modelType',
+          align: 'center'
+        },
 
-          {
-            width: 120,
-            prop: 'specification',
-            label: '规格',
-            slot: 'specification',
-            align: 'center'
-          },
-          {
-            width: 120,
-            prop: 'imgCode',
-            align: 'center',
-            label: '图号/件号',
-            showOverflowTooltip: true
-          },
-          {
-            width: 120,
-            prop: 'produceType',
-            align: 'center',
-            label: '生产类型',
-            showOverflowTooltip: true,
-            formatter: (row, column) => {
-              return row.produceType && row.produceType.length
-                ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
-                    .join(',')
-                : '';
-            }
-          },
-          {
-            width: 120,
-            prop: 'approvalNumber',
-            align: 'center',
-            label: '批准文号',
-            showOverflowTooltip: true
-          },
-          {
-            width: 120,
-            prop: 'packingSpecification',
-            align: 'center',
-            label: '包装规格',
-            showOverflowTooltip: true
-          },
+        {
+          width: 120,
+          prop: 'specification',
+          label: '规格',
+          slot: 'specification',
+          align: 'center'
+        },
+        {
+          width: 120,
+          prop: 'imgCode',
+          align: 'center',
+          label: '图号/件号',
+          showOverflowTooltip: true
+        },
+        {
+          width: 120,
+          prop: 'produceType',
+          align: 'center',
+          label: '生产类型',
+          showOverflowTooltip: true,
+          formatter: (row, column) => {
+            return row.produceType && row.produceType.length
+              ? row.produceType
+                  .map((item) => this.getDictV('productionType', item + ''))
+                  .join(',')
+              : '';
+          }
+        },
+        {
+          width: 120,
+          prop: 'approvalNumber',
+          align: 'center',
+          label: '批准文号',
+          showOverflowTooltip: true
+        },
+        {
+          width: 120,
+          prop: 'packingSpecification',
+          align: 'center',
+          label: '包装规格',
+          showOverflowTooltip: true
+        },
 
-          {
-            width: 100,
-            prop: 'measuringUnit',
-            label: '单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
+        {
+          width: 100,
+          prop: 'measuringUnit',
+          label: '单位',
+          slot: 'measuringUnit',
+          align: 'center'
+        },
 
-          {
-            width: 220,
-            prop: 'remark',
-            label: '备注',
-            slot: 'remark',
-            align: 'center'
-          },
-          {
-            columnKey: 'action',
-            label: '操作',
-            width: 120,
-            align: 'center',
-            resizable: false,
-            slot: 'action',
-            fixed: 'right',
-            showOverflowTooltip: true
-          }
-        ]
-      };
+        {
+          width: 220,
+          prop: 'remark',
+          label: '备注',
+          slot: 'remark',
+          align: 'center'
+        },
+        {
+          columnKey: 'action',
+          label: '操作',
+          width: 120,
+          align: 'center',
+          resizable: false,
+          slot: 'action',
+          fixed: 'right',
+          showOverflowTooltip: true
+        }
+      ]
+    };
+  },
+  created() {
+    this.getDictList('productionType');
+  },
+  methods: {
+    getDictV(code, val) {
+      if (!this.dictList[code]) return '';
+      return this.dictList[code].find((item) => item.value == val)?.label;
+    },
+    async getDictList(code) {
+      let { data: res } = await getByCode(code);
+      this.dictList[code] = res.map((item) => {
+        let values = Object.keys(item);
+        return {
+          value: values[0],
+          label: item[values[0]]
+        };
+      });
     },
-    created() {
-      this.getDictList('productionType');
+    // 返回列表数据
+    getTableValue() {
+      let comitDatasource = this.form.datasource;
+      if (comitDatasource.length === 0) return [];
+      comitDatasource.forEach((v) => {
+        v.totalPrice = (v.totalCount * v.singlePrice)?.toFixed(2) || 0;
+        v.files = v.files || [];
+        v.technicalDrawings = v.technicalDrawings || [];
+        v.arrivalBatch = v.arrivalBatch || [];
+        v.detailType = this.detailType;
+      });
+      return comitDatasource;
     },
-    methods: {
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
-      },
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList[code] = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: values[0],
-            label: item[values[0]]
+    //计算单重
+    singleWeightChange(row, index) {
+      if (row && row.singleWeight && row.totalCount) {
+        row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
+        this.$set(this.form.datasource[index], 'totalWeight', row.totalWeight);
+      }
+    },
+    //修改回显
+    async putTableValue(data) {
+      if (data && data?.length) {
+        this.form.datasource = [];
+        data.forEach((row) => {
+          let item = JSON.parse(JSON.stringify(row));
+          item.key = this.form.datasource.length + 1;
+          item = {
+            ...this.defaultForm,
+            ...item
           };
+          this.form.datasource.push(item);
         });
-      },
-      // 返回列表数据
-      getTableValue() {
-        let comitDatasource = this.form.datasource;
-        if (comitDatasource.length === 0) return [];
-        comitDatasource.forEach((v) => {
-          v.totalPrice = (v.totalCount * v.singlePrice)?.toFixed(2) || 0;
-          v.files = v.files || [];
-          v.technicalDrawings = v.technicalDrawings || [];
-          v.arrivalBatch = v.arrivalBatch || [];
-          v.detailType = this.detailType;
+        let codeList = this.form.datasource.map((item) => item.productCode);
+        //获取仓库库存
+        let inventoryTotalList = await getInventoryTotalAPI(codeList);
+        this.form.datasource.forEach((item) => {
+          let find =
+            inventoryTotalList.find((key) => key.code == item.productCode) ||
+            {};
+          item.availableCountBase = find.availableCountBase;
         });
-        return comitDatasource;
-      },
-      //计算单重
-      singleWeightChange(row, index) {
-        if (row && row.singleWeight && row.totalCount) {
-          row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
-          this.$set(
-            this.form.datasource[index],
-            'totalWeight',
-            row.totalWeight
-          );
-        }
-      },
-      //修改回显
-      async putTableValue(data) {
-        if (data && data?.length) {
-          this.form.datasource = [];
-          data.forEach((row) => {
-            let item = JSON.parse(JSON.stringify(row));
-            item.key = this.form.datasource.length + 1;
-            item = {
-              ...this.defaultForm,
-              ...item
-            };
-            this.form.datasource.push(item);
-          });
-          let codeList = this.form.datasource.map((item) => item.productCode);
-          //获取仓库库存
-          let inventoryTotalList = await getInventoryTotalAPI(codeList);
-          this.form.datasource.forEach((item) => {
-            let find =
-              inventoryTotalList.find((key) => key.code == item.productCode) ||
-              {};
-            item.availableCountBase = find.availableCountBase;
-          });
-          this.$refs.table.reload();
-        }
-      },
-      handleMethod(row, index) {
-        this.curIndex = index;
-        this.$refs.timeDialogRef.open(row, index);
-      },
-      chooseTime(row, arrivalBatch) {
-        row.arrivalBatch = copyObj(arrivalBatch);
+        this.$refs.table.reload();
+      }
+    },
+    handleMethod(row, index) {
+      this.curIndex = index;
+      this.$refs.timeDialogRef.open(row, index);
+    },
+    chooseTime(row, arrivalBatch) {
+      row.arrivalBatch = copyObj(arrivalBatch);
+      this.$set(
+        this.form.datasource[this.curIndex],
+        'arrivalBatch',
+        copyObj(arrivalBatch)
+      );
+    },
+    handleTaskinstance(row, index) {
+      this.taskinstanceDialogFlag = true;
+      this.$nextTick(() => {
+        this.$refs.taskinstanceDialogRef.open(row, index);
+      });
+    },
+    saveTaskInstance(row = {}) {
+      this.$set(this.form.datasource[row.index], 'taskId', row.id);
+      this.$set(this.form.datasource[row.index], 'taskName', row.name);
+      this.$set(
+        this.form.datasource[row.index],
+        'routingId',
+        row.produceRoutingId
+      );
+    },
+    //获取供应商信息
+    handleGetSup(e, row, index) {
+      this.curIndex = index;
+      if (e.target.nodeName == 'I') {
+        this.$set(this.form.datasource[this.curIndex], 'supplierCode', '');
+        this.$set(this.form.datasource[this.curIndex], 'supplierId', '');
+        this.$set(this.form.datasource[this.curIndex], 'supplierName', '');
+        return;
+      }
+      let item = { id: row.supplierId };
+      this.$refs.supplierListRef.open(item);
+    },
+    //选择供应商信息回调
+    getSupInfo(obj) {
+      let params = {
+        supplierCode: obj.code,
+        supplierId: obj.id,
+        supplierName: obj.name
+      };
+      this.$set(
+        this.form.datasource[this.curIndex],
+        'supplierCode',
+        params.supplierCode
+      );
+      this.$set(
+        this.form.datasource[this.curIndex],
+        'supplierId',
+        params.supplierId
+      );
+      this.$set(
+        this.form.datasource[this.curIndex],
+        'supplierName',
+        params.supplierName
+      );
+    },
+    //选择产品
+    handParent(row, index) {
+      // let item = {
+      //   id: row.productCode
+      // };
+      this.$refs.productListRef.open(this.form.datasource, index);
+    },
+    //选择技术人回调
+    changeAnswer(obj, idx) {
+      this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
+      this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
+    },
+    handHead(row, index) {
+      let item = {
+        id: row.technicalAnswerId
+      };
+      this.$refs.headRef.open(item, index);
+    },
+    getSelectionCbom(obj, idx = -1) {
+      obj.forEach((item, index) => {
+        let i = idx == -1 ? index : idx;
+        let row = JSON.parse(JSON.stringify(this.defaultForm));
+        row.key = this.form.datasource.length + 1;
+        let parasm = idx == -1 ? row : this.form.datasource[i];
+        this.$set(parasm, 'productId', item.id);
+        // this.$set(parasm, 'id', item.id);
+        this.$set(parasm, 'categoryName', item.name);
+        this.$set(parasm, 'productCategoryId', item.categoryLevelId);
+        this.$set(parasm, 'productBrand', item.brandNum);
         this.$set(
-          this.form.datasource[this.curIndex],
-          'arrivalBatch',
-          copyObj(arrivalBatch)
+          parasm,
+          'productCategoryName',
+          item.category.categoryLevelPath
         );
-      },
-      handleTaskinstance(row, index) {
-        this.taskinstanceDialogFlag = true;
-        this.$nextTick(() => {
-          this.$refs.taskinstanceDialogRef.open(row, index);
-        });
-      },
-      saveTaskInstance(row = {}) {
-        this.$set(this.form.datasource[row.index], 'taskId', row.id);
-        this.$set(this.form.datasource[row.index], 'taskName', row.name);
+        this.$set(parasm, 'totalCount', item.dosage);
+        this.$set(parasm, 'productCode', item.code);
+        this.$set(parasm, 'productName', item.name);
+        this.$set(parasm, 'availableCountBase', item.availableCountBase);
+        this.$set(parasm, 'modelType', item.modelType);
+        this.$set(parasm, 'weightUnit', item.weightUnit);
+        this.$set(parasm, 'measuringUnit', item.unit);
+        this.$set(parasm, 'specification', item.specification);
+        this.$set(parasm, 'remark', '');
+        this.$set(parasm, 'imgCode', item.imgCode);
+        this.$set(parasm, 'produceType', item.produceType);
+        this.$set(parasm, 'singleWeight', item.roughWeight);
+
+        this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
         this.$set(
-          this.form.datasource[row.index],
-          'routingId',
-          row.produceRoutingId
+          parasm,
+          'packingSpecification',
+          item.extField.packingSpecification
         );
-      },
-      //获取供应商信息
-      handleGetSup(e, row, index) {
-        this.curIndex = index;
-        if (e.target.nodeName == 'I') {
-          this.$set(this.form.datasource[this.curIndex], 'supplierCode', '');
-          this.$set(this.form.datasource[this.curIndex], 'supplierId', '');
-          this.$set(this.form.datasource[this.curIndex], 'supplierName', '');
-          return;
+        if (idx == -1) {
+          this.form.datasource.push(row);
         }
-        let item = { id: row.supplierId };
-        this.$refs.supplierListRef.open(item);
-      },
-      //选择供应商信息回调
-      getSupInfo(obj) {
-        let params = {
-          supplierCode: obj.code,
-          supplierId: obj.id,
-          supplierName: obj.name
-        };
-        this.$set(
-          this.form.datasource[this.curIndex],
-          'supplierCode',
-          params.supplierCode
-        );
-        this.$set(
-          this.form.datasource[this.curIndex],
-          'supplierId',
-          params.supplierId
-        );
+      });
+    },
+    //选择产品回调
+    changeParent(obj, idx) {
+      obj.forEach((item, index) => {
+        let i = idx == -1 ? index : idx;
+        let row = JSON.parse(JSON.stringify(this.defaultForm));
+        row.key = this.form.datasource.length + 1;
+        let parasm = idx == -1 ? row : this.form.datasource[i];
+        this.$set(parasm, 'productId', item.id);
+        // this.$set(parasm, 'id', item.id);
+        this.$set(parasm, 'categoryName', item.name);
+        this.$set(parasm, 'productCategoryId', item.categoryLevelId);
+        this.$set(parasm, 'productBrand', item.brandNum);
+        this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
+        this.$set(parasm, 'productCode', item.code);
+        this.$set(parasm, 'productName', item.name);
+        this.$set(parasm, 'availableCountBase', item.availableCountBase);
+        this.$set(parasm, 'modelType', item.modelType);
+        this.$set(parasm, 'weightUnit', item.weightUnit);
+        this.$set(parasm, 'measuringUnit', item.measuringUnit);
+        this.$set(parasm, 'specification', item.specification);
+        this.$set(parasm, 'singleWeight', item.netWeight);
+
+        this.$set(parasm, 'remark', '');
+        this.$set(parasm, 'imgCode', item.imgCode);
+        this.$set(parasm, 'produceType', item.produceType);
+        this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
         this.$set(
-          this.form.datasource[this.curIndex],
-          'supplierName',
-          params.supplierName
+          parasm,
+          'packingSpecification',
+          item.extField.packingSpecification
         );
-      },
-      //选择产品
-      handParent(row, index) {
-        // let item = {
-        //   id: row.productCode
-        // };
-        this.$refs.productListRef.open(this.form.datasource, index);
-      },
-      //选择技术人回调
-      changeAnswer(obj, idx) {
-        this.$set(this.form.datasource[idx], 'technicalAnswerId', obj.id);
-        this.$set(this.form.datasource[idx], 'technicalAnswerName', obj.name);
-      },
-      handHead(row, index) {
-        let item = {
-          id: row.technicalAnswerId
-        };
-        this.$refs.headRef.open(item, index);
-      },
-      getSelectionCbom(obj, idx = -1) {
-        obj.forEach((item, index) => {
-          let i = idx == -1 ? index : idx;
-          let row = JSON.parse(JSON.stringify(this.defaultForm));
-          row.key = this.form.datasource.length + 1;
-          let parasm = idx == -1 ? row : this.form.datasource[i];
-          this.$set(parasm, 'productId', item.id);
-          // this.$set(parasm, 'id', item.id);
-          this.$set(parasm, 'categoryName', item.name);
-          this.$set(parasm, 'productCategoryId', item.categoryLevelId);
-          this.$set(parasm, 'productBrand', item.brandNum);
-          this.$set(
-            parasm,
-            'productCategoryName',
-            item.category.categoryLevelPath
-          );
-          this.$set(parasm, 'totalCount', item.dosage);
-          this.$set(parasm, 'productCode', item.code);
-          this.$set(parasm, 'productName', item.name);
-          this.$set(parasm, 'availableCountBase', item.availableCountBase);
-          this.$set(parasm, 'modelType', item.modelType);
-          this.$set(parasm, 'weightUnit', item.weightUnit);
-          this.$set(parasm, 'measuringUnit', item.unit);
-          this.$set(parasm, 'specification', item.specification);
-          this.$set(parasm, 'remark', '');
-          this.$set(parasm, 'imgCode', item.imgCode);
-          this.$set(parasm, 'produceType', item.produceType);
-          this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
-          this.$set(
-            parasm,
-            'packingSpecification',
-            item.extField.packingSpecification
-          );
-          if (idx == -1) {
-            this.form.datasource.push(row);
-          }
-        });
-      },
-      //选择产品回调
-      changeParent(obj, idx) {
-        obj.forEach((item, index) => {
-          let i = idx == -1 ? index : idx;
-          let row = JSON.parse(JSON.stringify(this.defaultForm));
-          row.key = this.form.datasource.length + 1;
-          let parasm = idx == -1 ? row : this.form.datasource[i];
-          this.$set(parasm, 'productId', item.id);
-          // this.$set(parasm, 'id', item.id);
-          this.$set(parasm, 'categoryName', item.name);
-          this.$set(parasm, 'productCategoryId', item.categoryLevelId);
-          this.$set(parasm, 'productBrand', item.brandNum);
-          this.$set(parasm, 'productCategoryName', item.categoryLevelPath);
-          this.$set(parasm, 'productCode', item.code);
-          this.$set(parasm, 'productName', item.name);
-          this.$set(parasm, 'availableCountBase', item.availableCountBase);
-          this.$set(parasm, 'modelType', item.modelType);
-          this.$set(parasm, 'weightUnit', item.weightUnit);
-          this.$set(parasm, 'measuringUnit', item.measuringUnit);
-          this.$set(parasm, 'specification', item.specification);
-          this.$set(parasm, 'singleWeight', item.netWeight);
-
-          this.$set(parasm, 'remark', '');
-          this.$set(parasm, 'imgCode', item.imgCode);
-          this.$set(parasm, 'produceType', item.produceType);
-          this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
-          this.$set(
-            parasm,
-            'packingSpecification',
-            item.extField.packingSpecification
-          );
-          if (idx == -1) {
-            this.form.datasource.push(row);
-          }
-        });
-      },
-      remove(i) {
-        this.form.datasource.splice(i, 1);
-        this.setSort();
-      },
-      // 清空表格
-      restTable() {
-        this.form.datasource = [];
-      },
-      // 重新排序
-      setSort() {
-        this.form.datasource.forEach((n, index) => {
-          n.key = index + 1;
-        });
-      },
-      // 添加
-      handlAdd() {
-        let item = JSON.parse(JSON.stringify(this.defaultForm));
-        item.key = this.form.datasource.length + 1;
-        this.form.datasource.push(item);
-      },
+        if (idx == -1) {
+          this.form.datasource.push(row);
+        }
+      });
+    },
+    remove(i) {
+      this.form.datasource.splice(i, 1);
+      this.setSort();
+    },
+    // 清空表格
+    restTable() {
+      this.form.datasource = [];
+    },
+    // 重新排序
+    setSort() {
+      this.form.datasource.forEach((n, index) => {
+        n.key = index + 1;
+      });
+    },
+    // 添加
+    handlAdd() {
+      let item = JSON.parse(JSON.stringify(this.defaultForm));
+      item.key = this.form.datasource.length + 1;
+      this.form.datasource.push(item);
+    },
 
-      validateForm(callback) {
-        //开始表单校验
-        this.$refs.form.validate((valid, obj) => {
-          if (obj) {
-            let messages = Object.keys(obj).map((key) => obj[key][0]);
-            if (messages.length > 0) {
-              this.$message.warning(messages[0].message);
-            }
+    validateForm(callback) {
+      //开始表单校验
+      this.$refs.form.validate((valid, obj) => {
+        if (obj) {
+          let messages = Object.keys(obj).map((key) => obj[key][0]);
+          if (messages.length > 0) {
+            this.$message.warning(messages[0].message);
           }
-          callback(valid);
-        });
-      }
+        }
+        callback(valid);
+      });
     }
-  };
+  }
+};
 </script>
 <style lang="scss" scoped>
-  .headbox {
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
+.headbox {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
 
-    .amount {
-      font-size: 14px;
-      font-weight: bold;
-    }
+  .amount {
+    font-size: 14px;
+    font-weight: bold;
   }
+}
 
-  .time-form .el-form-item {
-    margin-bottom: 0 !important;
-  }
+.time-form .el-form-item {
+  margin-bottom: 0 !important;
+}
 
-  ::v-deep .period {
-    display: flex;
+::v-deep .period {
+  display: flex;
 
-    .borderleftnone {
-      .el-input--medium .el-input__inner {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-      }
+  .borderleftnone {
+    .el-input--medium .el-input__inner {
+      border-top-right-radius: 0;
+      border-bottom-right-radius: 0;
     }
+  }
 
-    .borderrightnone {
-      .el-input--medium .el-input__inner {
-        border-top-left-radius: 0;
-        border-bottom-left-radius: 0;
-      }
+  .borderrightnone {
+    .el-input--medium .el-input__inner {
+      border-top-left-radius: 0;
+      border-bottom-left-radius: 0;
     }
   }
+}
 
-  ::v-deep .time-form tbody > tr:hover > td {
-    background-color: transparent !important;
-  }
+::v-deep .time-form tbody > tr:hover > td {
+  background-color: transparent !important;
+}
 
-  ::v-deep .time-form .el-table tr {
-    background-color: #ffffff;
-  }
+::v-deep .time-form .el-table tr {
+  background-color: #ffffff;
+}
 </style>

+ 3 - 3
src/views/saleManage/businessOpportunity/components/addOpportunityDialog.vue

@@ -171,7 +171,7 @@
     <headerTitle title="关键人信息"></headerTitle>
     <personnelAddTable
       ref="personnelAddTable"
-      :contactId="form.contactId"
+      :contactId="newContactId"
       @timeAll="getPersonnelAddTable"
       :delDetailIds="PersonnelDetailIds"
     ></personnelAddTable>
@@ -260,6 +260,7 @@ export default {
     };
 
     return {
+      newContactId:'',
       fullscreen:false,
       delDetailIds: [],
       PersonnelDetailIds: [],
@@ -410,8 +411,7 @@ export default {
       if (type == 'add') {
         if (row.id) {
           this.changeParent(row);
-
-          
+          this.newContactId=row.id
         }
         this.form.responsibleId=this.userInfo.userId
           this.form.responsibleName= this.userInfo.name

+ 1 - 0
src/views/saleManage/businessOpportunity/components/saleGeneralityInventoryTable.vue

@@ -1328,6 +1328,7 @@
           this.$set(parasm, 'measuringUnit', item.measuringUnit);
           this.$set(parasm, 'specification', item.specification);
           this.$set(parasm, 'weightUnit', item.weightUnit);
+          this.$set(parasm, 'singleWeight', item.roughWeight);
 
           this.$set(parasm, 'imgCode', item.imgCode);
            this.$set(parasm, 'produceType', item.produceType);

+ 1 - 0
src/views/saleManage/contact/index.vue

@@ -516,6 +516,7 @@ export default {
         this.$refs.addContactDialogRef.$refs.form.clearValidate();
     },
     addOppo(type, row) {
+   
       this.$refs.opportunityRef.open(type, row, row.id);
       this.$refs.opportunityRef.$refs.form &&
         this.$refs.opportunityRef.$refs.form.clearValidate();

+ 1 - 9
src/views/saleManage/saleOrder/accountstatement/components/saleForm.vue

@@ -159,15 +159,7 @@
     <el-row v-if="dialogType == 'view'">
       <el-col :span="12">
         <el-form-item prop="repliedFiles" label="回执附件">
-          <el-link
-            v-for="link in dataForm.repliedFiles"
-            :key="link.id"
-            type="primary"
-            :underline="false"
-            @click="downloadFile(link)"
-          >
-            {{ link.name }}
-          </el-link>
+ 
         </el-form-item>
       </el-col>
     </el-row>

+ 1 - 0
src/views/saleManage/saleOrder/accountstatement/index.vue

@@ -139,6 +139,7 @@
     <!--对账单详情    -->
     <detail-dialog
       :detailDialogFlag.sync="detailDialogFlag"
+      v-if="detailDialogFlag"
       ref="detailDialogRef"
     ></detail-dialog>
     <!-- 创建发票选择采购对账单信息 对账明细   -->

+ 2 - 0
src/views/saleManage/saleOrder/components/inventoryTable.vue

@@ -1476,6 +1476,8 @@ export default {
         this.$set(params, 'produceType', item.produceType);
         this.$set(params, 'productionDays', item.productionDays);
         this.$set(params, 'approvalNumber', item.extField.approvalNumber);
+        this.$set(params, 'singleWeight', item.roughWeight);
+        
         this.$set(
           params,
           'packingSpecification',

+ 14 - 2
src/views/targetManage/salesTarget/components/addOrEditDialog.vue

@@ -180,7 +180,9 @@
       </el-row>
     </el-form>
     <div slot="footer">
-      <el-button type="primary" @click="handleSave(0)" v-click-once>保存</el-button>
+      <el-button type="primary" @click="handleSave(0)" v-click-once
+        >保存</el-button
+      >
       <el-button @click="cancel">返回</el-button>
     </div>
     <staffSelection
@@ -415,12 +417,22 @@ export default {
     },
     handleClick() {},
     handleSave(flag) {
-      console.log(this.form, 'this.form');
       this.$refs.form.validate(async (valid) => {
         if (!valid) return this.$message.warning('有必填项未填,请检查');
         this.form.targetDefinitionList = this.treeData.children;
         this.form.assessmentDimensions =
           this.form.assessmentDimensions.toString();
+        if (
+          this.form.assessmentObject == 1 ||
+          this.form.assessmentObject == 2
+        ) {
+          this.form.userId = '';
+          this.form.userName = '';
+        }
+        if (this.form.assessmentObject == 1) {
+          this.form.departmentId = '';
+          this.form.departmentName = '';
+        }
         const id = await salesTargetSave(this.form);
         if (flag) {
           await this.handleSub(id);