Jelajahi Sumber

Merge branch 'master' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-wt

wsx 10 bulan lalu
induk
melakukan
57173c2c77
37 mengubah file dengan 1195 tambahan dan 765 penghapusan
  1. 189 57
      src/BIZComponents/inventoryTable.vue
  2. 61 20
      src/BIZComponents/inventoryTableDetails.vue
  3. 16 3
      src/BIZComponents/product-list.vue
  4. 107 41
      src/BIZComponents/setProduct.js
  5. 10 0
      src/api/bpm/components/wms/index.js
  6. 7 7
      src/views/bpm/handleTask/components/businessOpportunity/saleGeneralityInventoryTable.vue
  7. 5 0
      src/views/bpm/handleTask/components/contractBook/detailDialog.vue
  8. 155 125
      src/views/bpm/handleTask/components/financialManage/receivableManage/components/detailDialog.vue
  9. 29 9
      src/views/bpm/handleTask/components/inquiryManage/detailDialog.vue
  10. 122 36
      src/views/bpm/handleTask/components/inquiryManage/inquiryTable.vue
  11. 22 3
      src/views/bpm/handleTask/components/inquiryManage/inventoryTable.vue
  12. 29 15
      src/views/bpm/handleTask/components/purchaseNeedManage/detailDialog.vue
  13. 42 22
      src/views/bpm/handleTask/components/purchaseOrder/detailDialog.vue
  14. 17 17
      src/views/bpm/handleTask/components/purchaseOrder/invoice/inventoryTable.vue
  15. 38 15
      src/views/bpm/handleTask/components/purchaseOrder/invoice/receiptInfo.vue
  16. 33 11
      src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/detailDialog.vue
  17. 14 14
      src/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue
  18. 14 14
      src/views/bpm/handleTask/components/purchaseOrder/returnGoods/inventoryTable.vue
  19. 29 9
      src/views/bpm/handleTask/components/purchasePlanManage/detailDialog.vue
  20. 1 1
      src/views/bpm/handleTask/components/purchasePlanManage/submit.vue
  21. 21 94
      src/views/bpm/handleTask/components/quotation/detailDialog.vue
  22. 2 19
      src/views/bpm/handleTask/components/saleOrder/detailDialog.vue
  23. 10 10
      src/views/bpm/handleTask/components/saleOrder/entrustedReceive/detailDialog.vue
  24. 10 10
      src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/detailDialog.vue
  25. 14 14
      src/views/bpm/handleTask/components/saleOrder/exceptionManagement/addOrEditDialog.vue
  26. 10 10
      src/views/bpm/handleTask/components/saleOrder/invoice/addInvoiceDialog.vue
  27. 62 63
      src/views/bpm/handleTask/components/saleOrder/invoice/detailDialog.vue
  28. 10 10
      src/views/bpm/handleTask/components/saleOrder/invoice/inventoryTable.vue
  29. 14 14
      src/views/bpm/handleTask/components/saleOrder/invoiceConfirm/detailDialog.vue
  30. 14 14
      src/views/bpm/handleTask/components/saleOrder/returnGoods/addReturnGoodsDialog.vue
  31. 28 28
      src/views/bpm/handleTask/components/saleOrder/returnGoods/detailDialog.vue
  32. 10 10
      src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTable.vue
  33. 10 10
      src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTableReturn.vue
  34. 10 10
      src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTabledetail.vue
  35. 14 14
      src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/detailDialog.vue
  36. 14 14
      src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/inventoryTable.vue
  37. 2 2
      src/views/bpm/stockManagement/storage.vue

+ 189 - 57
src/BIZComponents/inventoryTable.vue

@@ -282,6 +282,8 @@
             v-model="scope.row.taxRate"
             placeholder="请输入"
             type="number"
+            @input="getNotaxSinglePrice"
+            
           >
             <template slot="append">%</template>
           </el-input>
@@ -498,7 +500,7 @@
           </el-select>
         </el-form-item>
       </template>
-      <template v-slot:orderNo="{ row , $index}">
+      <template v-slot:orderNo="{ row, $index }">
         <el-form-item :prop="'datasource.' + $index + '.orderNo'">
           <el-select v-model="row.orderNo" style="width: 100%">
             <el-option
@@ -514,6 +516,53 @@
       <template v-slot:headerPricingWay="{ column }">
         <span class="is-required">{{ column.label }}</span>
       </template>
+
+      <template v-slot:saleCount="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.' + countObj.countKey"
+          :rules="{
+            required: isTotalCount ? true : false,
+            message: '请输入数量',
+            trigger: 'change'
+          }"
+        >
+          <el-input
+            v-model="scope.row[countObj.countKey]"
+            placeholder="请输入"
+            type="number"
+            :min="0"
+            @input="changeCount(scope.row, scope.$index)"
+          >
+          </el-input>
+        </el-form-item>
+      </template>
+      <template v-slot:saleUnit="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.' + countObj.unitIdKey"
+          :rules="{
+            required: isTotalCount ? true : false,
+            message: '请选择单位',
+            trigger: 'change'
+          }"
+        >
+          <el-select
+            v-model="scope.row[countObj.unitIdKey]"
+            style="width: 100%"
+            @change="changeCount(scope.row, scope.$index)"
+          >
+            <el-option
+              :label="item.conversionUnit"
+              :value="item.id"
+              @click.native="packingChange(item, scope.$index)"
+              v-for="(item, index) in scope.row.packageDispositionList"
+              :key="index"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </template>
+
       <!-- 操作列 -->
       <template v-slot:action="scope">
         <el-popconfirm
@@ -558,7 +607,7 @@
   import { getByCode } from '@/api/system/dictionary-data';
   // import fileMain from '@/components/addDoc/index.vue';
   import { pricingWayList, lbjtList } from '@/enum/dict.js';
-  import { changeCount } from '@/BIZComponents/setProduct.js';
+  import { changeCount, getAllPrice } from '@/BIZComponents/setProduct.js';
   import { getInventoryTotalAPI } from '@/api/bpm/components/wms/index.js';
   // import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
 
@@ -652,6 +701,16 @@
         default: () => {
           return [];
         }
+      },
+      countObj: {
+        type: Object,
+        default: () => {
+          return {
+            countKey: 'saleCount',
+            unitKey: 'saleUnit',
+            unitIdKey: 'saleUnitId'
+          };
+        }
       }
     },
     data() {
@@ -802,12 +861,42 @@
           },
           {
             width: 150,
-            prop: 'totalCount',
+            prop: 'saleCount',
             label: '数量',
-            slot: 'totalCount',
+            slot: 'saleCount',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'saleUnit',
+            label: '单位',
+            slot: 'saleUnit',
             headerSlot: 'headerTotalCount',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'totalCount',
+            label: '计量数量',
+            // slot: 'totalCount',
+            // headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'measuringUnit',
+            label: '计量单位',
+            slot: 'measuringUnit',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 110,
             prop: 'batchNo',
@@ -830,13 +919,7 @@
             showOverflowTooltip: true,
             minWidth: 200
           },
