Browse Source

feat(销售订单): 添加来源是退货单关联功能

liujt 7 months ago
parent
commit
94dac372de
1 changed files with 138 additions and 1 deletions
  1. 138 1
      src/views/saleManage/saleOrder/components/addDialog.vue

+ 138 - 1
src/views/saleManage/saleOrder/components/addDialog.vue

@@ -129,6 +129,21 @@
               >选择
             </el-button>
           </el-form-item>
+          <el-form-item
+            label="退货单"
+            prop="relationCode"
+            v-if="form.relationType == 5"
+          >
+            <el-input
+              clearable
+              readonly
+              @clear="clearContrcat"
+              v-model="form.relationCode"
+              @click.native="handleReturnBtn"
+              placeholder="请输入"
+            />
+          </el-form-item>
+
           <el-form-item label="销售部门" prop="salesDeptId">
             <ele-tree-select
               clearable
@@ -174,7 +189,8 @@
               <el-option :value="1" label="商机"></el-option>
               <el-option :value="2" label="报价"></el-option>
               <el-option :value="3" label="销售合同"></el-option>
-              <el-option :value="4" label="项目"></el-option>
+              <el-option :value="4" label="项目"></el-option> 
+              <el-option v-if="form.saleType == 4 || form.saleType == 6" :value="5" label="退货单"></el-option> 
             </el-select>
           </el-form-item>
 
@@ -543,6 +559,15 @@
       :isMy="true"
       @changeParent="saleOrderListDialogChange"
     ></saleOrderListDialog>
+    <!-- <returnOrderDialog ref="returnListRef" @changeParent="changeReturn"></returnOrderDialog> -->
+    <!--  退货  -->
+    <return-order-dialog
+      :returnOrderDialogFlag.sync="returnOrderDialogFlag"
+      :contactData="contactData"
+      v-if="returnOrderDialogFlag"
+      @changeParent="changeReturn"
+    >
+    </return-order-dialog>
   </ele-modal>
 </template>
 
@@ -587,12 +612,15 @@
   import saleOrderListDialog from '@/views/saleManage/saleOrder/invoice/components/orderListDialog.vue';
   import { parameterGetByCode } from '@/api/main/index.js';
   import quotationList from '@/views/contractManage/contractBook/components/quotationList.vue';
+  import returnOrderDialog from '@/views/saleManage/saleOrder/customerReturnOrder/returnOrderDialog.vue';
   import opportunityDialog from '@/views/financialManage/components/opportunityDialog.vue';
   import { mapGetters } from 'vuex';
+import { resetPassword } from '@/api/system/user';
   export default {
     mixins: [dictMixins],
     components: {
       processSubmitDialog,
+      returnOrderDialog,
       // fileMain,
       fileUpload,
       headList,
@@ -671,6 +699,7 @@
       };
 
       return {
+        returnOrderDialogFlag: false,
         customerMark: '',
         opportunityDialogFlag: false,
         projectData: {}, //项目数据
@@ -945,6 +974,114 @@
         this.getDetailData('', data);
       },
 
+      //选择退货单
+      handleReturnBtn(e) {
+        // this.$refs.returnListRef.open();
+        if (e.target.nodeName == 'I') {
+          this.$set(this.form, 'relationCode', '');
+          this.$set(this.form, 'relationId', '');
+          return;
+        }
+        this.returnOrderDialogFlag = true;
+      },
+
+      //退货单
+      async changeReturn(row) {
+        console.log('data~~~', row);
+        this.form = Object.assign({}, this.form, {
+          relationCode: row.returnNo,
+          relationId: row.id
+        });
+        this.getReturnOrderDetail(row);
+
+      },
+
+      async getReturnOrderDetail(row) {
+        console.log('row', row.orderNo);
+        // let data = null;
+        // if (row) {
+        //   data = row;
+        // } else {
+        //   data = await getSaleOrderDetail(id);
+        // }
+        const id = row.orderIds.split(',')[0];
+        const res = await getSaleOrderDetail(id);
+        console.log('res~~~~', res);
+        // this.form = Object.assign({}, this.form, res);
+        if (row.partaId) {
+          await this.changeParent({ id: row.partaId }, true);
+        }
+        if (res) {
+          let {
+              partaAddress,
+              partaEmail,
+              partaFax,
+              partaId,
+              partaLinkId,
+              partaLinkName,
+              partaName,
+              partaTel,
+              partbAddress,
+              partbEmail,
+              partbFax,
+              partbId,
+              partbLinkId,
+              partbLinkName,
+              partbName,
+              partbTel,
+              totalPrice,
+              discountTotalPrice,
+              partaUnifiedSocialCreditCode,
+              partbUnifiedSocialCreditCode,
+              settlementMode,
+              settlementModeName,
+              pricingWay,
+              productList,
+              typedetailList,
+              totalAmount,
+              payAmount
+            } = res;
+          this.form = Object.assign({}, this.form, {
+            partaAddress,
+            partaEmail,
+            partaFax,
+            partaId,
+            partaLinkId,
+            partaLinkName,
+            partaName,
+            partaTel,
+            partbAddress,
+            partbEmail,
+            partbFax,
+            partbId,
+            partbLinkId,
+            partbLinkName,
+            partbName,
+            partbTel,
+            totalPrice,
+            discountTotalPrice,
+            partaUnifiedSocialCreditCode,
+            partbUnifiedSocialCreditCode,
+            settlementMode,
+            settlementModeName,
+            pricingWay,
+            productList,
+            typedetailList,
+            totalAmount,
+            payAmount
+          });
+          this.$nextTick(() => {
+            this.$refs.inventoryTable &&
+              this.$refs.inventoryTable.putTableValue(res);
+            this.$refs.typeListRef &&
+              this.$refs.typeListRef.putTableValue(res.typedetailList);
+
+            this.getLinkInfo(row.partaId);
+            // this.$store.commit('order/setContractId', row.partaId);
+          });
+        }
+      },
+
       //选择合同获取合同的详情
       async getDetailData(id, row) {
         this.loading = true;