From 6be75d9f734ca3cfe1056fbe2b5556b7cf142cf9 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 28 二月 2024 14:51:43 +0800
Subject: [PATCH] 销售明细单 选择了销售报价单之后带出对应的产品列表,切换或者清空操作的时候清空产品管理,并修改

---
 src/views/other/commonDialog/SelectCommonDialog.vue |  285 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 217 insertions(+), 68 deletions(-)

diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 9682e35..3603f67 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -29,11 +29,14 @@
           </div>
         </div>
         <TableCommonView
+          class="bg-list"
           ref="tableListRef"
           :table-list="tableList"
-          :select-box="false"
+          :select-box="editCommonConfig.isSelectBox"
+          :selectBoxList="selectBoxList"
           @selCommonClick="selNameClick"
           @selTableCol="selTableCol"
+          @getSelectArray="getSelectArray"
         >
         </TableCommonView>
         <div slot="footer" class="dialog-footer">
@@ -42,6 +45,10 @@
             <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
           </div>
         </div>
+      </div>
+      <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox">
+        <el-button type="primary" size="small" @click="saveClick()">纭畾</el-button>
+        <el-button size="small" @click="editConfig.editVisible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
   </div>
@@ -55,6 +62,7 @@
 import { getServiceOrderList } from "@/api/serviceManage/clientServiceOrder"
 import { getProductList } from "@/api/common/other"
 import { getSalesReturnList } from "@/api/sales/salesReturn"
+import { getSubOrderList } from "@/api/sales/subOrder"
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
 export default {
   name: "EditSelCommonDialog",
@@ -65,10 +73,23 @@
       default: () => {
         return {
           editVisible: false,
+          isSelectBox: false,
           title: "",
+          clientId: 0,
+          isRequest: true,
+          client_name: "",
           tableInfomation: []
         }
       }
+    },
+    // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝�
+    quotationNumber: {
+      type: [String, Number],
+      default: ""
+    },
+    selectBoxList: {
+      type: Array,
+      default: () => []
     }
   },
   components: {},
@@ -89,10 +110,16 @@
       keyword: "",
       keywordType: "",
       tableColumn: [],
-      showCol: []
+      showCol: [],
+      selectArray: []
     }
   },
   created() {
+    this.search_map = {
+      client_id: this.editConfig.clientId
+    }
+    this.keyword = this.editConfig.client_name
+    this.keywordType = "瀹㈡埛鍚嶇О"
     this.setTable()
     this.getData()
   },
@@ -113,73 +140,127 @@
         }
         this.searchSel = { value: "number", label: "鍗曟嵁缂栧彿" }
       } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") {