-          {
-            width: 120,
-            prop: 'measuringUnit',
-            label: '计量单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
+       
           {
             width: 120,
             prop: 'singleWeight',
@@ -860,14 +943,14 @@
             align: 'center'
           },
 
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            headerSlot: 'headerPricingWay',
-            slot: 'pricingWay',
-            align: 'center'
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   headerSlot: 'headerPricingWay',
+          //   slot: 'pricingWay',
+          //   align: 'center'
+          // },
           {
             width: 200,
             prop: 'singlePrice',
@@ -1031,10 +1114,14 @@
       this.getDictList('productionType');
     },
     methods: {
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
+      packingChange(item, index) {
+        this.$set(
+          this.form.datasource[index],
+          this.countObj.unitKey,
+          item.conversionUnit
+        );
       },
+
       async getDictList(code) {
         let { data: res } = await getByCode(code);
         this.dictList[code] = res.map((item) => {
@@ -1045,9 +1132,7 @@
           };
         });
       },
-      downloadFile(file) {
-        getFile({ objectName: file.storePath }, file.name);
-      },
+
       openVersion(index) {
         this.$refs.versionRefs.open(index);
       },
@@ -1140,11 +1225,31 @@
       },
       //改变数量
       changeCount(row, index) {
-        const { allPrice, arr } = changeCount(row, index, this.form.datasource);
-        this.form.datasource = arr;
-        this.allPrice = allPrice || 0;
+        if (!row) {
+          this.form.datasource.forEach((item, index) => {
+            this.$set(
+              this.form,
+              'datasource[' + index + ']',
+              changeCount(item, this.countObj)
+            );
+          });
+        } else {
+          this.$set(
+            this.form,
+            'datasource[' + index + ']',
+            changeCount(row, this.countObj)
+          );
+        }
+
+        this.getNotaxSinglePrice();
+        this.changeAll();
+        this.$forceUpdate();
+      },
+      changeAll() {
+        this.allPrice = getAllPrice(this.form.datasource) || 0;
         if (this.isDiscountTotalPrice) {
-          this.form.discountTotalPrice = allPrice;
+          this.form.discountTotalPrice = this.allPrice;
+          this.$emit('setDiscountTotalPrice', this.allPrice);
         }
         this.$emit('setCountAmount', this.allPrice);
       },
@@ -1154,7 +1259,22 @@
           this.$forceUpdate();
         });
       },
-
+      //计算不含税单价
+      getNotaxSinglePrice() {
+        this.form.datasource.forEach((item, index) => {
+          if (item.singlePrice && item.taxRate) {
+            this.$set(
+              this.form.datasource[index],
+              'notaxSinglePrice',
+              parseFloat(
+                (item.singlePrice / (1 + item.taxRate / 100)).toFixed(2)
+              )
+            );
+          } else {
+            this.$set(this.form.datasource[index], 'notaxSinglePrice', '');
+          }
+        });
+      },
       //修改回显
       async putTableValue(data) {
         let productList =
@@ -1183,16 +1303,7 @@
             }
           });
           this.form.datasource = productList;
-          if (this.isChangeCount) {
-            this.changeCount();
-          } else {
-            this.allPrice = data.totalAmount || data?.contractVO?.totalPrice;
-          }
-
-          if (this.isDiscountTotalPrice) {
-            this.form.discountTotalPrice =
-              data.payAmount || data?.contractVO?.discountTotalPrice;
-          }
+ 
 
           let codeList = this.form.datasource
             .filter((item) => item.productCode)
@@ -1213,6 +1324,16 @@
                 find.availableCountBase
               );
             });
+            if (this.isChangeCount) {
+            this.changeCount();
+          } else {
+            this.allPrice = data.totalAmount || data?.contractVO?.totalPrice;
+          }
+
+          if (this.isDiscountTotalPrice) {
+            this.form.discountTotalPrice =
+              data.payAmount || data?.contractVO?.discountTotalPrice;
+          }
           this.$refs.table.reload();
         }
       },
@@ -1263,7 +1384,7 @@
           this.$set(parasm, 'imgCode', item.imgCode);
           this.$set(parasm, 'produceType', item.produceType);
           this.$set(parasm, 'approvalNumber', item.extField.approvalNumber);
-          if(this.isOrderNo){
+          if (this.isOrderNo) {
             this.$set(parasm, 'orderNo', this.orderOption[0]?.orderNo);
             this.$set(parasm, 'orderId', this.orderOption[0]?.orderId);
           }
@@ -1272,6 +1393,19 @@
             'packingSpecification',
             item.extField.packingSpecification
           );
