From 28e0aa1d40bff8985ac3e662d3a7726594d919c3 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期一, 14 八月 2023 19:45:26 +0800
Subject: [PATCH] 销售机会联调及bug修复

---
 src/components/layout/components/appsidebar/index.scss              |    2 
 src/views/service/serviceContract/AddServiceContractDialog.vue      |    8 
 src/views/client/client/index.vue                                   |    9 
 src/views/service/serviceFollowup/AddServiceFollowupDialog.vue      |   12 
 src/views/service/clientServiceOrder/DetailClientServiceOrder.vue   |    4 
 src/views/client/salesLead/AddSalesLeadDialog.vue                   |   46 +++
 src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue |   28 +
 src/api/common/address.js                                           |   84 ------
 src/views/client/client/AddClientManageDialog.vue                   |   69 ++++-
 src/views/client/salesLead/DetailSalesLead.vue                      |   14 
 src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue      |  156 +++++++-----
 src/views/sales/salesOpportunity/DetailAdvanceDialog.vue            |   55 +++-
 src/views/sales/salesOpportunity/DetailOpportunity.vue              |  129 ++++++----
 src/views/client/salesLead/index.vue                                |    2 
 src/views/sales/salesOpportunity/index.vue                          |   25 -
 src/api/sales/salesOpportunity.js                                   |   17 +
 src/views/service/clientServiceOrder/index.vue                      |    7 
 src/components/layout/components/AppMain.vue                        |    8 
 18 files changed, 377 insertions(+), 298 deletions(-)

diff --git a/src/api/common/address.js b/src/api/common/address.js
index 12ecb36..1a22d46 100644
--- a/src/api/common/address.js
+++ b/src/api/common/address.js
@@ -1,81 +1,9 @@
-import request from "@/common/untils/request.js"
+// import request from "@/common/untils/request.js"
+import axios from "axios"
 
-// 鑾峰彇鍥藉鍒楄〃
-export function getCountryList() {
-  return request({
-    url: "/api/country/list",
-    method: "get"
-  })
-}
-// 娣诲姞鍥藉
-export function getAddCountry(data) {
-  return request({
-    url: "/api/country/add",
-    method: "post",
-    data
-  })
-}
-// 鍒犻櫎鍥藉
-export function getDeleteCountry(data) {
-  return request({
-    url: "/api/country/delete",
-    method: "delete",
-    data
-  })
-}
-// 璁剧疆鍥藉
-export function getSetCountry(data) {
-  return request({
-    url: "/api/country/set",
-    method: "put",
-    data
-  })
-}
-// 鏇存柊鍥藉
-export function getUpdateCountry(data) {
-  return request({
-    url: "/api/country/update",
-    method: "put",
-    data
-  })
-}
-
-// 鑾峰彇鐪佷唤鍒楄〃
-export function getProvinceList() {
-  return request({
-    url: "/api/province/list",
-    method: "get"
-  })
-}
-// 娣诲姞鐪佷唤
-export function getAddProvince(data) {
-  return request({
-    url: "/api/province/add",
-    method: "post",
-    data
-  })
-}
-// 鍒犻櫎鐪佷唤
-export function getDeleteProvince(data) {
-  return request({
-    url: "/api/province/delete",
-    method: "delete",
-    data
-  })
-}
-// 璁剧疆鐪佷唤
-export function getSetProvince(data) {
-  return request({
-    url: "/api/province/set",
-    method: "put",
-    data
-  })
-}
-// 鏇存柊鐪佷唤
-export function getUpdateProvince(data) {
-  return request({
-    url: "/api/province/update",
-    method: "put",
-    data
+// 鑾峰彇鍩庡競鍒楄〃
+export const getCityList = async (data) => {
+  return await axios.get(`/api/city/list`, {
+    params: data
   })
 }
diff --git a/src/api/sales/salesOpportunity.js b/src/api/sales/salesOpportunity.js
index eb5d7a5..9fd8d0a 100644
--- a/src/api/sales/salesOpportunity.js
+++ b/src/api/sales/salesOpportunity.js
@@ -32,3 +32,20 @@
     data
   })
 }
+
+// 鑾峰彇閿�鍞樁娈�
+export function getSaleStageList() {
+  return request({
+    url: "/api/saleStage/list",
+    method: "get"
+  })
+}
+
+// 鎺ㄨ繘閿�鍞満浼�
+export function pushSaleChance(data) {
+  return request({
+    url: "/api/saleChance/push",
+    method: "put",
+    data
+  })
+}
diff --git a/src/components/layout/components/AppMain.vue b/src/components/layout/components/AppMain.vue
index 7223e79..7cdbb3d 100644
--- a/src/components/layout/components/AppMain.vue
+++ b/src/components/layout/components/AppMain.vue
@@ -1,7 +1,9 @@
 <template>
   <div class="app-main">
     <AppHeader :headerTitle="$route.meta.title" />
-    <router-view :key="key" />
+    <div class="app-main-content">
+      <router-view :key="key" />
+    </div>
   </div>
 </template>
 
@@ -29,5 +31,9 @@
   flex-direction: column;
   // height: 100%;
   width: 100%;
+  .app-main-content {
+    width: 100%;
+    overflow-y: auto;
+  }
 }
 </style>
