Просмотр исходного кода

优化退货单据详情页布局和表格字段展示

yusheng 11 месяцев назад
Родитель
Сommit
c8d299b302

+ 30 - 3
src/BIZComponents/processSubmitDialog/processSubmitDialog.vue

@@ -22,6 +22,24 @@
           :value="form.valueJson"
           ref="generateForm"
         >
+          <template v-slot:blank_1n0u9ky8="scope">
+            <el-button
+              type="primary"
+              size="small"
+              @click="addNewRow('blank_1n0u9ky8')"
+              >添加明细</el-button
+            >
+
+            <div
+              v-for="(item, index) in scope.model.blank_1n0u9ky8"
+              :key="index"
+            >
+              宽度:<el-input
+                v-model="scope.model.blank_1n0u9ky8[index]"
+                style="width: 100px"
+              ></el-input>
+            </div>
+          </template>
         </fm-generate-form>
         <!--              <el-tree-->
         <!--                @check-change="handleTreeChange"-->
@@ -367,6 +385,17 @@ this.postOptions.push(...response.data);
       //this.isRight = false
     },
     methods: {
+      async addNewRow(key) {
+        console.log(key);
+        let {blank_1n0u9ky8} = await this.$refs.generateForm.getData(false);
+     
+
+        blank_1n0u9ky8.push('');
+        this.$refs.generateForm.setData({
+          key: blank_1n0u9ky8
+        });
+
+      },
       async init(row = {}) {
         this.title = row.name; //'新建' + row.name + '单';
         this.form = _.cloneDeep(row);
@@ -629,9 +658,7 @@ this.postOptions.push(...response.data);
         if (minutes > 0) result += `${minutes} 分钟 `;
         if (seconds > 0) result += `${seconds} 秒`;
         return result.trim();
-      },
-
-    
+      }
     }
   };
 </script>

+ 9 - 1
src/api/warehouseManagement/index.js

@@ -283,5 +283,13 @@ export default {
       return res.data.data;
     }
     return Promise.reject(new Error(res.data.message));
-  }
+  },
+   // 包装退货
+  getHierarchyList: async (params) => {
+    const res = await request.get('/wms/outintwo/getHierarchyList',{ params });
+    if (res.data.code == 0) {
+      return res.data.data;
+    }
+    return Promise.reject(new Error(res.data.message));
+  },
 };

+ 18 - 0
src/views/bpm/collaborative/detail.vue

@@ -32,6 +32,24 @@
         :edit="false"
         ref="generateForm"
       >
+             <template v-slot:blank_1n0u9ky8="scope">
+            <el-button
+              type="primary"
+              size="small"
+              @click="addNewRow('blank_1n0u9ky8')"
+              >添加明细</el-button
+            >
+
+            <div
+              v-for="(item, index) in scope.model.blank_1n0u9ky8"
+              :key="index"
+            >
+              宽度:<el-input
+                v-model="scope.model.blank_1n0u9ky8[index]"
+                style="width: 100px"
+              ></el-input>
+            </div>
+          </template>
       </fm-generate-form>
     </div>
 

+ 0 - 1
src/views/bpm/handleTask/components/purchaseOrder/outSourceSend/boxTabPage.vue

@@ -12,7 +12,6 @@
     </div>
   </div>
 </template>
