Kaynağa Gözat

销售流程增加受托发货单流程

Z 2 yıl önce
ebeveyn
işleme
a2ecbf33da

+ 1 - 1
src/api/bpm/components/purchasingManage/outSourceSend.js

@@ -73,7 +73,7 @@ export async function submit(data) {
  * 流程作废
  */
 export async function cancel(data) {
-  const res = await request.put(`/bpm/finFeeApply/notPass`, data);
+  const res = await request.put(`/bpm/purchaseOutsourceSendApprove/cancel`, data);
   if (res.data.code == 0) {
     return Promise.resolve(res.data);
   }

+ 1 - 1
src/views/bpm/handleTask/components/purchaseOrder/invoice/outSourceSendDialog.vue

@@ -1,6 +1,6 @@
 <template>
   <el-dialog
-    title="选择委外货单"
+    title="选择委外货单"
     custom-class="ele-dialog-form long-dialog-form"
     :visible.sync="outSourceSendDialogFlag"
     :before-close="handleClose"

+ 1 - 1
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/boxTabPage.vue

@@ -58,7 +58,7 @@
       tabOption() {
         let list = [
           {
-            label: '货单详情',
+            label: '货单详情',
             name: 'tab1',
             isShow: true
           },

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

@@ -201,7 +201,7 @@ export default {
         {
           width: 120,
           prop: 'totalCount',
-          label: '发货数量',
+          label: '数量',
           slot: 'totalCount',
           align: "center"
         },
@@ -221,9 +221,9 @@ export default {
         },
         {
           width: 100,
-          prop: 'sendTotalWeight',
-          label: '货总重',
-          slot: 'sendTotalWeight',
+          prop: 'receiveTotalWeight',
+          label: '货总重',
+          slot: 'receiveTotalWeight',
           align: "center"
         },
         {

+ 5 - 5
src/views/bpm/handleTask/components/saleOrder/entrustedReceive/inventoryTable.vue

@@ -307,7 +307,7 @@ export default {
         {
           width: 100,
           prop: 'totalCount',
-          label: '收货数量',
+          label: '数量',
           slot: 'totalCount',
           headerSlot: 'headerTotalCount',
           align: "center"
@@ -334,9 +334,9 @@ export default {
         },
         {
           width: 100,
-          prop: 'sendTotalWeight',
+          prop: 'receiveTotalWeight',
           label: '收货总重',
-          slot: 'sendTotalWeight',
+          slot: 'receiveTotalWeight',
           align: "center"
         },
         {
@@ -527,7 +527,7 @@ export default {
     },
 //修改数量更新合计
     changeNum(val, row, index) {
-      this.$set(this.form.datasource[index], 'sendTotalWeight', val ? val * row.singleWeight : '');
+      this.$set(this.form.datasource[index], 'receiveTotalWeight', val ? val * row.singleWeight : '');
       this.$set(this.form.datasource[index], 'totalPrice', this.getTotalPrice(row).toFixed(2));
       this.$set(this.form.datasource[index], 'discountTotalPrice', this.getDiscountTotalPrice(row).toFixed(2));
     },
@@ -612,7 +612,7 @@ export default {
               })
             );
           }
-          if(!item.sendTotalWeight)this.$set(item, 'sendTotalWeight', Number(item.totalCount) * Number(item.singleWeight) );
+          if(!item.receiveTotalWeight)this.$set(item, 'receiveTotalWeight', Number(item.totalCount) * Number(item.singleWeight) );
         });
       }
     },

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

@@ -16,116 +16,119 @@
     </div>
     <div v-show="activeComp == 'main'">
       <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-      <headerTitle title="发货信息"></headerTitle>
-      <el-row>
-        <el-col :span="12">
-          <el-form-item
-            label="选择订单"
-            prop="orderNo"
-            style="margin-bottom: 22px"
-          >
-            <el-input
-              clearable
-              v-model="form.orderNo"
-              @click.native="handleOrderBtn"
-              placeholder="请输入"
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-            />
-          </el-form-item>
-          <el-form-item
-            label="客户名称"
-            prop="contactName"
-            style="margin-bottom: 22px"
-          >
-            <span>{{ form.contactName }}</span>
-          </el-form-item>
-          <el-form-item
-            label="客户联系人"
-            prop="linkName"
-            style="margin-bottom: 22px"
-          >
-            <el-input
-              clearable
-              v-model="form.linkName"
-              placeholder="请输入"
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-            />
-          </el-form-item>
-
-          <el-form-item prop="sendFiles" label="发货附件">
-            <fileUpload
-              v-model="form.sendFiles"
-              module="main"
-              :showLib="false"
-              :limit="10"
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-            />
-          </el-form-item>
-        </el-col>
-
-        <el-col :span="12">
-          <el-form-item label="车辆号" prop="carNo" style="margin-bottom: 22px">
-            <el-input
-              clearable
-              v-model="form.carNo"
-              placeholder="请输入"
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-            />
-          </el-form-item>
-
-          <!-- <el-form-item
-              label="订单编码"
+        <headerTitle title="发货信息"></headerTitle>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item
+              label="选择订单"
               prop="orderNo"
               style="margin-bottom: 22px"
             >
-            <span>{{form.orderNo}}</span>
-
-            </el-form-item> -->
-
-          <el-form-item
-            label="客户电话"
-            prop="linkPhone"
-            style="margin-bottom: 22px"
-          >
-            <el-input
-              clearable
-              v-model="form.linkPhone"
-              placeholder="请输入"
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-            />
-          </el-form-item>
-          <el-form-item
-            label="收货地址"
-            prop="receiveAddress"
-            style="margin-bottom: 22px"
-          >
-            <el-input
-              :disabled="taskDefinitionKey == 'salesmanUploadReceipt'"
-              clearable
-              v-model="form.receiveAddress"
-              placeholder="请输入"
-            />
-          </el-form-item>
-          <el-form-item
-            prop="repliedFiles"
-            label="回执附件"
-            :rules="[
-              { required: true, message: '回执附件不能为空', trigger: 'change' }
-            ]"
-          >
-            <fileUpload
-              v-model="form.repliedFiles"
-              module="main"
-              :showLib="false"
-              :limit="10"
-            />
-          </el-form-item>
-        </el-col>
-      </el-row>
-    </el-form>
-
+              <el-input
+                clearable
+                v-model="form.orderNo"
+                @click.native="handleOrderBtn"
+                placeholder="请输入"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item
+              label="受托发货单"
+              style="margin-bottom: 22px"
+            >
+              <el-input
+                clearable
+                v-model="form.entrustedCode"
+                @click.native="handleEntrustedReceive"
+                placeholder="请输入"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item
+              label="客户名称"
+              prop="contactName"
+              style="margin-bottom: 22px">
+              <el-input v-model="form.contactName" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item
+              label="客户联系人"
+              prop="linkName"
+              style="margin-bottom: 22px">
+              <el-input clearable v-model="form.linkName" placeholder="请输入"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item
+              label="计价方式"
+              style="margin-bottom: 22px">
+              <el-select v-model="form.pricingWay" disabled style="width: 100%">
+                <el-option label="按数量计费" :value="1"></el-option>
+                <el-option label="按重量计费" :value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item
+              label="客户电话"
+              prop="linkPhone"
+              style="margin-bottom: 22px">
+              <el-input clearable v-model="form.linkPhone" placeholder="请输入"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="车辆号" prop="carNo" style="margin-bottom: 22px">
+              <el-input clearable v-model="form.carNo" placeholder="请输入"/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item
+              label="收货地址"
+              prop="receiveAddress"
+              style="margin-bottom: 22px">
+              <el-input
+                clearable
+                v-model="form.receiveAddress"
+                placeholder="请输入"
+              />
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item prop="sendFiles" label="发货附件">
+              <fileUpload
+                v-model="form.sendFiles"
+                module="main"
+                :showLib="false"
+                :limit="10"
+              />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item prop="repliedFiles" label="回执附件">
+              <fileUpload
+                v-model="form.repliedFiles"
+                module="main"
+                :showLib="false"
+                :limit="10"/>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
     <headerTitle title="产品清单" style="margin-top: 30px"></headerTitle>
     <inventoryTable
+      :pricingWay="form.pricingWay"
+      :entrustedCode="form.entrustedCode"
       ref="inventoryTableref"
       :orderId="form.orderId"
       v-show="taskDefinitionKey != 'salesmanUploadReceipt'"
@@ -163,6 +166,11 @@
       ref="orderListDialogRef"
       @changeParent="changeOrder"
     ></orderListDialog>
+      <!--  受托发货单  -->
+      <entrusted-receive-dialog :entrusted-receive-dialog-flag.sync="entrustedReceiveDialogFlag"
+                                v-if="entrustedReceiveDialogFlag"
+                                @changeParent="getInfo"
+                                ref="entrustedReceiveDialogRef"></entrusted-receive-dialog>
     </div>
     <detailDialog type="sourceBizNo" :businessId="form.docNo" v-if="activeComp == 'outBound'"></detailDialog>
   </div>
@@ -182,11 +190,13 @@
   import inventoryTable from './inventoryTable.vue';
   import orderListDialog from './orderListDialog.vue';
   import { copyObj } from '@/utils/util';
+  import EntrustedReceiveDialog from "@/views/bpm/handleTask/components/saleOrder/invoice/entrustedReceiveDialog.vue";
 
   export default {
     mixins: [dictMixins],
 
     components: {
+      EntrustedReceiveDialog,
       fileUpload,
       inventoryTable,
       orderListDialog,
@@ -200,6 +210,7 @@
         repliedFiles: [],
         contractName: '',
         receiveAddress: '',
+        pricingWay: 1,
         carNo: '',
         carId: '',
         linkName: '',
@@ -216,6 +227,7 @@
         delDetailIds: [],
         linkNameOptions: [],
         visible: false,
+        entrustedReceiveDialogFlag: false,
         title: '',
         row: {},
         activeName: 'base',
@@ -254,92 +266,134 @@
             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: '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,
+            prop: 'customerMark',
+            label: '客户代号',
+            slot: 'customerMark',
+            align: 'center',
           },
           {
             width: 200,
             prop: 'warehouseName',
             label: '仓库名称',
-            slot: 'warehouseName'
+            slot: 'warehouseName',
+            align: 'center',
           },
 
           {
             width: 120,
             prop: 'totalCount',
             label: '数量',
-            slot: 'totalCount'
+            slot: 'totalCount',
+            align: 'center',
           },
           {
             width: 120,
             prop: 'measuringUnit',
             label: '计量单位',
-            slot: 'measuringUnit'
+            slot: 'measuringUnit',
+            align: 'center',
           },
           {
-            width: 160,
-            prop: 'singlePrice',
-            label: '单价',
-            slot: 'singlePrice'
+            width: 120,
+            prop: 'singleWeight',
+            label: '单重',
+            slot: 'singleWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'receiveTotalWeight',
+            label: '收货总重',
+            slot: 'receiveTotalWeight',
+            align: "center"
+          },
+          {
+            width: 200,
+            prop: 'sendTotalWeight',
+            label: '发货总重',
+            slot: 'sendTotalWeight',
+            align: "center",
+            headerSlot: 'headerTotalCount'
+          },
+
+          {
+            width: 100,
+            prop: 'increaseTotalWeight',
+            label: '增重重量',
+            slot: 'increaseTotalWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'weightUnit',
+            label: '重量单位',
+            slot: 'weightUnit',
+            align: "center"
           },
           {
             width: 160,
-            prop: 'discountSinglePrice',
-            label: '折让单价',
-            slot: 'discountSinglePrice'
+            prop: 'singlePrice',
+            label: '单价',
+            slot: 'singlePrice',
+            align: 'center',
           },
           {
             width: 120,
             prop: 'totalPrice',
-            label: '合计',
+            label: '销售总金额',
             slot: 'totalPrice',
             formatter: (_row, _column, cellValue) => {
               return _row.totalPrice + '元';
-            }
-          },
-          {
-            width: 120,
-            prop: 'discountTotalPrice',
-            label: '折让合计',
-            slot: 'totalPrice',
-            formatter: (_row, _column, cellValue) => {
-              return _row.discountTotalPrice + '元';
-            }
+            },
+            align: 'center',
           },
+
           {
             width: 120,
             prop: 'deliveryDays',
             label: '交期(天)',
-            slot: 'deliveryDays'
+            slot: 'deliveryDays',
+            align: 'center',
           },
           {
             width: 200,
@@ -348,7 +402,8 @@
             slot: 'guaranteePeriod',
             formatter: (_row, _column, cellValue) => {
               return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
-            }
+            },
+            align: 'center',
           },
           // {
           //   width: 120,