diff --git a/src/components/layout/components/appsidebar/index.scss b/src/components/layout/components/appsidebar/index.scss
index dfd1db6..a5d60a4 100644
--- a/src/components/layout/components/appsidebar/index.scss
+++ b/src/components/layout/components/appsidebar/index.scss
@@ -1,6 +1,6 @@
 .app-sidebar {
   position: relative;
-  height: 100%;
+  // height: 100%;
   background-color: #314255;
   .box {
     width: 200px;
diff --git a/src/views/client/client/AddClientManageDialog.vue b/src/views/client/client/AddClientManageDialog.vue
index 7200b7d..25552c5 100644
--- a/src/views/client/client/AddClientManageDialog.vue
+++ b/src/views/client/client/AddClientManageDialog.vue
@@ -49,7 +49,7 @@
                       <el-option v-for="item in clientStatusOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -78,7 +78,7 @@
                       <el-option v-for="item in clientTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -94,9 +94,9 @@
                       <el-option v-for="item in clientSourceOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn" @click="editDropdownBox">
+                    <!-- <div class="common-select-btn" @click="editDropdownBox">
                       <i class="el-icon-setting"></i>
-                    </div>
+                    </div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -130,7 +130,8 @@
                 <el-form-item label="涓嬫鍥炶鏃ユ湡" prop="next_visit_time">
                   <el-date-picker
                     v-model="editConfig.infomation.next_visit_time"
-                    type="datetime"
+                    value-format="yyyy-MM-dd"
+                    type="date"
                     placeholder="閫夋嫨鏃ユ湡"
                   >
                   </el-date-picker>
@@ -140,7 +141,8 @@
                 <el-form-item label="鏈�鏅氭湇鍔″埌鏈熸棩" prop="latest_service_time">
                   <el-date-picker
                     v-model="editConfig.infomation.latest_service_time"
-                    type="datetime"
+                    value-format="yyyy-MM-dd"
+                    type="date"
                     placeholder="閫夋嫨鏃ユ湡"
                   >
                   </el-date-picker>
@@ -200,7 +202,7 @@
                       <el-option v-for="item in industryOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -213,6 +215,7 @@
                 <el-form-item label="娉ㄥ唽鏃堕棿" prop="registration_time">
                   <el-date-picker
                     v-model="editConfig.infomation.registration_time"
+                    value-format="yyyy-MM-dd HH:mm:ss"
                     type="datetime"
                     placeholder="閫夋嫨鏃ユ湡鏃堕棿"
                   >
@@ -236,7 +239,7 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -257,7 +260,7 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -278,7 +281,7 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -316,11 +319,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      disabled
                     >
                       <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -332,11 +336,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      @change="selProvinceChange"
                     >
                       <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -348,15 +353,16 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      :disabled="cityOptions.length <= 0 ? true : false"
                     >
                       <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+              <!-- <el-col :span="12">
                 <el-form-item label="鍖哄煙" prop="region_id">
                   <div class="common-select">
                     <el-select
@@ -371,7 +377,7 @@
                     <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                   </div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <el-col :span="24">
                 <el-form-item label="璇︾粏鍦板潃" prop="detail_address">
                   <el-input
@@ -485,6 +491,7 @@
 
 <script>
 import { getAllData, getAddClient, getUpdateClient } from "@/api/client/client"
+import { getCityList } from "@/api/common/address"
 export default {
   name: "AddClientManageDialog",
   props: {
@@ -535,7 +542,7 @@
       registerCapitalOptions: [], // 娉ㄥ唽璧勯噾
       enterpriseNatureOptions: [], // 鍏徃鎬ц川
       enterpriseScaleOptions: [], // 瀹㈡埛瑙勬ā
-      countryOptions: [], // 鍥藉
+      countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
       provinceOptions: [], // 鐪佷唤
       cityOptions: [], // 鍩庡競
       regionOptions: [], // 鍖哄煙
@@ -543,10 +550,18 @@
     }
   },
   created() {
+    if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
+      this.getCityList(this.editConfig.infomation.province_id, "edit")
+    }
     this.getCommonData()
   },
   methods: {
     getCommonData() {
+      this.editConfig.infomation.country_id = 1
+      this.editConfig.infomation.province_id =
+        this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+      this.editConfig.infomation.city_id =
+        this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
       getAllData()
         .then((res) => {
           this.memberOptions = res.data.member
@@ -558,9 +573,8 @@
           this.registerCapitalOptions = res.data.registered_capital
           this.enterpriseNatureOptions = res.data.enterprise_nature
           this.enterpriseScaleOptions = res.data.enterprise_scale
-          this.countryOptions = res.data.country
+          // this.countryOptions = res.data.country
           this.provinceOptions = res.data.province
-          this.cityOptions = res.data.city
           this.regionOptions = res.data.region
         })
         .catch((err) => {
@@ -630,7 +644,7 @@
       let params = {
         id: this.editConfig.title === "鏂板缓" ? 0 : data.id,
         business_scope: data.business_scope,
-        city_id: 0,
+        city_id: data.city_id || 0,
         client_level_id: data.client_level_id || 0,
         client_origin_id: data.client_origin_id || 0,
         client_status_id: data.client_status_id || 0,
@@ -662,7 +676,7 @@
         name: data.name || "",
         next_visit_time: data.next_visit_time || "",
         number: data.number || "",
-        province_id: 0,
+        province_id: data.province_id || 0,
         region_id: 0,
         registered_capital_id: data.registered_capital_id || 0,
         registration_time: data.registration_time || "",
@@ -682,6 +696,21 @@
       console.log("aaa")
       this.editDropdownConfig.editVisible = true
       this.editDropdownConfig.title = "瀹㈡埛鏉ユ簮"
+    },
+    // 閫夋嫨鐪佷唤
+    selProvinceChange(val) {
+      this.getCityList(val, "sel")
+    },
+    async getCityList(val, value) {
+      await getCityList({ province_id: val }).then((res) => {
+        console.log(res)
+        if (res.data.code === 200) {
+          this.cityOptions = res.data.data.list
+          if (value === "sel") {
+            this.editConfig.infomation.city_id = ""
+          }
+        }
+      })
     }
   }
 }
diff --git a/src/views/client/client/index.vue b/src/views/client/client/index.vue
index cdadd62..dfc5187 100644
--- a/src/views/client/client/index.vue
+++ b/src/views/client/client/index.vue
@@ -145,11 +145,11 @@
           { label: "瀹㈡埛鍚嶇О", prop: "name", min: 100, isClientClick: true }, // 瀹㈡埛鍚嶇О
           { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
           { label: "閲嶈绾у埆", prop: "client_level" }, // 閲嶈绾у埆
-          { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", isTime: true, min: 90 }, // 涓嬫鍥炶鏃ユ湡
+          { label: "涓嬫鍥炶鏃ユ湡", prop: "next_visit_time", min: 90 }, // 涓嬫鍥炶鏃ユ湡
           { label: "璇︾粏鍦板潃", prop: "detail_address", min: 200 }, // 璇︾粏鍦板潃
           { label: "瀹㈡埛鐘舵��", prop: "client_status" }, // 瀹㈡埛鐘舵��
           { label: "鑱旂郴浜哄鍚�", prop: "contact_name", isContactClick: true }, // 鑱旂郴浜哄鍚�
-          { label: "鎵嬫満鍙风爜", prop: "contact_phone" } // 鎵嬫満鍙风爜
+          { label: "鑱旂郴浜烘墜鏈哄彿鐮�", prop: "contact_phone" } // 鎵嬫満鍙风爜
         ]
       }
       this.searchOptions = []
@@ -190,7 +190,8 @@
                   contact_phone: contact_phone,
                   client_level: item.client_level.name,
                   client_status: item.client_status.name,
-                  contact_id: contact_id
+                  contact_id: contact_id,
+                  member_name: item.member.username
                 }
               })
               this.tableList.tableInfomation = list || []