-7
 <script>
   import { getPurchaseOutSourceSendDetailAPI } from '@/api/bpm/components/purchasingManage/outSourceSend';
   export default {

+ 34 - 31
src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/boxTabPage.vue

@@ -1,31 +1,27 @@
 <template>
   <div>
-    <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
-      <el-tab-pane
-        v-for="item in tabOption"
-        :label="item.label"
-        :name="item.name"
-      >
-      </el-tab-pane>
-    </el-tabs>
-    <component
-      v-if="activeName && isValidComponent(activeName)"
-      :is="activeName"
-      :key="cKey"
-      ref="componentRef"
-      v-bind="activeNameProps"
-    />
+    <div v-for="item in tabOption" :label="item.label" :name="item.name">
+      <div class="title"> {{ item.label }}</div>
+      <component
+        :is="item.name"
+        :key="item.name"
+        :ref="'componentRef' + item.name"
+        v-if="form.id"
+        v-bind="activeNameProps(item.name)"
+      />
+    </div>
   </div>
 </template>
 
 <script>
-  import { getReturnSaleOrderrecordDetail } from '@/api/bpm/components/purchasingManage/outSourceSend';
-
+  // import { getReturnSaleOrderrecordDetail } from '@/api/bpm/components/purchasingManage/outSourceSend';
+  import { getReturnSaleOrderrecordDetail } from '@/api/bpm/components/saleManage/saleorder';
   export default {
     name: 'boxTabPage',
     components: {
       tab1: () => import('./detailDialog.vue'),
-      tab2: () => import('@/views/bpm/outgoingManagement/outbound.vue')
+      tab2: () => import('@/views/bpm/outgoingManagement/outbound.vue'),
+      tab3: () => import('@/views/bpm/outgoingManagement/details.vue')
     },
     props: {
       taskDefinitionKey: {
@@ -54,7 +50,7 @@
     },
     async created() {
       this.form = await getReturnSaleOrderrecordDetail(this.businessId);
-      console.log(this.form,'this.for111m')
+      console.log(this.form, 'this.for111m');
       // this.detailList = this.form.productList.filter((item) => {
       //   item['packingWeight'] = item.weight;
       //     item['quantity'] = item.measurementCount;
@@ -65,20 +61,22 @@
       tabOption() {
         let list = [
           {
-            label: '发货单详情',
+            label: ' ',
             name: 'tab1',
             isShow: true
           },
           {
-            label: '出库',
+            label: '出库单信息',
             name: 'tab2',
             isShow: true
           }
         ];
         return list.filter((item) => item.isShow);
-      },
-      activeNameProps() {
-        switch (this.activeName) {
+      }
+    },
+    methods: {
+      activeNameProps(activeName) {
+        switch (activeName) {
           case 'tab1':
             return {
               businessId: this.businessId
@@ -88,12 +86,11 @@
               form: this.form,
               bizType: 8,
               sourceBizNo: this.form.returnNo,
-              detailList: this.form.productList
+              detailList: this.form.productList.filter(item=>item.packageId),
+              saleProductList:this.form.productList.filter(item=>!item.packageId),
             };
         }
-      }
-    },
-    methods: {
+      },
       isValidComponent(componentName) {
         const validComponents = ['tab1', 'tab2'];
         return validComponents.includes(componentName);
@@ -105,12 +102,18 @@
         console.log(this.$refs.componentRef);
         return {
           form: this.form,
-          returnStorageData: this.$refs.componentRef.getReturnStorage
-            ? await this.$refs.componentRef.getReturnStorage()
+          returnStorageData: this.$refs.componentReftab2[0].getReturnStorage
+            ? await this.$refs.componentReftab2[0].getReturnStorage()
             : ''
         };
       }
     }
   };
 </script>
-<style scoped lang="scss"></style>
+<style scoped lang="scss">
+  .title {
+    font-size: 22px;
+    font-weight: 800;
+    margin-top: 15px;
+  }
+</style>

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

@@ -4,7 +4,7 @@
       <headerTitle title="退货信息"></headerTitle>
       <el-row>
         <el-col :span="12">
-          <el-form-item label="退货类型:" style="margin-bottom: 16px">
+          <el-form-item label="退货类型:" style="margin-bottom: 2px">
             {{
               form.returnSourceType == 2 ? '受托收货单退货' : '销售发货单退货'
             }}
@@ -12,17 +12,17 @@
           <el-form-item
             label="客户名称:"
             prop="contactName"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.contactName }}
           </el-form-item>
-          <el-form-item label="退货方式:" style="margin-bottom: 16px">
+          <el-form-item label="退货方式:" style="margin-bottom: 2px">
             {{ form.typeName }}
           </el-form-item>
           <el-form-item
             label="赔偿金额:"
             prop="redressAmount"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
             v-show="['30', '50'].includes(form.type)"
           >
             {{ form.redressAmount }}元
