From 61883fcf237024ceb7622daf5b23434e3eb1be74 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期一, 16 十月 2023 10:38:50 +0800
Subject: [PATCH] 产品获取值修改

---
 src/views/other/commonDialog/SelectCommonDialog.vue |  432 +++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 397 insertions(+), 35 deletions(-)

diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 8e42445..4ea3c14 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -10,21 +10,37 @@
     >
       <div class="bg-view">
         <div class="query-bg">
-          <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="queryInput" size="mini" class="input-with-select">
+          <!-- <el-input placeholder="璇疯緭鍏ュ唴瀹�" v-model="queryInput" size="mini" class="input-with-select">
             <el-select v-model="select" slot="prepend" placeholder="璇烽�夋嫨">
               <el-option v-for="item in commonOptions" :key="item.id" :label="item.name" :value="item.name">
               </el-option>
             </el-select>
-          </el-input>
+          </el-input> -->
+          <SearchCommonView
+            ref="searchCommonView"
+            :search-options="searchOptions"
+            @searchClick="searchClick"
+            @resetClick="resetClick"
+            :search-sel="searchSel"
+          />
           <div class="btn">
-            <el-button type="primary" size="mini" disabled>璁剧疆瀛楁</el-button>
-            <el-button type="primary" size="mini" disabled>蹇�熷垱寤�</el-button>
+            <!-- <el-button type="primary" size="mini" disabled>璁剧疆瀛楁</el-button>
+            <el-button type="primary" size="mini" disabled>蹇�熷垱寤�</el-button> -->
           </div>
         </div>
-        <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick">
+        <TableCommonView
+          ref="tableListRef"
+          :table-list="tableList"
+          :select-box="false"
+          @selCommonClick="selNameClick"
+          @selTableCol="selTableCol"
+        >
         </TableCommonView>
         <div slot="footer" class="dialog-footer">
-          <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div>
+          <!-- <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div> -->
+          <div class="btn-pager">
+            <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+          </div>
         </div>
       </div>
     </el-dialog>
@@ -32,8 +48,17 @@
 </template>
 
 <script>