@@ -228,7 +229,7 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {}
+      this.editConfig.infomation = { city_id: 0 }
     },
     // 缂栬緫
     handleClick(row) {
diff --git a/src/views/client/salesLead/AddSalesLeadDialog.vue b/src/views/client/salesLead/AddSalesLeadDialog.vue
index 4c9ec58..83da223 100644
--- a/src/views/client/salesLead/AddSalesLeadDialog.vue
+++ b/src/views/client/salesLead/AddSalesLeadDialog.vue
@@ -78,9 +78,9 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn" @click="editDropdownBox">
+                    <!-- <div class="common-select-btn" @click="editDropdownBox">
                       <i class="el-icon-setting"></i>
-                    </div>
+                    </div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -120,11 +120,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      disabled
                     >
                       <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -136,11 +137,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      @change="selProvinceChange"
                     >
                       <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -152,15 +154,16 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      :disabled="cityOptions.length <= 0 ? true : false"
                     >
                       <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+              <!-- <el-col :span="12">
                 <el-form-item label="鍖哄煙" prop="region_id">
                   <div class="common-select">
                     <el-select
@@ -175,7 +178,7 @@
                     <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                   </div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
             </el-row>
             <!-- <el-row>
               <el-col :span="24">
@@ -228,6 +231,7 @@
 import EditDropdownDialog from "@/views/other/commonDialog/EditDropdownDialog"
 import { getAddSalesLeads, getUpdateSalesLeads } from "@/api/client/salesLead"
 import { getAllData } from "@/api/client/client"
+import { getCityList } from "@/api/common/address"
 
 export default {
   name: "AddSalesLeadDialog",
@@ -266,7 +270,7 @@
       },
       businessSourceOptions: [],
       memberOptions: [],
-      countryOptions: [], // 鍥藉
+      countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
       provinceOptions: [], // 鐪佷唤
       cityOptions: [], // 鍩庡競
       regionOptions: [], // 鍖哄煙
@@ -280,18 +284,25 @@
     }
   },
   created() {
+    if (this.editConfig.title !== "鏂板缓" && this.editConfig.infomation.province_id !== 0) {
+      this.getCityList(this.editConfig.infomation.province_id, "edit")
+    }
     this.getCommonData()
   },
   mounted() {},
   methods: {
     getCommonData() {
+      this.editConfig.infomation.country_id = 1
+      this.editConfig.infomation.province_id =
+        this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+      this.editConfig.infomation.city_id =
+        this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
       getAllData()
         .then((res) => {
           console.log(res)
           this.businessSourceOptions = res.data.sales_source
-          this.countryOptions = res.data.country
+          // this.countryOptions = res.data.country
           this.provinceOptions = res.data.province
-          this.cityOptions = res.data.city
           this.regionOptions = res.data.region
           this.memberOptions = res.data.member
         })
@@ -381,6 +392,21 @@
     confirmPhone(value) {
       const inputValue = value.replace(/[^\d*]/g, "")
       this.editConfig.infomation.contact_phone = inputValue
+    },
+    // 閫夋嫨鐪佷唤
+    selProvinceChange(val) {
+      this.getCityList(val, "sel")
+    },
+    async getCityList(val, value) {
+      await getCityList({ province_id: val }).then((res) => {
+        console.log(res)
+        if (res.data.code === 200) {
+          this.cityOptions = res.data.data.list
+          if (value === "sel") {
+            this.editConfig.infomation.city_id = ""
+          }
+        }
+      })
     }
   }
 }
diff --git a/src/views/client/salesLead/DetailSalesLead.vue b/src/views/client/salesLead/DetailSalesLead.vue
index 4df0d87..2e3988c 100644
--- a/src/views/client/salesLead/DetailSalesLead.vue
+++ b/src/views/client/salesLead/DetailSalesLead.vue
@@ -221,19 +221,13 @@
       this.addressInfoList = [
         {
           leftStr: "鍥藉",
-          leftValue: "",
+          leftValue: "涓浗",
           rightStr: "鐪佷唤",
-          rightValue: ""
+          rightValue: this.detailConfig.infomation.Province.name
         },
         {
           leftStr: "鍩庡競",
-          leftValue: "",
-          rightStr: "鍖哄煙",
-          rightValue: ""
-        },
-        {
-          leftStr: "鍦板潃",
-          leftValue: "",
+          leftValue: this.detailConfig.infomation.City.name,
           rightStr: "",
           rightValue: ""
         }
@@ -255,6 +249,8 @@
         this.isDynamicExpand = !this.isDynamicExpand
       } else if (value === "address") {
         this.isAddressExpand = !this.isAddressExpand
+      } else if (value === "remark") {
+        this.isRemarkExpand = !this.isRemarkExpand
       }
     }
   }