@@ -30,28 +30,28 @@
           <el-form-item
             label="赔偿总金额:"
             prop="totalAmount"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.totalAmount }}元
           </el-form-item>
           <el-form-item
             label="备注:"
             prop="remark"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.remark }}
           </el-form-item>
           <el-form-item
             label="创建时间:"
             prop="createTime"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.createTime }}
           </el-form-item>
           <el-form-item
             label="制单人:"
             prop="makerName"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.makerName }}
           </el-form-item>
@@ -60,7 +60,7 @@
           <el-form-item
             label="退货编码:"
             prop="returnNo"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.returnNo }}
           </el-form-item>
@@ -68,7 +68,7 @@
             v-if="form.returnSourceType == 2"
             label="受托收货编码:"
             prop="entrustedReceiveCode"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.entrustedReceiveCode }}
           </el-form-item>
@@ -76,7 +76,7 @@
             v-else
             label="发货编码:"
             prop="sendNo"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ form.sendNo }}
           </el-form-item>
@@ -88,51 +88,25 @@
           <el-form-item
             label="审核状态:"
             prop="reviewStatus"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             {{ reviewStatusEnum[form.reviewStatus]?.label }}
           </el-form-item>
           <el-form-item
             label="退货附件:"
             prop="returnFiles"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             <fileMain v-model="form.returnFiles" type="view"></fileMain>
-            <!--            <div-->
-            <!--              v-if="detailData.returnFiles && detailData.returnFiles?.length"-->
-            <!--            >-->
-            <!--              <el-link-->
-            <!--                v-for="link in detailData.returnFiles"-->
-            <!--                :key="link.id"-->
-            <!--                type="primary"-->
-            <!--                :underline="false"-->
-            <!--                @click="downloadFile(link)"-->
-            <!--              >-->
-            <!--                {{ link.name }}-->
-            <!--              </el-link-->
-            <!--              >-->
-            <!--            </div>-->
+       
           </el-form-item>
           <el-form-item
             label="回执附件:"
             prop="repliedFiles"
-            style="margin-bottom: 16px"
+            style="margin-bottom: 2px"
           >
             <fileMain v-model="form.repliedFiles" type="view"></fileMain>
-            <!--            <div-->
-            <!--              v-if="detailData.repliedFiles && detailData.repliedFiles?.length"-->
-            <!--            >-->
-            <!--              <el-link-->
-            <!--                v-for="link in detailData.repliedFiles"-->
-            <!--                :key="link.id"-->
-            <!--                type="primary"-->
-            <!--                :underline="false"-->
-            <!--                @click="downloadFile(link)"-->
-            <!--              >-->
-            <!--                {{ link.name }}-->
-            <!--              </el-link-->
-            <!--              >-->
-            <!--            </div>-->
+           
           </el-form-item>
         </el-col>
       </el-row>
@@ -172,7 +146,7 @@
   import { getFile } from '@/api/system/file';
   import dictMixins from '@/mixins/dictMixins';
   import { reviewStatusEnum } from '@/enum/dict';
-  // import fileMain from '@/components/addDoc/index.vue';
+
 
   export default {
     mixins: [dictMixins],
@@ -202,72 +176,162 @@
             align: 'center',
             fixed: 'left'
           },
