yusheng 1 год назад
Родитель
Сommit
4072445dfe
39 измененных файлов с 662 добавлено и 384 удалено
  1. 59 16
      src/BIZComponents/inventoryTable.vue
  2. 10 1
      src/BIZComponents/inventoryTableDetails.vue
  3. 26 3
      src/BIZComponents/product-list.vue
  4. 1 1
      src/BIZComponents/saleGeneralityInventoryTable.vue
  5. 14 6
      src/BIZComponents/setProduct.js
  6. 9 0
      src/api/saleManage/quotation.js
  7. 2 1
      src/views/contractManage/contractBook/components/addDialog.vue
  8. 2 1
      src/views/contractManage/contractBook/components/inventoryTable.vue
  9. 1 1
      src/views/contractManage/contractBook/components/paymentList.vue
  10. 1 0
      src/views/contractManage/contractBook/index.vue
  11. 1 1
      src/views/financialManage/invoiceManage/components/purchasingAccountTable.vue
  12. 2 2
      src/views/financialManage/invoiceManage/components/saleAccountTable.vue
  13. 1 1
      src/views/financialManage/receivableManage/components/detailDialog.vue
  14. 26 10
      src/views/purchasingManage/inquiryManage/components/inquiryTable.vue
  15. 1 1
      src/views/purchasingManage/inquiryManage/components/inventoryTable.vue
  16. 1 1
      src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue
  17. 8 3
      src/views/purchasingManage/purchaseOrder/accountstatement/components/inventoryTable.vue
  18. 6 0
      src/views/purchasingManage/purchaseOrder/components/detailDialog.vue
  19. 23 1
      src/views/purchasingManage/purchaseOrder/components/inventoryTable.vue
  20. 69 64
      src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue
  21. 22 13
      src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue
  22. 6 0
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/detailDialog.vue
  23. 29 8
      src/views/purchasingManage/purchaseOrder/outSourceSend/components/inventoryTable.vue
  24. 6 0
      src/views/purchasingManage/purchaseOrder/returnGoods/components/detailDialog.vue
  25. 21 0
      src/views/purchasingManage/purchaseOrder/returnGoods/components/inventoryTable.vue
  26. 8 4
      src/views/purchasingManage/supplierManage/index.vue
  27. 157 169
      src/views/saleManage/contact/components/addContactDialog.vue
  28. 6 0
      src/views/saleManage/saleOrder/accountstatement/components/inventoryTable.vue
  29. 4 9
      src/views/saleManage/saleOrder/components/addDialog.vue
  30. 1 1
      src/views/saleManage/saleOrder/components/paymentList.vue
  31. 37 26
      src/views/saleManage/saleOrder/invoice/components/detailDialog.vue
  32. 31 9
      src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue
  33. 2 15
      src/views/saleManage/saleOrder/invoice/components/print-template-js.vue
  34. 2 1
      src/views/saleManage/saleOrder/invoice/components/print-template-jsyp.vue
  35. 26 10
      src/views/saleManage/saleOrder/invoiceConfirm/components/addInvoiceDialog.vue
  36. 9 1
      src/views/saleManage/saleOrder/invoiceConfirm/components/detailDialog.vue
  37. 8 1
      src/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog.vue
  38. 2 0
      src/views/saleManage/saleOrder/returnGoods/components/detailDialog.vue
  39. 22 3
      src/views/saleManage/saleOrder/returnGoods/components/inventoryTable.vue

+ 59 - 16
src/BIZComponents/inventoryTable.vue

@@ -4,11 +4,10 @@
       ref="table"
       :needPage="false"
       :columns="columns"
-
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
       max-height="300"
+      :toolkit="[]"
     >
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
@@ -323,6 +322,21 @@
           </el-input>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
+
       <template v-slot:taxRate="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -598,6 +612,7 @@
       :is-get-inventory-total="true"
       @changeParent="changeParent"
       :isSupplier="isSupplier"
+      :isSalesRecord="isSalesRecord"
     ></product-list>
     <head-list ref="headRef" @changeParent="changeAnswer"></head-list>
     <ProductionVersion
@@ -623,7 +638,7 @@
   import { getInventoryTotalAPI } from '@/api/wms';
   import { getByCode } from '@/api/system/dictionary-data';
   import fileMain from '@/components/addDoc/index.vue';
-  import { pricingWayList,lbjtList } from '@/enum/dict.js';
+  import { pricingWayList, lbjtList } from '@/enum/dict.js';
   import { changeCount } from '@/BIZComponents/setProduct.js';
   import { contactQueryByCategoryIdsAPI } from '@/api/saleManage/contact';
   import taskinstanceDialog from '@/BIZComponents/procedure/taskinstanceDialog.vue';
@@ -720,10 +735,10 @@
         //供应商
         type: Boolean,
         default: false
+      },
+      isSalesRecord: {
+        default: '',
       }
-      
-      
-      
     },
     data() {
       const defaultForm = {
@@ -737,7 +752,7 @@
         technicalDrawings: []
       };
       return {
-        taskinstanceDialogFlag:false,
+        taskinstanceDialogFlag: false,
         allPrice: 0,
         numberReg,
         defaultForm,
@@ -848,6 +863,13 @@
             slot: 'taxRate',
             align: 'center'
           },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',
@@ -867,6 +889,17 @@
             slot: 'totalPrice',
             align: 'center'
           },
+          // {
+          //   width: 120,
+          //   prop: 'notaxTotalPrice',
+          //   label: '含税合计',
+          //   align: 'center',
+          //   formatter: (_row, _column, cellValue) => {
+          //     return _row.notaxTotalPrice
+          //       ? Number(_row.notaxTotalPrice).toFixed(2)
+          //       : '';
+          //   }
+          // },
           {
             width: 160,
             prop: 'discountTotalPrice',
@@ -946,12 +979,13 @@
             label: '属性类型',
             showOverflowTooltip: true,
             formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
               }
-          
             }
           },
 
@@ -1210,6 +1244,7 @@
         const { allPrice, arr } = changeCount(row, index, this.form.datasource);
         this.form.datasource = arr;
         this.allPrice = allPrice || 0;