+          this.$set(
+            parasm,
+            'packageDispositionList',
+            item.packageDispositionList
+          );
+          if (item.packageDispositionList?.length) {
+            this.$set(parasm, 'saleUnitId', item.packageDispositionList[0].id);
+            this.$set(
+              parasm,
+              'saleUnit',
+              item.packageDispositionList[0].conversionUnit
+            );
+          }
           this.$set(parasm, 'customerMark', this.customerMark);
           if (item.purchaseOrigins?.length > 0) {
             item.purchaseOrigins = item.purchaseOrigins.map((val) => val + '');
@@ -1285,11 +1419,9 @@
       remove(index) {
         this.form.datasource.splice(index, 1);
         this.setSort();
+        this.changeAll();
       },
-      // 清空表格
-      restTable() {
-        this.form.datasource = [];
-      },
+
       // 重新排序
       setSort() {
         this.form.datasource.forEach((n, index) => {
@@ -1304,18 +1436,18 @@
       },
 
       validateForm(callback) {
-        let singleWeightData = {};
-        this.form.datasource.forEach((item) => {
-          if (item.pricingWay == 2 && !item.singleWeight) {
-            singleWeightData['name'] = item.productName;
-          }
-        });
-        if (singleWeightData.name) {
-          this.$message.warning(
-            singleWeightData.name + '计价方式为重量,单重不能为空'
-          );
-          callback(false);
-        }
+        // let singleWeightData = {};
+        // this.form.datasource.forEach((item) => {
+        //   if (item.pricingWay == 2 && !item.singleWeight) {
+        //     singleWeightData['name'] = item.productName;
+        //   }
+        // });
+        // if (singleWeightData.name) {
+        //   this.$message.warning(
+        //     singleWeightData.name + '计价方式为重量,单重不能为空'
+        //   );
+        //   callback(false);
+        // }
         //开始表单校验
         this.$refs.form.validate((valid, obj) => {
           if (obj) {

+ 61 - 20
src/BIZComponents/inventoryTableDetails.vue

@@ -11,7 +11,6 @@
     >
       <template v-slot:technicalDrawings="scope">
         <el-form-item
-          style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.technicalDrawings'"
         >
           <fileMain
@@ -22,7 +21,6 @@
       </template>
       <template v-slot:customerReqFiles="scope">
         <el-form-item
-          style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.customerReqFiles'"
         >
           <fileMain v-model="scope.row.customerReqFiles" type="view"></fileMain>
@@ -30,7 +28,6 @@
       </template>
       <template v-slot:industryArtFiles="scope">
         <el-form-item
-          style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.industryArtFiles'"
         >
           <fileMain v-model="scope.row.industryArtFiles" type="view"></fileMain>
@@ -38,7 +35,6 @@
       </template>
       <template v-slot:otherFiles="scope">
         <el-form-item
-          style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '. otherFiles'"
         >
           <fileMain v-model="scope.row.otherFiles" type="view"></fileMain>
@@ -58,7 +54,20 @@
           </el-link>
         </div>
       </template>
-
+      <template v-slot:saleCount="scope">
+        <el-form-item
+          :prop="'datasource.' + scope.$index + '.' + countObj.countKey"
+        >
+          {{ scope.row[countObj.countKey] }}
+        </el-form-item>
+      </template>
+      <template v-slot:saleUnit="scope">
+        <el-form-item
+          :prop="'datasource.' + scope.$index + '.' + countObj.unitKey"
+        >
+          {{ scope.row[countObj.unitKey] }}
+        </el-form-item>
+      </template>
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
         <div class="headbox">
@@ -127,6 +136,15 @@
       isOrderNo: {
         type: Boolean,
         default: false
+      },      countObj: {
+        type: Object,
+        default: () => {
+          return {
+            countKey: 'saleCount',
+            unitKey: 'saleUnit',
+            unitIdKey: 'saleUnitId'
+          };
+        }
       }
     },
     data() {
@@ -230,8 +248,31 @@
           },
           {
             width: 150,
-            prop: 'totalCount',
+            prop: 'saleCount',
             label: '数量',
+            slot: 'saleCount',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'saleUnit',
+            label: '单位',
+            slot: 'saleUnit',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
+          {
+            width: 150,
+            prop: 'totalCount',
+            label: '计量数量',
             slot: 'totalCount',
             headerSlot: 'headerTotalCount',
             align: 'center'
@@ -281,20 +322,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'goodsPriceType',

+ 16 - 3
src/BIZComponents/product-list.vue

@@ -56,7 +56,10 @@
 
 <script>
   import { getProductList } from '@/api/bpm/components/saleManage/contact.js';
-  import { getInventoryTotalAPI } from '@/api/bpm/components/wms/index.js';
+  import {
+    getInventoryTotalAPI,
+    getCategoryPackageDisposition
+  } from '@/api/bpm/components/wms/index.js';
   import searchProduct from './searchProduct.vue';
   import productTree from '@/components/productTree/index.vue';
   export default {
@@ -305,11 +308,11 @@
           }
         }
 
-        let codeList = [];
         let list = this.currentIndex == -1 ? this.selection : [this.current];
+        let codeList = list.map((item) => item.code);
+        let idList = list.map((item) => item.id);
         //获取仓库库存
         if (this.isGetInventoryTotal) {
-          codeList = list.map((item) => item.code);
           let inventoryTotalList = await getInventoryTotalAPI(codeList);
           list.forEach((item) => {
             let find =
@@ -317,6 +320,16 @@
             item.availableCountBase = find.availableCountBase;
           });
         }
+        // 获取包装规格
+        let packingSpecification = await getCategoryPackageDisposition({
+          categoryIds: idList
+        });
+        list.forEach((item) => {
+          item['packageDispositionList'] = packingSpecification
+            .filter((ite) => item.id == ite.categoryId && ite.conversionUnit)
+            .sort((a, b) => a.sort - b.sort);
+        });
+
         this.$emit('changeParent', list, this.currentIndex);
 
         this.handleClose();

+ 107 - 41
src/BIZComponents/setProduct.js

@@ -1,50 +1,116 @@
-
+import Vue from 'vue';
 
 //改变数量
-export function changeCount(row, index, arr) {
-  if(row){
-    singleWeightChange(row, index);
+export function changeCount(row, countObj,noDiscountSingle) {
+  let total = row[countObj.countKey] || 0;
+  let data = row;
+  let endIndex = row.packageDispositionList.findIndex(
+    (ite) => row[countObj.unitIdKey] == ite.id
+  );
+  for (; 0 < endIndex; endIndex--) {
+    total = Vue.prototype.$math.format(
+      row.packageDispositionList[endIndex].packageCell * total,
+      14
+    );
   }
-  return getNumTotalPrice(arr);
-}
-
-
-//计算总金额
-function getNumTotalPrice(arr) {
-  let sum = 0;
-  arr.forEach((r, index) => {
-    if (r.singlePrice && r.totalCount) {
-      r.totalPrice = getAllPrice(r);
-      r.discountTotalPrice = r.totalPrice;
-      sum += Number(r.totalPrice);
-    } else {
-      r.totalPrice = 0;
-      r.discountTotalPrice = 0;
-    }
-  });
-  return { allPrice: isNaN(sum) ? 0 : sum.toFixed(2), arr };
-}
+  data['totalCount'] = total;
+  data['discountSinglePrice'] = !noDiscountSingle
+    ? data.singlePrice
+    : data.discountSinglePrice;
 
-//获取合计
-function getAllPrice(row) {
-  let num = 0;
-  if (row.pricingWay == 1) {
-    //按数量计价计算总金额
-    num = Number(row.singlePrice) * Number(row.totalCount);
+  setWeight(data);
+  if (row.totalCount && row.singlePrice) {
+    data['totalPrice'] = row.totalCount * row.singlePrice;
+    data['discountTotalPrice'] = !noDiscountSingle
+      ? data.totalPrice
+      : data.discountTotalPrice;
   }
-  if (row.pricingWay == 2) {
-    //按重量计价计算总金额
-    num =
-      Number(row.singlePrice) *
-      Number(row.totalCount) *
-      Number(row.singleWeight);
-  }
-  return isNaN(num) ? '' : num.toFixed(2);
+  // getNotaxSinglePrice(data);
+  return data;
+  // if (row) {
+  //   singleWeightChange(row, index);
+  // }
+  // return getNumTotalPrice(arr, noDiscountSingle);
 }
-function singleWeightChange(row) {
-  if (row && row.singleWeight && row.totalCount) {
-    row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
+function setWeight(row) {
+  if (row.weightUnit == row.measuringUnit) {
+    row['totalWeight'] = row.totalCount;
+  } else if (row.totalCount && row.singleWeight) {
+    row['totalWeight'] = row.totalCount * row.singleWeight;
   } else {
-    row.totalWeight = '';
+    row['totalWeight'] = 0;
   }
 }
+export function getAllPrice(arr){
+  let sum = 0;
+  arr.forEach(item=>{
+    if(item.totalPrice){
+      sum+=Number(item.totalPrice)
+    }
+  })
+  return sum
+}
+// //计算不含税单价
+// function getNotaxSinglePrice(row) {
+//   if (row.singlePrice && row.taxRate) {
+//     row['notaxSinglePrice'] = parseFloat(
+//       (row.singlePrice / (1 + row.taxRate / 100)).toFixed(2)
+//     );
+//   } else {
+//     row['notaxSinglePrice'] = '';
+//   }
+// }
+
+// //计算总金额
+// function getNumTotalPrice(arr, noDiscountSingle) {
+//   let sum = 0;
+//   arr.forEach((r, index) => {
+//     // if (r.singlePrice) {
+//     //   r.notaxSinglePrice=r.taxRate?r.singlePrice/(1-(r.taxRate/100)):r.singlePrice
+//     // }
+//     if (r.singlePrice && r.totalCount) {
+//       Vue.set(
+//         arr[index],
+//         'discountSinglePrice',
+//         !noDiscountSingle ? r.singlePrice : r.discountSinglePrice
+//       );
+//       Vue.set(arr[index], 'totalPrice', getAllPrice(r));
+//       Vue.set(
+//         arr[index],
+//         'discountTotalPrice',
+//         !noDiscountSingle ? r.totalPrice : r.discountTotalPrice
+//       );
+//       sum += Number(r.totalPrice);
+//     } else {
+//       Vue.set(arr[index], 'totalPrice', 0);
+//       Vue.set(arr[index], 'discountTotalPrice',0);
+
+//     }
+//   });
+//   return { allPrice: isNaN(sum) ? 0 : sum.toFixed(2), arr };
+// }
+
+// //获取合计
+// function getAllPrice(row) {
+//   let num = 0;
+//   if (row.pricingWay == 1) {
+//     //按数量计价计算总金额
+//     num = Number(row.singlePrice) * Number(row.totalCount);
+//   }
+//   if (row.pricingWay == 2) {
+//     //按重量计价计算总金额
+//     num =
+//       Number(row.singlePrice) *
+//       Number(row.totalCount) *
+//       Number(row.singleWeight);
+//   }
+//   return isNaN(num) ? '' : num.toFixed(2);
+// }
+// function singleWeightChange(row) {
+//   console.log(row, 'row');
+//   if (row && row.singleWeight && row.totalCount) {
+//     row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
+//   } else {
+//     row.totalWeight = '';
+//   }
+// }

+ 10 - 0
src/api/bpm/components/wms/index.js

@@ -144,3 +144,13 @@ export async function getWarehouseList() {
   }
   return Promise.reject(new Error(res.data.message));
 }
+export async function getCategoryPackageDisposition (data){
+  const res = await request.post(
+    '/main/categoryPackageDisposition/list',
+    data
+  );
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 7 - 7
src/views/bpm/handleTask/components/businessOpportunity/saleGeneralityInventoryTable.vue

@@ -671,13 +671,13 @@
             align: 'center'
           },
 
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center'
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center'
+          // },
           {
             width: 200,
             prop: 'singlePrice',

+ 5 - 0
src/views/bpm/handleTask/components/contractBook/detailDialog.vue

@@ -209,6 +209,11 @@
       :contractBookType="form.type"
       :pricingWay="form.pricingWay"
       :isChangeCount="false"
+      :countObj="{
+              countKey: 'contractCount',
+              unitKey: 'contractUnit',
+              unitIdKey: 'contractUnitId'
+            }"
     >
     </inventoryTabledetail>
 

+ 155 - 125
src/views/bpm/handleTask/components/financialManage/receivableManage/components/detailDialog.vue

@@ -7,12 +7,14 @@
           <el-form-item
             label="应收日期"
             prop="receivableDate"
-            style="margin-bottom: 22px">
+            style="margin-bottom: 22px"
+          >
             <el-date-picker
               style="width: 100%"
               v-model="form.receivableDate"
               type="date"
-              value-format="yyyy-MM-dd">
+              value-format="yyyy-MM-dd"
+            >
             </el-date-picker>
           </el-form-item>
         </el-col>
@@ -20,10 +22,16 @@
           <el-form-item
             label="应收金额"
             prop="receivableTotalPrice"
-            style="margin-bottom: 22px">
-            <el-input-number disabled v-model="form.receivableTotalPrice" :precision="2" :controls="false"
-                             style="width: 100%"
-                             :min="0"></el-input-number>
+            style="margin-bottom: 22px"
+          >
+            <el-input-number
+              disabled
+              v-model="form.receivableTotalPrice"
+              :precision="2"
+              :controls="false"
+              style="width: 100%"
+              :min="0"
+            ></el-input-number>
           </el-form-item>
         </el-col>
       </el-row>
@@ -32,7 +40,8 @@
           <el-form-item
             label="会计科目"
             prop="accountingSubjectId"
-            style="margin-bottom: 22px">
+            style="margin-bottom: 22px"
+          >
             <ele-tree-select
               clearable
               filterable
@@ -51,46 +60,59 @@
           <el-form-item
             label="发票编码"
             prop="invoiceCode"
-            style="margin-bottom: 22px">
+            style="margin-bottom: 22px"
+          >
             <el-input disabled v-model="form.invoiceCode"></el-input>
           </el-form-item>
         </el-col>
-
-
       </el-row>
       <el-row :gutter="12">
         <el-col :span="12">
           <el-form-item
             label="来源类型"
             prop="sourceType"
-            style="margin-bottom: 22px">
-            <el-input :value="form.sourceType==2?'合同':form.sourceType==3?'销售订单':'对账单'" disabled></el-input>
+            style="margin-bottom: 22px"
+          >
+            <el-input
+              :value="
+                form.sourceType == 2
+                  ? '合同'
+                  : form.sourceType == 3
+                  ? '销售订单'
+                  : form.sourceType == 4
+                  ? '售后管理'
+                  : form.sourceType == 5
+                  ? '发货单'
+                  : '对账单'
+              "
+              disabled
+            ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item
             label="来源编码"
             prop="sourceCode"
-            style="margin-bottom: 22px">
+            style="margin-bottom: 22px"
+          >
             <el-input v-model="form.sourceCode" disabled></el-input>
           </el-form-item>
         </el-col>
       </el-row>
 
-
       <el-row :gutter="12">
         <el-col :span="12">
           <el-form-item
             label="公司名称"
             prop="contactName"
-            style="margin-bottom: 22px">
+            style="margin-bottom: 22px"
+          >
             <el-input disabled v-model="form.contactName"></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="附件">
             <fileMain v-model="form.files"></fileMain>
-
           </el-form-item>
         </el-col>
       </el-row>
@@ -99,131 +121,139 @@
 </template>
 
 <script>
-import {getFile} from '@/api/system/file';
-import dictMixins from '@/mixins/dictMixins';
-import fileUpload from "@/components/upload/fileUpload.vue";
-
-import personSelect from "@/components/CommomSelect/person-select.vue";
+  import { getFile } from '@/api/system/file';
+  import dictMixins from '@/mixins/dictMixins';
+  import fileUpload from '@/components/upload/fileUpload.vue';
 
-import {invoiceApplyInfoAPI} from "@/api/bpm/components/financialManage/invoiceManage";
-import tableInfo from "@/views/bpm/handleTask/components/financialManage/invoiceManage/components/tableInfo.vue";
-import {finReceivableUpdateAPI, getFinReceivableInfoAPI} from "@/api/bpm/components/financialManage/receivableManage";
-import {getTreeByPid} from "@/api/classifyManage";
-// import fileMain from "@/components/addDoc/index.vue";
+  import personSelect from '@/components/CommomSelect/person-select.vue';
 
+  import { invoiceApplyInfoAPI } from '@/api/bpm/components/financialManage/invoiceManage';
+  import tableInfo from '@/views/bpm/handleTask/components/financialManage/invoiceManage/components/tableInfo.vue';
+  import {
+    finReceivableUpdateAPI,
+    getFinReceivableInfoAPI
+  } from '@/api/bpm/components/financialManage/receivableManage';
+  import { getTreeByPid } from '@/api/classifyManage';
+  // import fileMain from "@/components/addDoc/index.vue";
 
-export default {
-  mixins: [dictMixins],
-  components: {
-    // fileMain,
-    tableInfo,
-    personSelect,
-    fileUpload
-  },
-  data() {
-    return {
-      dialogType: '',
-      form: {
-        accountingSubjectCode: "",
-        accountingSubjectId: '',
-        accountingSubjectName: "",
-        contactId: '',
-        contactName: "",
-        files: [],
-        id: '',
-        invoiceCode: "",
-        receivableDate: "",
-        receivableTotalPrice: '',
-        receivedTotalPrice: '',
-        remark: "",
-        sourceCode: "",
-        sourceId: "",
-        sourceType: '',
-        unreceiveTotalPrice: 0
-      },
-      accountingSubjectList: [],
-      rules: {
-        accountingSubjectId: {required: true, message: '请选择', trigger: 'change'},
-        receivableDate: {required: true, message: '请选择', trigger: 'change'},
-      }
-    };
-  },
-  props: {
-    businessId: {
-      default: ''
+  export default {
+    mixins: [dictMixins],
+    components: {
+      // fileMain,
+      tableInfo,
+      personSelect,
+      fileUpload
     },
-    taskDefinitionKey: {
-      default: ''
+    data() {
+      return {
+        dialogType: '',
+        form: {
+          accountingSubjectCode: '',
+          accountingSubjectId: '',
+          accountingSubjectName: '',
+          contactId: '',
+          contactName: '',
+          files: [],
+          id: '',
+          invoiceCode: '',
+          receivableDate: '',
+          receivableTotalPrice: '',
+          receivedTotalPrice: '',
+          remark: '',
+          sourceCode: '',
+          sourceId: '',
+          sourceType: '',
+          unreceiveTotalPrice: 0
+        },
+        accountingSubjectList: [],
+        rules: {
+          accountingSubjectId: {
+            required: true,
+            message: '请选择',
+            trigger: 'change'
+          },
+          receivableDate: {
+            required: true,
+            message: '请选择',
+            trigger: 'change'
+          }
+        }
+      };
     },
-  },
-  async created() {
-    await this.getInfo(this.businessId)
-  },
-  methods: {
-    //获取详情
-    async getInfo(id) {
-      await this.getClassifyList(24, 'accountingSubjectList')
-      let data = await getFinReceivableInfoAPI(id)
-      this.form = data
-      let invoiceData={}
-      if(data.invoiceId){
-        invoiceData = await invoiceApplyInfoAPI(data.invoiceId)
+    props: {
+      businessId: {
+        default: ''
+      },
+      taskDefinitionKey: {
+        default: ''
       }
-
-     
-      this.form.accountingSubjectCode = invoiceData.accountingSubjectCode
-      this.form.accountingSubjectId = invoiceData.accountingSubjectId
-      this.form.accountingSubjectName = invoiceData.accountingSubjectName
     },
-    downloadFile(file) {
-      getFile({objectName: file.storePath}, file.name);
+    async created() {
+      await this.getInfo(this.businessId);
     },
+    methods: {
+      //获取详情
+      async getInfo(id) {
+        await this.getClassifyList(24, 'accountingSubjectList');
+        let data = await getFinReceivableInfoAPI(id);
+        this.form = data;
+        let invoiceData = {};
+        if (data.invoiceId) {
+          invoiceData = await invoiceApplyInfoAPI(data.invoiceId);
+        }
 
-    //获取分类管理中的数据
-    async getClassifyList(id, listName) {
-      let res = await getTreeByPid(id)
-      this[listName] = res.data
-    },
-    //获取会计科目选中数据
-    changeSubjectInfo(val) {
-      if (!val) return this.form.accountingSubjectName = ''
-      let data = this.$refs.treeSelect?.$refs?.tree?.getCurrentNode() || {}
-      this.form.accountingSubjectName = data.name
-    },
-    getTableValue() {
-      return new Promise((resolve, reject) => {
-        this.$refs.form.validate(async valid => {
-          if (!valid) return this.$message.warning('有必填项未填,请检查')
-          const API = finReceivableUpdateAPI
-          const res = await API(this.form)
-          res.code == '0' ? resolve('1') : reject(new Error(data.message))
-        })
-      })
+        this.form.accountingSubjectCode = invoiceData.accountingSubjectCode;
+        this.form.accountingSubjectId = invoiceData.accountingSubjectId;
+        this.form.accountingSubjectName = invoiceData.accountingSubjectName;
+      },
+      downloadFile(file) {
+        getFile({ objectName: file.storePath }, file.name);
+      },
 
-    },
-    cancel() {
-      this.$emit('update:detailDialogFlag', false)
+      //获取分类管理中的数据
+      async getClassifyList(id, listName) {
+        let res = await getTreeByPid(id);
+        this[listName] = res.data;
+      },
+      //获取会计科目选中数据
+      changeSubjectInfo(val) {
+        if (!val) return (this.form.accountingSubjectName = '');
+        let data = this.$refs.treeSelect?.$refs?.tree?.getCurrentNode() || {};
+        this.form.accountingSubjectName = data.name;
+      },
+      getTableValue() {
+        return new Promise((resolve, reject) => {
+          this.$refs.form.validate(async (valid) => {
+            if (!valid) return this.$message.warning('有必填项未填,请检查');
+            const API = finReceivableUpdateAPI;
+            const res = await API(this.form);
+            res.code == '0' ? resolve('1') : reject(new Error(data.message));
+          });
+        });
+      },
+      cancel() {
+        this.$emit('update:detailDialogFlag', false);
+      }
     }
-  }
-};
+  };
 </script>
 
 <style scoped lang="scss">
-.ele-dialog-form {
-  .el-form-item {
-    margin-bottom: 10px;
+  .ele-dialog-form {
+    .el-form-item {
+      margin-bottom: 10px;
+    }
   }
-}
 
-.headbox {
-  display: flex;
-  justify-content: flex-start;
-  align-items: center;
+  .headbox {
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
 
-  .amount {
-    font-size: 14px;
-    font-weight: bold;
-    margin-right: 20px;
+    .amount {
+      font-size: 14px;
+      font-weight: bold;
+      margin-right: 20px;
+    }
   }
-}
 </style>

+ 29 - 9
src/views/bpm/handleTask/components/inquiryManage/detailDialog.vue

@@ -180,29 +180,49 @@
             },
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            align: 'center'
+          },
+          {
+            minWidth: 180,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             minWidth: 80,
             prop: 'totalCount',
-            label: '数量',
+            label: '计量数量',
             slot: 'totalCount',
             showOverflowTooltip: true,
             align: 'center',
           },
-          {
-            width: 120,
-            prop: 'totalWeight',
-            label: '重量',
-            slot: 'totalWeight',
-            align: 'center'
-          },
           {
             minWidth: 80,
             prop: 'measuringUnit',
-            label: '单位',
+            label: '计量单位',
             slot: 'measuringUnit',
             showOverflowTooltip: true,
             align: 'center',
           },
+          {
+            width: 120,
+            prop: 'totalWeight',
+            label: '重量',
+            slot: 'totalWeight',
+            align: 'center'
+          },
+    
           {
             minWidth: 120,
             prop: 'modelType',

+ 122 - 36
src/views/bpm/handleTask/components/inquiryManage/inquiryTable.vue

@@ -94,6 +94,7 @@
             v-model="row.taxRate"
             style="width: 100%"
             :disabled="status == 'Detail'"
+            @input="getNotaxSinglePrice"
           >
             <template slot="suffix">%</template>
           </el-input>
@@ -205,7 +206,7 @@
           }"
         >
           <el-input
-            @blur="changeGetPrice(scope.row)"
+            @input="changeCount(scope.row, scope.$index)"
             v-model="scope.row.singlePrice"
             :disabled="status == 'Detail'"
             type="number"
@@ -240,7 +241,7 @@
           }"
         >
           <el-input
-            @blur="changeGetPrice(scope.row)"
+            @input="changeCount(scope.row, scope.$index)"
             v-model="scope.row.totalCount"
             :disabled="status == 'Detail'"
             placeholder="请输入"
@@ -323,16 +324,53 @@
       <template v-slot:isRequired="{ column }">
         <span class="is-required">{{ column.label }}</span>
       </template>
-      <!-- <template v-slot:files="scope">
-        <el-form-item prop="files">
-          <fileUpload
-            v-model="scope.row.files"
-            module="main"
-            :showLib="false"
-            :limit="5"
-          />
+      <template v-slot:purchaseCount="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'resultList.' + scope.$index + '.purchaseCount'"
+          :rules="{
+            required: true,
+            message: '请输入数量',
+            trigger: 'change'
+          }"
+        >
+          <el-input
+            v-model="scope.row.purchaseCount"
+            placeholder="请输入"
+            type="number"
+            :disabled="status == 'Detail'"
+            :min="0"
+            @input="changeCount(scope.row, scope.$index)"
+          >
+          </el-input>
         </el-form-item>
-      </template> -->
+      </template>
+      <template v-slot:purchaseUnit="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'resultList.' + scope.$index + '.purchaseUnitId'"
+          :rules="{
+            required: true,
+            message: '请选择单位',
+            trigger: 'change'
+          }"
+        >
+          <el-select
+            v-model="scope.row.purchaseUnitId"
+            style="width: 100%"
+            :disabled="status == 'Detail'"
+            @change="changeCount(scope.row, scope.$index)"
+          >
+            <el-option
+              :label="item.conversionUnit"
+              :value="item.id"
+              @click.native="packingChange(item, scope.$index)"
+              v-for="(item, index) in scope.row.packageDispositionList"
+              :key="index"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+      </template>
     </ele-pro-table>
   </el-form>
 </template>
@@ -347,6 +385,7 @@
   import { listByContactId } from '@/api/bpm/components/saleManage/contact';
   // import headList from '@/views/saleManage/businessOpportunity/components/headList.vue';
   import { levelList } from '@/enum/dict.js';
+  import { changeCount } from '@/BIZComponents/setProduct.js';
 
   const defaultColumns = [
     {
@@ -466,12 +505,35 @@
       showOverflowTooltip: true,
       align: 'center'
     },
+    {
+      width: 150,
+      prop: 'purchaseCount',
+      label: '数量',
+      slot: 'purchaseCount',
+      headerSlot: 'headerTotalCount',
+      align: 'center'
+    },
+    {
+      width: 150,
+      prop: 'purchaseUnit',
+      label: '单位',
+      slot: 'purchaseUnit',
+      headerSlot: 'headerTotalCount',
+      align: 'center'
+    },
+    {
+      width: 120,
+      prop: 'packingSpecification',
+      align: 'center',
+      label: '包装规格',
+      showOverflowTooltip: true
+    },
     {
       minWidth: 90,
       prop: 'totalCount',
       label: '购买数量',
-      slot: 'totalCount',
-      headerSlot: 'isRequired',
+      // slot: 'totalCount',
+      // headerSlot: 'isRequired',
       align: 'center'
     },
     {
@@ -535,7 +597,7 @@
       width: 180,
       prop: 'notaxSinglePrice',
       label: '不含税单价',
-      slot: 'notaxSinglePrice',
+      // slot: 'notaxSinglePrice',
       align: 'center'
     },
     {
@@ -596,13 +658,7 @@
       slot: 'remark',
       align: 'center'
     },
-    {
-      minWidth: 120,
-      prop: 'packingSpecification',
-      align: 'center',
-      label: '包装规格',
-      showOverflowTooltip: true
-    },
+
     {
       minWidth: 90,
       prop: 'taxRate',
@@ -852,19 +908,52 @@
         });
         this.setDeliveryDays();
       },
-      downloadFile(file) {
-        getFile({ objectName: file.storePath }, file.name);
+      packingChange(item, index) {
+        this.$set(
+          this.form.resultList[index],
+          'purchaseUnit',
+          item.conversionUnit
+        );
       },
-      //
-      changeGetPrice(row) {
-        if (row.singlePrice && row.totalCount) {
-          let num = 0;
-          this.form.resultList.forEach((item) => {
-            num += item.totalPrice || 0;
-          });
-          this.form.preferentialPrice = parseFloat(num.toFixed(2));
-        }
+      //改变数量
+      changeCount(row, index) {
+        this.$set(
+          this.form,
+          'resultList[' + index + ']',
+          changeCount(row, {
+            countKey: 'purchaseCount',
+            unitKey: 'purchaseUnit',
+            unitIdKey: 'purchaseUnitId'
+          })
+        );
+        this.getNotaxSinglePrice();
+        this.$forceUpdate();
       },
+            //计算不含税单价
+            getNotaxSinglePrice() {
+        this.form.resultList.forEach((item, index) => {
+          if (item.singlePrice && item.taxRate) {
+            this.$set(
+              this.form.resultList[index],
+              'notaxSinglePrice',
+              parseFloat(
+                (item.singlePrice / (1 + item.taxRate / 100)).toFixed(2)
+              )
+            );
+          } else {
+            this.$set(this.form.resultList[index], 'notaxSinglePrice', '');
+          }
+        });
+      },
+      // changeGetPrice(row) {
+      //   if (row.singlePrice && row.totalCount) {
+      //     let num = 0;
+      //     this.form.resultList.forEach((item) => {
+      //       num += item.totalPrice || 0;
+      //     });
+      //     this.form.preferentialPrice = parseFloat(num.toFixed(2));
+      //   }
+      // },
       //计算销售金额
       totalPrice(a, b, row) {
         if (!a || !b) {
@@ -912,10 +1001,7 @@
       removeSupplier() {
         this.$emit('removeSupplier', this.form.supplierId);
       },
-      // 清空表格
-      restTable() {
-        this.form.resultList = [];
-      },
+
       // 重新排序
       setSort() {
         this.form.resultList.forEach((n, index) => {

+ 22 - 3
src/views/bpm/handleTask/components/inquiryManage/inventoryTable.vue

@@ -80,7 +80,7 @@
   // import fileMain from '@/components/addDoc/index.vue';
   // import headList from '@/views/saleManage/businessOpportunity/components/headList.vue';
   import { lbjtList } from '@/enum/dict.js';
-  // import { levelList } from '@/enum/dict.js';
+  import { levelList } from '@/enum/dict.js';
 
   export default {
     mixins: [dictMixins],
@@ -220,10 +220,29 @@
             },
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             minWidth: 80,
             prop: 'totalCount',
-            label: '数量',
+            label: '计量数量',
             slot: 'totalCount',
             align: 'center'
           },
@@ -237,7 +256,7 @@
           {
             minWidth: 80,
             prop: 'measuringUnit',
-            label: '单位',
+            label: '计量单位',
             slot: 'measuringUnit',
             showOverflowTooltip: true,
             align: 'center'

+ 29 - 15
src/views/bpm/handleTask/components/purchaseNeedManage/detailDialog.vue

@@ -177,13 +177,39 @@
             slot: 'productBrand',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            align: 'center'
+          },
+          {
+            minWidth: 180,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 80,
             prop: 'totalCount',
-            label: '数量',
+            label: '计量数量',
             slot: 'totalCount',
             align: 'center'
           },
+          {
+            width: 100,
+            prop: 'measuringUnit',
+            label: '计量单位',
+            slot: 'measuringUnit',
+            align: 'center'
+          },
           {
             minWidth: 120,
             prop: 'goodsLevel',
@@ -224,13 +250,7 @@
                 : '';
             }
           },
-          {
-            width: 100,
-            prop: 'measuringUnit',
-            label: '单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
+       
           {
             width: 130,
             prop: 'modelType',
@@ -283,13 +303,7 @@
           
             }
           },
-          {
-            width: 120,
-            prop: 'packingSpecification',
-            align: 'center',
-            label: '包装规格',
-            showOverflowTooltip: true
-          },
+
           {
             width: 160,
             prop: 'technicalDrawings',

+ 42 - 22
src/views/bpm/handleTask/components/purchaseOrder/detailDialog.vue

@@ -399,13 +399,39 @@
             slot: 'taskName',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            align: 'center'
+          },
+          {
+            minWidth: 180,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 120,
             prop: 'totalCount',
-            label: '数量',
+            label: '计量数量',
             slot: 'totalCount',
             align: 'center'
           },
+          {
+            width: 120,
+            prop: 'measuringUnit',
+            label: '计量单位',
+            slot: 'measuringUnit',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'produceType',
@@ -429,13 +455,7 @@
             label: '包装规格',
             showOverflowTooltip: true
           },
-          {
-            width: 120,
-            prop: 'measuringUnit',
-            label: '计量单位',
-            slot: 'measuringUnit',
-            align: 'center'
-          },
+      
           {
             width: 120,
             prop: 'singleWeight',
@@ -457,20 +477,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             minWidth: 120,
             prop: 'goodsLevel',

+ 17 - 17
src/views/bpm/handleTask/components/purchaseOrder/invoice/inventoryTable.vue

@@ -274,8 +274,8 @@
             width: 120,
             prop: 'totalCount',
             label: '进货数量',
-            slot: 'totalCount',
-            headerSlot: 'headerTotalCount',
+            // slot: 'totalCount',
+            // headerSlot: 'headerTotalCount',
             align: 'center'
           },
           {
@@ -328,20 +328,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',
@@ -362,7 +362,7 @@
             width: 180,
             prop: 'notaxSinglePrice',
             label: '不含税单价',
-            slot: 'notaxSinglePrice',
+            // slot: 'notaxSinglePrice',
             align: 'center'
           },
           {

+ 38 - 15
src/views/bpm/handleTask/components/purchaseOrder/invoice/receiptInfo.vue

@@ -206,10 +206,33 @@
             slot: 'warehouseName',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            slot: 'purchaseCount',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            slot: 'purchaseUnit',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 80,
             prop: 'totalCount',
-            label: '进货数量',
+            label: '货数量',
             slot: 'totalCount',
             align: 'center'
           },
@@ -270,20 +293,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             minWidth: 120,
             prop: 'goodsLevel',

+ 33 - 11
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/detailDialog.vue

@@ -236,7 +236,29 @@
             slot: 'warehouseName',
             align: 'center'
           },
-
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            slot: 'purchaseCount',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            slot: 'purchaseUnit',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 120,
             prop: 'totalCount',
@@ -279,17 +301,17 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             minWidth: 120,
             prop: 'goodsLevel',

+ 14 - 14
src/views/bpm/handleTask/components/purchaseOrder/returnGoods/detailDialog.vue

@@ -313,20 +313,20 @@
             slot: 'increaseTotalWeight',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             minWidth: 120,
             prop: 'goodsLevel',

+ 14 - 14
src/views/bpm/handleTask/components/purchaseOrder/returnGoods/inventoryTable.vue

@@ -374,20 +374,20 @@
             slot: 'increaseTotalWeight',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',

+ 29 - 9
src/views/bpm/handleTask/components/purchasePlanManage/detailDialog.vue

@@ -309,12 +309,38 @@
             align: 'center',
             slot: 'productBrand'
           },
+          {
+            width: 150,
+            prop: 'purchaseCount',
+            label: '数量',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'purchaseUnit',
+            label: '单位',
+            align: 'center'
+          },
+          {
+            minWidth: 180,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 100,
             prop: 'totalCount',
-            label: '数量',
+            label: '计量数量',
+            align: 'center',
+            // slot: 'totalCount'
+          },
+          {
+            width: 100,
+            prop: 'measuringUnit',
+            label: '计量单位',
             align: 'center',
-            slot: 'totalCount'
+            slot: 'measuringUnit'
           },
           {
             minWidth: 120,
@@ -340,13 +366,7 @@
             slot: 'totalWeight',
             align: 'center'
           },
-          {
-            width: 100,
-            prop: 'measuringUnit',
-            label: '单位',
-            align: 'center',
-            slot: 'measuringUnit'
-          },
+       
           {
             width: 130,
             prop: 'modelType',

+ 1 - 1
src/views/bpm/handleTask/components/purchasePlanManage/submit.vue

@@ -8,7 +8,7 @@
         style="margin-bottom: 20px"
       >
         <deptSelect
-          :disabled="type == 'detail'"
+        
           v-model="form.useDeptId"
           @changeGroup="searchDeptNodeClick"
         />

+ 21 - 94
src/views/bpm/handleTask/components/quotation/detailDialog.vue

@@ -11,103 +11,45 @@
   > -->
   <div>
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-      <headerTitle title="基本信息">
-        <!-- <el-button
-                  size="small"
-                  type="primary"
-                  icon="el-icon-s-grid"
-                  class="ele-btn-icon"
-                  @click="exportTable"
-                >
-                 导出
-                </el-button> -->
-      </headerTitle>
+      <headerTitle title="基本信息"> </headerTitle>
       <el-row>
         <el-col :span="12">
-          <el-form-item
-            label="关联商机名称"
-            prop="opportunityName"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="关联商机名称" prop="opportunityName">
             {{ detailData.opportunityName }}
           </el-form-item>
-          <el-form-item
-            label="询价方名称"
-            prop="contactName"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方名称" prop="contactName">
             {{ form.contactName }}
           </el-form-item>
 
-          <el-form-item
-            label="询价方联系人"
-            prop="contactLinkName"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方联系人" prop="contactLinkName">
             {{ form.contactLinkName }}
           </el-form-item>
 
-          <el-form-item
-            label="询价方电话"
-            prop="contactTel"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方电话" prop="contactTel">
             {{ form.contactTel }}
           </el-form-item>
-          <el-form-item
-            label="询价方传真"
-            prop="contactFax"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方传真" prop="contactFax">
             {{ form.contactFax }}
           </el-form-item>
-          <el-form-item
-            label="询价方Email"
-            prop="contactEmail"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方Email" prop="contactEmail">
             {{ form.contactEmail }}
           </el-form-item>
-          <el-form-item
-            label="询价方地址"
-            prop="contactAddress"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="询价方地址" prop="contactAddress">
             {{ form.contactAddress }}
           </el-form-item>
           <el-form-item prop="askFile" label="附件">
             <fileMain v-model="form.askFile" type="view"></fileMain>
-<!--            <el-link-->
-<!--              v-if="form.askFile && form.askFile !== ''"-->
-<!--              type="primary"-->
-<!--              :underline="false"-->
-<!--              @click="downloadFile(form.askFile)"-->
-<!--            >-->
-<!--              {{ form.askFile.name }}</el-link-->
-<!--            >-->
           </el-form-item>
-          <el-form-item
-            label="结算方式"
-            prop="settlementMode"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="结算方式" prop="settlementMode">
             {{ form.settlementModeName }}
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="报价方名称"
-            prop="quoteName"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="报价方名称" prop="quoteName">
             {{ form.quoteName }}
           </el-form-item>
 
-          <el-form-item
-            label="报价方联系人"
-            prop="quoteLinkName"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="报价方联系人" prop="quoteLinkName">
             {{ form.quoteLinkName }}
           </el-form-item>
           <el-form-item prop="quoteTel" label="报价方联系电话">
@@ -117,26 +59,14 @@
             {{ form.quoteFax }}
           </el-form-item>
 
-          <el-form-item
-            label="报价方Email"
-            prop="quoteEmail"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="报价方Email" prop="quoteEmail">
             {{ form.quoteEmail }}
           </el-form-item>
 
-          <el-form-item
-            label="报价方地址"
-            prop="quoteAddress"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="报价方地址" prop="quoteAddress">
             {{ form.quoteAddress }}
           </el-form-item>
-          <el-form-item
-            label="是否接受拆单"
-            prop="acceptUnpack"
-            style="margin-bottom: 22px"
-          >
+          <el-form-item label="是否接受拆单" prop="acceptUnpack">
             {{ form.acceptUnpack == 1 ? '接受' : '不接受' }}
           </el-form-item>
         </el-col>
@@ -185,10 +115,9 @@
       v-if="taskDefinitionKey === 'technicianApprove'"
     ></inventoryTable>
     <inventoryTabledetail
-    :isCustomerMark="false"
+      :isCustomerMark="false"
       v-if="taskDefinitionKey != 'technicianApprove'"
       :isDiscount="false"
-
       ref="inventoryTabledetailRef"
     ></inventoryTabledetail>
   </div>
@@ -203,7 +132,6 @@
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import inventoryTable from '@/BIZComponents/inventoryTable.vue';
 
-
   import { getDetail } from '@/api/bpm/components/saleManage/quotation';
   // import fileMain from "@/components/addDoc/index.vue";
   export default {
@@ -229,7 +157,7 @@
         row: {},
         activeName: 'base',
         form: {
-          askFile:[]
+          askFile: []
         },
         rules: {},
         detailData: {},
@@ -317,7 +245,9 @@
             label: '有效期',
             slot: 'guaranteePeriod',
             formatter: (_row, _column, cellValue) => {
-              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
+              return (
+                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
+              );
             }
           },
           // {
@@ -403,10 +333,8 @@
 </script>
 
 <style scoped lang="scss">
-  .ele-dialog-form {
-    .el-form-item {
-      margin-bottom: 10px;
-    }
+  :deep(.el-form-item) {
+    margin-bottom: 10px !important; 
   }
 
   .headbox {
@@ -419,4 +347,3 @@
     }
   }
 </style>
-@/api/bpm/components/saleManage/quotation

+ 2 - 19
src/views/bpm/handleTask/components/saleOrder/detailDialog.vue

@@ -33,19 +33,7 @@
             </el-form-item>
             <el-form-item prop="orderFiles" label="订单附件:">
               <fileMain v-model="detailData.orderFiles" type="view"></fileMain>
-              <!--              <div-->
-              <!--                v-if="detailData.orderFiles && detailData.orderFiles?.length"-->
-              <!--              >-->
-              <!--                <el-link-->
-              <!--                  v-for="link in detailData.orderFiles"-->
-              <!--                  :key="link.id"-->
-              <!--                  type="primary"-->
-              <!--                  :underline="false"-->
-              <!--                  @click="downloadFile(link)"-->
-              <!--                >-->
-              <!--                  {{ link.name }}</el-link-->
-              <!--                >-->
-              <!--              </div>-->
+           
             </el-form-item>
 
             <el-form-item label="客户收货地址:" prop="receiveAddress">
@@ -56,12 +44,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <!-- <el-form-item
-              label="交货日期:"
-              prop="deliveryDate"
-            >
-              {{ form.deliveryDate }}
-            </el-form-item> -->
+          
 
             <el-form-item label="项目名称:" prop="projectName">
               {{ form.projectName }}

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/detailDialog.vue

@@ -261,17 +261,17 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/detailDialog.vue

@@ -458,17 +458,17 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 100,
             prop: 'singlePrice',

+ 14 - 14
src/views/bpm/handleTask/components/saleOrder/exceptionManagement/addOrEditDialog.vue

@@ -211,20 +211,20 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 100,
             prop: 'singlePrice',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/invoice/addInvoiceDialog.vue

@@ -383,17 +383,17 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',

+ 62 - 63
src/views/bpm/handleTask/components/saleOrder/invoice/detailDialog.vue

@@ -357,23 +357,22 @@
 
             align: 'center'
           },
-          // {
-          //   width: 100,
-          //   prop: 'warehouseNum',
-          //   label: '库存',
-          //   align: 'center',
-          //   slot: 'warehouseNum',
-
-          //   headerSlot: 'headerWarehouseNum'
-          // },
-
-          // {
-          //   width: 100,
-          //   prop: 'stockLedger',
-          //   label: '发货明细',
-          //   slot: 'stockLedger',
-          //   align: 'center'
-          // },
+          {
+            width: 150,
+            prop: 'saleCount',
+            label: '数量',
+            slot: 'saleCount',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
+          {
+            width: 150,
+            prop: 'saleUnit',
+            label: '单位',
+            slot: 'saleUnit',
+            headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'totalCount',
@@ -457,56 +456,56 @@
           //       : '';
           //   }
           // },
-          // {
-          //   width: 160,
-          //   prop: 'singlePrice',
-          //   label: '单价',
-          //   slot: 'singlePrice',
-          //   align: 'center'
-          // },
-          // {
-          //   width: 160,
-          //   prop: 'taxRate',
-          //   label: '税率',
-          //   formatter: (_row, _column, cellValue) => {
-          //     return _row.taxRate ? _row.taxRate + '%' : '';
-          //   },
-          //   align: 'center'
-          // },
-          // {
-          //   width: 160,
-          //   prop: 'notaxSinglePrice',
-          //   label: '不含税单价',
-          //   align: 'center'
-          // },
-          // {
-          //   width: 160,
-          //   prop: 'discountSinglePrice',
-          //   label: '折后单价',
-          //   slot: 'discountSinglePrice',
-          //   align: 'center'
-          // },
-          // {
-          //   width: 120,
-          //   prop: 'totalPrice',
-          //   label: '合计',
-          //   slot: 'totalPrice',
-          //   align: 'center'
-          // },
-          // {
-          //   width: 120,
-          //   prop: 'discountTotalPrice',
-          //   label: '折后合计',
-          //   slot: 'discountTotalPrice',
-          //   align: 'center'
-          // },
+          {
+            width: 160,
+            prop: 'singlePrice',
+            label: '单价',
+            slot: 'singlePrice',
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'taxRate',
+            label: '税率',
+            formatter: (_row, _column, cellValue) => {
+              return _row.taxRate ? _row.taxRate + '%' : '';
+            },
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'discountSinglePrice',
+            label: '折后单价',
+            slot: 'discountSinglePrice',
+            align: 'center'
+          },
           {
             width: 120,
-            prop: 'deliveryDays',
-            label: '交期(天)',
-            slot: 'deliveryDays',
+            prop: 'totalPrice',
+            label: '合计',
+            slot: 'totalPrice',
             align: 'center'
           },
+          {
+            width: 120,
+            prop: 'discountTotalPrice',
+            label: '折后合计',
+            slot: 'discountTotalPrice',
+            align: 'center'
+          },
+          // {
+          //   width: 120,
+          //   prop: 'deliveryDays',
+          //   label: '交期(天)',
+          //   slot: 'deliveryDays',
+          //   align: 'center'
+          // },
           {
             width: 200,
             prop: 'guaranteePeriod',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/invoice/inventoryTable.vue

@@ -458,17 +458,17 @@
             slot: 'weightUnit',
             align: "center"
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',

+ 14 - 14
src/views/bpm/handleTask/components/saleOrder/invoiceConfirm/detailDialog.vue

@@ -423,20 +423,20 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'goodsPriceType',

+ 14 - 14
src/views/bpm/handleTask/components/saleOrder/returnGoods/addReturnGoodsDialog.vue

@@ -340,20 +340,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',

+ 28 - 28
src/views/bpm/handleTask/components/saleOrder/returnGoods/detailDialog.vue

@@ -327,20 +327,20 @@
             slot: 'weightUnit',
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'singlePrice',
@@ -548,20 +548,20 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 100,
             prop: 'singlePrice',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTable.vue

@@ -345,17 +345,17 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 100,
             prop: 'singlePrice',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTableReturn.vue

@@ -597,17 +597,17 @@
             align: 'center',
             show: this.clientEnvironmentId == '4'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+          //   }
+          // },
           {
             width: 150,
             prop: 'singlePrice',

+ 10 - 10
src/views/bpm/handleTask/components/saleOrder/returnGoods/inventoryTabledetail.vue

@@ -204,17 +204,17 @@ export default {
           slot: 'weightUnit',
           align: 'center'
         },
-        {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
+        // {
+        //     width: 160,
+        //     prop: 'pricingWay',
+        //     label: '计价方式',
+        //     slot: 'pricingWay',
+        //     align: 'center',
+        //     formatter: (row, column) => {
+        //       return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
 
-            }
-          },
+        //     }
+        //   },
         {
           width: 160,
           prop: 'singlePrice',

+ 14 - 14
src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/detailDialog.vue

@@ -316,20 +316,20 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'goodsPriceType',

+ 14 - 14
src/views/bpm/handleTask/components/saleOrder/saleReturnGoods/inventoryTable.vue

@@ -451,20 +451,20 @@
             showOverflowTooltip: true,
             align: 'center'
           },
-          {
-            width: 160,
-            prop: 'pricingWay',
-            label: '计价方式',
-            slot: 'pricingWay',
-            align: 'center',
-            formatter: (row, column) => {
-              return row.pricingWay == 1
-                ? '按数量计费'
-                : row.pricingWay == 2
-                ? '按重量计费'
-                : '';
-            }
-          },
+          // {
+          //   width: 160,
+          //   prop: 'pricingWay',
+          //   label: '计价方式',
+          //   slot: 'pricingWay',
+          //   align: 'center',
+          //   formatter: (row, column) => {
+          //     return row.pricingWay == 1
+          //       ? '按数量计费'
+          //       : row.pricingWay == 2
+          //       ? '按重量计费'
+          //       : '';
+          //   }
+          // },
           {
             width: 100,
             prop: 'singlePrice',

+ 2 - 2
src/views/bpm/stockManagement/storage.vue

@@ -350,7 +350,7 @@
                   </template>
                 </template>
               </el-table-column>
-              <el-table-column
+              <!-- <el-table-column
                 label="计价方式"
                 align="center"
                 prop="pricingWay"
@@ -361,7 +361,7 @@
                   <span v-if="row.pricingWay == 1">数量</span>
                   <span v-if="row.pricingWay == 2">重量</span>
                 </template>
-              </el-table-column>
+              </el-table-column> -->
 
               <el-table-column
                 label="总重"