From b811e2fa4cdcb5949047faa78aa9299aec1d2f67 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期三, 27 三月 2024 15:08:45 +0800
Subject: [PATCH] 确认采购单接口换位post请求,产品列表字段替换

---
 src/views/other/commonDialog/SelectCommonDialog.vue |  348 +++++++++++++++++----------------------------------------
 1 files changed, 105 insertions(+), 243 deletions(-)

diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 3090ad6..74d664a 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -28,42 +28,68 @@
             <el-button type="primary" size="mini" disabled>蹇�熷垱寤�</el-button> -->
           </div>
         </div>
-        <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick">
+        <TableCommonView
+          class="bg-list"
+          ref="tableListRef"
+          :table-list="tableList"
+          :select-box="editCommonConfig.isSelectBox"
+          :selectBoxList="selectBoxList"
+          @selCommonClick="selNameClick"
+          @selTableCol="selTableCol"
+          @getSelectArray="getSelectArray"
+        >
         </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>
+      <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>
 </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 { getProductListFromGrpc, getProductList } from "@/api/productManage/product"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+
 export default {
   name: "EditSelCommonDialog",
+  mixins: [pageMixin],
   props: {
     editCommonConfig: {
       type: Object,
       default: () => {
         return {
           editVisible: false,
+          isSelectBox: false,
           title: "",
+          clientId: 0,
+          isRequest: true,
+          client_name: "",
           tableInfomation: []
         }
       }
+    },
+    sign: {
+      type: String,
+      default: ""
+    },
+    selectBoxList: {
+      type: Array,
+      default: () => []
     }
   },
   components: {},
   computed: {},
   data() {
     return {
-      dialogWidth: "50%",
+      dialogWidth: "40%",
       editConfig: this.editCommonConfig,
       queryInput: "",
       select: "鍏ㄩ儴瀛楁",
@@ -75,7 +101,19 @@
       search_map: {},
       searchSel: {},
       keyword: "",
-      keywordType: ""
+      keywordType: "",
+      showProductCol: ["浜у搧鍚嶇О", "浜у搧缂栧彿", "閿�鍞崟浠�", "鍗曚綅", "浜у搧瑙勬牸", "鍨嬪彿"],
+      tableProductColumn: [
+        { label: "浜у搧鍚嶇О", prop: "name", isClick: true },
+        { label: "浜у搧缂栧彿", prop: "number" },
+        { label: "閿�鍞崟浠�", prop: "purchasePrice" },
+        { label: "鍗曚綅", prop: "unit" },
+        { label: "浜у搧瑙勬牸", prop: "specifications" },
+        { label: "鍨嬪彿", prop: "modelNumber" }
+      ],
+      showCol: [],
+      tableColumn: [],
+      selectArray: []
     }
   },
   created() {
@@ -83,74 +121,30 @@
     this.getData()
   },
   methods: {
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
     setTable() {
-      if (this.editConfig.title === "閿�鍞�诲崟") {
-        this.tableList = {
-          tableInfomation: [],
-          tableColumn: [
-            { label: "鍗曟嵁缂栧彿", prop: "number", isClick: true }, // 鍗曟嵁缂栧彿
-            { label: "璐熻矗浜�", prop: "member_name" } // 璐熻矗浜�
-          ]
-        }
-        this.searchSel = { value: "number", label: "鍗曟嵁缂栧彿" }
-      } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") {
-        this.tableList = {
-          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" } // 鍚堝悓鐘舵��
-          ]
-        }
-        this.searchSel = { value: "number", label: "鏈嶅姟鍚堝悓缂栧彿" }
-      } else if (this.editConfig.title === "閿�鍞槑缁嗗崟") {
-        this.tableList = {
-          tableInfomation: [],
-          tableColumn: [
-            { label: "瀹㈡埛鍚嶇О", prop: "client_name" }, // 瀹㈡埛鍚嶇О
-            { label: "璁㈠崟缂栧彿", prop: "number", isClick: true }, // 璁㈠崟缂栧彿
-            { label: "绛剧害鏃ユ湡", prop: "signTime" }, // 绛剧害鏃ユ湡
-            { label: "閿�鍞礋璐d汉", prop: "member_name" }, // 閿�鍞礋璐d汉
-            { label: "鍚堣", prop: "tptal" } // 鍚堣
-          ]
-        }
-        this.searchSel = { value: "number", label: "璁㈠崟缂栧彿" }
-      } else if (this.editConfig.title === "鎶ヤ环鍗�") {
-        this.tableList = {
-          tableInfomation: [],
-          tableColumn: [
-            { label: "鎶ヤ环鍗曞彿", prop: "number", isClick: true }, // 鎶ヤ环鍗曞彿
-            { label: "閿�鍞礋璐d汉", prop: "member_name" } // 閿�鍞礋璐d汉
-          ]
-        }
-        this.searchSel = { value: "number", label: "鎶ヤ环鍗曞彿" }
-      } else if (this.editConfig.title === "瀹㈡埛鏈嶅姟鍗�") {
-        this.tableList = {
-          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" } // 瀹㈡埛绛惧悕
-          ]
-        }
-        this.searchSel = { value: "serviceNumber", label: "鏈嶅姟鍗曠紪鍙�" }
-      } else if (this.editConfig.title === "浜у搧鍚嶇О") {
-        this.tableList = {
-          tableInfomation: [],
-          tableColumn: [
-            { label: "浜у搧鍚嶇О", prop: "name", isClick: true },
-            { label: "浜у搧缂栧彿", prop: "number" }
-          ]
-        }
-        this.searchSel = { value: "name", label: "浜у搧鍚嶇О" }
+      if (this.editConfig.title === "浜у搧鍚嶇О") {
+        this.showCol = this.showProductCol
+        this.tableColumn = this.tableProductColumn
       }
+      this.tableList = {
+        tableInfomation: [],
+        selectIndex: true,
+        highlight: true,
+        ref: "tableListRef",
+        showcol: this.showCol,
+        allcol: [],
+        tableColumn: this.setColumnVisible(this.showCol)
+      }
+      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
@@ -158,167 +152,42 @@
         this.searchOptions.push({ value: value, label: label })
       }
     },
