From 3d04f62e6c9124e2d37b5d09191a02fc6390d16f Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期五, 13 十月 2023 17:07:10 +0800
Subject: [PATCH] bug修复

---
 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue |   38 +++++-
 src/views/sales/quotation/AddQuotationDialog.vue               |   18 +-
 src/views/sales/quotation/DetailQuotation.vue                  |   50 ++++----
 src/views/client/followupRecords/AddFollowupRecordsDialog.vue  |   95 ++++++++++-----
 src/views/sales/subOrder/AddSubOrderDialog.vue                 |   42 +++++-
 src/views/other/commonDialog/SelectCommonDialog.vue            |    4 
 src/views/sales/contractManage/AddContractManageDialog.vue     |   54 ++++++--
 src/views/sales/quotation/index.vue                            |    6 
 8 files changed, 211 insertions(+), 96 deletions(-)

diff --git a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
index 3ee7e0d..b0da187 100644
--- a/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
+++ b/src/views/client/followupRecords/AddFollowupRecordsDialog.vue
@@ -25,21 +25,17 @@
               <el-col :span="12" v-if="isUnflod">
                 <el-form-item label="璺熻繘璁板綍缂栧彿" prop="number">
                   <WordInput
-                    v-if="codenumer && (explain != '' || isIdDisabled)&&method == 0"
+                    v-if="codenumer && (explain != '' || isIdDisabled) && method == 0"
                     :codenumer="codenumer"
                     :sum="sum"
-                    :disabled="this.editConfig.title !== '鏂板缓'  || isIdDisabled"
+                    :disabled="this.editConfig.title !== '鏂板缓' || isIdDisabled"
                     :inputValue="inputValue"
                     @codeList="codeList"
                   />
                   <span v-else-if="method == 0" style="color: #f56c6c"
-                    >璇蜂紭鍏堥厤缃紪鐮佽鑼�
-                    <el-button type="text"  @click="numberClick">
-                        閰嶇疆瑙勮寖
-                      </el-button
-                    ></span
+                    >璇蜂紭鍏堥厤缃紪鐮佽鑼� <el-button type="text" @click="numberClick"> 閰嶇疆瑙勮寖 </el-button></span
                   >
-                  <span  v-else>鑷姩鐢熸垚</span>
+                  <span v-else>鑷姩鐢熸垚</span>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -163,12 +159,18 @@
                       value-key="name"
                       @select="handleSelectClient('chance', $event)"
                       style="width: 100%"
+                      placeholder="璇峰厛閫夋嫨瀹㈡埛鍚嶇О"
+                      :disabled="isChance"
                     ></el-autocomplete>
-                    <div class="common-select-btn" @click="selClientClick('chance')">
+                    <div v-if="!isChance" class="common-select-btn" @click="selClientClick('chance')">
                       <i class="el-icon-circle-plus-outline"></i>
                     </div>
                     <div
-                      v-if="editConfig.infomation.sale_chance_name && editConfig.infomation.sale_chance_name.length > 0"
+                      v-if="
+                        editConfig.infomation.sale_chance_name &&
+                        editConfig.infomation.sale_chance_name.length > 0 &&
+                        !isChance
+                      "
                       class="common-select-btn"
                       @click="clearupClient('chance')"
                     >
@@ -339,9 +341,10 @@
 import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
 import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
 import SelectLeadDialog from "@/views/other/commonDialog/SelectLeadDialog"
-import codeMixin from "./mixin/codeMixin";
+import codeMixin from "./mixin/codeMixin"
 import { getContactList } from "@/api/client/contacts"
-import { mapActions  } from 'vuex';
+import { mapActions } from "vuex"
+import { getSaleChanceList } from "@/api/sales/salesOpportunity"
 
 export default {
   name: "AddFollowupRecordsDialog",
@@ -369,9 +372,9 @@
     contactNamelist() {
       return this.$store.state.getClientName.contactNamelist
     },
-    saleChancelist() {
-      return this.$store.state.getClientName.saleChancelist
-    },
+    // saleChancelist() {
+    //   return this.$store.state.getClientName.saleChancelist
+    // },
     saleLeadlist() {
       return this.$store.state.getClientName.saleLeadlist
     }
@@ -384,8 +387,9 @@
         number: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰曠紪鍙�", trigger: "blur" }],
         member_id: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }],
         record: [{ required: true, message: "璇疯緭鍏ヨ窡杩涜褰�", trigger: "blur" }],
