From ebddc02611b0373c1d5bfa342bd781fb5eb82009 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期二, 01 八月 2023 14:23:31 +0800
Subject: [PATCH] 侧边栏样式机销售明细单增加销售机会选择弹窗

---
 src/components/layout/components/appsidebar/index.scss |   10 +++
 src/views/sales/salesDetails/AddSalesDetailsDialog.vue |  120 ++++++++++++++++++++++++++++++---------
 src/components/layout/components/appsidebar/index.vue  |   12 ++--
 public/favicon.ico                                     |    0 
 src/views/sales/salesDetails/index.vue                 |    2 
 5 files changed, 108 insertions(+), 36 deletions(-)

diff --git a/public/favicon.ico b/public/favicon.ico
index df36fcf..765befd 100644
--- a/public/favicon.ico
+++ b/public/favicon.ico
Binary files differ
diff --git a/src/components/layout/components/appsidebar/index.scss b/src/components/layout/components/appsidebar/index.scss
index 037c7b3..dfd1db6 100644
--- a/src/components/layout/components/appsidebar/index.scss
+++ b/src/components/layout/components/appsidebar/index.scss
@@ -1,7 +1,7 @@
 .app-sidebar {
   position: relative;
   height: 100%;
-  background-color: #545c64;
+  background-color: #314255;
   .box {
     width: 200px;
     .el-menu {
@@ -10,5 +10,13 @@
     .el-submenu .el-menu-item {
       min-width: none;
     }
+    .icon {
+      color: #bfcbd9;
+    }
+    .el-submenu__title:hover,
+    .el-menu-item:focus,
+    .el-menu-item:hover {
+      background-color: cornflowerblue;
+    }
   }
 }
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index 946305a..57830b9 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -9,13 +9,13 @@
         class="el-menu-vertical-demo"
         @select="handleOpen"
         @close="handleClose"
-        background-color="#545c64"
-        text-color="#fff"
-        active-text-color="#ffd04b"
+        background-color="#314255"
+        text-color="#bfcbd9"
+        active-text-color="#fff"
       >
         <el-submenu index="1">
           <template slot="title">
-            <i class="el-icon-location"></i>
+            <i class="el-icon-money icon"></i>
             <span>瀹㈡埛绠$悊</span>
           </template>
           <el-menu-item index="/client/salesLead">閿�鍞嚎绱�</el-menu-item>
@@ -25,7 +25,7 @@
         </el-submenu>
         <el-submenu index="2">
           <template slot="title">
-            <i class="el-icon-location"></i>
+            <i class="el-icon-phone-outline icon"></i>
             <span>閿�鍞鐞�</span>
           </template>
           <el-menu-item index="/sales/salesOpportunity">閿�鍞満浼�</el-menu-item>
@@ -40,7 +40,7 @@
         </el-submenu>
         <el-submenu index="3">
           <template slot="title">
-            <i class="el-icon-location"></i>
+            <i class="el-icon-service icon"></i>
             <span>鏈嶅姟绠$悊</span>
           </template>
           <el-menu-item index="/service/serviceContract">鏈嶅姟鍚堝悓</el-menu-item>
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
index cc258a6..d65d667 100644
--- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -26,14 +26,18 @@
                   <div class="custom-name">
                     <el-autocomplete
                       v-model="editConfig.infomation.client_name"
-                      :fetch-suggestions="querySearchAsync"
+                      :fetch-suggestions="
+                        (queryString, callback) => {
+                          querySearchAsync(queryString, callback, 'client')
+                        }
+                      "
                       value-key="name"
-                      @select="handleSelectClient"
+                      @select="handleSelectClient('client', $event)"
                     ></el-autocomplete>
-                    <div class="common-select-btn" @click="selClientClick">
+                    <div class="common-select-btn" @click="selClientClick('client')">
                       <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                     </div>
-                    <div class="common-select-btn" @click="clearupClient">
+                    <div class="common-select-btn" @click="clearupClient('client')">
                       <i class="el-icon-edit-outline" title="娓呴櫎"></i>
                     </div>
                   </div>
@@ -47,9 +51,22 @@
               <el-col :span="12">
                 <el-form-item label="閿�鍞満浼�" prop="saleChanceId">
                   <div class="custom-name">
-                    <el-input v-model="editConfig.infomation.saleChanceId"></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-autocomplete
+                      v-model="editConfig.infomation.sale_chance_name"
+                      :fetch-suggestions="
+                        (queryString, callback) => {
+                          querySearchAsync(queryString, callback, 'chance')
+                        }
+                      "
+                      value-key="name"
+                      @select="handleSelectClient('chance', $event)"
+                    ></el-autocomplete>
+                    <div class="common-select-btn" @click="selClientClick('chance')">
+                      <i class="el-icon-circle-plus-outline"></i>
+                    </div>
+                    <div class="common-select-btn" @click="clearupClient('chance')">
+                      <i class="el-icon-edit-outline"></i>
+                    </div>
                   </div>
                 </el-form-item>
               </el-col>
@@ -287,6 +304,12 @@
         :edit-common-config="editSelectClientConfig"
         @selClient="selClient"
       />
+      <!-- 閫夋嫨閿�鍞満浼� -->
+      <SelectChanceDialog
+        v-if="editSelectChanceConfig.editVisible"
+        :edit-common-config="editSelectChanceConfig"
+        @selClient="selClient"
+      />
     </el-dialog>
   </div>
 </template>
@@ -296,6 +319,7 @@
 import { getAllData } from "@/api/client/client"
 import { getAddSalesDetails, getUpdateSalesDetails } from "@/api/sales/salesDetails"
 import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
+import SelectChanceDialog from "@/views/other/commonDialog/SelectChanceDialog"
 export default {
   name: "AddSalesDetailsDialog",
   props: {
@@ -310,10 +334,13 @@
       }
     }
   },