+
         if (this.isDiscountTotalPrice) {
           this.form.discountTotalPrice = allPrice;
           this.$emit('setDiscountTotalPrice', allPrice);
@@ -1384,12 +1419,20 @@
           this.$set(parasm, 'weightUnit', item.weightUnit);
           this.$set(parasm, 'singleWeight', item.netWeight);
           this.$set(parasm, 'pricingWay', item.pricingWay || 1);
-     
+
           this.$set(parasm, 'imgCode', item.imgCode);
           this.$set(parasm, 'produceType', item.componentAttribute);
-          if(this.isSupplier){
-            this.$set(parasm, 'entrustedEnterpriseIdList', item.entrustedEnterpriseIdList);
-            this.$set(parasm, 'entrustedEnterpriseId', item.entrustedEnterpriseId);
+          if (this.isSupplier) {
+            this.$set(
+              parasm,
+              'entrustedEnterpriseIdList',
+              item.entrustedEnterpriseIdList
+            );
+            this.$set(
+              parasm,
+              'entrustedEnterpriseId',
+              item.entrustedEnterpriseId
+            );
           }
           this.$set(parasm, 'approvalNumber', item.extField?.approvalNumber);
           this.$set(

+ 10 - 1
src/BIZComponents/inventoryTableDetails.vue

@@ -5,8 +5,9 @@
       :needPage="false"
       :columns="columns"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
+      :toolkit="[]"
+
     >
     <template v-slot:technicalDrawings="scope">
         <el-form-item
@@ -261,6 +262,7 @@
             headerSlot: 'headerSinglePrice',
             align: 'center'
           },
+          
           {
             width: 160,
             prop: 'taxRate',
@@ -272,6 +274,13 @@
             },
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',

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

@@ -2,6 +2,7 @@
   <el-dialog
     title="选择产品"
     :visible.sync="visible"
+    v-if="visible"
     :before-close="handleClose"
     :close-on-click-modal="false"
     top="5vh"
@@ -35,6 +36,8 @@
             class="dict-table"
             @cell-click="cellClick"
             :selection.sync="selection"
+            @done="tableDone"
+            :row-class-name="tableRowClassName"
           >
             <!-- 表头工具栏 -->
             <template v-slot:action="{ row }">
@@ -67,7 +70,7 @@
 </template>
 
 <script>
-  import { getProductList } from '@/api/saleManage/quotation';
+  import { getProductList,queryLastContractProductList } from '@/api/saleManage/quotation';
   import searchProduct from './searchProduct.vue';
   import productTree from '@/components/productTree';
   import { getInventoryTotalAPI } from '@/api/wms';
@@ -102,6 +105,10 @@
       isSupplier: {
         type: Boolean,
         default: false
+      },
+      //获取上一次销售记录  1销售合同 2采购合同
+      isSalesRecord: {
+        default: '' 
       }
     },
 
@@ -112,7 +119,8 @@
         radio: null,
         cBomListDialogFlag: null,
         dictList: {},
-        selection: []
+        selection: [],
+        ids:[]
       };
     },
     watch: {},
@@ -295,6 +303,18 @@
           ...where
         });
       },