diff --git a/src/views/client/salesLead/index.vue b/src/views/client/salesLead/index.vue
index 73e5bee..78a2656 100644
--- a/src/views/client/salesLead/index.vue
+++ b/src/views/client/salesLead/index.vue
@@ -187,7 +187,7 @@
     addBtnClick() {
       this.editSalesLeadConfig.visible = true
       this.editSalesLeadConfig.title = "鏂板缓"
-      this.editSalesLeadConfig.infomation = { businessStatus: "鏂板缓" }
+      this.editSalesLeadConfig.infomation = { businessStatus: "鏂板缓", city_id: 0 }
     },
     // 缂栬緫
     handleClick(row) {
diff --git a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
index 61fd54a..2db4a3e 100644
--- a/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
+++ b/src/views/sales/salesOpportunity/AddSalesOpportunityDialog.vue
@@ -99,7 +99,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -116,7 +116,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -133,7 +133,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -168,7 +168,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -196,7 +196,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -220,13 +220,24 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="棰勮鎴愪氦鏃ユ湡" prop="expected_time">
-                  <el-date-picker v-model="editConfig.infomation.expected_time" type="date" placeholder="閫夋嫨鏃ユ湡">
+                  <el-date-picker
+                    v-model="editConfig.infomation.expected_time"
+                    value-format="yyyy-MM-dd"
+                    type="date"
+                    placeholder="閫夋嫨鏃ユ湡"
+                  >
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
                 <el-form-item label="棰勮鍚堝悓閲戦" prop="projected_amount">
-                  <el-input v-model="editConfig.infomation.projected_amount"></el-input>
+                  <el-input-number
+                    v-model="editConfig.infomation.projected_amount"
+                    placeholder="璇疯緭鍏�"
+                    :min="0"
+                    :controls="false"
+                    style="width: 100%; margin-right: 5px"
+                  ></el-input-number>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -242,7 +253,7 @@
                       </el-option>
                     </el-select>
                     <!-- @click="editDropdownBox" -->
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -381,11 +392,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      disabled
                     >
                       <el-option v-for="item in countryOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -397,11 +409,12 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      @change="selProvinceChange"
                     >
                       <el-option v-for="item in provinceOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -413,15 +426,16 @@
                       placeholder="璇烽�夋嫨"
                       class="common-select-sel"
                       size="mini"
+                      :disabled="cityOptions.length <= 0 ? true : false"
                     >
                       <el-option v-for="item in cityOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
-              <el-col :span="12">
+              <!-- <el-col :span="12">
                 <el-form-item label="鍖哄煙" prop="region_id">
                   <div class="common-select">
                     <el-select
@@ -436,7 +450,7 @@
                     <div class="common-select-btn"><i class="el-icon-setting"></i></div>
                   </div>
                 </el-form-item>
-              </el-col>
+              </el-col> -->
               <el-col :span="20">
                 <el-form-item label="璇︾粏鍦板潃" prop="detail_address">
                   <el-input
@@ -520,6 +534,7 @@
 import { getAddSaleChance, getUpdateSaleChance } from "@/api/sales/salesOpportunity"
 import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
 import SelectContactDialog from "@/views/other/commonDialog/SelectContactDialog"
+import { getCityList } from "@/api/common/address"
 export default {
   name: "AddSalesOpportunityDialog",
   props: {
@@ -551,13 +566,13 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        name: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        member_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        sale_stage_id: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        currency: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        expected_time: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        projected_amount: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }]
+        number: [{ required: true, message: "璇疯緭鍏ラ攢鍞満浼氱紪鍙�", trigger: "blur" }],
+        name: [{ required: true, message: "璇疯緭鍏ユ満浼氬悕绉�", trigger: "blur" }],
+        member_id: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }],
+        sale_stage_id: [{ required: true, message: "璇烽�夋嫨閿�鍞樁娈�", trigger: "change" }],
+        currency: [{ required: true, message: "璇烽�夋嫨甯佺", trigger: "change" }],
+        expected_time: [{ required: true, message: "璇烽�夋嫨棰勮鎴愪氦鏃ユ湡", trigger: "change" }],
+        projected_amount: [{ required: true, message: "璇疯緭鍏ラ璁″悎鍚岄噾棰�", trigger: "blur" }]
       },
       businessSourceOptions: [],
       memberOptions: [],
@@ -565,9 +580,9 @@
       saleStageOptions: [], // 閿�鍞樁娈�
       oldCustomerMarketOptions: [], // 鑰佸鎴疯惀閿�
       possibleOptions: [], // 鍙兘鎬�
-      currencyOptions: [], // 甯佺
+      currencyOptions: [{ id: 1, name: "浜烘皯甯�" }], // 甯佺
       currentStateOptions: [], // 褰撳墠鐘舵��
-      countryOptions: [], // 鍥藉
+      countryOptions: [{ id: 1, name: "涓浗" }], // 鍥藉
       provinceOptions: [], // 鐪佷唤
       cityOptions: [], // 鍩庡競
       regionOptions: [], // 鍖哄煙
@@ -589,24 +604,29 @@
   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")
+    }
     this.getCommonData()
   },
   methods: {
     getCommonData() {
+      this.editConfig.infomation.country_id = 1
+      this.editConfig.infomation.province_id =
+        this.editConfig.infomation.province_id === 0 ? "" : this.editConfig.infomation.province_id
+      this.editConfig.infomation.city_id =
+        this.editConfig.infomation.city_id === 0 ? "" : this.editConfig.infomation.city_id
       getAllData()
         .then((res) => {
-          // 缂� 鍙兘鎬� 甯佺 褰撳墠鐘舵��
           this.memberOptions = res.data.member
           this.businessSourceOptions = res.data.sales_source
           this.businessTypeOptions = res.data.sale_type
           this.oldCustomerMarketOptions = res.data.regular_customers
           this.saleStageOptions = res.data.sale_stage
-          this.countryOptions = res.data.country
           this.provinceOptions = res.data.province
-          this.cityOptions = res.data.city
           this.regionOptions = res.data.region
           this.possibleOptions = res.data.possibility
-          this.currencyOptions = res.data.currency
+          // this.currencyOptions = res.data.currency
           this.currentStateOptions = res.data.status
         })
         .catch((err) => {
@@ -628,41 +648,33 @@
           const params = this.saveParams()
           console.log(params)
           if (this.editConfig.title === "鏂板缓") {
-            getAddSaleChance(params)
-              .then((res) => {
-                console.log(res)
-                this.editConfig.visible = false
-                if (res.code === 200) {
-                  this.$message({
-                    message: "娣诲姞鎴愬姛",
-                    type: "success"
-                  })
-                  if (this.editConfig.title === "鏂板缓" && this.editConfig.infomation.client_name) {
-                    this.$parent.handleClose()
-                  } else {
-                    this.$parent.getData()
-                  }
-                }
-              })
-              .catch((err) => {
-                console.log(err)
-              })
-          } else {
-            getUpdateSaleChance(params)
-              .then((res) => {
-                console.log(res)
-                this.editConfig.visible = false
-                if (res.code === 200) {
-                  this.$message({
-                    message: "缂栬緫鎴愬姛",
-                    type: "success"
-                  })
+            getAddSaleChance(params).then((res) => {
+              console.log(res)
+              this.editConfig.visible = false
+              if (res.code === 200) {
+                this.$message({
+                  message: "娣诲姞鎴愬姛",
+                  type: "success"
+                })
+                if (this.editConfig.title === "鏂板缓" && this.editConfig.infomation.client_name) {
+                  this.$parent.handleClose()
+                } else {
                   this.$parent.getData()
                 }
-              })
-              .catch((err) => {
-                console.log(err)
-              })
+              }
+            })
+          } else {
+            getUpdateSaleChance(params).then((res) => {
+              console.log(res)
+              this.editConfig.visible = false
+              if (res.code === 200) {
+                this.$message({
+                  message: "缂栬緫鎴愬姛",
+                  type: "success"
+                })
+                this.$parent.getData()
+              }
+            })
           }
         } else {
           console.log("error submit")
@@ -678,9 +690,9 @@
         budget: data.budget || 0,
         capital_budget: data.capital_budget || "",
         city_id: data.city_id || 0,
-        client_id: parseInt(this.clientId),
+        client_id: this.clientId || 0,
         competitors: data.competitors || "",
-        contact_id: parseInt(this.contactId),
+        contact_id: this.contactId || 0,
         country_id: data.country_id || 0,
         currency: data.currency || 0,
         disadvantages: data.disadvantages || "",
@@ -694,7 +706,7 @@
         pain_points: data.pain_points || "",
         possibilities: data.possibilities || 0,
         process: data.process || "",
-        projected_amount: parseInt(data.projected_amount) || 0,
+        projected_amount: data.projected_amount || 0,
         province_id: data.province_id || 0,
         region_id: data.region_id || 0,
         regular_customers_id: data.regular_customers_id || 0,
@@ -763,7 +775,22 @@
     // 娣诲姞闄勪欢
     addAnnexClick() {},
     // 璁剧疆鍏佽涓婁紶鏂囦欢鏍煎紡
-    setFormatClick() {}
+    setFormatClick() {},
+    // 閫夋嫨鐪佷唤
+    selProvinceChange(val) {
+      this.getCityList(val, "sel")
+    },
+    async getCityList(val, value) {
+      await getCityList({ province_id: val }).then((res) => {
+        console.log(res)
+        if (res.data.code === 200) {
+          this.cityOptions = res.data.data.list
+          if (value === "sel") {
+            this.editConfig.infomation.city_id = ""
+          }
+        }
+      })
+    }
   }
 }
 </script>
@@ -820,6 +847,9 @@
       height: 55px;
       line-height: 55px;
     }
+    .el-input__inner {
+      text-align: left;
+    }
   }
 }
 </style>