+        this.tableColumn = [
+          { label: "瀹㈡埛鍚嶇О", prop: "client_name", default: true }, // 瀹㈡埛鍚嶇О
+          { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "number", isClick: true }, // 鏈嶅姟鍚堝悓缂栧彿
+          { label: "璐熻矗浜�", prop: "member_name" }, // 璐熻矗浜�
+          { label: "鍚堣", prop: "total" }, // 鍚堣
+          { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true }, // 绛剧害鏃ユ湡
+          { label: "鍚堝悓鐘舵��", prop: "serviceContractStatus" } // 鍚堝悓鐘舵��
+        ]
+        this.showCol = ["瀹㈡埛鍚嶇О", "鏈嶅姟鍚堝悓缂栧彿", "璐熻矗浜�", "鍚堣", "绛剧害鏃ユ湡", "鍚堝悓鐘舵��"]
         this.tableList = {
+          selectIndex: true,
           tableInfomation: [],
-          tableColumn: [
-            { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, // 瀹㈡埛鍚嶇О
-            { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "number", isClick: true }, // 鏈嶅姟鍚堝悓缂栧彿
-            { label: "璐熻矗浜�", prop: "member_name" }, // 璐熻矗浜�
-            { label: "鍚堣", prop: "total" }, // 鍚堣
-            { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true }, // 绛剧害鏃ユ湡
-            { label: "鍚堝悓鐘舵��", prop: "serviceContractStatus" } // 鍚堝悓鐘舵��
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "number", label: "鏈嶅姟鍚堝悓缂栧彿" }
       } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") {
+        this.tableColumn = [
+          { label: "瀹㈡埛鍚嶇О", prop: "client_name", default: true }, // 瀹㈡埛鍚嶇О
+          { label: "璁㈠崟缂栧彿", prop: "number", isClick: true }, // 璁㈠崟缂栧彿
+          { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡
+          { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
+          { label: "鍚堣", prop: "tptal" } // 鍚堣
+        ]
+        this.showCol = ["瀹㈡埛鍚嶇О", "璁㈠崟缂栧彿", "绛剧害鏃ユ湡", "閿�鍞礋璐d汉", "鍚堣"]
         this.tableList = {
+          selectIndex: true,
           tableInfomation: [],
-          tableColumn: [
-            { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, // 瀹㈡埛鍚嶇О
-            { label: "璁㈠崟缂栧彿", prop: "number", isClick: true }, // 璁㈠崟缂栧彿
-            { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡
-            { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
-            { label: "鍚堣", prop: "tptal" } // 鍚堣
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "number", label: "璁㈠崟缂栧彿" }
       } else if (this.editConfig.title === "鎶ヤ环鍗�") {
+        this.tableColumn = [
+          { label: "鎶ヤ环鍗曞彿", prop: "number", isClick: true, default: true }, // 鎶ヤ环鍗曞彿
+          { label: "鎶ヤ环鍚嶇О", prop: "quotationName" },
+          { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
+          { label: "瀹㈡埛鍚嶇О", prop: "client_name" },
+          { label: "鎵�灞炰笟鍔℃満浼�", prop: "sale_chance_name" },
+          { label: "鎶ヤ环鍗曠姸鎬�", prop: "quotationStatus" },
+          { label: "鍚堣", prop: "amountTotal" }
+        ]
+        this.showCol = ["鎶ヤ环鍗曞彿", "鎶ヤ环鍚嶇О", "閿�鍞礋璐d汉", "瀹㈡埛鍚嶇О", "鎵�灞炰笟鍔℃満浼�", "鎶ヤ环鍗曠姸鎬�", "鍚堣"]
         this.tableList = {
+          selectIndex: true,
+
           tableInfomation: [],
-          tableColumn: [
-            { label: "鎶ヤ环鍗曞彿", prop: "number", isClick: true }, // 鎶ヤ环鍗曞彿
-            { label: "閿�鍞礋璐d汉", prop: "member_name" } // 閿�鍞礋璐d汉
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "number", label: "鎶ヤ环鍗曞彿" }
       } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") {
+        this.tableColumn = [
+          { label: "鏈嶅姟鍗曠紪鍙�", prop: "serviceNumber", isClick: true, default: true }, // 鏈嶅姟鍗曠紪鍙�
+          { label: "涓婚", prop: "subject" }, // 涓婚
+          { label: "鏈嶅姟鏂瑰紡", prop: "serviceType_name" }, // 鏈嶅姟鏂瑰紡
+          { label: "鏈嶅姟浜哄憳", prop: "serviceMan_name" }, // 鏈嶅姟浜哄憳
+          { label: "浼樺厛绾у埆", prop: "priorityLevel_name" }, // 浼樺厛绾у埆
+          { label: "澶勭悊鐘舵��", prop: "serviceOrderStatus_name" }, // 澶勭悊鐘舵��
+          { label: "瀹㈡埛绛惧悕", prop: "qianming" } // 瀹㈡埛绛惧悕
+        ]
+        this.showCol = ["鏈嶅姟鍗曠紪鍙�", "涓婚", "鏈嶅姟鏂瑰紡", "鏈嶅姟浜哄憳", "浼樺厛绾у埆", "澶勭悊鐘舵��", "瀹㈡埛绛惧悕"]
         this.tableList = {
+          selectIndex: true,
           tableInfomation: [],
-          tableColumn: [
-            { label: "鏈嶅姟鍗曠紪鍙�", prop: "serviceNumber", isClick: true }, // 鏈嶅姟鍗曠紪鍙�
-            { label: "涓婚", prop: "subject" }, // 涓婚
-            { label: "鏈嶅姟鏂瑰紡", prop: "serviceType_name" }, // 鏈嶅姟鏂瑰紡
-            { label: "鏈嶅姟浜哄憳", prop: "serviceMan_name" }, // 鏈嶅姟浜哄憳
-            { label: "浼樺厛绾у埆", prop: "priorityLevel_name" }, // 浼樺厛绾у埆
-            { label: "澶勭悊鐘舵��", prop: "serviceOrderStatus_name" }, // 澶勭悊鐘舵��
-            { label: "瀹㈡埛绛惧悕", prop: "qianming" } // 瀹㈡埛绛惧悕
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "serviceNumber", label: "鏈嶅姟鍗曠紪鍙�" }
       } else if (this.editConfig.title === "浜у搧鍚嶇О") {
+        this.tableColumn = [
+          { label: "浜у搧鍚嶇О", prop: "name", isClick: this.editCommonConfig.isSelectBox ? false : true, default: true }, // 浜у搧鍚嶇О
+          { label: "浜у搧缂栧彿", prop: "number" },
+          { label: "閿�鍞崟浠�", prop: "price" },
+          { label: "鍗曚綅", prop: "unit" },
+          { label: "浜у搧瑙勬牸", prop: "specs" },
+          { label: "鍨嬪彿", prop: "type" }
+        ]
+        this.showCol = ["浜у搧鍚嶇О", "浜у搧缂栧彿", "閿�鍞崟浠�", "鍗曚綅", "浜у搧瑙勬牸", "鍨嬪彿"]
         this.tableList = {
+          selectIndex: true,
           tableInfomation: [],
-          tableColumn: [
-            { label: "浜у搧鍚嶇О", prop: "name", isClick: true },
-            { label: "浜у搧缂栧彿", prop: "number" }
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "name", label: "浜у搧鍚嶇О" }
       } else if (this.editConfig.title === "閿�鍞��璐у崟") {
+        this.tableColumn = [
+          { label: "閫�璐у崟缂栧彿", prop: "number", isClick: true, default: true }, // 閫�璐у崟缂栧彿
+          { label: "閫�璐ф棩鏈�", prop: "returnDate" },
+          { label: "鐘舵��", prop: "salesReturnStatus_name" },
+          { label: "閫�鍏ヤ粨搴�", prop: "repository" }
+        ]
+        this.showCol = ["閫�璐у崟缂栧彿", "閫�璐ф棩鏈�", "鐘舵��", "閫�鍏ヤ粨搴�"]
         this.tableList = {
+          selectIndex: true,
           tableInfomation: [],
-          tableColumn: [
-            { label: "閫�璐у崟缂栧彿", prop: "number", isClick: true },
-            { label: "閫�璐ф棩鏈�", prop: "returnDate" },
-            { label: "鐘舵��", prop: "salesReturnStatus_name" },
-            { label: "閫�鍏ヤ粨搴�", prop: "repository" }
-          ]
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
         }
         this.searchSel = { value: "number", label: "閿�鍞��璐у崟缂栧彿" }
+      } else if (this.editConfig.title === "閿�鍞瓙鍗�") {
+        this.tableColumn = [
+          { label: "鍗曟嵁缂栧彿", prop: "number", isClick: true, default: true }, // 鍗曟嵁缂栧彿
+          { label: "璐熻矗浜�", prop: "member_name" } // 璐熻矗浜�
+        ]
+        this.showCol = ["鍗曟嵁缂栧彿", "璐熻矗浜�"]
+        this.tableList = {
+          selectIndex: true,
+          tableInfomation: [],
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
+        }
+        this.searchSel = { value: "number", label: "鍗曟嵁缂栧彿" }
       }
       this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
       this.searchOptions = []
@@ -201,6 +282,14 @@
       this.showcol = val
       this.tableList.tableColumn = this.setColumnVisible(val)
     },
+    // 鍒楄〃澶氶��
+    getSelectArray(val) {
+      this.selectArray = val
+    },
+    saveClick() {
+      this.$emit("getSelectArray", this.selectArray)
+      this.editConfig.editVisible = false
+    },
     // 璇锋眰鏁版嵁
     async getData() {
       this.loading = true
@@ -218,6 +307,8 @@
         this.getProductList()
       } else if (this.editConfig.title === "閿�鍞��璐у崟") {
         this.getSalesReturnList()
+      } else if (this.editConfig.title === "閿�鍞瓙鍗�") {
+        this.getSubOrderList()
       }
     },
     // 閿�鍞�诲崟
@@ -249,8 +340,8 @@
       await getServiceContractList({
         keyword: this.keyword,
         keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).then((res) => {
         if (res.code === 200) {
           if (res.data.list && res.data.list.length > 0) {
@@ -262,7 +353,8 @@
                 serviceContractStatus: item.serviceContractStatus.name
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -272,20 +364,37 @@
     },
     // 鎶ヤ环鍗�
     async getQuotationList() {
+      if (!this.editConfig.isRequest) {
+        this.tableList.tableInfomation = this.editConfig.tableInfomation.map((item) => {
+          return {
+            ...item,
+            client_name: item.client.name,
+            sale_chance_name: item.sale_chance.name,
+            member_name: item.member.username,
+            quotationStatus: item.quotation_status.name
+          }
+        })
+        this.pagerOptions.totalCount = this.editConfig.count ? this.editConfig.count : 0
+        return true
+      }
       await getQuotationList({
         search_map: this.search_map,
-        page: 0,
-        pageSize: 0
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).then((res) => {
         if (res.code === 200) {
           if (res.data.list && res.data.list.length > 0) {
             const list = res.data.list.map((item) => {
               return {
                 ...item,
-                member_name: item.member.username
+                client_name: item.client.name,
+                sale_chance_name: item.sale_chance.name,
+                member_name: item.member.username,
+                quotationStatus: item.quotation_status.name
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -296,10 +405,9 @@
     // 閿�鍞槑缁嗗崟
     async getSalesDetailsList() {
       await getSalesDetailsList({
-        keyword: this.keyword,
-        keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
+        clientId: Number(this.editCommonConfig.clientId),
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).then((res) => {
         if (res.code === 200) {
           if (res.data.list && res.data.list.length > 0) {
@@ -310,7 +418,8 @@
                 member_name: item.Member.username
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -323,8 +432,8 @@
       await getServiceOrderList({
         keyword: this.keyword,
         keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).then((res) => {
         if (res.code === 200) {
           if (res.data.data && res.data.data.length > 0) {
@@ -340,7 +449,8 @@
                 serviceOrderStatus_name: item.ServiceOrderStatus_name
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -350,21 +460,27 @@
     },
     // 浜у搧鍚嶇О
     async getProductList() {
-      await getProductList({
+      let params = {
         productName: this.keywordType === "浜у搧鍚嶇О" ? this.keyword : "",
         productNumber: this.keywordType === "浜у搧缂栧彿" ? this.keyword : "",
-        page: 1,
-        pageSize: 5
-      }).then((res) => {
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      }
+      // 鏍规嵁鎶ヤ环鍗曟煡璇骇鍝�
+      if (this.quotationNumber) {
+        params.quotationNumber = this.quotationNumber
+      }
+      await getProductList(params).then((res) => {
         console.log(res.data)
-        if (res.data.code === 200) {
-          if (res.data.data.data && res.data.data.data.length > 0) {
-            const list = res.data.data.data.map((item) => {
+        if (res.code === 200) {
+          if (res.data.data && res.data.data.length > 0) {
+            const list = res.data.data.map((item) => {
               return {
                 ...item
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -374,10 +490,9 @@
     },
     async getSalesReturnList() {
       await getSalesReturnList({
-        keyword: this.keyword,
-        keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
+        clientId: Number(this.editCommonConfig.clientId),
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).then((res) => {
         if (res.code === 200) {
           if (res.data.list && res.data.list.length > 0) {
@@ -387,7 +502,32 @@
                 salesReturnStatus_name: item.SalesReturnStatus.name
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 閿�鍞瓙鍗�
+    async getSubOrderList() {
+      await getSubOrderList({
+        search_map: this.search_map,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      }).then((res) => {
+        if (res.code === 200) {
+          if (res.data.list && res.data.list.length > 0) {
+            const list = res.data.list.map((item) => {
+              return {
+                ...item,
+                member_name: item.member.username
+              }
+            })
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
           } else {
             this.tableList.tableInfomation = []
           }
@@ -399,6 +539,9 @@
       this.editConfig.editVisible = false
     },
     selNameClick(row) {
+      if (this.editCommonConfig.isSelectBox) {
+        return true
+      }
       this.editConfig.editVisible = false
       if (this.editConfig.title === "閿�鍞�诲崟") {
         this.$emit("selClient", row, "master")
@@ -414,6 +557,8 @@
         this.$emit("selClient", row, "productName")
       } else if (this.editConfig.title === "閿�鍞��璐у崟") {
         this.$emit("selClient", row, "salesReturn")
+      } else if (this.editConfig.title === "閿�鍞瓙鍗�") {
+        this.$emit("selClient", row, "subbill")
       }
     },
     // 鎼滅储
@@ -440,6 +585,9 @@
 <style lang="scss" scoped>
 .bg-view {
   margin: 10px;
+  .bg-list {
+    min-height: 370px;
+  }
   .query-bg {
     margin-left: -20px;
     margin-bottom: 10px;
@@ -451,6 +599,7 @@
         width: 100px;
       }
     }
+
     .btn {
       float: right;
     }

--
Gitblit v1.8.0