Parcourir la source

出库单详情

yusheng il y a 1 an
Parent
commit
1c4e7f07fa

+ 5 - 5
src/BIZComponents/outdetails.vue

@@ -55,7 +55,7 @@
                 <el-form-item
                   :label="infoData.bizType == 4 ? '领料单:' : '来源单据:'"
                 >
-                  <span>{{ infoData.bizNo && infoData.bizNo.toString() }}</span>
+                  <span>{{ infoData.sourceBizNo }}</span>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -651,9 +651,9 @@
         let res = {};
         if (dataArray && dataArray.length > 0) {
           res = dataArray[0];
-          res.outInDetailList = dataArray.map(
-            (item) => item.outInDetailList[0]
-          );
+          // res.outInDetailList = dataArray.map(
+          //   (item) => item.outInDetailList[0]
+          // );
           res['bizNo'] = dataArray.map((item) => item.bizNo);
         }
         // res
@@ -665,7 +665,7 @@
         this.extInfo = res.extInfo;
         this.productList = res?.outInDetailList?.map(
           (productItem, productIndex) => {
-            productItem['bizNo'] = res.bizNo[productIndex];
+            productItem['bizNo'] = res.bizNo[productIndex]||res.bizNo[0];
             return {
               ...productItem,
               outInDetailRecordRequestList:

+ 22 - 0
src/views/purchasingManage/inquiryManage/components/detailDialog.vue

@@ -310,6 +310,27 @@
             showOverflowTooltip: true,
             align: 'center',
           },
+          {
+            width: 120,
+            prop: 'produceType',
+            align: 'center',
+            label: '属性类型',
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.produceType && row.produceType.length
+                ? row.produceType
+                    .map((item) => this.getDictValue('生产类型', item + ''))
+                    .join(',')
+                : '';
+            }
+          },
+          {
+            minWidth: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             minWidth: 140,
             prop: 'files',
@@ -330,6 +351,7 @@
     },
     created(){
       this.requestDict('产地');
+      this.requestDict('生产类型');
     },
     methods: {
       // //导出

+ 24 - 2
src/views/purchasingManage/inquiryManage/components/inquiryTable.vue

@@ -113,7 +113,7 @@
           </el-input>
         </el-form-item>
         <span v-else>
-          {{ row.taxRate}}
+          {{ row.taxRate }}
         </span>
       </template>
       <template v-slot:files="{ row, $index }">
@@ -594,6 +594,27 @@
       showOverflowTooltip: true,
       align: 'center'
     },
+    // {
+    //   width: 120,
+    //   prop: 'produceType',
+    //   align: 'center',
+    //   label: '属性类型',
+    //   showOverflowTooltip: true,
+    //   formatter: (row, column) => {
+    //     return row.produceType && row.produceType.length
+    //       ? row.produceType
+    //           .map((item) => this.getDictValue('生产类型', item + ''))
+    //           .join(',')
+    //       : '';
+    //   }
+    // },
+    {
+      minWidth: 120,
+      prop: 'packingSpecification',
+      align: 'center',
+      label: '包装规格',
+      showOverflowTooltip: true
+    },
     {
       minWidth: 220,
       prop: 'remark',
@@ -695,6 +716,7 @@
       });
       this.form = copyObj(this.obj);
       console.log(this.form, '');
+      this.requestDict('生产类型');
 
       this.radio1 = this.radio;
       this.getSpanArr();