diff --git a/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue b/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
index c4aa32d..eb8fcde 100644
--- a/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
+++ b/src/views/sales/salesOpportunity/DetailAdvanceDialog.vue
@@ -13,23 +13,25 @@
           <div class="one">
             <el-radio :label="1">
               <span>鎺ㄨ繘鍒颁笅涓�闃舵</span>
-              <el-select v-model="value" size="mini" disabled>
-                <el-option v-for="(item, index) in options" :key="index" :label="item" :value="item"> </el-option>
+              <el-select v-model="value1" size="mini" disabled>
+                <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id">
+                </el-option>
               </el-select>
             </el-radio>
           </div>
           <div class="two">
             <el-radio :label="2">
               <span>鎺ㄨ繘鍒版寚瀹氶樁娈�</span>
-              <el-select v-model="value" size="mini">
-                <el-option v-for="(item, index) in options" :key="index" :label="item" :value="item"> </el-option>
+              <el-select v-model="value" size="mini" @change="designatedStageClick">
+                <el-option v-for="(item, index) in options" :key="index" :label="item.name" :value="item.id">
+                </el-option>
               </el-select>
             </el-radio>
           </div>
         </el-radio-group>
       </div>
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" size="small" @click="saveClick('form')">鎺ㄨ繘</el-button>
+        <el-button type="primary" size="small" @click="saveClick()">鎺ㄨ繘</el-button>
         <el-button size="small" @click="commonConfig.visible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
@@ -37,6 +39,7 @@
 </template>
 
 <script>
+import { pushSaleChance } from "@/api/sales/salesOpportunity"
 export default {
   name: "DetailAdvanceDialog",
   props: {
@@ -45,7 +48,10 @@
       default: () => {
         return {
           visible: false,
-          active: "闇�姹傚垎鏋�"
+          active: "闇�姹傚垎鏋�",
+          allOptions: [],
+          options: [],
+          id: 0
         }
       }
     }
@@ -54,12 +60,13 @@
   computed: {},
   data() {
     return {
-      allOptions: ["鍒濇湡娌熼��", "闇�姹傚垎鏋�", "鏂规鎶ヤ环", "鍟嗗姟璋堝垽", "鎴愬姛缁撴", "澶辫触缁撴"],
+      allOptions: this.advanceConfig.allOptions,
       dialogWidth: "25%",
       radio: 1,
       commonConfig: this.advanceConfig,
+      value1: "",
       value: "",
-      options: ["鍒濇湡娌熼��", "闇�姹傚垎鏋�", "鏂规鎶ヤ环", "鍟嗗姟璋堝垽", "鎴愬姛缁撴", "澶辫触缁撴"]
+      options: this.advanceConfig.options
     }
   },
   watch: {},
@@ -68,17 +75,41 @@
   },
   methods: {
     setData() {
-      console.log(this.commonConfig.active)
       this.allOptions.map((item, index) => {
-        if (item === this.commonConfig.active) {
-          console.log(index)
-          this.value = this.allOptions[index + 1]
+        if (item.id === this.commonConfig.active) {
+          if (index + 1 === this.allOptions.length) {
+            this.value = this.allOptions[0].id
+            this.value1 = this.allOptions[0].id
+          } else {
+            this.value = this.allOptions[index + 1].id
+            this.value1 = this.allOptions[index + 1].id
+          }
+
           this.options.splice(index, 1)
         }
       })
     },
     handleClose() {
       this.commonConfig.visible = false
+    },
+    designatedStageClick() {
+      this.radio = 2
+    },
+    async saveClick() {
+      let stepId = 0
+      if (this.radio === 2) {
+        stepId = this.value
+      } else {
+        stepId = this.value1
+      }
+      await pushSaleChance({
+        id: this.commonConfig.id,
+        step: stepId
+      }).then((res) => {
+        if (res.code === 200) {
+          this.handleClose()
+        }
+      })
     }
   }
 }