@@ -360,13 +415,15 @@
             width: 120,
             prop: 'technicalAnswerName',
             label: '技术答疑人',
-            slot: 'technicalAnswerName'
+            slot: 'technicalAnswerName',
+            align: 'center',
           },
           {
             width: 220,
             prop: 'technicalParams',
             label: '技术参数',
-            slot: 'technicalParams'
+            slot: 'technicalParams',
+            align: 'center',
           },
           {
             width: 240,
@@ -375,13 +432,15 @@
             slot: 'technicalDrawings',
             formatter: (_row, _column, cellValue) => {
               return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
-            }
+            },
+            align: 'center',
           },
           {
             width: 220,
             prop: 'remark',
             label: '备注',
-            slot: 'remark'
+            slot: 'remark',
+            align: 'center',
           }
         ]
       };
@@ -461,14 +520,107 @@
         if (data) {
           this.$nextTick(() => {
             this.form = data;
+            this.form.pricingWay = data?.saleOrder?.pricingWay
             this.$refs.inventoryTableref &&
               this.$refs.inventoryTableref.putTableValue(data.productList);
           });
         }
       },
+      //选择受托收货单弹框
+      handleEntrustedReceive(e) {
+        if (e.target.nodeName == 'I') {
+          this.form = Object.assign({}, this.form, {
+            carNo: '',
+            carId: '',
+            linkName: '',
+            linkPhone: '',
+            orderNo: '',
+            orderId: '',
+            contactId: '',
+            contactName: '',
+            entrustedCode: '',
+            entrustedId: '',
+            sendNoteNo: '',
+            pricingWay: '',
+          })
+          this.$refs.inventoryTableref &&
+          this.$refs.inventoryTableref.putTableValue([]);
+          return
+        }
+        this.searchParams = {
+          orderId: this.form.orderId
+        }
+        this.entrustedReceiveDialogFlag = true
+        this.$nextTick(() => {
+          this.$refs.entrustedReceiveDialogRef.init();
+        })
 
+      },
+      //获取受托收货单数据回调
+      async getInfo(row) {
+        const data = await getPSaleEntrustedReceiveDetailAPI(row.id);
+        this.$nextTick(() => {
+          let {
+            carNo,
+            carId,
+            code,
+            id,
+            linkName,
+            linkPhone,
+            orderId,
+            orderNo,
+            productList,
+            contactId,
+            contactName,
+            pricingWay = data?.saleOrder?.pricingWay
+          } = data;
+          if (productList && productList.length > 0) {
+            productList.forEach((v) => {
+              v.orderTotalCount = v.orderTotalCount || v.totalCount;
+            });
+          }
+          this.form = Object.assign({}, this.form, {
+            contactId,
+            contactName,
+            linkName,
+            linkPhone,
+            orderNo,
+            orderId,
+            productList,
+            carNo,
+            carId,
+            pricingWay,
+            entrustedCode: code,
+            entrustedId: id
+          });
+          productList.forEach(item => {
+            item.id = ''
+          })
+          this.$refs.inventoryTableref &&
+          this.$refs.inventoryTableref.putTableValue(productList, code);
+        });
+      },
       //选择订单弹框
       handleOrderBtn() {
+        if (e.target.nodeName == 'I') {
+          this.form = Object.assign({}, this.form, {
+            contactId: '',
+            contactName: '',
+            carNo: '',
+            carId: '',
+            linkName: '',
+            linkPhone: '',
+            orderNo: '',
+            orderId: '',
+            pricingWay: '',
+            entrustedCode: '',
+            entrustedId: '',
+          })
+          this.$refs.inventoryTableref &&
+          this.$refs.inventoryTableref.putTableValue([]);
+          return
+        }
+
         let item = {
           id: this.form.orderId
         };

+ 82 - 39
src/views/bpm/handleTask/components/saleOrder/invoice/detailDialog.vue

@@ -71,9 +71,7 @@
               style="margin-bottom: 16px"
             >
               <div
-                v-if="
-                  detailData.repliedFiles && detailData.repliedFiles?.length
-                "
+                v-if="detailData.repliedFiles && detailData.repliedFiles?.length"
               >
                 <el-link
                   v-for="link in detailData.repliedFiles"
@@ -244,90 +242,134 @@
             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: '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,
+            prop: 'customerMark',
+            label: '客户代号',
+            slot: 'customerMark',
+            align: 'center',
           },
           {
             width: 200,
             prop: 'warehouseName',
             label: '仓库名称',
-            slot: 'warehouseName'
+            slot: 'warehouseName',
+            align: 'center',
           },
 
           {
             width: 120,
             prop: 'totalCount',
             label: '数量',
-            slot: 'totalCount'
+            slot: 'totalCount',
+            align: 'center',
           },
           {
             width: 120,
             prop: 'measuringUnit',
             label: '计量单位',
-            slot: 'measuringUnit'
+            slot: 'measuringUnit',
+            align: 'center',
           },
           {
-            width: 160,
-            prop: 'singlePrice',
-            label: '单价',
-            slot: 'singlePrice'
+            width: 120,
+            prop: 'singleWeight',
+            label: '单重',
+            slot: 'singleWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'receiveTotalWeight',
+            label: '收货总重',
+            slot: 'receiveTotalWeight',
+            align: "center"
+          },
+          {
+            width: 200,
+            prop: 'sendTotalWeight',
+            label: '发货总重',
+            slot: 'sendTotalWeight',
+            align: "center",
+            headerSlot: 'headerTotalCount'
+          },
+
+          {
+            width: 100,
+            prop: 'increaseTotalWeight',
+            label: '增重重量',
+            slot: 'increaseTotalWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'weightUnit',
+            label: '重量单位',
+            slot: 'weightUnit',
+            align: "center"
           },
           {
             width: 160,
-            prop: 'discountSinglePrice',
-            label: '折让单价',
-            slot: 'discountSinglePrice'
+            prop: 'singlePrice',
+            label: '单价',
+            slot: 'singlePrice',
+            align: 'center',
           },
           {
             width: 120,
             prop: 'totalPrice',
-            label: '合计',
+            label: '销售总金额',
             slot: 'totalPrice',
             formatter: (_row, _column, cellValue) => {
               return _row.totalPrice + '元';
-            }
-          },
-          {
-            width: 160,
-            prop: 'discountTotalPrice',
-            label: '折让合计',
-            slot: 'discountTotalPrice'
+            },
+            align: 'center',
           },
 
           {
             width: 120,
             prop: 'deliveryDays',
             label: '交期(天)',
-            slot: 'deliveryDays'
+            slot: 'deliveryDays',
+            align: 'center',
           },
           {
             width: 200,
@@ -335,10 +377,9 @@
             label: '质保期',
             slot: 'guaranteePeriod',
             formatter: (_row, _column, cellValue) => {
-              return (
-                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
-              );
-            }
+              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
+            },
+            align: 'center',
           },
           // {
           //   width: 120,