-        client_name:[{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }],
-        topic:[{ required: true, message: "璇疯緭鍏ヤ富棰�", trigger: "blur" }],
+        client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }],
+        contact_name: [{ required: true, message: "璇烽�夋嫨鑱旂郴浜哄鍚�", trigger: "change" }],
+        topic: [{ required: true, message: "璇疯緭鍏ヤ富棰�", trigger: "blur" }],
         // content: [{ required: true, message: "璇疯緭鍏ュ唴瀹�", trigger: "blur" }],
         phoneNumber: [
           { required: false, message: "", trigger: "blur" },
@@ -431,6 +435,8 @@
       contactId: this.editContactsConfig.infomation.contact_id,
       saleChanceId: this.editContactsConfig.infomation.sale_chance_id,
       saleLeadId: this.editContactsConfig.infomation.sales_leads_id,
+      saleChancelist: [],
+      isChance: true
     }
   },
   created() {
@@ -440,28 +446,28 @@
     this.$store.dispatch("geLead")
     this.getCommonData()
     this.getContactInfoList()
-    this.formInfo();
+    this.formInfo()
   },
-  watch:{
-    'editContactsConfig.visible'(val){
-      if(val){
+  watch: {
+    "editContactsConfig.visible"(val) {
+      if (val) {
         this.formInfo()
       }
     },
-    'editContactsConfig.infomation.codeStandID'(){
+    "editContactsConfig.infomation.codeStandID"() {
       this.formInfo()
     }
   },
   methods: {
-    ...mapActions (['getContactFilter']),
-    formInfo(){
-      this.objCode.type='璺熻繘璁板綍缂栫爜'
-      this.objCode.codeStandID = ''
-      if(this.editConfig.infomation.codeStandID){
-        this.objCode.codeStandID = this.editConfig.infomation.codeStandID;
+    ...mapActions(["getContactFilter"]),
+    formInfo() {
+      this.objCode.type = "璺熻繘璁板綍缂栫爜"
+      this.objCode.codeStandID = ""
+      if (this.editConfig.infomation.codeStandID) {
+        this.objCode.codeStandID = this.editConfig.infomation.codeStandID
       }
-      this.getRCodeStandardList();
-    }, 
+      this.getRCodeStandardList()
+    },
     getCommonData() {
       getAllData().then((res) => {
         console.log(res)
@@ -538,8 +544,8 @@
           sale_chance_id: this.saleChanceId || 0,
           sales_leads_id: this.saleLeadId || 0,
           topic: data.topic || "",
-          codeStandID:data.ID,
-          codeRule:this.codeRule,
+          codeStandID: data.ID,
+          codeRule: this.codeRule
         }
       }
       let params = {}
@@ -549,6 +555,20 @@
         params = { ...follow_record, id: data.id || 0 }
       }
       return params
+    },
+    // 鑾峰彇閿�鍞満浼�
+    getChanceList(id) {
+      getSaleChanceList({
+        page: 0,
+        pageSize: 0,
+        search_map: {
+          client_id: id
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.saleChancelist = res.data.list
+        }
+      })
     },
     // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
     querySearchAsync(queryString, cb, value) {
@@ -575,10 +595,12 @@
         this.clientId = item.id
         this.editConfig.infomation.client_name = item.name
         await getContactList({
-          clientId:this.clientId
-        }).then((res)=>{
+          clientId: this.clientId
+        }).then((res) => {
           this.getContactFilter(res.data.list)
         })
+        this.isChance = false
+        this.getChanceList(item.id)
         // console.log("clientId",this.clientId,this.editConfig.infomation.client_name)
       } else if (value === "contact") {
         this.contactId = item.id
@@ -609,6 +631,8 @@
       } else if (value === "client") {
         this.editConfig.infomation.client_name = row.name
         this.clientId = row.id
+        this.isChance = false
+        this.getChanceList(row.id)
       } else if (value === "chance") {
         this.editConfig.infomation.sale_chance_name = row.name
         this.saleChanceId = row.id
@@ -622,6 +646,9 @@
       if (value === "client") {
         this.editConfig.infomation.client_name = ""
         this.clientId = 0
+        this.isChance = true
+        this.editConfig.infomation.sale_chance_name = ""
+        this.saleChanceId = 0
       } else if (value === "contact") {
         this.editConfig.infomation.contact_name = ""
         this.contactId = 0
diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 0f44348..cb6563e 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -66,6 +66,7 @@
         return {
           editVisible: false,
           title: "",
+          clientId: 0,
           tableInfomation: []
         }
       }
@@ -93,6 +94,9 @@
     }
   },
   created() {
+    this.search_map = {
+      client_id: this.editConfig.clientId
+    }
     this.setTable()
     this.getData()
   },
diff --git a/src/views/sales/contractManage/AddContractManageDialog.vue b/src/views/sales/contractManage/AddContractManageDialog.vue
index 712268d..b3114e0 100644
--- a/src/views/sales/contractManage/AddContractManageDialog.vue
+++ b/src/views/sales/contractManage/AddContractManageDialog.vue
@@ -38,11 +38,9 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="鍚堝悓鍚嶇О" prop="name">
+                <el-form-item label="鍚堝悓鍚嶇О" prop="contractName">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.name"></el-input>
-                    <!-- <div class="common-select-btn"><i class="el-icon-circle-plus-outline" title="閫夋嫨"></i></div> -->
-                    <!-- <div class="common-select-btn"><i class="el-icon-edit" title="缂栬緫"></i></div> -->
+                    <el-input v-model="editConfig.infomation.contractName"></el-input>
                   </div>
                 </el-form-item>
               </el-col>
@@ -116,12 +114,18 @@
                       value-key="number"
                       @select="handleSelectClient('quotation', $event)"
                       style="width: 100%"
+                      placeholder="璇峰厛閫夋嫨瀹㈡埛鍚嶇О"
+                      :disabled="isAddQuatation"
                     ></el-autocomplete>
-                    <div class="common-select-btn" @click="selClientClick('quotation')">
+                    <div v-if="!isAddQuatation" class="common-select-btn" @click="selClientClick('quotation')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
                     <div
-                      v-if="editConfig.infomation.quotation_number && editConfig.infomation.quotation_number.length > 0"
+                      v-if="
+                        editConfig.infomation.quotation_number &&
+                        editConfig.infomation.quotation_number.length > 0 &&
+                        !isAddQuatation
+                      "
                       class="common-select-btn"
                       @click="clearupClient('quotation')"
                     >
@@ -233,6 +237,7 @@
 import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
 import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
 import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
+import { getQuotationList } from "@/api/sales/quotation"
 export default {
   name: "AddContractManageDialog",
   mixins: [codeMixin],
@@ -252,10 +257,10 @@
   computed: {
     clientList() {
       return this.$store.state.getClientName.clientList
-    },
-    quotationList() {
-      return this.$store.state.getClientName.quotationList
     }
+    // quotationList() {
+    //   return this.$store.state.getClientName.quotationList
+    // }
   },
   data() {
     return {
@@ -282,12 +287,14 @@
         infomation: {}
       },
       clientId: this.editCommonConfig.infomation.clientId,
-      quotationId: this.editCommonConfig.infomation.quotationId
+      quotationId: this.editCommonConfig.infomation.quotationId,
+      isAddQuatation: true,
+      quotationList: []
     }
   },
   created() {
     this.$store.dispatch("geClient")
-    this.$store.dispatch("geQuotation")
+    // this.$store.dispatch("geQuotation")
     this.getCommonData()
     this.formInfo()
   },
@@ -357,7 +364,7 @@
       console.log(data)
       let params = {
         id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
-        name: data.name || "",
+        contractName: data.contractName || "",
         client_id: this.clientId || 0,
         file: "",
         member_id: data.memberId || 0,
@@ -371,6 +378,21 @@
     },
     handleClose() {
       this.editConfig.visible = false
+    },
+    // 鑾峰彇鎶ヤ环鍗�
+    getQuotation(id) {
+      getQuotationList({
+        page: 0,
+        pageSize: 0,
+        search_map: {
+          client_id: id
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          console.log(res)
+          this.quotationList = res.data.list
+        }
+      })
     },
     // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
     querySearchAsync(queryString, cb, value) {
@@ -397,6 +419,8 @@
       if (value === "client") {
         this.editConfig.infomation.client_name = item.name
         this.clientId = item.id
+        this.isAddQuatation = false
+        this.getQuotation(item.id)
       } else if (value === "quotation") {
         this.editConfig.infomation.quotation_number = item.number
         this.quotationId = item.id
@@ -418,6 +442,8 @@
       if (value === "client") {
         this.editConfig.infomation.client_name = row.name
         this.clientId = row.id
+        this.isAddQuatation = false
+        this.getQuotation(row.id)
       } else if (value === "quotation") {
         this.editConfig.infomation.quotation_number = row.number
         this.quotationId = row.id
@@ -427,9 +453,11 @@
     clearupClient(value) {
       console.log(value)
       if (value === "client") {
-        console.log("ss88888")
         this.editConfig.infomation.client_name = ""
         this.clientId = 0
+        this.isAddQuatation = true
+        this.editConfig.infomation.quotation_number = ""
+        this.quotationId = 0
       } else if (value === "quotation") {
         this.editConfig.infomation.quotation_number = ""
         this.quotationId = 0
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index d186f73..428fa9b 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -40,8 +40,14 @@
                   <span v-else>{{ editConfig.title === "鏂板缓" ? "鑷姩鐢熸垚" : editConfig.infomation.number }}</span>
                 </el-form-item>
               </el-col>
-
               <el-col :span="12">
+                <el-form-item label="鎶ヤ环鍚嶇О" prop="quotationName">
+                  <div class="custom-name">
+                    <el-input v-model="editConfig.infomation.quotationName"></el-input>
+                  </div>
+                </el-form-item>
+              </el-col>
+              <!-- <el-col :span="12">
                 <el-form-item label="瀹㈡埛鍚嶇О" prop="client_name">
                   <div class="custom-name">
                     <el-autocomplete
@@ -66,7 +72,7 @@
                     </div>
                   </div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <!--              <el-col :span="12">-->
               <!--                <el-form-item label="鎶ヤ环缂栧彿" prop="number">-->
               <!--                  <el-input v-model="editConfig.infomation.number"></el-input>-->
@@ -106,7 +112,7 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+              <!-- <el-col :span="12">
                 <el-form-item label="鑱旂郴浜哄鍚�" prop="contact_id">
                   <div class="custom-name">
                     <el-autocomplete
@@ -131,7 +137,7 @@
                     </div>
                   </div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <el-col :span="12">
                 <el-form-item label="閿�鍞礋璐d汉" prop="member_id">
                   <el-select
@@ -349,7 +355,6 @@
       dialogWidth: "50%",
       editConfig: this.editCommonConfig,
       rules: {
-        client_id: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
         number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
         quotation_status_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
         sale_chance_name: [{ required: true, message: "璇烽�夋嫨閿�鍞満浼�", trigger: "blur" }],
@@ -490,9 +495,8 @@
       let data = this.editConfig.infomation
       let params = {
         id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
-        client_id: this.clientId || 0,
+        quotationName: this.quotationName || "",
         conditions: data.conditions || "",
-        contact_id: this.contactId || 0,
         file: data.file || "",
         member_id: data.member_id || 0,
         number: data.number || "",
diff --git a/src/views/sales/quotation/DetailQuotation.vue b/src/views/sales/quotation/DetailQuotation.vue
index 5e294ec..4fb9144 100644
--- a/src/views/sales/quotation/DetailQuotation.vue
+++ b/src/views/sales/quotation/DetailQuotation.vue
@@ -51,31 +51,12 @@
                     <div class="content-title">{{ item.leftStr + "锛�" }}</div>
                     <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                   </div>
-                  <div class="right">
+                  <div v-if="item.rightStr.length > 0" class="right">
                     <div class="content-title">{{ item.rightStr + "锛�" }}</div>
                     <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                   </div>
                 </li>
               </ul>
-            </div>
-          </div>
-          <!-- 鏉′欢涓庢潯娆� -->
-          <div class="basic-info">
-            <div class="basic-info-label" @click="expandClick('termsConditions')">
-              <i v-if="isTermsConditionsExpand" class="el-icon-arrow-down"></i>
-              <i v-else class="el-icon-arrow-up"></i>
-              <span style="margin-left: 10px">鏉′欢涓庢潯娆�</span>
-            </div>
-            <div v-show="isTermsConditionsExpand" class="basic-info-content">
-              <div class="termsConditions">
-                <div class="content-title">{{ "鏉′欢涓庢潯娆�" + "锛�" }}</div>
-                <div class="content-termsConditions">
-                  {{ "\n" + detailConfig.infomation.conditions }}
-                  <!-- <ul>
-                    <li v-for="(item, index) in Status.termsConditions" :key="index">{{ item }}</li>
-                  </ul> -->
-                </div>
-              </div>
             </div>
           </div>
           <!-- 闄勪欢淇℃伅 -->
@@ -110,6 +91,25 @@
                 :show-summary="showSummary"
                 :product-table-list="productTableList"
               />
+            </div>
+          </div>
+          <!-- 鏉′欢涓庢潯娆� -->
+          <div class="basic-info">
+            <div class="basic-info-label" @click="expandClick('termsConditions')">
+              <i v-if="isTermsConditionsExpand" class="el-icon-arrow-down"></i>
+              <i v-else class="el-icon-arrow-up"></i>
+              <span style="margin-left: 10px">鏉′欢涓庢潯娆�</span>
+            </div>
+            <div v-show="isTermsConditionsExpand" class="basic-info-content">
+              <div class="termsConditions">
+                <div class="content-title">{{ "鏉′欢涓庢潯娆�" + "锛�" }}</div>
+                <div class="content-termsConditions">
+                  {{ "\n" + detailConfig.infomation.conditions }}
+                  <!-- <ul>
+                    <li v-for="(item, index) in Status.termsConditions" :key="index">{{ item }}</li>
+                  </ul> -->
+                </div>
+              </div>
             </div>
           </div>
           <!-- 瀹℃壒鏃ュ織 -->
@@ -206,8 +206,8 @@
         {
           leftStr: "鎶ヤ环鍗曠姸鎬�",
           leftValue: item.quotation_status.name,
-          rightStr: "鑱旂郴浜哄鍚�",
-          rightValue: item.contact_name
+          rightStr: "閿�鍞満浼�",
+          rightValue: item.sale_chance.name
         },
         {
           leftStr: "鏈夋晥鏈熻嚦",
@@ -216,9 +216,9 @@
           rightValue: item.member.username
         },
         {
-          leftStr: "閿�鍞満浼�",
-          leftValue: item.sale_chance.name,
-          rightStr: "鍒涘缓鏃堕棿",
+          leftStr: "鍒涘缓鏃堕棿",
+          leftValue: "",
+          rightStr: "",
           rightValue: ""
         }
       ]
diff --git a/src/views/sales/quotation/index.vue b/src/views/sales/quotation/index.vue
index 508e0c1..2d78b7a 100644
--- a/src/views/sales/quotation/index.vue
+++ b/src/views/sales/quotation/index.vue
@@ -127,8 +127,8 @@
       },
       tableColumn: [
         { label: "鎶ヤ环鍗曞彿", prop: "number", min: 90, isCommonClick: true, default: true }, // 鎶ヤ环鍗曞彿
-        { label: "瀹㈡埛鍚嶇О", prop: "client_name", min: 120, isClientClick: true }, // 瀹㈡埛鍚嶇О
-        { label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 90, isContactClick: true }, // 鑱旂郴浜哄鍚�
+        { label: "鎶ヤ环鍗曞悕绉�", prop: "quotationName", min: 120, isClientClick: true }, // 鎶ヤ环鍗曞悕绉�
+        // { label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 90, isContactClick: true }, // 鑱旂郴浜哄鍚�
         { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
         { label: "鏈夋晥鏈�", prop: "validity_date", min: 100 }, // 淇敼鏃堕棿
         // { label: "灏忚", prop: "subTotal" }, // 灏忚
@@ -137,7 +137,7 @@
         { label: "鏁伴噺", prop: "productNumber", isProductAmount: true },
         { label: "浠风◣鍚堣", prop: "priceTax", isProductTotal: true }
       ],
-      showCol: ["鎶ヤ环鍗曞彿", "瀹㈡埛鍚嶇О", "鑱旂郴浜哄鍚�", "閿�鍞礋璐d汉", "鏈夋晥鏈�", "浜у搧鍚嶇О", "鏁伴噺", "浠风◣鍚堣"]
+      showCol: ["鎶ヤ环鍗曞彿", "鎶ヤ环鍗曞悕绉�", "鑱旂郴浜哄鍚�", "閿�鍞礋璐d汉", "鏈夋晥鏈�", "浜у搧鍚嶇О", "鏁伴噺", "浠风◣鍚堣"]
     }
   },
   created() {
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
index 5e5f9aa..fa9e011 100644
--- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -93,12 +93,17 @@
                       "
                       value-key="name"
                       @select="handleSelectClient('contact', $event)"
+                      :disabled="isContact"
                     ></el-autocomplete>
-                    <div class="common-select-btn" @click="selClientClick('contact')">
+                    <div v-if="!isContact" class="common-select-btn" @click="selClientClick('contact')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
                     <div
-                      v-if="editConfig.infomation.contact_name && editConfig.infomation.contact_name.length > 0"
+                      v-if="
+                        editConfig.infomation.contact_name &&
+                        editConfig.infomation.contact_name.length > 0 &&
+                        !isContact
+                      "
                       class="common-select-btn"
                       @click="clearupClient('contact')"
                     >
@@ -572,6 +577,7 @@
 import { getCityList } from "@/api/common/address"
 import WordInput from "@/components/wordInput.vue"
 import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
+import { getContactList } from "@/api/client/contacts"
 export default {
   name: "AddSalesOpportunityDialog",
   mixins: [codeMixin],
@@ -594,9 +600,6 @@
     },
     clientList() {
       return this.$store.state.getClientName.clientList
-    },
-    contactNamelist() {
-      return this.$store.state.getClientName.contactNamelist
     }
   },
   data() {
@@ -640,12 +643,13 @@
       restaurants: [],
       clientId: this.editCommonConfig.infomation.client_id,
       contactId: this.editCommonConfig.infomation.contact_id,
-      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞満浼氱紪鐮�", codeStandID: "" }
+      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞満浼氱紪鐮�", codeStandID: "" },
+      isContact: true,
+      contactNamelist: []
     }
   },
   created() {
     this.$store.dispatch("geClient")
-    this.$store.dispatch("geContact")
     if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
       this.getCityList(this.editConfig.infomation.province_id, "edit")
     }
@@ -777,6 +781,19 @@
       }
       return params
     },
+    // 鑾峰彇鑱旂郴浜哄垪琛�
+    getContactList(id) {
+      getContactList({
+        clientId: id,
+        page: 0,
+        pageSize: 0,
+        search_map: {}
+      }).then((res) => {
+        if (res.code == 200) {
+          this.contactNamelist = res.data.list
+        }
+      })
+    },
     // 閫夋嫨鐢ㄦ埛鐩稿叧鏂规硶
     querySearchAsync(queryString, cb, value) {
       var restaurants = []
@@ -796,6 +813,8 @@
     handleSelectClient(value, item) {
       if (value === "client") {
         this.clientId = item.id
+        this.isContact = false
+        this.getContactList(item.id)
       } else if (value === "contact") {
         this.contactId = item.id
       }
@@ -811,6 +830,8 @@
       if (value === "contact") {
         this.editConfig.infomation.contact_name = row.name
         this.contactId = row.id
+        this.isContact = false
+        this.getContactList(row.id)
       } else if (value === "client") {
         this.editConfig.infomation.client_name = row.name
         this.clientId = row.id
@@ -832,6 +853,9 @@
       if (value === "client") {
         this.editConfig.infomation.client_name = ""
         this.clientId = 0
+        this.isContact = true
+        this.editConfig.infomation.contact_name = ""
+        this.contactId = 0
       } else if (value === "contact") {
         this.editConfig.infomation.contact_name = ""
         this.contactId = 0
diff --git a/src/views/sales/subOrder/AddSubOrderDialog.vue b/src/views/sales/subOrder/AddSubOrderDialog.vue
index 3acc1ed..d224472 100644
--- a/src/views/sales/subOrder/AddSubOrderDialog.vue
+++ b/src/views/sales/subOrder/AddSubOrderDialog.vue
@@ -78,14 +78,17 @@
                       "
                       value-key="number"
                       @select="handleSelectClient('master', $event)"
+                      placeholder="璇峰厛閫夋嫨瀹㈡埛鍚嶇О"
+                      :disabled="isAddMaster"
                     ></el-autocomplete>
-                    <div class="common-select-btn" @click="selClientClick('master')">
+                    <div v-if="!isAddMaster" class="common-select-btn" @click="selClientClick('master')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
                     <div
                       v-if="
                         editConfig.infomation.master_order_number &&
-                        editConfig.infomation.master_order_number.length > 0
+                        editConfig.infomation.master_order_number.length > 0 &&
+                        !isAddMaster
                       "
                       class="common-select-btn"
                       @click="clearupClient('master')"
@@ -189,6 +192,7 @@
 import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog"
 import WordInput from "@/components/wordInput.vue"
 import codeMixin from "@/views/client/followupRecords/mixin/codeMixin"
+import { getMasterOrderList } from "@/api/sales/masterOrder"
 
 export default {
   name: "SubOrderDialog",
@@ -209,10 +213,10 @@
   computed: {
     clientList() {
       return this.$store.state.getClientName.clientList
-    },
-    masterOrderList() {
-      return this.$store.state.getClientName.masterOrderList
     }
+    // masterOrderList() {
+    //   return this.$store.state.getClientName.masterOrderList
+    // }
   },
   data() {
     return {
@@ -258,12 +262,14 @@
       tableData: [],
       productId: 1,
       addProductArr: [],
-      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞瓙鍗曠紪鐮�", codeStandID: "" }
+      objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞瓙鍗曠紪鐮�", codeStandID: "" },
+      isAddMaster: true,
+      masterOrderList: []
     }
   },
   created() {
     this.$store.dispatch("geClient")
-    this.$store.dispatch("geMaster")
+    // this.$store.dispatch("geMaster")
     this.setTableForm()
     this.getCommonData()
     this.formInfo()
@@ -377,6 +383,20 @@
     handleClose() {
       this.editConfig.visible = false
     },
+    // 鑾峰彇閿�鍞�诲崟
+    getMasterList(id) {
+      getMasterOrderList({
+        page: 0,
+        pageSize: 0,
+        search_map: {
+          client_id: id
+        }
+      }).then((res) => {
+        if (res.code == 200) {
+          this.masterOrderList = res.data.list
+        }
+      })
+    },
     // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
     querySearchAsync(queryString, cb, value) {
       var restaurants = []
@@ -401,6 +421,8 @@
     handleSelectClient(value, item) {
       if (value === "client") {
         this.clientId = item.id
+        this.isAddMaster = false
+        this.getMasterList(item.id)
       } else if (value === "master") {
         this.masterId = item.id
       }
@@ -411,6 +433,7 @@
       } else if (value == "master") {
         this.editSelectMasterConfig.title = "閿�鍞�诲崟"
         this.editSelectMasterConfig.editVisible = true
+        this.editSelectMasterConfig.clientId = this.clientId
         this.editSelectMasterConfig.tableInfomation = [...this.masterOrderList]
       }
     },
@@ -420,6 +443,8 @@
         this.editConfig.infomation.client_name = row.name
         this.editConfig.infomation.client_id = row.id
         this.clientId = row.id
+        this.isAddMaster = false
+        this.getMasterList(row.id)
       } else if (value == "master") {
         this.editConfig.infomation.master_order_number = row.number
         this.masterId = row.id
@@ -432,6 +457,9 @@
         this.editConfig.infomation.client_name = ""
         this.editConfig.infomation.client_id = 0
         this.clientId = 0
+        this.isAddMaster = true
+        this.editConfig.infomation.master_order_number = ""
+        this.masterId = 0
       } else if (value == "master") {
         this.editConfig.infomation.master_order_number = ""
         this.masterId = 0

--
Gitblit v1.8.0