+import { getMasterOrderList } from "@/api/sales/masterOrder"
+import { getQuotationList } from "@/api/sales/quotation"
+import { getSalesDetailsList } from "@/api/sales/salesDetails"
+import { getServiceContractList } from "@/api/serviceManage/serviceContract"
+import { getServiceOrderList } from "@/api/serviceManage/clientServiceOrder"
+import { getProductList } from "@/api/common/other"
+import { getSalesReturnList } from "@/api/sales/salesReturn"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
 export default {
   name: "EditSelCommonDialog",
+  mixins: [pageMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -41,6 +66,7 @@
         return {
           editVisible: false,
           title: "",
+          clientId: 0,
           tableInfomation: []
         }
       }
@@ -58,52 +84,356 @@
       searchSelOptions: [],
       loading: false,
       tableList: {},
-      commonOptions: []
+      searchOptions: [],
+      search_map: {},
+      searchSel: {},
+      keyword: "",
+      keywordType: "",
+      tableColumn: [],
+      showCol: []
     }
   },
   created() {
+    this.search_map = {
+      client_id: this.editConfig.clientId
+    }
     this.setTable()
+    this.getData()
   },
   methods: {
     setTable() {
       if (this.editConfig.title === "閿�鍞�诲崟") {
+        this.tableColumn = [
+          { label: "鍗曟嵁缂栧彿", prop: "number", isClick: true, default: true }, // 鍗曟嵁缂栧彿
+          { label: "璐熻矗浜�", prop: "member_name" } // 璐熻矗浜�
+        ]
+        this.showCol = ["鍗曟嵁缂栧彿", "璐熻矗浜�"]
         this.tableList = {
-          tableInfomation: this.editConfig.tableInfomation,
-          tableColumn: [
-            { label: "鍗曟嵁缂栧彿", prop: "number", isClick: true }, // 鍗曟嵁缂栧彿
-            { label: "璐熻矗浜�", prop: "member_id" } // 璐熻矗浜�
-          ]
+          selectIndex: true,
+          tableInfomation: [],
+          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: "member_name" }, // 璐熻矗浜�
+          { label: "鍚堣", prop: "total" }, // 鍚堣
+          { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true }, // 绛剧害鏃ユ湡
+          { label: "鍚堝悓鐘舵��", prop: "serviceContractStatus" } // 鍚堝悓鐘舵��
+        ]
+        this.showCol = ["瀹㈡埛鍚嶇О", "鏈嶅姟鍚堝悓缂栧彿", "璐熻矗浜�", "鍚堣", "绛剧害鏃ユ湡", "鍚堝悓鐘舵��"]
         this.tableList = {
-          tableInfomation: this.editConfig.tableInfomation,
-          tableColumn: [
-            { label: "瀹㈡埛鍚嶇О", prop: "clientId" }, // 瀹㈡埛鍚嶇О
-            { label: "鏈嶅姟鍚堝悓缂栧彿", prop: "number", isClick: true }, // 鏈嶅姟鍚堝悓缂栧彿
-            { label: "璐熻矗浜�", prop: "memberId" }, // 璐熻矗浜�
-            { label: "鍚堣", prop: "total" }, // 鍚堣
-            { label: "绛剧害鏃ユ湡", prop: "signTime", isTime: true }, // 绛剧害鏃ユ湡
-            { label: "鍚堝悓鐘舵��", prop: "serviceContractStatusId" } // 鍚堝悓鐘舵��
-          ]
+          selectIndex: true,
+          tableInfomation: [],
+          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 = {
-          tableInfomation: this.editConfig.tableInfomation,
-          tableColumn: [
-            { label: "瀹㈡埛鍚嶇О", prop: "clientId" }, // 瀹㈡埛鍚嶇О
-            { label: "璁㈠崟缂栧彿", prop: "number", isClick: true }, // 璁㈠崟缂栧彿
-            { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡
-            { label: "閿�鍞礋璐d汉", prop: "memberId" }, // 閿�鍞礋璐d汉
-            { label: "鍚堣", prop: "tptal" } // 鍚堣
-          ]
+          selectIndex: true,
+          tableInfomation: [],
+          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: "閿�鍞礋璐d汉", prop: "member_name" } // 閿�鍞礋璐d汉
+        ]
+        this.showCol = ["鎶ヤ环鍗曞彿", "閿�鍞礋璐d汉"]
+        this.tableList = {
+          selectIndex: true,
+          tableInfomation: [],
+          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: [],
+          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: true, default: true }, // 浜у搧鍚嶇О
+          { label: "浜у搧缂栧彿", prop: "number" }
+        ]
+        this.showCol = ["浜у搧鍚嶇О", "浜у搧缂栧彿"]
+        this.tableList = {
+          selectIndex: true,
+          tableInfomation: [],
+          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: [],
+          allcol: [],
+          showcol: this.showCol,
+          tableColumn: this.setColumnVisible(this.showCol)
+        }
+        this.searchSel = { value: "number", label: "閿�鍞��璐у崟缂栧彿" }
       }
-
-      this.commonOptions = [{ id: 1, name: "鍏ㄩ儴瀛楁" }]
-      for (let i = 1; i < this.tableList.tableColumn.length; i++) {
+      this.tableList.allcol = this.tableList.tableColumn.filter((ele) => !ele.default).map((ele) => ele.label)
+      this.searchOptions = []
+      for (let i = 0; i < this.tableList.tableColumn.length; i++) {
         const label = this.tableList.tableColumn[i].label
-        this.commonOptions.push({ id: (i + 1).toString(), name: label })
+        const value = this.tableList.tableColumn[i].prop
+        this.searchOptions.push({ value: value, label: label })
       }
+    },
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
+    },
+    // 璇锋眰鏁版嵁
+    async getData() {
+      this.loading = true
+      if (this.editConfig.title === "閿�鍞�诲崟") {
+        this.getMasterOrderList()
+      } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") {
+        this.getServiceContractList()
+      } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") {
+        this.getSalesDetailsList()
+      } else if (this.editConfig.title === "鎶ヤ环鍗�") {
+        this.getQuotationList()
+      } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") {
+        this.getServiceOrderList()
+      } else if (this.editConfig.title === "浜у搧鍚嶇О") {
+        this.getProductList()
+      } else if (this.editConfig.title === "閿�鍞��璐у崟") {
+        this.getSalesReturnList()
+      }
+    },
+    // 閿�鍞�诲崟
+    async getMasterOrderList() {
+      await getMasterOrderList({
+        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 = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 鏈嶅姟鍚堝悓
+    async getServiceContractList() {
+      await getServiceContractList({
+        keyword: this.keyword,
+        keywordType: this.keywordType,
+        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,
+                client_name: item.client.name,
+                member_name: item.member.username,
+                serviceContractStatus: item.serviceContractStatus.name
+              }
+            })
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 鎶ヤ环鍗�
+    async getQuotationList() {
+      await getQuotationList({
+        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 = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 閿�鍞槑缁嗗崟
+    async getSalesDetailsList() {
+      await getSalesDetailsList({
+        keyword: this.keyword,
+        keywordType: this.keywordType,
+        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,
+                client_name: item.client.name,
+                member_name: item.Member.username
+              }
+            })
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 瀹㈡埛鏈嶅姟鍗�
+    async getServiceOrderList() {
+      await getServiceOrderList({
+        keyword: this.keyword,
+        keywordType: this.keywordType,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      }).then((res) => {
+        if (res.code === 200) {
+          if (res.data.data && res.data.data.length > 0) {
+            const list = res.data.data.map((item) => {
+              return {
+                ...item,
+                client_name: item.Client.name,
+                serviceType_name: item.ServiceType.name,
+                faultType_name: item.FaultType.name,
+                serviceContract_Number: item.ServiceContract.number,
+                serviceMan_name: item.serviceMan.username,
+                priorityLevel_name: item.PriorityLevel.name,
+                serviceOrderStatus_name: item.ServiceOrderStatus_name
+              }
+            })
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    // 浜у搧鍚嶇О
+    async getProductList() {
+      await getProductList({
+        productName: this.keywordType === "浜у搧鍚嶇О" ? this.keyword : "",
+        productNumber: this.keywordType === "浜у搧缂栧彿" ? this.keyword : "",
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
+      }).then((res) => {
+        console.log(res.data)
+        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 || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
+    },
+    async getSalesReturnList() {
+      await getSalesReturnList({
+        keyword: this.keyword,
+        keywordType: this.keywordType,
+        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,
+                salesReturnStatus_name: item.SalesReturnStatus.name
+              }
+            })
+            this.tableList.tableInfomation = list || []
+            this.pagerOptions.totalCount = res.data.count
+          } else {
+            this.tableList.tableInfomation = []
+          }
+        }
+        this.loading = false
+      })
     },
     handleClose() {
       this.editConfig.editVisible = false
@@ -116,7 +446,31 @@
         this.$emit("selClient", row, "serviceContract")
       } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") {
         this.$emit("selClient", row, "contract")
+      } else if (this.editConfig.title === "鎶ヤ环鍗�") {
+        this.$emit("selClient", row, "quotation")
+      } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") {
+        this.$emit("selClient", row, "customService")
+      } else if (this.editConfig.title === "浜у搧鍚嶇О") {
+        this.$emit("selClient", row, "productName")
+      } else if (this.editConfig.title === "閿�鍞��璐у崟") {
+        this.$emit("selClient", row, "salesReturn")
       }
+    },
+    // 鎼滅储
+    searchClick(val, content) {
+      console.log(val, content)
+      this.search_map = {
+        [val.value]: content
+      }
+      this.keyword = content
+      this.keywordType = val.label
+      this.getData()
+    },
+    resetClick() {
+      this.search_map = {}
+      this.keyword = ""
+      this.keywordType = ""
+      this.getData()
     }
   }
 }
@@ -127,6 +481,7 @@
 .bg-view {
   margin: 10px;
   .query-bg {
+    margin-left: -20px;
     margin-bottom: 10px;
     display: flex;
     justify-content: space-between;
@@ -146,9 +501,16 @@
   cursor: pointer;
 }
 .dialog-footer {
-  height: 40px;
-  line-height: 40px;
+  height: 50px;
+  line-height: 50px;
   color: red;
+  .btn-pager {
+    display: flex;
+    margin-top: 0px;
+    .page {
+      margin-left: auto;
+    }
+  }
 }
 ::v-deep {
   .input-with-select .el-input-group__prepend {

--
Gitblit v1.8.0