+          {
+            minWidth: 150,
+            prop: 'orderNo',
+            label: '订单编码',
+            align: 'center',
+            fixed: 'left'
+          },
           {
             width: 200,
             prop: 'productName',
             label: '名称',
-            slot: 'productName'
+            slot: 'productName',
+            align: 'center'
           },
           {
             width: 120,
             prop: 'productCode',
             label: '编码',
-            slot: 'productCode'
+            slot: 'productCode',
+            align: 'center'
           },
           {
             width: 200,
             prop: 'productCategoryName',
             label: '类型',
-            slot: 'productCategoryName'
+            slot: 'productCategoryName',
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'batchNo',
+            label: '批次号',
+            slot: 'batchNo',
+            align: 'center'
           },
           {
             width: 160,
             prop: 'productBrand',
             label: '牌号',
-            slot: 'productBrand'
+            slot: 'productBrand',
+            align: 'center'
           },
           {
             width: 120,
             prop: 'modelType',
             label: '型号',
-            slot: 'modelType'
+            slot: 'modelType',
+            align: 'center'
           },
           {
             width: 120,
             prop: 'specification',
             label: '规格',
-            slot: 'specification'
+            slot: 'specification',
+            align: 'center'
           },
           {
-            width: 200,
+            minWidth: 120,
+            prop: 'modelKey',
+            label: '机型',
+            showOverflowTooltip: true,
+            align: 'center',
+
+          },
+          {
+            minWidth: 120,
+            prop: 'colorKey',
+            showOverflowTooltip: true,
+            label: '颜色',
+            align: 'center',
+
+          },
+          {
+            minWidth: 160,
+            prop: 'productionCodes',
+            label: '生产编号',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'imgCode',
+            align: 'center',
+            label: '图号/件号',
+            showOverflowTooltip: true
+          },
+
+
+          {
+            width: 120,
             prop: 'customerMark',
             label: '客户代号',
-            slot: 'customerMark'
+            slot: 'customerMark',
+            align: 'center'
           },
           {
             width: 200,
             prop: 'warehouseName',
             label: '仓库名称',
-            slot: 'warehouseName'
+            slot: 'warehouseName',
+
+            align: 'center'
           },
           {
-            width: 120,
-            prop: 'sendTotalCount',
+            width: 150,
+            prop: 'saleCount',
             label: '发货数量',
-            slot: 'sendTotalCount'
+            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: 120,
             prop: 'totalCount',
-            label: '退货数量',
-            slot: 'totalCount'
+            label: '计量数量',
+            // slot: 'totalCount',
+            // headerSlot: 'headerTotalCount',
+            align: 'center'
           },
+          {
+            width: 120,
+            prop: 'orderTotalCount',
+            label: '订单数量',
+            slot: 'orderTotalCount',
+            align: 'center'
+          },
+
           {
             width: 80,
             prop: 'measuringUnit',
             label: '计量单位',
-            slot: 'measuringUnit'
+            slot: 'measuringUnit',
+            align: 'center'
+          },
+
+          {
+            width: 120,
+            prop: 'blockCount',
+            label: '发货块数',
+            slot: 'blockCount',
+            align: 'center',
+            show: false
           },
           {
             width: 120,
@@ -282,15 +346,16 @@
             label: '收货总重',
             slot: 'receiveTotalWeight',
             align: 'center',
-            headerSlot: 'headerSendTotalWeight'
+            headerSlot: 'headerTotalCount'
           },
           {
-            width: 200,
+            width: 100,
             prop: 'sendTotalWeight',
             label: '发货总重',
             slot: 'sendTotalWeight',
             align: 'center'
           },
+
           {
             width: 100,
             prop: 'increaseTotalWeight',
@@ -298,69 +363,135 @@
             slot: 'increaseTotalWeight',
             align: 'center'
           },
+          {
+            width: 100,
+            prop: 'weightUnit',
+            label: '重量单位',
+            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: 'singlePrice',
             label: '单价',
-            slot: 'singlePrice'
+            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'
+            label: '折后单价',
+            slot: 'discountSinglePrice',
+            align: 'center'
           },
           {
             width: 120,
             prop: 'totalPrice',
             label: '合计',
-            slot: 'totalPrice'
+            slot: 'totalPrice',
+            align: 'center'
           },
+
           {
             width: 120,
             prop: 'discountTotalPrice',
-            label: '折让合计',
-            slot: 'discountTotalPrice'
+            label: '折后合计',
+            slot: 'discountTotalPrice',
+            align: 'center'
           },