+    selTableCol(val) {
+      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
-      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 === "浜у搧鍚嶇О") {
+      if (this.editConfig.title === "浜у搧鍚嶇О") {
         this.getProductList()
       }
     },
-    // 閿�鍞�诲崟
-    async getMasterOrderList() {
-      await getMasterOrderList({
-        search_map: this.search_map,
-        page: 0,
-        pageSize: 0
-      }).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.slice(0, 5) || []
-          } else {
-            this.tableList.tableInfomation = []
-          }
-        }
-        this.loading = false
-      })
-    },
-    // 鏈嶅姟鍚堝悓
-    async getServiceContractList() {
-      await getServiceContractList({
-        keyword: this.keyword,
-        keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
-      }).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.slice(0, 5) || []
-          } else {
-            this.tableList.tableInfomation = []
-          }
-        }
-        this.loading = false
-      })
-    },
-    // 鎶ヤ环鍗�
-    async getQuotationList() {
-      await getQuotationList({
-        search_map: this.search_map,
-        page: 0,
-        pageSize: 0
-      }).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.slice(0, 5) || []
-          } else {
-            this.tableList.tableInfomation = []
-          }
-        }
-        this.loading = false
-      })
-    },
-    // 閿�鍞槑缁嗗崟
-    async getSalesDetailsList() {
-      await getSalesDetailsList({
-        keyword: this.keyword,
-        keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
-      }).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.slice(0, 5) || []
-          } else {
-            this.tableList.tableInfomation = []
-          }
-        }
-        this.loading = false
-      })
-    },
-    // 瀹㈡埛鏈嶅姟鍗�
-    async getServiceOrderList() {
-      await getServiceOrderList({
-        keyword: this.keyword,
-        keywordType: this.keywordType,
-        page: 0,
-        pageSize: 0
-      }).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.slice(0, 5) || []
-          } else {
-            this.tableList.tableInfomation = []
-          }
-        }
-        this.loading = false
-      })
-    },
     // 浜у搧鍚嶇О
     async getProductList() {
-      await getProductList({
-        productName: this.keywordType === "浜у搧鍚嶇О" ? this.keyword : "",
-        productNumber: this.keywordType === "浜у搧缂栧彿" ? this.keyword : "",
-        page: 1,
-        pageSize: 5
+      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc
+      await fn({
+        keyword: this.keyword,
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       }).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.list && res.data.list.length > 0) {
+            const list = res.data.list.map((item) => {
               return {
                 ...item
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list
+            this.pagerOptions.totalCount = res.data.total
           } else {
             this.tableList.tableInfomation = []
           }
@@ -331,28 +200,14 @@
     },
     selNameClick(row) {
       this.editConfig.editVisible = false
-      if (this.editConfig.title === "閿�鍞�诲崟") {
-        this.$emit("selClient", row, "master")
-      } else if (this.editConfig.title === "鏈嶅姟鍚堝悓") {
-        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 === "浜у搧鍚嶇О") {
+      if (this.editConfig.title === "浜у搧鍚嶇О") {
         this.$emit("selClient", row, "productName")
       }
     },
     // 鎼滅储
-    searchClick(val, content) {
-      console.log(val, content)
-      this.search_map = {
-        [val.value]: content
-      }
+    searchClick(content) {
+      console.log(content)
       this.keyword = content
-      this.keywordType = val.label
       this.getData()
     },
     resetClick() {
@@ -390,9 +245,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