+      async tableDone(){
+        if(this.isSalesRecord==1||this.isSalesRecord==2){
+         this.ids= await queryLastContractProductList(this.isSalesRecord)
+        }
+      },
+      //上次销售记录 改变背景色
+      tableRowClassName({row}){
+        if (this.ids?.includes(row?.id)) {
+          return 'success-row';
+        }
+        return ''
+      },
 
       /* 刷新表格 */
       reload(where) {
@@ -404,7 +424,10 @@
 </script>
 
 <style lang="scss" scoped>
-  .tree_col {
+:deep(.success-row) {
+    background: #f0f9eb;
+  }
+    .tree_col {
     border: 1px solid #eee;
     padding: 10px 0;
     box-sizing: border-box;

+ 1 - 1
src/BIZComponents/saleGeneralityInventoryTable.vue

@@ -5,7 +5,7 @@
       :needPage="false"
       :columns="columns"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]"
       class="time-form"
     >
       <!-- 表头工具栏 -->

+ 14 - 6
src/BIZComponents/setProduct.js

@@ -1,19 +1,27 @@
 //改变数量
-export function changeCount(row, index, arr,noDiscountSingle) {
+export function changeCount(row, index, arr, noDiscountSingle) {
   if (row) {
     singleWeightChange(row, index);
   }
-  return getNumTotalPrice(arr,noDiscountSingle);
+  return getNumTotalPrice(arr, noDiscountSingle);
 }
 
 //计算总金额
-function getNumTotalPrice(arr,noDiscountSingle) {
+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) {
-      r.discountSinglePrice = !noDiscountSingle?r.singlePrice:r.discountSinglePrice;
+      r.discountSinglePrice = !noDiscountSingle
+        ? r.singlePrice
+        : r.discountSinglePrice;
       r.totalPrice = getAllPrice(r);
-      r.discountTotalPrice = !noDiscountSingle?r.totalPrice:r.discountTotalPrice;
+
+      r.discountTotalPrice = !noDiscountSingle
+        ? r.totalPrice
+        : r.discountTotalPrice;
       sum += Number(r.totalPrice);
     } else {
       r.totalPrice = 0;
@@ -40,7 +48,7 @@ function getAllPrice(row) {
   return isNaN(num) ? '' : num.toFixed(2);
 }
 function singleWeightChange(row) {
-    console.log(row,'row')
+  console.log(row, 'row');
   if (row && row.singleWeight && row.totalCount) {
     row.totalWeight = (row.singleWeight * row.totalCount).toFixed(2) || 0;
   } else {

+ 9 - 0
src/api/saleManage/quotation.js

@@ -141,3 +141,12 @@ export async function quoteUpdateStatus(params) {
   }
   return  Promise.resolve(0);
 }
+
+//获取合同上一次销售的产品
+export async function queryLastContractProductList (type) {
+  const res = await request.get(`/eom/contract/queryLastContractProductList/${type}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 2 - 1
src/views/contractManage/contractBook/components/addDialog.vue

@@ -488,6 +488,7 @@
             :isChangeCount="false"
             @setDiscountTotalPrice="setDiscountTotalPrice"
             :isTemporary="true"
+            :isSalesRecord="form.type"
           ></inventoryTable1>
         </el-tab-pane>
         <el-tab-pane
@@ -551,7 +552,7 @@
       <el-button @click="cancel">返回</el-button>
     </div>
 
-    <parentList ref="parentRef" @changeParent="changeParent"></parentList>
+    <parentList ref="parentRef" @changeParent="changeParent" ></parentList>
     <inquiryManageList
       generatedType="contract"
       ref="inquiryManageRef"

+ 2 - 1
src/views/contractManage/contractBook/components/inventoryTable.vue

@@ -6,7 +6,8 @@
       :columns="columns"
       max-height="500px"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]" 
+
       class="time-form"
     >
       <!-- 表头工具栏 -->

+ 1 - 1
src/views/contractManage/contractBook/components/paymentList.vue

@@ -5,7 +5,7 @@
       :needPage="false"
       :columns="columns"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]" 
       class="time-form"
     >
       <!-- 表头工具栏 -->

+ 1 - 0
src/views/contractManage/contractBook/index.vue

@@ -422,6 +422,7 @@ export default {
   created() {
     this.requestDict('客户状态');
     this.getTreeData();
+    console.log(this.$route)
   },
   methods: {
     //点击左边分类

+ 1 - 1
src/views/financialManage/invoiceManage/components/purchasingAccountTable.vue

@@ -30,7 +30,7 @@
           <ele-pro-table :show-summary="true" :summary-method="getSummaries" ref="table" row-key="id" :needPage="false"
                          :columns="getColumns(j)" max-height="500px" style="margin-bottom: 10px"
                          :sub-title="subTypeList[j.subType]+j.statementSubOrderCode"  :datasource="j.detailList"
-                         cache-key="systemRoleTable17-11121" class="time-form">
+                         :toolkit="[]"  class="time-form">
 
           </ele-pro-table>
         </div>

+ 2 - 2
src/views/financialManage/invoiceManage/components/saleAccountTable.vue

@@ -35,7 +35,7 @@
                            :columns="getColumns(j)" max-height="500px" style="margin-bottom: 10px"
                            :sub-title="subTypeList[j.subType]+j.statementSubOrderCode" 
                            :datasource="j.detailList"
-                           cache-key="systemRoleTable17-11121" class="time-form">
+                           :toolkit="[]"  class="time-form">
             </ele-pro-table>
           </div>
         </template>
@@ -44,7 +44,7 @@
                          :columns="getColumns({subType:10})" sub-title="赔付订单" max-height="500px"
                          style="margin-bottom: 10px"
                           :datasource="item.detailList"
-                         cache-key="systemRoleTable17-11121" class="time-form">
+                          :toolkit="[]"  class="time-form">
           </ele-pro-table>
         </div>
       </div>

+ 1 - 1
src/views/financialManage/receivableManage/components/detailDialog.vue

@@ -157,7 +157,7 @@ export default {
     return {
       activeComp: 'main',
       tabOptions: [
-        {key: 'main', name: '款详情'},
+        {key: 'main', name: '款详情'},
         {key: 'bpm', name: '流程详情'}
       ],
       dialogType: '',

+ 26 - 10
src/views/purchasingManage/inquiryManage/components/inquiryTable.vue

@@ -7,7 +7,7 @@
       max-height="500px"
       :span-method="objectSpanMethod"
       :datasource="form.resultList"
-      cache-key="systemRoleTable17"
+      :toolkit="[]"
       class="time-form"
     >
       <!-- 表头工具栏 -->
@@ -57,10 +57,7 @@
         </span>
       </template>
       <template v-slot:settlementMode="{ row, $index }">
-        <el-form-item
-          prop="settlementMode"
-  
-        >
+        <el-form-item prop="settlementMode">
           <DictSelection
             dictName="结算方式"
             clearable
@@ -108,8 +105,7 @@
           </el-input>
         </el-form-item>
         <span v-else>
-          {{ row.taxRate?row.taxRate+'%':'' }}
-   
+          {{ row.taxRate ? row.taxRate + '%' : '' }}
         </span>
       </template>
       <template v-slot:files="{ row, $index }">
@@ -118,7 +114,6 @@
             v-model="form.files"
             :type="status == 'Detail' ? 'view' : ''"
           ></fileMain>
-
         </el-form-item>
       </template>
 
@@ -231,6 +226,22 @@
           </el-input>
         </el-form-item>
       </template>
+
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+            :disabled="status == 'Detail'"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
       <template v-slot:totalCount="scope" v-if="status !== 'Detail'">
         <el-form-item
           :prop="'resultList.' + scope.$index + '.totalCount'"
@@ -291,7 +302,6 @@
         </el-form-item>
       </template>
 
-
       <template v-slot:remark="scope" v-if="status !== 'Detail'">
         <el-form-item
           style="margin-bottom: 20px"
@@ -477,6 +487,13 @@
       showOverflowTooltip: true,
       align: 'center'
     },
+    {
+      width: 180,
+      prop: 'notaxSinglePrice',
+      label: '不含税单价',
+      slot: 'notaxSinglePrice',
+      align: 'center'
+    },
     {
       minWidth: 80,
       prop: 'totalPrice',
@@ -829,7 +846,6 @@
               });
               this.spanArr.push(obj);
             }
-        
           }
         });
       },

+ 1 - 1
src/views/purchasingManage/inquiryManage/components/inventoryTable.vue

@@ -6,7 +6,7 @@
       :columns="columns"
       max-height="500px"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]" 
       class="time-form"
       :selection.sync="selection"
     >

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

@@ -6,7 +6,7 @@
       :columns="columns"
       max-height="500px"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]" 
       class="time-form"
     >
       <!-- 表头工具栏 -->

+ 8 - 3
src/views/purchasingManage/purchaseOrder/accountstatement/components/inventoryTable.vue

@@ -35,7 +35,7 @@
             style="margin-bottom: 10px"
             :sub-title="subTypeList[j.subType] + j.statementSubOrderCode"
             :datasource="j.detailList"
-            cache-key="systemRoleTable17-11121"
+            :toolkit="[]"
             class="time-form"
           >
             <template v-slot:action="{ row, $index }">
@@ -237,6 +237,12 @@
               align: 'center',
               slot: 'discountSinglePrice'
             },
+            {
+              width: 150,
+              prop: 'notaxSinglePrice',
+              label: '不含税单价',
+              align: 'center'
+            },
             {
               minWidth: 120,
               prop: 'discountTotalPrice',
@@ -322,9 +328,8 @@
         };
       }
     },
-    created(){
+    created() {
       this.requestDict('产地');
-
     },
     data() {
       return {

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

@@ -754,6 +754,12 @@
             },
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center',
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',

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

@@ -7,7 +7,6 @@
       :toolkit="[]"
       max-height="500px"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
     >
       <!-- 表头工具栏 -->
@@ -293,6 +292,21 @@
           </el-input>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
+
       <template v-slot:singleWeight="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -678,6 +692,14 @@
             align: 'center',
             show: !this.detailType
           },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center',
+            show: !this.detailType
+          },
           {
             width: 150,
             prop: 'taxRate',

+ 69 - 64
src/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue

@@ -53,7 +53,6 @@
               <el-input v-model="form.receiveDate" disabled></el-input>
             </el-form-item>
             <el-form-item label="附件:" prop="receiveFiles">
-        
               <fileMain v-model="form.receiveFiles" type="view"></fileMain>
             </el-form-item>
             <!-- <el-form-item label="质检回执:" prop="qualityReportFiles">
@@ -72,7 +71,6 @@
             <el-form-item prop="outsourceSendCode" label="委外发货单编码:">
               <el-input v-model="form.outsourceSendCode" disabled></el-input>
             </el-form-item>
-         
 
             <el-form-item label="制单人:" prop="makerName">
               <el-input v-model="form.makerName" disabled></el-input>
@@ -90,7 +88,7 @@
                 ></el-option>
               </el-select>
             </el-form-item>
-        
+
             <!-- <el-form-item v-if="form.reviewStatus == 2" label="入库单:">
               <el-link
                 type="primary"
@@ -154,7 +152,7 @@
     </div>
     <!--入库详情-->
     <innerBoundDetails
-    v-if="activeComp === 'store'"
+      v-if="activeComp === 'store'"
       ref="innerBoundDetailsRef"
     ></innerBoundDetails>
   </ele-modal>
@@ -163,7 +161,7 @@
 <script>
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
-  import { reviewStatusEnum,lbjtList } from '@/enum/dict';
+  import { reviewStatusEnum, lbjtList } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 
@@ -207,12 +205,11 @@
     created() {
       this.requestDict('产地');
       this.requestDict('生产类型');
-
     },
     computed: {
       columns() {
         return (v) => {
-          console.log(v)
+          console.log(v);
           return [
             {
               width: 45,
@@ -271,20 +268,21 @@
               align: 'center'
             },
             {
-            width: 120,
-            prop: 'produceType',
-            align: 'center',
-            label: '属性类型',
-            showOverflowTooltip: true,
-            formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
+              width: 120,
+              prop: 'produceType',
+              align: 'center',
+              label: '属性类型',
+              showOverflowTooltip: true,
+              formatter: (row, column) => {
+                if (row.produceType) {
+                  return row.produceType
+                    .map((item) => {
+                      return lbjtList[item];
+                    })
+                    .toString();
+                }
               }
-          
-            }
-          },
+            },
             {
               width: 120,
               prop: 'supplierMark',
@@ -311,23 +309,23 @@
               prop: 'totalCount',
               label: '收货数量',
               slot: 'totalCount',
-              align: 'center',
+              align: 'center'
             },
             {
               width: 120,
               prop: 'orderTotalCount',
               label: '采购总数',
               slot: 'orderTotalCount',
-              show:v!=2,
-              align: 'center',
+              show: v != 2,
+              align: 'center'
             },
             {
               width: 120,
               prop: 'receiveTotalCount',
               label: '已收货总数',
               slot: 'receiveTotalCount',
-              show:v!=2,
-              align: 'center',
+              show: v != 2,
+              align: 'center'
             },
             {
               width: 80,
@@ -350,7 +348,7 @@
               slot: 'sendTotalWeight',
               align: 'center',
               headerSlot: 'headerTotalCount',
-              show:v!=2,
+              show: v != 2
             },
             {
               width: 100,
@@ -358,8 +356,7 @@
               label: '收货总重',
               slot: 'receiveTotalWeight',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 100,
@@ -367,7 +364,7 @@
               label: '增重重量',
               slot: 'increaseTotalWeight',
               align: 'center',
-              show:v!=2,
+              show: v != 2
             },
             {
               width: 100,
@@ -375,7 +372,7 @@
               label: '重量单位',
               slot: 'weightUnit',
               align: 'center',
-              show:v!=2,
+              show: v != 2
             },
             {
               width: 160,
@@ -383,7 +380,7 @@
               label: '计价方式',
               slot: 'pricingWay',
               align: 'center',
-              show:v!=2,
+              show: v != 2,
               formatter: (row, column) => {
                 return row.pricingWay == 1
                   ? '按数量计费'
@@ -398,8 +395,14 @@
               label: '单价',
               slot: 'singlePrice',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
+            },
+            {
+              width: 150,
+              prop: 'notaxSinglePrice',
+              label: '不含税单价',
+              align: 'center',
+              show: v != 2
             },
             {
               width: 160,
@@ -407,8 +410,7 @@
               label: '折后单价',
               slot: 'discountSinglePrice',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 120,
@@ -416,8 +418,7 @@
               label: '合计',
               slot: 'totalPrice',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 160,
@@ -425,8 +426,7 @@
               label: '折后合计',
               slot: 'discountTotalPrice',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               prop: 'provenance',
@@ -458,8 +458,7 @@
               label: '交期截止日期',
               slot: 'deliveryDeadline',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 200,
@@ -467,12 +466,12 @@
               label: '质保期',
               slot: 'guaranteePeriod',
               align: 'center',
-              show:v!=2,
+              show: v != 2,
               formatter: (_row, _column, cellValue) => {
-              return (
-                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
-              );
-            },
+                return (
+                  (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
+                );
+              }
             },
             {
               width: 160,
@@ -480,8 +479,7 @@
               label: '质保截止日期',
               slot: 'guaranteePeriodDeadline',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 130,
@@ -489,8 +487,7 @@
               label: '技术答疑人',
               slot: 'technicalAnswerName',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 220,
@@ -498,8 +495,7 @@
               label: '技术参数',
               slot: 'technicalParams',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 240,
@@ -507,8 +503,7 @@
               label: '技术图纸',
               slot: 'technicalDrawings',
               align: 'center',
-              show:v!=2,
-
+              show: v != 2
             },
             {
               width: 220,
@@ -516,36 +511,46 @@
               label: '备注',
               slot: 'remark',
               align: 'center',
-              show:v!=2,
+              show: v != 2
             },
             {
               width: 130,
               prop: 'qmsStatus',
               label: '质检状态',
               align: 'center',
-              fixed:'right',
-              show:v==2,
+              fixed: 'right',
+              show: v == 2,
               formatter: (row, column) => {
-                return row.qmsStatus==1?'已检':row.qmsStatus==2?'待检':'未检'
+                return row.qmsStatus == 1
+                  ? '已检'
+                  : row.qmsStatus == 2
+                  ? '待检'
+                  : '未检';
               }
             },
             {
               width: 200,
               prop: 'qmsDate',
               label: '质检完成日期',
-              show:v==2,
+              show: v == 2,
               align: 'center',
-              fixed:'right',
+              fixed: 'right'
             },
             {
               width: 150,
               prop: 'qmsResult',
               label: '质检结果',
-              show:v==2,
+              show: v == 2,
               align: 'center',
-              fixed:'right',
+              fixed: 'right',
               formatter: (row, column) => {
-                return row.qmsResult==1?'合格':row.qmsResult==2?'不合格':row.qmsResult==3?'让步接收':''
+                return row.qmsResult == 1
+                  ? '合格'
+                  : row.qmsResult == 2
+                  ? '不合格'
+                  : row.qmsResult == 3
+                  ? '让步接收'
+                  : '';
               }
             }
           ];
@@ -555,7 +560,7 @@
     methods: {
       async open(row) {
         this.form = row;
-        this.activeComp='main'
+        this.activeComp = 'main';
         this.visible = true;
         this.getDetailData(row.id);
         this.detailId = row.id;

+ 22 - 13
src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue

@@ -7,7 +7,6 @@
       :toolkit="[]"
       max-height="500px"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
     >
       <!-- 表头工具栏 -->
@@ -30,18 +29,6 @@
           :prop="'datasource.' + $index + '.technicalDrawings'"
         >
           <fileMain v-model="row.technicalDrawings" type="view"></fileMain>
-          <!--          <div v-if="row.technicalDrawings && row.technicalDrawings?.length">-->
-          <!--            <el-link-->
-          <!--              v-for="link in row.technicalDrawings"-->
-          <!--              :key="link.id"-->
-          <!--              type="primary"-->
-          <!--              :underline="false"-->
-          <!--              @click="downloadFile(link)"-->
-          <!--            >-->
-          <!--              {{ link.name }}-->
-          <!--            </el-link-->
-          <!--            >-->
-          <!--          </div>-->
         </el-form-item>
       </template>
       <template v-slot:remark="{ row, $index }">
@@ -147,6 +134,21 @@
           </el-select>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
+
       <template v-slot:warehouseNum="scope">
         <el-form-item style="margin-bottom: 20px">
           {{ scope.row.warehouseNum }}
@@ -488,6 +490,13 @@
             },
             align: 'center'
           },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',

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

@@ -356,6 +356,12 @@
             slot: 'singlePrice',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center',
+          },
           {
             width: 100,
             prop: 'discountSinglePrice',

+ 29 - 8
src/views/purchasingManage/purchaseOrder/outSourceSend/components/inventoryTable.vue

@@ -6,7 +6,6 @@
       :columns="columns"
       :toolkit="[]"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
     >
       <!-- 表头工具栏 -->
@@ -97,11 +96,7 @@
         <el-form-item
           style="margin-bottom: 20px"
           :prop="'datasource.' + scope.$index + '.singlePrice'"
-          :rules="{
-            required: true,
-            message: '请输入正确的单价',
-            trigger: 'change'
-          }"
+      
         >
           <el-input
             v-model="scope.row.singlePrice"
@@ -113,6 +108,20 @@
           </el-input>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
       <template v-slot:warehouseId="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -413,7 +422,13 @@
               return _row.taxRate ? _row.taxRate + '%' : '';
             },
             align: 'center',
-            show: !this.detailType
+          },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center',
           },
           {
             width: 100,
@@ -805,7 +820,13 @@
 
       validateForm(callback) {
         //开始表单校验
-        this.$refs.form.validate((valid) => {
+        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);
         });
       }

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

@@ -370,6 +370,12 @@
             },
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',

+ 21 - 0
src/views/purchasingManage/purchaseOrder/returnGoods/components/inventoryTable.vue

@@ -181,6 +181,20 @@
           </el-button>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
       <!-- <template v-slot:warehouseId="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -496,6 +510,13 @@
             },
             align: 'center'
           },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center',
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',

+ 8 - 4
src/views/purchasingManage/supplierManage/index.vue

@@ -153,7 +153,7 @@
   import tabMixins from '@/mixins/tableColumnsMixin';
 
   export default {
-    mixins: [dictMixins,tabMixins],
+    mixins: [dictMixins, tabMixins],
     props: {
       isDialog: {
         default: false
@@ -226,7 +226,7 @@
             formatter: (_row, _column, cellValue) => {
               return (
                 (_row.addressName ? _row.addressName.replaceAll(',', '') : '') +
-                 ( _row.address || '')
+                (_row.address || '')
               );
             }
           },
@@ -308,7 +308,7 @@
           label: 'name'
         },
         showEdit: true,
-        cacheKeyUrl:'eos-f895878e-supplierManage',
+        cacheKeyUrl: 'eos-f895878e-supplierManage'
       };
     },
     computed: {},
@@ -350,7 +350,11 @@
       },
       handleNodeClick(data, node) {
         this.curNodeData = data;
-        this.reload({ categoryId: data.id });
+        let type = 2;
+        if (data.id == '20250317001' || data.parentId == '20250317001') {
+          type = 3;
+        }
+        this.reload({ categoryId: data.id, type });
       },
       /* 刷新表格 */
       reload(where) {

+ 157 - 169
src/views/saleManage/contact/components/addContactDialog.vue

@@ -40,6 +40,7 @@
                   labelKey="name"
                   placeholder="请选择"
                   default-expand-all
+                  ref="treeSelect"
                 />
               </el-form-item>
             </el-col>
@@ -660,7 +661,7 @@
               提交
             </el-link>
             <el-link
-              v-if="[0, 3].includes(scope.row.processStatus) && form.type == 2"
+              v-if="[0, 3].includes(scope.row.processStatus) && (form.type == 2||form.type == 3)"
               type="primary"
               :underline="false"
               icon="el-icon-plus"
@@ -687,8 +688,8 @@
           </template>
         </ele-pro-table>
       </el-tab-pane>
-      <el-tab-pane label="供货列表" :name="5" v-if="form.type == 2">
-        <headerTitle title="供货列表" style="margin-top: 30px"></headerTitle>
+      <el-tab-pane :label="getLabel" :name="5" v-if="form.type != 1">
+        <headerTitle :title="getLabel" style="margin-top: 30px"></headerTitle>
         <ele-pro-table
           ref="supplyRef"
           :columns="supplyColumns"
@@ -760,7 +761,7 @@
         @click="pageChange('next')"
         :disabled="
           (form.type == 1 && activeName == 4) ||
-          (form.type == 2 && activeName == 5)
+          (form.type != 1 && activeName == 5)
         "
         >下一步</el-button
       >
@@ -768,7 +769,7 @@
         type="primary"
         v-if="
           (form.type == 1 && activeName == 4) ||
-          (form.type == 2 && activeName == 5) ||
+          (form.type != 1 && activeName == 5) ||
           form?.id
         "
         @click="save"
@@ -845,7 +846,7 @@
   import parentList from './parentList.vue';
   // import certificateQualificationsDialog from '@/views/purchasingManage/supplierManage/components/certificateQualificationsDialog.vue';
   import certificateQualificationsDialog from './certificateQualificationsDialog.vue';
-  import { reviewStatus,lbjtList } from '@/enum/dict';
+  import { reviewStatus, lbjtList } from '@/enum/dict';
   import { deepClone } from '@/utils';
   import searchTable from '@/views/saleManage/saleOrder/components/searchTable.vue';
   import { getTableList } from '@/api/saleManage/saleorder';
@@ -953,168 +954,7 @@
             label: '是'
           }
         ],
-        supplyColumns: [
-          {
-            columnKey: 'index',
-            type: 'index',
-            width: 50,
-            align: 'center',
-            showOverflowTooltip: true,
-            label: '序号'
-          },
-          {
-            prop: 'productCode',
-            label: '编码',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
-          },
-          {
-            prop: 'productName',
-            label: '名称',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 110
-          },
-          {
-            prop: 'purchasingCycle',
-            label: '采购周期',
-            align: 'center',
-            slot: 'purchasingCycle',
-            showOverflowTooltip: true,
-            minWidth: 150
-          },
-          {
-            prop: 'purchaseMultiplier',
-            label: '倍数',
-            slot: 'purchaseMultiplier',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 100
-          },
-          {
-            prop: 'minimumOrderQuantity',
-            label: '最低订购数量',
-            slot: 'minimumOrderQuantity',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 150
-          },
-          {
-            prop: 'provenance',
-            label: '产地',
-            slot: 'provenance',
-            align: 'center',
-            showOverflowTooltip: true,
-            minWidth: 200
-          },
 
-          {
-            prop: 'imgCode',
-            align: 'center',
-            label: '图号/件号',
-            showOverflowTooltip: true,
-            minWidth: 110
-          },
-          {
-            prop: 'produceType',
-            align: 'center',
-            label: '属性类型',
-            showOverflowTooltip: true,
-            minWidth: 110,
-            formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
-              }
-          
-            }
-          },
-          // {
-          //   prop: 'approvalNumber',
-          //   align: 'center',
-          //   label: '批准文号',
-          //   showOverflowTooltip: true,
-          //   minWidth: 110
-          // },
-          {
-            prop: 'packingSpecification',
-            align: 'center',
-            label: '包装规格',
-            showOverflowTooltip: true,
-            minWidth: 110
-          },
-          {
-            prop: 'brandNum',
-            align: 'center',
-            label: '牌号',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'modelType',
-            label: '型号',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'specification',
-            label: '规格',
-            align: 'center',
-            showOverflowTooltip: true
-          },
-          {
-            prop: 'measuringUnit',
-            label: '计量单位',
-            showOverflowTooltip: true,
-            align: 'center',
-            minWidth: 90
-          },
-
-          // {
-          //   prop: 'weightUnit',
-          //   label: '重量单位',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   minWidth: 90
-          // },
-          //
-          // {
-          //   prop: 'roughWeight',
-          //   label: '毛重',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   minWidth: 90
-          // },
-          //
-          // {
-          //   prop: 'netWeight',
-          //   label: '净重',
-          //   showOverflowTooltip: true,
-          //   align: 'center',
-          //   minWidth: 90
-          // },
-          //
-          // {
-          //   prop: 'packingUnit',
-          //   align: 'center',
-          //   label: '包装单位',
-          //   showOverflowTooltip: true
-          // },
-          // {
-          //   prop: 'categoryLevelPath',
-          //   label: '分类',
-          //   align: 'center',
-          //   showOverflowTooltip: true
-          // },
-          {
-            slot: 'action',
-            align: 'center',
-            minWidth: 90,
-            fixed: 'right',
-            label: '操作'
-          }
-        ],
         bankColumns: [
           {
             type: 'index',
@@ -1364,6 +1204,147 @@
             align: 'center'
           }
         ];
+      },
+      getLabel() {
+        return this.categoryIdList
+          .map((item) => {
+            let data = this.$refs.treeSelect.getNodeByValue(item);
+            return data.parentId == 0 ? data.id : data.parentId;
+          })
+          .includes('20250317001')
+          ? '生产列表'
+          : '供货列表';
+      },
+      supplyColumns() {
+        return [
+          {
+            columnKey: 'index',
+            type: 'index',
+            width: 50,
+            align: 'center',
+            showOverflowTooltip: true,
+            label: '序号'
+          },
+          {
+            prop: 'productCode',
+            label: '编码',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'productName',
+            label: '名称',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'purchasingCycle',
+            label: '采购周期',
+            align: 'center',
+            slot: 'purchasingCycle',
+            showOverflowTooltip: true,
+            minWidth: 150
+          },
+          {
+            prop: 'purchaseMultiplier',
+            label: '倍数',
+            slot: 'purchaseMultiplier',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100
+          },
+          {
+            prop: 'minimumOrderQuantity',
+            label: '最低订购数量',
+            slot: 'minimumOrderQuantity',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 150
+          },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 200
+          },
+          {
+            prop: 'manufacturer',
+            label: '生产厂家',
+            slot: 'manufacturer',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 200,
+            show: this.getLabel == '供货列表'
+          },
+          {
+            prop: 'imgCode',
+            align: 'center',
+            label: '图号/件号',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'produceType',
+            align: 'center',
+            label: '属性类型',
+            showOverflowTooltip: true,
+            minWidth: 110,
+            formatter: (row, column) => {
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
+              }
+            }
+          },
+
+          {
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            prop: 'brandNum',
+            align: 'center',
+            label: '牌号',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'modelType',
+            label: '型号',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'specification',
+            label: '规格',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'measuringUnit',
+            label: '计量单位',
+            showOverflowTooltip: true,
+            align: 'center',
+            minWidth: 90
+          },
+
+          {
+            slot: 'action',
+            align: 'center',
+            minWidth: 90,
+            fixed: 'right',
+            label: '操作'
+          }
+        ];
       }
     },
     watch: {
@@ -1389,7 +1370,9 @@
         if (!row.id) {
           this.isUpdate = false;
           // 默认带出列表页面选中的分类
-          this.form.categoryId = contactCategoryId;
+          this.$nextTick(() => {
+            this.categoryIdList = [contactCategoryId];
+          });
         } else {
           this.isUpdate = true;
           await this._getById(row.id);
@@ -1690,6 +1673,8 @@
             //   this.form.removeBankList = this.removeBankList;
             //   this.form.removeLinkList = this.removeLinkList;
           }
+          this.form.type =
+            this.form.type != 1 ? (this.getLabel == '供货列表' ? '2' : '3') : 1;
           const data = {
             base: this.form,
             other: this.otherForm,
@@ -1778,9 +1763,12 @@
         //     data.base.businessLicenseFile
         //   ]);
         // }
-        this.categoryIdList = this.form.categoryId
+        this.$nextTick(()=>{
+          this.categoryIdList = this.form.categoryId
           ? deepClone(this.form.categoryId.split(','))
           : [];
+        })
+       
         if (this.tableLinkData && this.tableLinkData.length > 0) {
           this.tableLinkData.forEach((e) => (e.status = e.status + ''));
         }

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

@@ -247,6 +247,12 @@ export default {
             show:j.subType!=11
 
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center'
+          },
           {
             minWidth: 120,
             prop: 'totalPrice',

+ 4 - 9
src/views/saleManage/saleOrder/components/addDialog.vue

@@ -8,14 +8,11 @@
     :append-to-body="true"
     width="70%"
     @close="cancel"
-    :fullscreen="fullscreen"
+
+    :maxable="true"
+    :title="title"
   >
-    <template slot="title">
-      <modalTitle
-        :title="title"
-        @setFullscreen="fullscreen = !fullscreen"
-      ></modalTitle>
-    </template>
+
     <el-form
       ref="form"
       :model="form"
@@ -440,7 +437,6 @@
   import { copyObj } from '@/utils/util';
   import { enterprisePage } from '@/api/contractManage/contractBook';
   import fileMain from '@/components/addDoc/index.vue';
-  import modalTitle from '@/BIZComponents/modalTitle.vue';
   import processSubmitDialog from '@/BIZComponents/processSubmitDialog/processSubmitDialog.vue';
   import { getUserDetail } from '@/api/system/organization/index.js';
   export default {
@@ -455,7 +451,6 @@
       paymentList,
       inventoryTable,
       parentList,
-      modalTitle
     },
     props: {
       contactData: {

+ 1 - 1
src/views/saleManage/saleOrder/components/paymentList.vue

@@ -1,7 +1,7 @@
 <template>
     <el-form ref="form" :model="form" :rules="rules">
       <ele-pro-table ref="table" :needPage="false" :columns="columns" :datasource="form.datasource"
-        cache-key="systemRoleTable17" class="time-form">
+      :toolkit="[]"  class="time-form">
         <!-- 表头工具栏 -->
         <template v-slot:toolbar>
           <el-button size="small" type="primary" icon="el-icon-plus" class="ele-btn-icon" @click="handlAdd">

+ 37 - 26
src/views/saleManage/saleOrder/invoice/components/detailDialog.vue

@@ -63,11 +63,9 @@
             </el-form-item>
             <el-form-item label="发货附件:" prop="sendFiles">
               <fileMain v-model="form.sendFiles" type="view"></fileMain>
-
             </el-form-item>
             <el-form-item label="回执附件:" prop="sendFiles">
               <fileMain v-model="form.repliedFiles" type="view"></fileMain>
-          
             </el-form-item>
           </el-col>
 
@@ -123,6 +121,7 @@
             :columns="competAnalysisListcolumns"
             :datasource="detailData.productList"
             row-key="id"
+            :toolkit="[]"
           >
             <!-- <template v-slot:toolbar>
               <div class="headbox">
@@ -192,8 +191,8 @@
       :id="form.processInstanceId"
     ></bpmDetail>
 
-  <out-bound-details
-    v-if="activeComp === 'store'"
+    <out-bound-details
+      v-if="activeComp === 'store'"
       ref="innerBoundDetailsRef"
     ></out-bound-details>
 
@@ -206,7 +205,7 @@
 <script>
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
-  import { reviewStatusEnum,lbjtList } from '@/enum/dict';
+  import { reviewStatusEnum, lbjtList } from '@/enum/dict';
   import { copyObj } from '@/utils/util';
   import { getSendSaleOrderrecordDetailSplit } from '@/api/saleManage/saleordersendrecord';
   import bpmDetail from '@/views/bpm/processInstance/detail.vue';
@@ -293,7 +292,7 @@
       },
       competAnalysisListcolumns() {
         return [
-        {
+          {
             width: 45,
             type: 'index',
             columnKey: 'index',
@@ -362,12 +361,13 @@
             align: 'center',
             label: '属性类型',
             formatter: (row, column) => {
-              if(row.produceType){
-                return row.produceType.map(item=>{
-                  return lbjtList[item]
-                }).toString()
+              if (row.produceType) {
+                return row.produceType
+                  .map((item) => {
+                    return lbjtList[item];
+                  })
+                  .toString();
               }
-          
             },
             showOverflowTooltip: true
           },
@@ -480,8 +480,11 @@
             slot: 'pricingWay',
             align: 'center',
             formatter: (row, column) => {
-              return row.pricingWay == 1 ? '按数量计费' : row.pricingWay == 2 ? '按重量计费':'';
-
+              return row.pricingWay == 1
+                ? '按数量计费'
+                : row.pricingWay == 2
+                ? '按重量计费'
+                : '';
             }
           },
           {
@@ -496,12 +499,16 @@
             prop: 'taxRate',
             label: '税率',
             formatter: (_row, _column, cellValue) => {
-              return _row.taxRate
-                ? _row.taxRate+'%'
-                : '';
+              return _row.taxRate ? _row.taxRate + '%' : '';
             },
             align: 'center'
           },
+          {
+            width: 160,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',
@@ -516,6 +523,12 @@
             slot: 'totalPrice',
             align: 'center'
           },
+          // {
+          //   width: 160,
+          //   prop: 'notaxTotalPrice',
+          //   label: '含税合计',
+          //   align: 'center'
+          // },
           {
             width: 120,
             prop: 'discountTotalPrice',
@@ -559,10 +572,9 @@
             minWidth: 200,
             showOverflowTooltip: true,
             formatter: (row, column) => {
-       
               return row.provenance && row.provenance.length
                 ? row.provenance
-                    .map((item) => this.getDictValue('产地', item ))
+                    .map((item) => this.getDictValue('产地', item))
                     .join(',')
                 : '';
             }
@@ -594,7 +606,7 @@
             label: '备注',
             slot: 'remark',
             align: 'center'
-          },
+          }
         ];
       }
     },
@@ -612,10 +624,9 @@
         if (val == 'store') {
           // getInfoBySourceBizNoAll(this.form.docNo).then((res) => {
           //   this.qmsAll = res;
-            this.$nextTick(() => {
-              this.$refs.innerBoundDetailsRef._getInfo(this.form.docNo)
-
-            });
+          this.$nextTick(() => {
+            this.$refs.innerBoundDetailsRef._getInfo(this.form.docNo);
+          });
           // });
         }
       },
@@ -637,9 +648,9 @@
         const data = await getSendSaleOrderrecordDetailSplit(id);
         this.loading = false;
         if (data) {
-          data.productList.forEach(item=>{
-            item.pricingWay=item.pricingWay||data.pricingWay
-          })
+          data.productList.forEach((item) => {
+            item.pricingWay = item.pricingWay || data.pricingWay;
+          });
           this.form = data;
           this.detailData = data;
           this.$refs.taskInfoTableRef &&

+ 31 - 9
src/views/saleManage/saleOrder/invoice/components/inventoryTable.vue

@@ -5,8 +5,9 @@
       :needPage="false"
       :columns="columns"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
       class="time-form"
+      :toolkit="[]" 
+
     >
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
@@ -233,6 +234,20 @@
           </el-input>
         </el-form-item>
       </template>
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
       <template v-slot:singleWeight="scope" v-if="needProduce == 3">
         <el-form-item
           style="margin-bottom: 20px"
@@ -637,7 +652,7 @@
             }
           },
           {
-            width: 160,
+            width: 180,
             prop: 'singlePrice',
             label: '单价',
             slot: 'singlePrice',
@@ -652,6 +667,13 @@
             },
             align: 'center'
           },
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',
@@ -666,6 +688,12 @@
             slot: 'totalPrice',
             align: 'center'
           },
+          // {
+          //   width: 160,
+          //   prop: 'notaxTotalPrice',
+          //   label: '含税合计',
+          //   align: 'center'
+          // },
           {
             width: 120,
             prop: 'discountTotalPrice',
@@ -698,13 +726,7 @@
             },
             align: 'center'
           },
-          // {
-          //   width: 160,
-          //   prop: 'guaranteePeriodDeadline',
-          //   label: '质保截止日期',
-          //   slot: 'guaranteePeriodDeadline',
-          //   align: 'center'
-          // },
+ 
           {
             prop: 'provenance',
             label: '产地',

+ 2 - 15
src/views/saleManage/saleOrder/invoice/components/print-template-js.vue

@@ -76,8 +76,8 @@
             <td style="padding: 5px"> {{ item.measureQuantity }}</td>
             <td style="padding: 5px"> {{ item.measureUnit }}</td>
             <td style="padding: 5px"> {{ item.batchNo }}</td>
-            <td style="padding: 5px"> 序列号</td>
-            <td style="padding: 5px"> {{ item.categoryCode }}</td>
+            <td style="padding: 5px"> {{item.serialNumber}}</td>
+            <td style="padding: 5px"> {{ item.engrave }}</td>
           </tr>
           <tr>
             <td style="padding: 5px" colspan="9">
@@ -138,19 +138,7 @@
     },
 
     methods: {
-      async _getInfo(sourceBizNo, type, list = []) {
-        let res = {};
-
-        if (dataArray && dataArray.length > 0) {
-          res = JSON.parse(JSON.stringify(dataArray[0]));
-          res['outInDetailList'] = [];
 
-          res['bizNo'] = dataArray.map((item) => item.bizNo);
-        }
-        console.log(res, 'res');
-        // res
-        this.init(res, type);
-      },
 
       async open(id) {
         this.formData = await getSendSaleOrderrecordDetailSplit(id);
@@ -158,7 +146,6 @@
         let dataArray = await getInfoBySourceBizNoAll(
           this.formData.docNo
         );
-        console.log(dataArray)
         this.outBound = JSON.parse(JSON.stringify(dataArray[0]));
         this.outBound['outInDetailRecordRequestList']=[]
 

+ 2 - 1
src/views/saleManage/saleOrder/invoice/components/print-template-jsyp.vue

@@ -130,7 +130,7 @@
             <td style="padding: 5px"> {{ item.singlePrice }}</td>
             <td style="padding: 5px">{{ item.totalPrice }} </td>
             <td style="padding: 5px"> {{ item.guaranteePeriodText }}</td>
-            <td style="padding: 5px"> </td>
+            <td style="padding: 5px">{{ item.remark }} </td>
           </tr>
 
           <tr align="center">
@@ -222,6 +222,7 @@
                 if(data){
                   j['singlePrice'] = data.singlePrice;
                   j['totalPrice'] = j.measureQuantity*data.singlePrice;
+                  j['remark'] =data.remark;
                   j['guaranteePeriodText'] = data.guaranteePeriod?(data.guaranteePeriod+(data.guaranteePeriodUnitName||'')):''
                 }
               });

+ 26 - 10
src/views/saleManage/saleOrder/invoiceConfirm/components/addInvoiceDialog.vue

@@ -141,6 +141,16 @@
               </el-option>
             </el-select>
           </template>
+          <template v-slot:notaxSinglePrice="scope">
+     
+              <el-input
+                v-model="scope.row.notaxSinglePrice"
+                placeholder="请输入"
+                type="number"
+              >
+                <template slot="append">元</template>
+              </el-input>
+          </template>
         </ele-pro-table>
       </el-tab-pane>
 
@@ -438,7 +448,13 @@
             slot: 'singlePrice',
             align: 'center'
           },
-
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 100,
             prop: 'totalPrice',
@@ -598,7 +614,7 @@
         tableBankData: [],
         tableLinkData: [],
         oldId: '',
-        oldDocNo:'',
+        oldDocNo: '',
         // 组织机构树形结构数据
         groupTreeData: [],
         groupData: [],
@@ -644,8 +660,8 @@
           this.form.sendNo = data.docNo;
           this.form.docNo = this.oldDocNo;
           this.form.id = this.oldId;
-          this.form.reviewStatus=0
-          this.form.processInstanceId=''
+          this.form.reviewStatus = 0;
+          this.form.processInstanceId = '';
           this.$refs.taskInfoTableRef &&
             this.$refs.taskInfoTableRef.putTableValue(
               data.logisticTrakListNoteVOList
@@ -686,12 +702,12 @@
               item['pricingWay'] = item.pricingWay || val.pricingWay || 1;
 
               if (item.pricingWay == 1) {
-                item.totalPrice = item.singlePrice * item.packingQuantity;
+                item.totalPrice = item.singlePrice * item.measureQuantity;
               }
               if (item.pricingWay == 2) {
                 item.totalPrice =
                   item.singlePrice *
-                  item.packingQuantity *
+                  item.measureQuantity *
                   item.sendTotalWeight;
               }
             }
@@ -722,7 +738,7 @@
         this.loading = true;
         const data = await getSendSaleOrderConfirmDetail(id);
         this.oldId = data.id;
-        this.oldDocNo=data.docNo
+        this.oldDocNo = data.docNo;
         this.loading = false;
         if (data) {
           this.form = data;
@@ -783,15 +799,15 @@
       },
 
       //打开新增编辑弹框
-      async open(type, row,invoiceData) {
+      async open(type, row, invoiceData) {
         this.title = type === 'add' ? '新增收货确认单' : '修改';
         this.row = row;
         this.visible = true;
         if (row && row?.id) {
           await this.getSendSaleOrderDetail(row?.id);
         }
-        if(invoiceData){
-          this.changeOrder(invoiceData)
+        if (invoiceData) {
+          this.changeOrder(invoiceData);
         }
         this.isUpdate = type != 'add';
       },

+ 9 - 1
src/views/saleManage/saleOrder/invoiceConfirm/components/detailDialog.vue

@@ -101,6 +101,7 @@
             :columns="columns"
             :datasource="form.productList"
             row-key="id"
+            :toolkit="[]" 
           >
           </ele-pro-table>
         </el-tab-pane>
@@ -111,6 +112,7 @@
             :columns="trayListColumns"
             :datasource="trayListData"
             row-key="id"
+            
           >
           </ele-pro-table>
         </el-tab-pane>
@@ -412,7 +414,13 @@
             slot: 'singlePrice',
             align: 'center'
           },
-
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 100,
             prop: 'totalPrice',

+ 8 - 1
src/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog.vue

@@ -163,6 +163,7 @@
         :needPage="false"
         :columns="oldColumns"
         :datasource="productList"
+        :toolkit="[]" 
         row-key="id"
       >
       <template v-slot:technicalDrawings="scope">
@@ -502,6 +503,13 @@
             slot: 'singlePrice',
             align: 'center'
           },
+          {
+            width: 150,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 160,
             prop: 'discountSinglePrice',
@@ -886,7 +894,6 @@
           item['qmsResult'] = item.result;
           item['qmsStatus'] = item.status;
           this.productList.forEach((val) => {
-            console.log(val, 'val');
             if (item.productCode == val.productCode) {
               item['singlePrice'] = val.singlePrice;
               item['clientCode'] = item.clientCode || val.customerMark;

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

@@ -133,6 +133,7 @@
         :columns="oldColumns"
         :datasource="productList"
         row-key="id"
+        :toolkit="[]" 
       >
       <template v-slot:technicalDrawings="scope">
           <fileMain v-model="scope.row.technicalDrawings" type="view"></fileMain>
@@ -143,6 +144,7 @@
       ></headerTitle>
       <ele-pro-table
         ref="table"
+        :toolkit="[]" 
         :needPage="false"
         :columns="competAnalysisListcolumns"
         v-show="!['40', '50'].includes(form.type) || form.returnSourceType != 1"

+ 22 - 3
src/views/saleManage/saleOrder/returnGoods/components/inventoryTable.vue

@@ -5,7 +5,7 @@
       :needPage="false"
       :columns="columns"
       :datasource="form.datasource"
-      cache-key="systemRoleTable17"
+      :toolkit="[]" 
       class="time-form"
     >
       <!-- 表头工具栏 -->
@@ -220,7 +220,20 @@
         </el-form-item>
         <span v-else>{{ row.totalPrice }}</span>
       </template>
-
+      <template v-slot:notaxSinglePrice="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.notaxSinglePrice'"
+        >
+          <el-input
+            v-model="scope.row.notaxSinglePrice"
+            placeholder="请输入"
+            type="number"
+          >
+            <template slot="append">元</template>
+          </el-input>
+        </el-form-item>
+      </template>
       <template v-slot:headerTotalCount="{ column }">
         <span class="is-required">{{ column.label }}</span>
       </template>
@@ -460,7 +473,13 @@
             slot: 'singlePrice',
             align: 'center'
           },
-
+          {
+            width: 180,
+            prop: 'notaxSinglePrice',
+            label: '不含税单价',
+            slot: 'notaxSinglePrice',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'totalPrice',