-
+          // {
+        
           {
             width: 200,
-            prop: 'returnReason',
-            label: '退货原因',
-            slot: 'returnReason'
+            prop: 'guaranteePeriod',
+            label: '有效期',
+            slot: 'guaranteePeriod',
+            formatter: (_row, _column, cellValue) => {
+              return (
+                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
+              );
+            },
+            align: 'center'
           },
           {
-            width: 120,
-            prop: 'deliveryDays',
-            label: '交期(天)',
-            slot: 'deliveryDays'
+            width: 200,
+            prop: 'guaranteePeriodDeadline',
+            label: '有效期截止日期',
+            slot: 'guaranteePeriodDeadline',
+            align: 'center'
           },
           {
-            width: 120,
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
+          {
+            width: 130,
             prop: 'technicalAnswerName',
             label: '技术答疑人',
-            slot: 'technicalAnswerName'
+            slot: 'technicalAnswerName',
+            align: 'center'
           },
           {
             width: 220,
             prop: 'technicalParams',
             label: '技术参数',
-            slot: 'technicalParams'
+            slot: 'technicalParams',
+            align: 'center'
           },
           {
             width: 240,
             prop: 'technicalDrawings',
             label: '技术图纸',
             slot: 'technicalDrawings',
-            formatter: (_row, _column, cellValue) => {
-              return _row.guaranteePeriod + _row.guaranteePeriodUnitName;
-            }
+            align: 'center'
           },
           {
             width: 220,
             prop: 'remark',
             label: '备注',
-            slot: 'remark'
+            slot: 'remark',
+            align: 'center'
           }
         ],
         competAnalysisListcolumns: [

+ 12 - 41
src/views/bpm/handleTask/components/saleOrder/entrustedReceiveReturnGoods/submit.vue

@@ -3,7 +3,6 @@
     <el-form label-width="100px" ref="formRef" :model="form">
       <el-form-item
         label="审批建议"
-
         style="margin-bottom: 20px"
         :rules="{
           required: true,
@@ -42,7 +41,6 @@
         type="danger"
         size="mini"
         @click="handleAudit(0)"
-        v-if="!['starter'].includes(taskDefinitionKey)"
         >驳回
       </el-button>
       <el-dropdown
@@ -61,14 +59,12 @@
 </template>
 
 <script>
-  import outin from '@/api/warehouseManagement/outin';
   import {
-    UpdateReturnInformation,
     saleReturnProcessCancel,
-    getWarehouseListByIds
   } from '@/api/bpm/components/saleManage/saleorder';
-  import {approveTaskWithVariables, rejectTask} from '@/api/bpm/task';
+  import { approveTaskWithVariables, rejectTask } from '@/api/bpm/task';
   import { listAllUserBind } from '@/api/system/organization';
+  import storageApi from '@/api/warehouseManagement/index.js';
 
   // 流程实例的详情页,可用于审批
   export default {
@@ -106,13 +102,13 @@
       listAllUserBind().then((data) => {
         this.userOptions.push(...data);
       });
-      if (this.taskDefinitionKey == 'storemanApprove') {
-        let data = await getReturnSaleOrderrecordDetail(this.businessId);
-        try {
-          this.outInData = await getOutInBySourceBizNo(data.orderNo);
-        } catch (error) {}
-        this.outInData.verifyStatus = 0;
-      }
+      // if (this.taskDefinitionKey == 'storemanApprove') {
+      //   let data = await getReturnSaleOrderrecordDetail(this.businessId);
+      //   try {
+      //     this.outInData = await getOutInBySourceBizNo(data.orderNo);
+      //   } catch (error) {}
+      //   this.outInData.verifyStatus = 0;
+      // }
     },
     methods: {
       /** 处理转办审批人 */
@@ -154,38 +150,13 @@
         }
       },
       async handleAudit(status) {
-        let storemanIds = '';
-        //发起人补充
-        if (this.taskDefinitionKey === 'starter') {
-          let arr = await this.getTableValue();
-          if (!arr) {
-            return;
-          }
-          let data = await UpdateReturnInformation(arr);
-          if (data.code != '0') {
-            return;
-          }
-        }
-        //部门负责人审核
-        if (this.taskDefinitionKey === 'deptLeader') {
-          let arr = await this.getTableValue();
-          let ids = arr.productList.map((item) => item.warehouseId);
-          let data = await getWarehouseListByIds(ids || []);
-          storemanIds = [...new Set(data.map((item) => item.ownerId))].join(
-            ','
-          );
-        }
-
-        this.approveTaskWithVariables(status, storemanIds);
+        this.approveTaskWithVariables(status, );
       },