@@ -765,7 +787,7 @@
       async getListByContactId() {
         let productIds = this.form.resultList
           .filter((item) => item.productId)
-          .map((item) => item.productId)
+          .map((item) => item.productId);
         if (productIds?.length > 0) {
           const data = await listByContactId({
             contactId: this.form.supplierId,

+ 3 - 2
src/views/purchasingManage/inquiryManage/components/inventoryTable.vue

@@ -370,7 +370,7 @@
             formatter: (row, column) => {
               return row.produceType && row.produceType.length
                 ? row.produceType
-                    .map((item) => this.getDictV('productionType', item))
+                    .map((item) => this.getDictValue('生产类型', item))
                     .join(',')
                 : '';
             }
@@ -382,6 +382,7 @@
           //   label: '批准文号',
           //   showOverflowTooltip: true
           // },
+          
           {
             minWidth: 120,
             prop: 'packingSpecification',
@@ -433,7 +434,7 @@
     },
     created() {
       this.requestDict('产地');
-      this.getDictList('productionType');
+      this.requestDict('生产类型');
     },
     methods: {
       getDictV(code, val) {

+ 3 - 16
src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue

@@ -527,7 +527,7 @@
             formatter: (row, column) => {
               return row.produceType && row.produceType.length
                 ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
+                    .map((item) => this.getDictValue('生产类型', item + ''))
                     .join(',')
                 : '';
             }
@@ -596,23 +596,10 @@
       };
     },
     created() {
-      this.getDictList('productionType');
+      this.requestDict('生产类型');
     },
     methods: {
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
-      },
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList[code] = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: values[0],
-            label: item[values[0]]
-          };
-        });
-      },
+
       // 返回列表数据
       getTableValue() {
         let comitDatasource = this.form.datasource;

+ 2 - 1
src/views/purchasingManage/purchaseOrder/components/addDialog.vue

@@ -1078,6 +1078,7 @@
         if (data) {
           this.$nextTick(() => {
             this.form = data;
+            this.$store.commit('order/setAllcountAmount', data.totalAmount);
             this.$refs.inventoryTable &&
               this.$refs.inventoryTable.putTableValue(data.productList);
             this.$refs.rawDetailListRef &&
@@ -1086,8 +1087,8 @@
               this.$refs.outputDetailListRef.putTableValue(data.outputList); //产成品
             this.getLinkInfo(data.partaId);
             this.getrequireUser(this.form.requireDeptId);
-            this.$store.commit('order/setAllcountAmount', data.totalAmount);
             this.$store.commit('order/setContractId', data.contractId);
+   
           });
         }
       },

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

@@ -659,6 +659,29 @@
             slot: 'totalCount',
             align: 'center'
           },
+          {
+            width: 120,
+            prop: 'produceType',
+            align: 'center',
+            label: '属性类型',
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.produceType && row.produceType.length
+                ? row.produceType
+                    .map((item) => this.getDictValue('生产类型', item + ''))
+                    .join(',')
+                : '';
+            }
+          },
+
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
+
           {
             width: 120,
             prop: 'measuringUnit',
@@ -766,12 +789,12 @@
                 : '';
             }
           },
-          {
-            width: 120,
-            prop: 'deliveryDays',
-            label: '交期(天)',
-            slot: 'deliveryDays'
-          },
+          // {
+          //   width: 120,
+          //   prop: 'deliveryDays',
+          //   label: '交期(天)',
+          //   slot: 'deliveryDays'
+          // },
           {
             width: 160,
             prop: 'deliveryDeadline',

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

@@ -747,18 +747,12 @@
             formatter: (row, column) => {
               return row.produceType && row.produceType.length
                 ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
+                    .map((item) => this.getDictValue('生产类型', item + ''))
                     .join(',')
                 : '';
             }
           },
-          // {
-          //   width: 120,
-          //   prop: 'approvalNumber',
-          //   align: 'center',
-          //   label: '批准文号',
-          //   showOverflowTooltip: true
-          // },
+
           {
             width: 120,
             prop: 'packingSpecification',
@@ -907,7 +901,7 @@
       };
     },
     created() {
-      this.getDictList('productionType');
+      this.requestDict('生产类型');
     },
     methods: {
       handleGetBillDetail(row, type) {
@@ -916,20 +910,8 @@
           this.$refs.billDetailDialogRef.open(row, type);
         });
       },
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
-      },
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList[code] = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: values[0],
-            label: item[values[0]]
-          };
-        });
-      },
+
+      
       downloadFile(file) {
         getFile({ objectName: file.storePath }, file.name);
       },
@@ -1113,6 +1095,7 @@
             // }
           });
           this.form.datasource = data;
+          this.allPrice= this.$store.state.order.allcountAmount;
           let codeList = this.form.datasource
             .filter((item) => item.productCode)
             .map((item) => item.productCode);
@@ -1133,7 +1116,6 @@
               );
             });
 
-          console.log(this.form.datasource, 'datadsds');
         }
       },
       //选择产品

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

@@ -244,6 +244,8 @@
     },
     created() {
       this.requestDict('产地');
+      this.requestDict('生产类型');
+
     },
     computed: {
       columns() {
@@ -306,6 +308,20 @@
               slot: 'modelType',
               align: 'center'
             },
+            {
+            width: 120,
+            prop: 'produceType',
+            align: 'center',
+            label: '属性类型',
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.produceType && row.produceType.length
+                ? row.produceType
+                    .map((item) => this.getDictValue('生产类型', item + ''))
+                    .join(',')
+                : '';
+            }
+          },
             {
               width: 120,
               prop: 'supplierMark',

+ 24 - 15
src/views/purchasingManage/purchaseOrder/invoice/components/inventoryTable.vue

@@ -307,27 +307,34 @@
             slot: 'modelType',
             align: 'center'
           },