-  components: { CommonFormTableView, SelectClientDialog },
+  components: { CommonFormTableView, SelectClientDialog, SelectChanceDialog },
   computed: {
     clientList() {
       return this.$store.state.getClientName.clientList
+    },
+    saleChancelist() {
+      return this.$store.state.getClientName.saleChancelist
     }
   },
   data() {
@@ -321,13 +348,12 @@
       dialogWidth: "80%",
       editConfig: this.editCommonConfig,
       rules: {
-        client_name: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        number: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-        signTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-        memberId: [{ required: true, message: "璇烽�夋嫨璐熻矗浜�", trigger: "change" }]
+        client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }],
+        number: [{ required: true, message: "璇疯緭鍏ヨ鍗曠紪鍙�", trigger: "blur" }],
+        signTime: [{ required: true, message: "璇烽�夋嫨绛剧害鏃ユ湡", trigger: "change" }],
+        memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }]
         // approvalOpinion: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }]
       },
-      clientId: this.editCommonConfig.infomation.clientId,
       memberOptions: [],
       selSourceOrderOptions: [],
       wechatOrderStatusOptions: [], // 寰俊璁㈠崟鐘舵��
@@ -348,11 +374,19 @@
         editVisible: false,
         title: "",
         infomation: {}
-      }
+      },
+      editSelectChanceConfig: {
+        editVisible: false,
+        title: "",
+        infomation: {}
+      },
+      clientId: this.editCommonConfig.infomation.clientId,
+      saleChanceId: this.editCommonConfig.infomation.saleChanceId
     }
   },
   created() {
     this.$store.dispatch("geClient")
+    this.$store.dispatch("geChance")
     this.setTableForm()
     this.getCommonData()
   },
@@ -361,10 +395,18 @@
       getAllData()
         .then((res) => {
           this.memberOptions = res.data.member
+          this.dataProcess()
         })
         .catch((err) => {
           console.log(err)
         })
+    },
+    dataProcess() {
+      this.saleChancelist.map((item) => {
+        if (this.saleChanceId === item.id) {
+          this.editConfig.infomation.sale_chance_name = item.name
+        }
+      })
     },
     // 淇濆瓨
     saveClick(formName) {
@@ -437,7 +479,7 @@
             }
           ],
           remark: data.remark || "",
-          saleChanceId: data.saleChanceId || 0,
+          saleChanceId: parseInt(this.saleChanceId),
           saleType: data.saleType || 0,
           signTime: data.signTime || "",
           wechatOrderStatus: data.wechatOrderStatus || 0,
@@ -453,8 +495,13 @@
       this.editConfig.visible = false
     },
     // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
-    querySearchAsync(queryString, cb) {
-      var restaurants = this.clientList
+    querySearchAsync(queryString, cb, value) {
+      var restaurants = []
+      if (value === "client") {
+        restaurants = this.clientList
+      } else if (value === "chance") {
+        restaurants = this.saleChancelist
+      }
       var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants
       cb(results)
     },
@@ -463,21 +510,38 @@
         return state.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0
       }
     },
-    handleSelectClient(item) {
-      this.clientId = item.id
+    handleSelectClient(value, item) {
+      if (value === "client") {
+        this.clientId = item.id
+      } else if (value === "chance") {
+        this.saleChanceId = item.id
+      }
     },
-    selClientClick() {
-      this.editSelectClientConfig.editVisible = true
+    selClientClick(value) {
+      if (value === "client") {
+        this.editSelectClientConfig.editVisible = true
+      } else if (value === "chance") {
+        this.editSelectChanceConfig.editVisible = true
+      }
     },
-    selClient(row) {
-      console.log(row)
-      this.editConfig.infomation.client_name = row.name
-      this.clientId = row.id
+    selClient(row, value) {
+      if (value === "contact") {
+        this.editConfig.infomation.contact_name = row.name
+        this.contactId = row.id
+      } else if (value === "chance") {
+        this.editConfig.infomation.sale_chance_name = row.name
+        this.saleChanceId = row.id
+      }
     },
     // 娓呴櫎宸查�夋嫨鐢ㄦ埛
-    clearupClient() {
-      this.editConfig.infomation.client_name = ""
-      this.editConfig.infomation.client_id = 0
+    clearupClient(value) {
+      if (value === "client") {
+        this.editConfig.infomation.client_name = ""
+        this.clientId = 0
+      } else if (value === "chance") {
+        this.editConfig.infomation.sale_chance_name = ""
+        this.saleChanceId = 0
+      }
     },
     // 娣诲姞闄勪欢
     addAnnexClick() {},
diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue
index 6e7cb5f..5cb8aab 100644
--- a/src/views/sales/salesDetails/index.vue
+++ b/src/views/sales/salesDetails/index.vue
@@ -156,7 +156,7 @@
       console.log(row)
       this.editConfig.visible = true
       this.editConfig.title = "缂栬緫"
-      this.editConfig.infomation = { ...row }
+      this.editConfig.infomation = { ...row, sale_chance_name: "" }
     },
     // 鍒犻櫎
     delClick(id) {

--
Gitblit v1.8.0