diff --git a/src/views/sales/salesOpportunity/DetailOpportunity.vue b/src/views/sales/salesOpportunity/DetailOpportunity.vue
index cd2476c..5d2257f 100644
--- a/src/views/sales/salesOpportunity/DetailOpportunity.vue
+++ b/src/views/sales/salesOpportunity/DetailOpportunity.vue
@@ -38,13 +38,16 @@
             </div>
             <div v-show="isSchduleExpand" class="basic-info-content">
               <div class="step-view">
-                <el-steps :active="active" align-center>
-                  <el-step :active-color="'#fff'" :title="item.title" :key="index" v-for="(item, index) in stepsList">
+                <el-steps :active="sale_active" align-center>
+                  <el-step :active-color="'#fff'" :title="item.name" :key="item.id" v-for="(item, index) in stepsList">
                     <template slot="title">
                       <div class="step-title-view">
-                        <div class="step-label">{{ item.title }}</div>
-                        <div v-show="index === active" class="step-btn" @click="advanceClick(item)">鎺ㄨ繘</div>
-                        <div class="step-desc">{{ item.desc }}</div>
+                        <div class="step-label">{{ item.name }}</div>
+                        <div v-show="sale_active === index" class="step-btn" @click="advanceClick(item)">
+                          <!--  && sale_stage_id !== stepsList.length -->
+                          鎺ㄨ繘
+                        </div>
+                        <!-- <div class="step-desc">{{ item.desc }}</div> -->
                       </div>
                     </template>
                   </el-step>
@@ -170,11 +173,11 @@
                 <li v-for="(item, i) in addressInfoList" :key="i">
                   <div class="left">
                     <div class="content-title">{{ item.leftStr + "锛�" }}</div>
-                    <div class="content-data">{{ item.leftValue }}</div>
+                    <div class="content-data">{{ item.leftValue ? item.leftValue : "--" }}</div>
                   </div>
                   <div class="right">
                     <div class="content-title">{{ item.rightStr }}</div>
-                    <div class="content-data">{{ item.rightValue }}</div>
+                    <div class="content-data">{{ item.rightValue ? item.rightValue : "--" }}</div>
                   </div>
                 </li>
               </ul>
@@ -217,7 +220,7 @@
             </div>
           </div>
           <!-- 閿�鍞満浼氶樁娈垫帹杩涘巻鍙� -->
-          <div class="basic-info">
+          <!-- <div class="basic-info">
             <div class="basic-info-label" @click="expandClick('history')">
               <i v-if="isHistoryExpand" class="el-icon-arrow-down"></i>
               <i v-else class="el-icon-arrow-up"></i>
@@ -234,7 +237,7 @@
                 </li>
               </ul>
             </div>
-          </div>
+          </div> -->
         </div>
         <div v-if="activeName === 'second'" class="second">
           <FollowupRecords :isDetail="true" />
@@ -264,6 +267,7 @@
 import SalesDetails from "@/views/sales/salesDetails"
 import ServiceContract from "@/views/service/serviceContract"
 import DetailAdvanceDialog from "@/views/sales/salesOpportunity/DetailAdvanceDialog"