-      activeCompChange(activeComp) {
-        this.activeComp = activeComp;
-      },
-      async approveTaskWithVariables(status, storemanIds) {
+
+      async approveTaskWithVariables(status) {
         let variables = {
           pass: !!status
         };
-        if (storemanIds) variables.storemanIds = storemanIds;
         let API = !!status ? approveTaskWithVariables : rejectTask;
         API({
           id: this.taskId,

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

@@ -196,12 +196,11 @@
             fixed: 'left'
           },
           {
-            minWidth: 200,
+            minWidth: 150,
             prop: 'orderNo',
-            slot: 'orderNo',
             label: '订单编码',
-            showOverflowTooltip: true,
-            align: 'center'
+            align: 'center',
+            fixed: 'left'
           },
           {
             width: 200,
@@ -226,16 +225,16 @@
           },
           {
             width: 160,
-            prop: 'productBrand',
-            label: '号',
-            slot: 'productBrand',
+            prop: 'batchNo',
+            label: '批次号',
+            slot: 'batchNo',
             align: 'center'
           },
           {
             width: 160,
-            prop: 'batchNo',
-            label: '批次号',
-            slot: 'batchNo',
+            prop: 'productBrand',
+            label: '号',
+            slot: 'productBrand',
             align: 'center'
           },
           {
@@ -252,24 +251,37 @@
             slot: 'specification',
             align: 'center'
           },
-            {
+          {
             minWidth: 120,
             prop: 'modelKey',
             label: '机型',
             showOverflowTooltip: true,
-            align: 'center',
-
+            align: 'center'
           },
           {
             minWidth: 120,
             prop: 'colorKey',
             showOverflowTooltip: true,
             label: '颜色',
+            align: 'center'
+          },
+          {
+            minWidth: 160,
+            prop: 'productionCodes',
+            label: '生产编号',
+            align: 'center'
+          },
+          {
+            width: 120,
+            prop: 'imgCode',
             align: 'center',
-
+            label: '图号/件号',
+            showOverflowTooltip: true
           },
+ 
+   
           {
-            width: 200,
+            width: 120,
             prop: 'customerMark',
             label: '客户代号',
             slot: 'customerMark',
@@ -280,26 +292,50 @@
             prop: 'warehouseName',
             label: '仓库名称',
             slot: 'warehouseName',
+
             align: 'center'
           },
           {
-            width: 120,
-            prop: 'totalCount',
+            width: 150,
+            prop: 'saleCount',
             label: '发货数量',
-            slot: 'totalCount',
+            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: 120,
+            prop: 'totalCount',
+            label: '计量数量',
+            // slot: 'totalCount',
+            // headerSlot: 'headerTotalCount',
+            align: 'center'
+          },
           {
             width: 120,
             prop: 'orderTotalCount',
             label: '订单数量',
             slot: 'orderTotalCount',
             align: 'center'
-            // show: !!!this.entrustedCode
           },
+
           {
-            width: 120,
+            width: 80,
             prop: 'measuringUnit',
             label: '计量单位',
             slot: 'measuringUnit',
@@ -313,19 +349,19 @@
             align: 'center'
           },
           {
-            width: 100,
+            width: 200,
             prop: 'receiveTotalWeight',
             label: '收货总重',
             slot: 'receiveTotalWeight',
-            align: 'center'
+            align: 'center',
+            headerSlot: 'headerTotalCount'
           },
           {
-            width: 200,
+            width: 100,
             prop: 'sendTotalWeight',
             label: '发货总重',
             slot: 'sendTotalWeight',
-            align: 'center',
-            headerSlot: 'headerTotalCount'
+            align: 'center'
           },
 
           {
@@ -364,7 +400,16 @@
             align: 'center'
           },
           {
-            width: 150,
+            width: 160,
+            prop: 'taxRate',
+            label: '税率',
+            formatter: (_row, _column, cellValue) => {
+              return _row.taxRate ? _row.taxRate + '%' : '';
+            },
+            align: 'center'
+          },
+          {
+            width: 160,
             prop: 'notaxSinglePrice',
             label: '不含税单价',
             align: 'center'
@@ -383,6 +428,7 @@
             slot: 'totalPrice',
             align: 'center'
           },
+
           {
             width: 120,
             prop: 'discountTotalPrice',
@@ -390,13 +436,7 @@
             slot: 'discountTotalPrice',
             align: 'center'
           },
-          {
-            width: 120,
-            prop: 'deliveryDays',
-            label: '交期(天)',
-            slot: 'deliveryDays',
-            align: 'center'
-          },
+       
           {
             width: 200,
             prop: 'guaranteePeriod',
@@ -409,14 +449,31 @@
             },
             align: 'center'
           },
-          // {
-          //   width: 120,
-          //   prop: 'guaranteePeriodUnitCode',
-          //   label: '',
-          //   slot: 'guaranteePeriodUnitCode'
-          // },
           {
-            width: 120,
+            width: 200,
+            prop: 'guaranteePeriodDeadline',
+            label: '有效期截止日期',
+            slot: 'guaranteePeriodDeadline',
+            align: 'center'
+          },
+          {
+            prop: 'provenance',
+            label: '产地',
+            slot: 'provenance',
+            align: 'center',
+            // show:this.contractBookType==2,
+            minWidth: 200,
+            showOverflowTooltip: true,
+            formatter: (row, column) => {
+              return row.provenance && row.provenance.length
+                ? row.provenance
+                    .map((item) => this.getDictValue('产地', item))
+                    .join(',')
+                : '';
+            }
+          },
+          {
+            width: 130,
             prop: 'technicalAnswerName',
             label: '技术答疑人',
             slot: 'technicalAnswerName',
@@ -434,24 +491,8 @@
             prop: 'technicalDrawings',
             label: '技术图纸',
             slot: 'technicalDrawings',
-
             align: 'center'
           },
-          {
-            prop: 'provenance',
-            label: '产地',
-            slot: 'provenance',
-            align: 'center',
-            minWidth: 200,
-            showOverflowTooltip: true,
-            formatter: (row, column) => {
-              return row.provenance && row.provenance.length
-                ? row.provenance
-                    .map((item) => this.getDictValue('产地', item))
-                    .join(',')
-                : '';
-            }
-          },
           {
             width: 220,
             prop: 'remark',
@@ -610,16 +651,14 @@
             prop: 'modelKey',
             label: '机型',
             showOverflowTooltip: true,
-            align: 'center',
-
+            align: 'center'
           },
           {
             minWidth: 120,
             prop: 'colorKey',
             showOverflowTooltip: true,
             label: '颜色',
-            align: 'center',
-
+            align: 'center'
           },
           {
             minWidth: 100,
@@ -672,7 +711,6 @@
     created() {
       this.getDetailData(this.businessId);
       this.requestDict('产地');
-
     },
     methods: {
       downloadFile(file) {

+ 20 - 6
src/views/bpm/outgoingManagement/outbound.vue

@@ -1024,7 +1024,7 @@
                 categoryId:
                   item.instanceId || item.categoryId || item.productId,
                 num: item.demandQuantity || item.measurementCount,
-                warehouseId:this.bizType == 11?item.warehouseId:'',
+                warehouseId: this.bizType == 11 ? item.warehouseId : ''
               };
             })
           };
@@ -1039,17 +1039,29 @@
             outInIds: this.form?.returnInReceiptId?.split(','),
             packageNos: this.detailList.map((item) => item.packageNo)
           };
+          let pData4 = {
+            //受托退货
+            type: 3,
+            ids: this.detailList.map((item) => item.packageId)?.toString(),
+          };
+          let api = this.bizType == 8 ? 'getHierarchyList' : 'getHierarchyFifo';
 
-          storageApi
-            .getHierarchyFifo(
-              this.wwType == 3 ? pData2 : this.bizType == 6 ? pData3 : pData
-            )
+          storageApi[api](
+            this.wwType == 3
+              ? pData2
+              : this.bizType == 6
+              ? pData3
+              : this.bizType == 8
+              ? pData4
+              : pData
+          )
             .then((data) => {
               this.detailData(data, this.dimension);
             })
             .catch((err) => {
               console.log(err);
             });
+          return;
         }
         // 销售相关逻辑
         if (this.saleProductList?.length > 0) {
@@ -1067,7 +1079,9 @@
               return {
                 categoryId: item.productId || item.categoryId,
                 num: item.totalCount,
-                batchNo: item.batchNo || ''
+                batchNo: item.batchNo || '',
+                warehouseId: this.bizType == 3 ? item.warehouseId : ''
+                // batchNo: item.batchNo || '',
               };
             })
           };