-          {
-            width: 120,
-            prop: 'imgCode',
-            align: 'center',
-            label: '图号/件号',
-            showOverflowTooltip: true
-          },
+          // {
+          //   width: 120,
+          //   prop: 'imgCode',
+          //   align: 'center',
+          //   label: '图号/件号',
+          //   showOverflowTooltip: true
+          // },
           {
             width: 120,
             prop: 'produceType',
             align: 'center',
             label: '属性类型',
-            showOverflowTooltip: true
-          },
-          {
-            width: 120,
-            prop: 'approvalNumber',
-            align: 'center',
-            label: '批准文号',
-            showOverflowTooltip: true
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.produceType && row.produceType.length
+                ? row.produceType
+                    .map((item) => this.getDictValue('生产类型', item + ''))
+                    .join(',')
+                : '';
+            }
           },
+          // {
+          //   width: 120,
+          //   prop: 'approvalNumber',
+          //   align: 'center',
+          //   label: '批准文号',
+          //   showOverflowTooltip: true
+          // },
           {
             width: 120,
             prop: 'packingSpecification',
@@ -559,6 +566,8 @@
     },
     created() {
       this.requestDict('产地');
+      this.requestDict('生产类型');
+      
       getWarehouseList().then((res) => {
         this.warehouseList = res;
       });

+ 28 - 16
src/views/purchasingManage/purchasePlanManage/components/detailDialog.vue

@@ -110,7 +110,7 @@
             </el-form-item>
           </el-col>
           <el-col v-if="form.sourceId" :span="8">
-            <outsourcing  ref="outsourcingRef"></outsourcing>
+            <outsourcing ref="outsourcingRef"></outsourcing>
           </el-col>
         </el-row>
       </el-form>
@@ -136,7 +136,7 @@
                   :underline="false"
                   @click.native="handleMethod(scope.row)"
                 >
-                查看分批时间
+                  查看分批时间
                 </el-link>
               </div>
             </template>
@@ -317,7 +317,13 @@
             label: '状态',
             fixed: 'left',
             formatter: (row, column) => {
-              return row.isInquiry==1?'部分核价':row.isInquiry==2?'全部核价完成':row.isInquiry==3?'核价中':'未核价'
+              return row.isInquiry == 1
+                ? '部分核价'
+                : row.isInquiry == 2
+                ? '全部核价完成'
+                : row.isInquiry == 3
+                ? '核价中'
+                : '未核价';
             },
             align: 'center'
           },
@@ -336,10 +342,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(',')
                 : '';
             }
@@ -365,7 +370,7 @@
             slot: 'totalCount',
             align: 'center'
           },