+import { getSaleStageList } from "@/api/sales/salesOpportunity"
 export default {
   name: "DetailClientManage",
   props: {
@@ -284,14 +288,7 @@
       detailConfig: this.opportunityDetail,
       activeName: "first",
       isSchduleExpand: true, // 杩涘害杩借釜
-      stepsList: [
-        { title: "鍒濇湡娌熼��", desc: "鍋滅暀: 1鏈�8澶�20灏忔椂" },
-        { title: "闇�姹傚垎鏋�", desc: "" },
-        { title: "鏂规鎶ヤ环", desc: "" },
-        { title: "鍟嗗姟璋堝垽", desc: "" },
-        { title: "鎴愬姛缁撴", desc: "" },
-        { title: "澶辫触缁撴", desc: "" }
-      ],
+      stepsList: [],
       isBasicExpand: true, // 鍩烘湰淇℃伅灞曞紑
       basicInfoList: [],
       isForecastExpand: true, // 閿�鍞娴�
@@ -308,47 +305,60 @@
       isAnnexExpand: true, // 闄勪欢淇℃伅
       isHistoryExpand: true, // 鎺ㄨ繘鍘嗗彶
       historyList: [],
-      active: 2,
+      sale_active: 0,
       advanceConfig: {
         visible: false,
-        active: ""
+        active: "",
+        allOptions: [],
+        options: []
       }
     }
   },
   created() {
-    this.setData()
+    this.getSaleStageList()
+    this.setData(this.detailConfig.infomation)
   },
   mounted() {},
   methods: {
-    setData() {
+    async getSaleStageList() {
+      await getSaleStageList().then((res) => {
+        this.stepsList = res.data.list
+        res.data.list.map((item, index) => {
+          if (item.id === this.detailConfig.infomation.sale_stage_id) {
+            this.sale_active = index
+          }
+        })
+      })
+    },
+    setData(item) {
       this.basicInfoList = [
         {
           leftStr: "瀹㈡埛鍚嶇О",
-          leftValue: "",
+          leftValue: item.client_name,
           rightStr: "閿�鍞満浼氱紪鍙�",
-          rightValue: ""
+          rightValue: item.id
         },
         {
           leftStr: "鏈轰細鍚嶇О",
-          leftValue: "",
+          leftValue: item.name,
           rightStr: "鑱旂郴浜哄鍚�",
-          rightValue: ""
+          rightValue: item.contact_name
         },
         {
           leftStr: "鍟嗘満鏉ユ簮",
-          leftValue: "",
+          leftValue: item.SalesSources.name,
           rightStr: "鍟嗘満绫诲瀷",
-          rightValue: ""
+          rightValue: "" // item.SaleType.name
         },
         {
           leftStr: "閿�鍞樁娈�",
-          leftValue: "",
+          leftValue: item.sale_stage_name,
           rightStr: "閿�鍞礋璐d汉",
-          rightValue: ""
+          rightValue: item.member.username
         },
         {
           leftStr: "鑰佸鎴疯惀閿�",
-          leftValue: "",
+          leftValue: item.regular_customers_id,
           rightStr: "绛惧埌",
           rightValue: ""
         },
@@ -368,21 +378,21 @@
       this.forecastList = [
         {
           leftStr: "鍙兘鎬�(%)",
-          leftValue: "",
+          leftValue: item.possibility.name,
           rightStr: "甯佺",
-          rightValue: ""
+          rightValue: "浜烘皯甯�"
         },
         {
           leftStr: "棰勭畻缁濆鍊�",
-          leftValue: "",
+          leftValue: item.capital_budget,
           rightStr: "棰勮鎴愪氦鏃ユ湡",
-          rightValue: ""
+          rightValue: item.expected_time
         },
         {
           leftStr: "棰勮鍚堝悓閲戦",
-          leftValue: "",
+          leftValue: item.projected_amount,
           rightStr: "褰撳墠鐘舵��",
-          rightValue: ""
+          rightValue: item.status_id
         }
       ]
       this.dynamicInfoList = [
@@ -408,58 +418,58 @@
       this.businessInfoList = [
         {
           leftStr: "瀹㈡埛闇�姹傛垨鐥涚偣锛坵hy锛�",
-          leftValue: ""
+          leftValue: item.pain_points
         },
         {
           leftStr: "鏄惁宸茬粡绔嬮」锛坧lan锛�",
-          leftValue: ""
+          leftValue: item.whether_established
         },
         {
           leftStr: "璧勯噾棰勭畻鏄灏戯紙plan锛�",
-          leftValue: ""
+          leftValue: item.capital_budget
         },
         {
           leftStr: "鍏抽敭鍐崇瓥浜烘槸璋侊紙who锛�",
-          leftValue: ""
+          leftValue: item.key_maker
         },
         {
           leftStr: "鍏抽敭鍐崇瓥鍥犵礌鏈夊摢浜涳紙what锛�",
-          leftValue: ""
+          leftValue: item.key_factors
         },
         {
           leftStr: "鍐崇瓥娴佺▼鏄�庢牱鐨勶紙what锛�",
-          leftValue: ""
+          leftValue: item.process
         },
         {
           leftStr: "绔炰簤瀵规墜鎻愪緵鐨勬柟妗堬紙what锛�",
-          leftValue: ""
+          leftValue: item.solutions
         }
       ]
       this.swotInfoList = [
         {
           leftStr: "浼樺娍(S)",
-          leftValue: "",
+          leftValue: item.advantages,
           rightStr: "鍔e娍(W)",
-          rightValue: ""
+          rightValue: item.disadvantages
         },
         {
           leftStr: "鏈轰細(O)",
-          leftValue: "",
+          leftValue: item.opportunities,
           rightStr: "濞佽儊(T)",
-          rightValue: ""
+          rightValue: item.threats
         }
       ]
       this.addressInfoList = [
         {
           leftStr: "鍥藉",
-          leftValue: "",
+          leftValue: "涓浗",
           rightStr: "鐪佷唤",
-          rightValue: ""
+          rightValue: item.Province.name
         },
         {
           leftStr: "鍩庡競",
-          leftValue: "",
-          rightStr: "鍖哄煙",
+          leftValue: item.City.name,
+          rightStr: "",
           rightValue: ""
         },
         {
@@ -484,6 +494,7 @@
     },
     handleClose() {
       this.detailConfig.visible = false
+      this.$parent.getData()
     },
     // tab鍒囨崲
     tabsClick(tab, event) {
@@ -516,9 +527,17 @@
     },
     // 鎺ㄨ繘
     advanceClick(item) {
-      console.log(item)
-      this.advanceConfig.visible = true
-      this.advanceConfig.active = item.title
+      let options = []
+      for (let i = 0; i < this.stepsList.length; i++) {
+        options.push(this.stepsList[i])
+      }
+      this.advanceConfig = {
+        visible: true,
+        active: item.id,
+        allOptions: this.stepsList,
+        options: options,
+        id: this.detailConfig.infomation.id
+      }
     }
   }
 }
@@ -629,7 +648,7 @@
             }
             .step-view {
               padding: 30px 60px 5px;
-              height: 100px;
+              height: 80px;
               .step-title-view {
                 margin-top: 10px;
                 font-size: 12px;
diff --git a/src/views/sales/salesOpportunity/index.vue b/src/views/sales/salesOpportunity/index.vue
index 6a1ded9..277db73 100644
--- a/src/views/sales/salesOpportunity/index.vue
+++ b/src/views/sales/salesOpportunity/index.vue
@@ -141,7 +141,7 @@
           { label: "瀹㈡埛鍚嶇О", prop: "client_name", min: 90, isClientClick: true }, // 瀹㈡埛鍚嶇О
           { label: "閿�鍞満浼氱紪鍙�", prop: "number" }, // 閿�鍞満浼氱紪鍙�
           { label: "鑱旂郴浜哄鍚�", prop: "contact_name", min: 100, isContactClick: true }, // 鑱旂郴浜哄鍚�
-          { label: "閿�鍞樁娈�", prop: "sale_stage" }, // 閿�鍞樁娈�
+          { label: "閿�鍞樁娈�", prop: "sale_stage_name" }, // 閿�鍞樁娈�
           { label: "鍙兘鎬�(%)", prop: "possibilities" }, // 鍙兘鎬�
           { label: "棰勮鎴愪氦鏃ユ湡", prop: "expected_time", isTime: true, min: 130 }, // 棰勮鎴愪氦鏃ユ湡
           { label: "棰勮鍚堝悓閲戦", prop: "projected_amount" }, // 棰勮鍚堝悓閲戦
@@ -172,7 +172,8 @@
                 return {
                   ...item,
                   client_name: item.client.name,
-                  contact_name: item.contact.name
+                  contact_name: item.contact.name,
+                  sale_stage_name: item.sale_stage.name
                 }
               })
               this.tableList.tableInfomation = list || []
@@ -207,7 +208,7 @@
     addBtnClick() {
       this.editConfig.visible = true
       this.editConfig.title = "鏂板缓"
-      this.editConfig.infomation = {}
+      this.editConfig.infomation = { city_id: 0 }
     },
     // 缂栬緫
     handleClick(row) {
@@ -218,24 +219,6 @@
     },
     // 鍒犻櫎
     delClick() {
-      // this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
-      //   confirmButtonText: "纭畾",
-      //   cancelButtonText: "鍙栨秷",
-      //   type: "warning"
-      // })
-      //   .then(function () {
-      //     return getDelSaleChance({ id: id })
-      //   })
-      //   .then((response) => {
-      //     if (response.code === 200) {
-      //       this.$message.success("鍒犻櫎鎴愬姛")
-      //       this.getData()
-      //     } else {
-      //       this.$message.warning("鍒犻櫎澶辫触")
-      //     }
-      //   })
-      //   .catch(function () {})
-
       if (this.selValueList && this.selValueList.length > 0) {
         this.$confirm("鏄惁纭鍒犻櫎?", "璀﹀憡", {
           confirmButtonText: "纭畾",
diff --git a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
index e308dae..eda11e6 100644
--- a/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
+++ b/src/views/service/clientServiceOrder/AddCientServiceOrderDialog.vue
@@ -54,7 +54,7 @@
                 <el-form-item label="鏈嶅姟鍚堝悓">
                   <div class="custom-name">
                     <el-autocomplete
-                      v-model="editConfig.infomation.service_number"
+                      v-model="editConfig.infomation.serviceContract_Number"
                       :fetch-suggestions="
                         (queryString, callback) => {
                           querySearchAsync(queryString, callback, 'serviceContract')
@@ -85,7 +85,7 @@
                       <el-option v-for="item in faultTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -171,7 +171,7 @@
                       <el-option v-for="item in serviceTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -229,7 +229,7 @@
                       <el-option v-for="item in severityOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -260,7 +260,7 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -314,7 +314,7 @@
                       <el-option v-for="item in statusOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -326,13 +326,23 @@
             <el-row>
               <el-col :span="12">
                 <el-form-item label="甯屾湜澶勭悊鏃堕棿" prop="expectTime">
-                  <el-date-picker v-model="editConfig.infomation.expectTime" type="datetime" placeholder="閫夋嫨鏃堕棿">
+                  <el-date-picker
+                    v-model="editConfig.infomation.expectTime"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    type="datetime"
+                    placeholder="閫夋嫨鏃堕棿"
+                  >
                   </el-date-picker>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
                 <el-form-item label="瀹為檯澶勭悊鏃堕棿" prop="realTime">
-                  <el-date-picker v-model="editConfig.infomation.startTime" type="realTime" placeholder="閫夋嫨鏃堕棿">
+                  <el-date-picker
+                    v-model="editConfig.infomation.startTime"
+                    value-format="yyyy-MM-dd HH:mm:ss"
+                    type="realTime"
+                    placeholder="閫夋嫨鏃堕棿"
+                  >
                   </el-date-picker>
                 </el-form-item>
               </el-col>
@@ -370,7 +380,7 @@
                       <el-option v-for="item in timeSpentOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
diff --git a/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue b/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
index 88ccd46..cf0fb8b 100644
--- a/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
+++ b/src/views/service/clientServiceOrder/DetailClientServiceOrder.vue
@@ -357,7 +357,7 @@
         },
         {
           leftStr: "鏈嶅姟鍚堝悓",
-          leftValue: data.Contract.number,
+          leftValue: data.ServiceContract.number,
           rightStr: "鏁呴殰绫诲埆",
           rightValue: data.FaultType.name
         },
@@ -365,7 +365,7 @@
           leftStr: "涓婚",
           leftValue: data.subject,
           rightStr: "鍚堝悓璁㈠崟",
-          rightValue: data.OrderManage.number
+          rightValue: data.SalesDetails.number
         },
         {
           leftStr: "浜у搧绫诲埆",
diff --git a/src/views/service/clientServiceOrder/index.vue b/src/views/service/clientServiceOrder/index.vue
index b091743..c2d952d 100644
--- a/src/views/service/clientServiceOrder/index.vue
+++ b/src/views/service/clientServiceOrder/index.vue
@@ -143,7 +143,9 @@
         keyword: keyword,
         keywordType: keywordType,
         page: this.pagerOptions.currPage,
-        pageSize: this.pagerOptions.pageSize
+        pageSize: this.pagerOptions.pageSize,
+        salesDetailsId: 0,
+        serviceContractId: 0
       })
         .then((res) => {
           console.log(res)
@@ -154,7 +156,8 @@
                   ...item,
                   client_name: item.Client.name,
                   serviceType_name: item.ServiceType.name,
-                  faultType_name: item.FaultType.name
+                  faultType_name: item.FaultType.name,
+                  serviceContract_Number: item.ServiceContract.number
                 }
               })
               this.tableList.tableInfomation = list || []
diff --git a/src/views/service/serviceContract/AddServiceContractDialog.vue b/src/views/service/serviceContract/AddServiceContractDialog.vue
index fe2da95..cebf667 100644
--- a/src/views/service/serviceContract/AddServiceContractDialog.vue
+++ b/src/views/service/serviceContract/AddServiceContractDialog.vue
@@ -163,7 +163,7 @@
                       <el-option v-for="item in contractTypeOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -223,7 +223,7 @@
                       >
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -267,7 +267,7 @@
             </el-row>
           </div>
           <!-- 闄勪欢淇℃伅 -->
-          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
@@ -292,7 +292,7 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
           <!-- 浜у搧绠$悊 -->
           <div class="basic-info-title" style="display: flex">
             浜у搧绠$悊
diff --git a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
index a4071bb..8c98d07 100644
--- a/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
+++ b/src/views/service/serviceFollowup/AddServiceFollowupDialog.vue
@@ -123,7 +123,7 @@
                       <el-option v-for="item in satisfactionOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -139,7 +139,7 @@
                       <el-option v-for="item in timelyRateOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -155,7 +155,7 @@
                       <el-option v-for="item in solveRateOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -179,7 +179,7 @@
                       <el-option v-for="item in isVisitOptions" :key="item.id" :label="item.name" :value="item.id">
                       </el-option>
                     </el-select>
-                    <div class="common-select-btn"><i class="el-icon-setting"></i></div>
+                    <!-- <div class="common-select-btn"><i class="el-icon-setting"></i></div> -->
                   </div>
                 </el-form-item>
               </el-col>
@@ -202,7 +202,7 @@
             </el-row>
           </div>
           <!-- 闄勪欢淇℃伅 -->
-          <div class="basic-info-title">闄勪欢淇℃伅</div>
+          <!-- <div class="basic-info-title">闄勪欢淇℃伅</div>
           <div class="basic-info-view">
             <el-row>
               <el-col :span="12">
@@ -227,7 +227,7 @@
                 </el-form-item>
               </el-col>
             </el-row>
-          </div>
+          </div> -->
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">

--
Gitblit v1.8.0