@@ -350,13 +391,15 @@
             width: 120,
             prop: 'technicalAnswerName',
             label: '技术答疑人',
-            slot: 'technicalAnswerName'
+            slot: 'technicalAnswerName',
+            align: 'center',
           },
           {
             width: 220,
             prop: 'technicalParams',
             label: '技术参数',
-            slot: 'technicalParams'
+            slot: 'technicalParams',
+            align: 'center',
           },
           {
             width: 240,
@@ -364,16 +407,16 @@
             label: '技术图纸',
             slot: 'technicalDrawings',
             formatter: (_row, _column, cellValue) => {
-              return (
-                (_row.guaranteePeriod || '') + _row.guaranteePeriodUnitName
-              );
-            }
+              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
+            },
+            align: 'center',
           },
           {
             width: 220,
             prop: 'remark',
             label: '备注',
-            slot: 'remark'
+            slot: 'remark',
+            align: 'center',
           }
         ]
       };

+ 195 - 0
src/views/bpm/handleTask/components/saleOrder/invoice/entrustedReceiveDialog.vue

@@ -0,0 +1,195 @@
+<template>
+  <el-dialog
+    title="选择受托收货单"
+    custom-class="ele-dialog-form long-dialog-form"
+    :visible.sync="entrustedReceiveDialogFlag"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    top="5vh"
+    :close-on-press-escape="false"
+    append-to-body
+    width="80%"
+  >
+    <el-card shadow="never">
+      <searchTable @search="reload"></searchTable>
+      <ele-pro-table
+        ref="table"
+        :columns="columns"
+        :datasource="datasource"
+        row-key="id"
+        height="calc(100vh - 500px)"
+        class="dict-table"
+        @cell-click="cellClick"
+      >
+        <!-- 表头工具栏 -->
+        <template v-slot:action="{ row }">
+          <el-radio class="radio" v-model="radio" :label="row.id"
+          ><i></i
+          ></el-radio>
+        </template>
+      </ele-pro-table>
+    </el-card>
+
+    <div class="btns" slot="footer">
+      <el-button type="primary" size="small" @click="selected">选择</el-button>
+      <el-button size="small" @click="handleClose">关闭</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import searchTable from './entrustedReceiveSearchTable.vue';
+
+import {getSaleEntrustedReceivePageAPI} from "@/api/bpm/components/saleManage/entrustedReceive";
+
+export default {
+  components: {
+    searchTable
+  },
+  props: {
+    searchParams: {
+      type: Object,
+      default: () => {
+      }
+    },
+    entrustedReceiveDialogFlag: Boolean
+  },
+
+  data() {
+    return {
+      currentIndex: null,
+      columns: [
+        {
+          columnKey: 'index',
+          label: '序号',
+          type: 'index',
+          width: 55,
+          align: 'center',
+          showOverflowTooltip: true,
+          fixed: 'left'
+        },
+        {
+          width: 60,
+          type: 'action',
+          slot: 'action',
+          label: '选择',
+          columnKey: 'action',
+          align: 'center'
+        },
+        {
+          prop: 'code',
+          label: '发货单编码',
+          align: 'center',
+          slot: 'code',
+          showOverflowTooltip: true,
+          minWidth: 200
+        },
+        {
+          prop: 'orderNo',
+          label: '订单编码',
+          align: 'center',
+          slot: 'orderNo',
+          showOverflowTooltip: true,
+          minWidth: 200
+        },
+        {
+          prop: 'contactName',
+          label: '客户名称',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+        {
+          prop: 'linkName',
+          label: '客户联系人',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        },
+        {
+          prop: 'linkPhone',
+          label: '客户电话',
+          align: 'center',
+          showOverflowTooltip: true,
+          minWidth: 130
+        }
+      ],
+
+      radio: null
+    };
+  },
+
+  methods: {
+    init() {},
+    /* 表格数据源 */
+    datasource({page, limit, where}) {
+      return getSaleEntrustedReceivePageAPI({
+        pageNum: page,
+        size: limit,
+        ...where,
+        reviewStatus: 2,
+        ...this.searchParams
+      });
+    },
+
+    /* 刷新表格 */
+    reload(where) {
+      where = {
+        ...where,
+        ...this.searchParams
+      }
+      this.$refs.table.reload({pageNum: 1, where: where});
+    },
+
+
+    // 单击获取id
+    cellClick(row) {
+      this.current = row;
+      this.radio = row.id;
+    },
+    handleClose() {
+      this.$emit('update:entrustedReceiveDialogFlag', false)
+    },
+
+    selected() {
+      if (!this.current) {
+        return this.$message.warning('请至少选择一条数据');
+      }
+      this.$emit('changeParent', this.current, this.currentIndex);
+      this.handleClose();
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.tree_col {
+  border: 1px solid #eee;
+  padding: 10px 0;
+  box-sizing: border-box;
+  height: 500px;
+  overflow: auto;
+}
+
+.table_col {
+  padding-left: 10px;
+
+  ::v-deep .el-table th.el-table__cell {
+    background: #f2f2f2;
+  }
+}
+
+.pagination {
+  text-align: right;
+  padding: 10px 0;
+}
+
+.btns {
+  text-align: center;
+  padding: 10px 0;
+}
+
+.topsearch {
+  margin-bottom: 15px;
+}
+</style>

+ 106 - 0
src/views/bpm/handleTask/components/saleOrder/invoice/entrustedReceiveSearchTable.vue

@@ -0,0 +1,106 @@
+<!-- 搜索表单 -->
+<template>
+  <el-form
+    label-width="100px"
+    class="ele-form-search"
+    @keyup.enter.native="search"
+    @submit.native.prevent
+  >
+    <el-row :gutter="15">
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="发货单编码:" prop="code">
+          <el-input
+            clearable
+            placeholder="请输入"
+            v-model.trim="params.code"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+        <el-form-item label="订单编码:" prop="orderNo">
+          <el-input
+            clearable
+            placeholder="请输入"
+            v-model.trim="params.orderNo"
+          ></el-input>
+        </el-form-item>
+      </el-col>
+
+      <el-col v-bind="styleResponsive ? { lg:6, md: 12 } : { span:6 }">
+
+        <el-form-item label="客户名称:" prop="contactName">
+          <el-input
+            placeholder="请输入"
+            style="max-width:320px"
+            v-model.trim="params.contactName" controls-position="right">
+          </el-input>
+
+        </el-form-item>
+
+      </el-col>
+      <el-col v-bind="styleResponsive ? { lg:6, md: 12 } : { span:4 }">
+
+        <div class="ele-form-actions">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            class="ele-btn-icon"
+            @click="search"
+          >
+            查询
+          </el-button>
+          <el-button @click="reset">重置</el-button>
+        </div>
+      </el-col>
+    </el-row>
+  </el-form>
+</template>
+<script>
+import {reviewStatusEnum} from '@/enum/dict';
+
+const repliedOptions = [
+  {value: 0, label: '否'},
+  {value: 1, label: '是'},
+]
+export default {
+  data() {
+    // 默认表单数据
+    const defaultParams = {
+      contactName: '',
+      code: '',
+      orderId: '',
+    };
+    return {
+      reviewStatusEnum,
+      defaultParams,
+      repliedOptions,
+      // 表单数据
+      params: {...defaultParams}
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  methods: {
+    //选择时间
+    changeDate(e) {
+      this.createTime = e
+    },
+    /* 搜索 */
+    search() {
+      this.$emit('search', {
+        ...this.params
+      });
+    },
+    /*  重置 */
+    reset() {
+      this.createTime = []
+      this.params = Object.assign({}, {...this.defaultParams});
+      this.search();
+    }
+  }
+};
+</script>

+ 16 - 16
src/views/bpm/handleTask/components/saleOrder/invoice/searchTable.vue

@@ -34,31 +34,31 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="审核状态:" prop="reviewStatus">
-          <el-select v-model="params.reviewStatus" placeholder="请选择" class="w100" clearable>
-            <el-option
-              v-for="item in reviewStatusEnum"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            ></el-option>
-          </el-select>
-        </el-form-item>
-      </el-col>  
+<!--        <el-form-item label="审核状态:" prop="reviewStatus">-->
+<!--          <el-select v-model="params.reviewStatus" placeholder="请选择" class="w100" clearable>-->
+<!--            <el-option-->
+<!--              v-for="item in reviewStatusEnum"-->
+<!--              :key="item.value"-->
+<!--              :label="item.label"-->
+<!--              :value="item.value"-->
+<!--            ></el-option>-->
+<!--          </el-select>-->
+<!--        </el-form-item>-->
+      </el-col>
       <el-col v-bind="styleResponsive ? { lg:6, md: 12 } : { span:6 }">
-       
+
         <el-form-item label="客户名称:" prop="contactName">
           <el-input
           placeholder="请输入"
           style="max-width:320px"
            v-model.trim="params.contactName" controls-position="right" >
           </el-input>
-         
+
         </el-form-item>
-        
-      </el-col> 
+
+      </el-col>
       <el-col v-bind="styleResponsive ? { lg:6, md: 12 } : { span:4 }">
-      
+
         <div class="ele-form-actions">
           <el-button
             type="primary"

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

@@ -30,6 +30,15 @@
               :disabled="taskDefinitionKey != 'QCLeader'"
             >
             </DictSelection>
+          </el-form-item>
+          <el-form-item
+            label="计价方式"
+            style="margin-bottom: 22px">
+            <el-select v-model="form.pricingWay" disabled style="width: 100%">
+            <el-option label="按数量计费" :value="1"></el-option>
+            <el-option label="按重量计费" :value="2"></el-option>
+          </el-select>
+
           </el-form-item>
           <el-form-item
             label="赔偿金额"
@@ -97,6 +106,8 @@
       <inventoryTable
         v-show="['10', '20', '30'].includes(form.type)"
         ref="inventoryTableref"
+        :pricingWay="form.pricingWay"
+        :entrustedCode="form.entrustedCode"
         :sendId="form.sendId"
         :type="form.type"
         @payAmountChange="payAmountChange"
@@ -109,6 +120,8 @@
       <inventoryTable1
         v-show="['20', '40'].includes(form.type)"
         ref="inventoryTableref1"
+        :pricingWay="form.pricingWay"
+        :entrustedCode="form.entrustedCode"
         :sendId="form.sendId"
         :isSinglePrice="false"
       ></inventoryTable1>
@@ -134,7 +147,6 @@
         </el-col>
       </el-row> -->
     </el-form>
-
     <sendListDialog
       ref="sendListDialogRef"
       @changeParent="changeOrder"
@@ -183,6 +195,9 @@
         sendNo: '',
         totalAmount: '',
         type: '',
+        pricingWay: '',
+        entrustedCode: '',
+        entrustedId: '',
         redressAmount: 0
       };
 
@@ -281,7 +296,10 @@
               orderId: data.orderId,
               sendNo: data.docNo,
               sendId: data.id,
-              contactName: data.contactName
+              contactName: data.contactName,
+              pricingWay: data?.saleOrder?.pricingWay,
+              entrustedCode: data.entrustedCode,
+              entrustedId: data.entrustedId
             });
             // this.$refs.inventoryTableref &&
             //   this.$refs.inventoryTableref.putTableValue(data.productList);
@@ -297,6 +315,7 @@
         if (data) {
           this.$nextTick(() => {
             this.form = data;
+            this.form.pricingWay = data?.saleOrder?.pricingWay;
             this.$refs.inventoryTableref &&
               this.$refs.inventoryTableref.putTableValue(data.productList);
             this.$refs.inventoryTableref1 &&

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

@@ -34,7 +34,7 @@
             {{ form.totalAmount }}元
           </el-form-item>
           <el-form-item
-            label="退货备注:"
+            label="备注:"
             prop="remark"
             style="margin-bottom: 16px"
           >
@@ -96,7 +96,8 @@
                 :underline="false"
                 @click="downloadFile(link)"
               >
-                {{ link.name }}</el-link
+                {{ link.name }}
+              </el-link
               >
             </div>
           </el-form-item>
@@ -115,14 +116,14 @@
                 :underline="false"
                 @click="downloadFile(link)"
               >
-                {{ link.name }}</el-link
+                {{ link.name }}
+              </el-link
               >
             </div>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
-
     <headerTitle
       title="产品清单"
       v-show="
@@ -260,7 +261,12 @@
             label: '规格',
             slot: 'specification'
           },
-
+          {
+            width: 200,
+            prop: 'customerMark',
+            label: '客户代号',
+            slot: 'customerMark'
+          },
           {
             width: 120,
             prop: 'sendTotalCount',
@@ -280,6 +286,35 @@
             label: '计量单位',
             slot: 'measuringUnit'
           },
+          {
+            width: 120,
+            prop: 'singleWeight',
+            label: '单重',
+            slot: 'singleWeight',
+            align: "center"
+          },
+          {
+            width: 200,
+            prop: 'receiveTotalWeight',
+            label: '收货总重',
+            slot: 'receiveTotalWeight',
+            align: "center",
+            headerSlot: 'headerSendTotalWeight'
+          },
+          {
+            width: 200,
+            prop: 'sendTotalWeight',
+            label: '发货总重',
+            slot: 'sendTotalWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'increaseTotalWeight',
+            label: '增重重量',
+            slot: 'increaseTotalWeight',
+            align: "center"
+          },
           {
             width: 160,
             prop: 'singlePrice',
@@ -311,15 +346,6 @@
             label: '退货原因',
             slot: 'returnReason'
           },
-          {
-            width: 140,
-            prop: 'returnType',
-            label: '退货类型',
-            slot: 'returnType',
-            formatter: (_row, _column) => {
-              this.getDictValue('退货类型', _row.returnType + '');
-            }
-          },
           {
             width: 120,
             prop: 'deliveryDays',
@@ -344,7 +370,7 @@
             label: '技术图纸',
             slot: 'technicalDrawings',
             formatter: (_row, _column, cellValue) => {
-              return (_row.guaranteePeriod||'') + _row.guaranteePeriodUnitName;
+              return _row.guaranteePeriod + _row.guaranteePeriodUnitName;
             }
           },
           {

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

@@ -68,7 +68,52 @@
           />
         </el-form-item>
       </template>
+      <!--   发货总重   -->
+      <template v-slot:sendTotalWeight="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.sendTotalWeight'"
+          :rules="[
+            { required: entrustedCode&&pricingWay==2, message: '请输入数字', trigger: 'blur' }
+          ]"
+        >
+          <el-input v-model="scope.row.sendTotalWeight" @blur="changeSendTotalWeight(scope.$index)"
+                    :disabled="!entrustedCode"
+                    style="width: 60%; margin-right: 10px">
+
+          </el-input>
+          <el-button
+            size="small"
+            type="primary"
+            v-if="entrustedCode"
+            @click.native="(e)=>handleOutBound(e,scope.row,scope.$index)"
+          >选择
+          </el-button
+          >
+        </el-form-item>
+      </template>
+      <!--   收货总重   -->
+      <template v-slot:receiveTotalWeight="scope">
+        <el-form-item
+          style="margin-bottom: 20px"
+          :prop="'datasource.' + scope.$index + '.receiveTotalWeight'"
+          :rules="[
+            { required: entrustedCode&&pricingWay==2, message: '请输入数字', trigger: 'blur' }
+          ]"
+        >
+          <el-input v-model="scope.row.receiveTotalWeight" @blur="changeReceiveTotalWeight(scope.$index)"
+                    style="width: 60%; margin-right: 10px">
 
+          </el-input>
+          <el-button
+            size="small"
+            type="primary"
+            @click.native="(e)=>handleInnerBound(e,scope.row,scope.$index)"
+          >选择
+          </el-button
+          >
+        </el-form-item>
+      </template>
       <template v-slot:totalCount="scope">
         <el-form-item
           style="margin-bottom: 20px"
@@ -108,23 +153,36 @@
       type="send"
       @changeParent="changeParent"
     ></product-list>
+    <!--出库详情-->
+    <outbound-details-dialog v-if="outboundDetailsDialogFlag" ref="outboundDetailsDialogRef"
+                             :outboundDetailsDialogFlag.sync="outboundDetailsDialogFlag"
+                             @saveDate="saveDate"></outbound-details-dialog>
+    <!--入库详情-->
+    <innertboundDetailsDialog v-if="innerboundDetailsDialogFlag" ref="innerboundDetailsDialogRef"
+                              :innerboundDetailsDialogFlag.sync="innerboundDetailsDialogFlag"
+                              @saveDate="saveInnerDate"></innertboundDetailsDialog>
   </el-form>
 </template>
 <script>
-  import { numberReg } from 'ele-admin';
-  import dictMixins from '@/mixins/dictMixins';
-  import productList from '@/views/bpm/handleTask/components/saleOrder/invoice/product-list.vue';
+import {numberReg} from 'ele-admin';
+import dictMixins from '@/mixins/dictMixins';
+import productList from '@/views/bpm/handleTask/components/saleOrder/invoice/product-list.vue';
+import innertboundDetailsDialog
+  from "@/views/bpm/handleTask/components/purchaseOrder/returnGoods/innerboundDetailsDialog.vue";
+import OutboundDetailsDialog from "@/views/bpm/handleTask/components/purchaseOrder/invoice/outboundDetailsDialog.vue";
 
-  import { getWarehouseOutStock } from '@/api/bpm/components/saleManage/saleorder';
-  export default {
+export default {
     mixins: [dictMixins],
     props: {
       sendId: String,
+      pricingWay:  [Number, String],
+      entrustedCode:  [Number, String],
       type: {
         default: ''
       }
     },
     components: {
+      OutboundDetailsDialog, innertboundDetailsDialog,
       productList
     },
     data() {
@@ -141,6 +199,8 @@
         payAmount: '',
         discountTotalPrice: 0.0,
         allPrice: 0.0,
+        outboundDetailsDialogFlag: false,
+        innerboundDetailsDialogFlag: false,
         numberReg,
         defaultForm,
         form: {
@@ -192,6 +252,12 @@
             label: '规格',
             slot: 'specification'
           },
+          {
+            width: 200,
+            prop: 'customerMark',
+            label: '客户代号',
+            slot: 'customerMark'
+          },
           {
             width: 200,
             prop: 'warehouseName',
@@ -204,13 +270,6 @@
           //   label: '库存',
           //   slot: 'warehouseNum'
           // },
-          {
-            width: 120,
-            prop: 'sendTotalCount',
-            label: '发货数量',
-            slot: 'sendTotalCount'
-          },
-
           {
             width: 120,
             prop: 'totalCount',
@@ -218,12 +277,49 @@
             slot: 'totalCount',
             headerSlot: 'headerTotalCount'
           },
+          {
+            width: 120,
+            prop: 'sendTotalCount',
+            label: '发货数量',
+            slot: 'sendTotalCount'
+          },
+
+
           {
             width: 80,
             prop: 'measuringUnit',
             label: '计量单位',
             slot: 'measuringUnit'
           },
+          {
+            width: 120,
+            prop: 'singleWeight',
+            label: '单重',
+            slot: 'singleWeight',
+            align: "center"
+          },
+          {
+            width: 200,
+            prop: 'receiveTotalWeight',
+            label: '收货总重',
+            slot: 'receiveTotalWeight',
+            align: "center",
+            headerSlot: 'headerSendTotalWeight'
+          },
+          {
+            width: 200,
+            prop: 'sendTotalWeight',
+            label: '发货总重',
+            slot: 'sendTotalWeight',
+            align: "center"
+          },
+          {
+            width: 100,
+            prop: 'increaseTotalWeight',
+            label: '增重重量',
+            slot: 'increaseTotalWeight',
+            align: "center"
+          },
           {
             width: 160,
             prop: 'singlePrice',
@@ -306,40 +402,141 @@
             resizable: false,
             slot: 'action',
             fixed: 'right',
-            showOverflowTooltip: true
+            showOverflowTooltip: true,
+
           }
         ]
       };
     },
     computed: {
       totalAmount() {
-        let allcountAmount = this.$store.state.returnGoods.allcountAmount;
-        return allcountAmount;
+        return this.$store.state.returnGoods.allcountAmount;
       }
     },
     watch:{
       payAmount(n){
-        console.log('1111111111')
         this.$emit('payAmountChange',n)
       }
     },
     methods: {
-      //修改数量更新合计
+      //修改数量更新合计/总重
       changeNum(val, index) {
-        this.$set(
-          this.form.datasource[index],
-          'totalPrice',
-          (Number(this.form.datasource[index].singlePrice) * val).toFixed(2)
-        );
-        this.$set(
-          this.form.datasource[index],
-          'discountTotalPrice',
-          (Number(this.form.datasource[index].discountSinglePrice) * val).toFixed(2)
-        );
+        this.curIndex = index
+        if (this.pricingWay == 2) {
+          if (val != this.form.datasource[index].sendTotalCount) {
+            this.$set(this.form.datasource[index], 'receiveTotalWeight', '')
+            this.$set(this.form.datasource[index], 'sendTotalWeight', '')
+            this.$set(this.form.datasource[index], 'increaseTotalWeight', '')
+            this.getWeightPrice()
+          } else {
+            let find = this.oldSendTotalWeightList.find(key => key.productCode == this.form.datasource[index].productCode) || {}
+            this.$set(this.form.datasource[index], 'receiveTotalWeight', find.oldSendTotalWeight)
+            this.$set(this.form.datasource[index], 'sendTotalWeight', find.oldReceiveTotalWeight)
+            this.setIcreaseTotalWeight()
+          }
+        } else {
+          if (val != this.form.datasource[index].sendTotalCount) {
+            this.$set(this.form.datasource[index], 'receiveTotalWeight', '')
+            this.$set(this.form.datasource[index], 'sendTotalWeight', '')
+            this.$set(this.form.datasource[index], 'increaseTotalWeight', '')
+          } else {
+            let find = this.oldSendTotalWeightList.find(key => key.productCode == this.form.datasource[index].productCode) || {}
+            this.$set(this.form.datasource[index], 'receiveTotalWeight', find.oldSendTotalWeight)
+            this.$set(this.form.datasource[index], 'sendTotalWeight', find.oldReceiveTotalWeight)
+            this.setIcreaseTotalWeight()
+          }
 
-        this.$store.commit('returnGoods/setIsDefaultPayableAmount', false);
+          this.$set(this.form.datasource[index], 'totalPrice', (Number(this.form.datasource[index].singlePrice) * val).toFixed(2));
+          this.$set(this.form.datasource[index], 'discountTotalPrice', (Number(this.form.datasource[index].discountSinglePrice) * val).toFixed(2));
+
+          this.$store.commit('returnGoods/setIsDefaultPayableAmount', false);
+          this.gettotalAmount();
+        }
+      },
+      getWeightPrice() {
+        let increaseTotalWeight = this.form.datasource[this.curIndex].increaseTotalWeight
+        let singlePrice = this.form.datasource[this.curIndex].singlePrice
+        let discountSinglePrice = this.form.datasource[this.curIndex].discountSinglePrice
+        this.$set(this.form.datasource[this.curIndex], 'totalPrice', (Number(increaseTotalWeight) * Number(singlePrice)).toFixed(2));
+        this.$set(this.form.datasource[this.curIndex], 'discountTotalPrice', (Number(discountSinglePrice) * Number(increaseTotalWeight)).toFixed(2));
         this.gettotalAmount();
       },
+
+      //出库单详情
+      handleOutBound(e, rows, index) {
+        this.curIndex = index
+        this.outboundDetailsDialogFlag = true
+        this.$nextTick(() => {
+          let row = {
+            sendNo: this.entrustedCode,
+            productCode: rows.productCode
+          }
+          this.$refs.outboundDetailsDialogRef.init(row)
+        })
+      },
+      //选择退货信息回调
+      saveDate(data = []) {
+        let totalWeight = data.reduce((num, row) => {
+          num += Number(row.weight)
+          return num
+        }, 0)
+        this.$set(this.form.datasource[this.curIndex], 'receiveTotalWeight', totalWeight);
+        this.setIcreaseTotalWeight()
+      },
+
+      //入库单详情
+      handleInnerBound(e, rows, index) {
+        this.curIndex = index
+        this.innerboundDetailsDialogFlag = true
+        this.$nextTick(() => {
+          let row = {
+            sendNo: this.entrustedCode,
+            productCode: rows.productCode
+          }
+          this.$refs.innerboundDetailsDialogRef.init(row)
+        })
+      },
+      //选择入库单信息
+      saveInnerDate(data = []) {
+        let totalWeight = data.reduce((num, row) => {
+          num += Number(row.weight)
+          return num
+        }, 0)
+        this.$set(this.form.datasource[this.curIndex], 'sendTotalWeight', totalWeight);
+        this.setIcreaseTotalWeight()
+      },
+      //修改发货总重
+      changeSendTotalWeight(index) {
+        this.curIndex = index
+        this.setIcreaseTotalWeight()
+      },
+      //修改收货总重
+      changeReceiveTotalWeight(index) {
+        this.curIndex = index
+        this.setIcreaseTotalWeight()
+      },
+      //设置增重总重
+      setIcreaseTotalWeight() {
+        let sendTotalWeight = Number(this.form.datasource[this.curIndex].sendTotalWeight)
+        let receiveTotalWeight = Number(this.form.datasource[this.curIndex].receiveTotalWeight)
+        if (this.entrustedCode) {
+          if (this.pricingWay == 2) {
+            if (isNaN(receiveTotalWeight) || isNaN(sendTotalWeight)) {
+              return this.$set(this.form.datasource[this.curIndex], 'increaseTotalWeight', '');
+            } else {
+              this.$set(this.form.datasource[this.curIndex], 'increaseTotalWeight', (sendTotalWeight - receiveTotalWeight).toFixed(2));
+            }
+          } else {
+            this.$set(this.form.datasource[this.curIndex], 'increaseTotalWeight', (sendTotalWeight - receiveTotalWeight).toFixed(2));
+          }
+        } else {
+          this.$set(this.form.datasource[this.curIndex], 'increaseTotalWeight', sendTotalWeight);
+        }
+        if (this.pricingWay == 2) {
+          this.getWeightPrice()
+        }
+
+      },
       //获取订单总金额
       gettotalAmount() {
         let productData = this.form.datasource;
@@ -425,7 +622,13 @@
             v.sendTotalCount = v.sendTotalCount || v.totalCount;
             v.sendProductId = v.sendProductId || v.id;
           });
-
+          this.oldSendTotalWeightList = data.map(item => {
+            return {
+              productCode: item.productCode,
+              oldSendTotalWeight: item.sendTotalWeight,
+              oldReceiveTotalWeight: item.receiveTotalWeight
+            }
+          })
           this.form.datasource = data;
           // this.form.datasource.forEach(async (v, index) => {
           //   // if (v.warehouseId) {

+ 6 - 1
src/views/bpm/handleTask/components/saleOrder/returnGoods/sendListDialog.vue

@@ -137,12 +137,17 @@
         return getSendTableList({
           pageNum: page,
           size: limit,
-          ...where
+          ...where,
+          reviewStatus: 2
         });
       },
 
       /* 刷新表格 */
       reload(where) {
+        where = {
+          ...where,
+          reviewStatus: 2
+        }
         this.$refs.table.reload({ pageNum: 1, where: where });
       },