-          
+
           {
             width: 150,
             prop: 'inquiryNum',
@@ -451,13 +456,20 @@
           },
 
           {
-          width: 130,
-          prop: 'supplierName',
-          label: '供应商',
-          slot: 'supplierName',
-          headerSlot: 'headerSupplierName',
-          align: 'center'
-        },
+            width: 130,
+            prop: 'supplierName',
+            label: '供应商',
+            slot: 'supplierName',
+            headerSlot: 'headerSupplierName',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'packingSpecification',
+            align: 'center',
+            label: '包装规格',
+            showOverflowTooltip: true
+          },
           {
             width: 160,
             prop: 'technicalDrawings',
@@ -521,9 +533,9 @@
         if (data) {
           this.detailData = data;
           this.form = data;
-          this.$nextTick(()=>{
-            this.$refs.outsourcingRef.init(data.sourceId)
-          })
+          this.$nextTick(() => {
+            this.$refs.outsourcingRef.init(data.sourceId);
+          });
 
           if (data.files && data.files.length > 0) {
             this.form.files = data.files[0];

+ 3 - 16
src/views/purchasingManage/purchasePlanManage/components/inventoryTable.vue

@@ -645,7 +645,7 @@
             formatter: (row, column) => {
               return row.produceType && row.produceType.length
                 ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
+                    .map((item) => this.getDictValue('生产类型', item + ''))
                     .join(',')
                 : '';
             }
@@ -694,23 +694,10 @@
       };
     },
     created() {
-      this.getDictList('productionType');
+      this.requestDict('生产类型');
     },
     methods: {
-      getDictV(code, val) {
-        if (!this.dictList[code]) return '';
-        return this.dictList[code].find((item) => item.value == val)?.label;
-      },
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList[code] = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: values[0],
-            label: item[values[0]]
-          };
-        });
-      },
+
       // 返回列表数据
       getTableValue() {
         let comitDatasource = this.form.datasource;

+ 7 - 3
src/views/saleManage/saleOrder/components/addDialog.vue

@@ -270,7 +270,7 @@
       <headerTitle title="物品清单" style="margin-top: 30px"></headerTitle>
       <inventoryTable
         :customerMark="customerMark"
-        :isCustomerMark="true"
+        :isCustomerMark="clientEnvironmentId!=4"
         :isProduceDeliveryDeadline="form.needProduce != 0"
         ref="inventoryTable"
         @setCountAmount="setCountAmount"
@@ -428,7 +428,7 @@
   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 {
     mixins: [dictMixins],
     components: {
@@ -751,6 +751,8 @@
       //选择客户回调
       async changeParent(obj, isCustomerMark) {
         const { base, other } = await contactDetail(obj.id);
+        const userInfo=base?.salesmanId?await getUserDetail(base.salesmanId):{}
+  
         this.customerMark = base.serialNo;
         if (isCustomerMark) {
           return;
@@ -765,8 +767,10 @@
           partaTel: '',
           partaUnifiedSocialCreditCode: base.unifiedSocialCreditCode,
           customerMark: base.serialNo,
-          receiveAddress: other.addressName + other.address
+          receiveAddress: other.addressName + other.address,
+      
         });
+        this.changePersonel(userInfo?.id?userInfo:'')
 
         await this.getLinkInfo(obj.id);
         this.$nextTick(() => {

+ 3 - 0
src/views/saleManage/saleOrder/returnGoods/components/addReturnGoodsDialog.vue

@@ -166,6 +166,9 @@
         :datasource="productList"
         row-key="id"
       >
+      <template v-slot:technicalDrawings="scope">
+        <fileMain v-model="scope.row.technicalDrawings" type="view"></fileMain>
+      </template>
       </ele-pro-table>
       <headerTitle
         title="退货物品明细"

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

@@ -135,6 +135,9 @@
         :datasource="productList"
         row-key="id"
       >
+      <template v-slot:technicalDrawings="scope">
+          <fileMain v-model="scope.row.technicalDrawings" type="view"></fileMain>
+      </template>
       </ele-pro-table>
       <headerTitle title="退货物品明细"
       v-show="!['40', '50'].includes(form.type) || form.returnSourceType != 1"
@@ -148,6 +151,7 @@
         :datasource="detailData.productList"
         row-key="id"
       >
+
       </ele-pro-table>
       <headerTitle
         title="实物赔偿清单"

+ 3 - 16
src/views/saleManage/saleOrder/returnGoods/components/inventoryTableReturn.vue

@@ -842,7 +842,7 @@ export default {
           formatter: (row, column) => {
             return row.produceType && row.produceType.length
               ? row.produceType
-                  .map((item) => this.getDictV('productionType', item + ''))
+                  .map((item) => this.getDictValue('生产类型', item + ''))
                   .join(',')
               : '';
           }
@@ -992,23 +992,10 @@ export default {
     }
   },
   created() {
-    this.getDictList('productionType');
+    this.requestDict('生产类型');
   },
   methods: {
-    getDictV(code, val) {
-      if (!this.dictList[code]) return '';
-      return this.dictList[code].find((item) => item.value == val)?.label;
-    },
-    async getDictList(code) {
-      let { data: res } = await getByCode(code);
-      this.dictList[code] = res.map((item) => {
-        let values = Object.keys(item);
-        return {
-          value: values[0],
-          label: item[values[0]]
-        };
-      });
-    },
+
     downloadFile(file) {
       getFile({ objectName: file.storePath }, file.name);
     },

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

@@ -246,7 +246,7 @@
             formatter: (row, column) => {
               return row.produceType && row.produceType.length
                 ? row.produceType
-                    .map((item) => this.getDictV('productionType', item + ''))
+                    .map((item) => this.getDictValue('生产类型', item + ''))
                     .join(',')
                 : '';
             }