From 05b72b58002a8733b8b31825ea5edabe7e279283 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期五, 22 三月 2024 18:56:14 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/web/WMS

---
 src/views/other/commonDialog/SelectCommonDialog.vue |  212 +++++++++++++++++++++++++++++++++--------------------
 1 files changed, 132 insertions(+), 80 deletions(-)

diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 2b0b915..2385fe8 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -1,80 +1,93 @@
 <template>
   <div class="edit-selClient-box">
     <el-dialog
-      :title="editCommonConfig.title"
       :visible.sync="editConfig.editVisible"
       :width="dialogWidth"
       :before-close="handleClose"
       :append-to-body="true"
       :close-on-click-modal="false"
     >
+      <div slot="title" class="tac drawerHeader">{{ editCommonConfig.title }}</div>
+
       <div class="bg-view">
         <div class="query-bg">
-          <!-- <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> -->
-          <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> -->
-          </div>
+          <el-input
+            v-model="bomParams.keyword"
+            placeholder="鎼滅储浜у搧鍚嶇О锛岀紪鐮佺瓑鍏抽敭璇�"
+            style="width: 60%; margin-right: 10px"
+          ></el-input>
+          <el-button type="primary" @click="searchClick">鏌ヨ</el-button>
         </div>
-        <TableCommonView ref="tableListRef" :table-list="tableList" :select-box="false" @selCommonClick="selNameClick">
+        <TableCommonView
+          class="bg-list"
+          ref="tableListRef"
+          :loading="loading"
+          :table-list="tableList"
+          :select-box="editCommonConfig.isSelectBox"
+          @selCommonClick="selNameClick"
+          @selTableCol="selTableCol"
+          @getSelectArray="getSelectArray"
+        >
         </TableCommonView>
         <div slot="footer" class="dialog-footer">
-          <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div>
+          <div class="btn-pager">
+            <PagerView
+              class="page"
+              :pager-options="pagerOptions"
+              :pagerCount="pagerCount"
+              layout="total, sizes, prev, pager, next"
+              v-on="pagerEvents"
+            />
+          </div>
         </div>
+      </div>
+      <div slot="footer" class="dialog-footer" v-if="editCommonConfig.isSelectBox">
+        <el-button type="primary" @click="saveClick()">纭畾</el-button>
+        <el-button @click="editConfig.editVisible = false">鍙栨秷</el-button>
       </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-// import { getProductListFromGrpc,getProductList } from "@/api/productManage/product"
+import { getProductList } from "@/api/product/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: ""
     }
   },
   components: {},
   computed: {},
   data() {
     return {
-      dialogWidth: "50%",
+      dialogWidth: "42rem",
+      pagerCount: 5,
       editConfig: this.editCommonConfig,
-      queryInput: "",
-      select: "鍏ㄩ儴瀛楁",
-      tableData: [],
-      searchSelOptions: [],
       loading: false,
       tableList: {},
-      searchOptions: [],
-      search_map: {},
-      searchSel: {},
-      keyword: "",
-      keywordType: ""
+      showcolTop: ["浜у搧瑙勬牸", "浜у搧鍨嬪彿"],
+      selectArray: [],
+      bomParams: {
+        keyword: "",
+        page: 1,
+        pageSize: 10,
+        types: ["鍘熸潗鏂�", "鍗婃垚鍝�", "鎴愬搧"]
+      }
     }
   },
   created() {
@@ -83,22 +96,66 @@
   },
   methods: {
     setTable() {
-      if (this.editConfig.title === "浜у搧鍚嶇О") {
-        this.tableList = {
-          tableInfomation: [],
-          tableColumn: [
-            { label: "浜у搧鍚嶇О", prop: "name", isClick: true },
-            { label: "浜у搧缂栧彿", prop: "number" }
-          ]
-        }
-        this.searchSel = { value: "name", label: "浜у搧鍚嶇О" }
+      this.tableList = {
+        tableInfomation: [],
+        selectIndex: false,
+        selectBox: this.editCommonConfig.isSelectBox,
+        showcol: this.showcolTop,
+        allcol: [],
+        tableColumn: this.setTopTableColumn(this.showcolTop)
       }
-      this.searchOptions = []
+      let allcol = []
       for (let i = 0; i < this.tableList.tableColumn.length; i++) {
-        const label = this.tableList.tableColumn[i].label
-        const value = this.tableList.tableColumn[i].prop
-        this.searchOptions.push({ value: value, label: label })
+        if (!this.tableList.tableColumn[i].default) {
+          const label = this.tableList.tableColumn[i].label
+          allcol.push(label)
+        }
       }
+      this.tableList.allcol = allcol
+    },
+    setTopTableColumn(showcol) {
+      let tableColumn = [
+        {
+          label: "浜у搧鍚嶇О",
+          prop: "name",
+          isShowColumn: true,
+          default: true,
+          isClick: true
+        },
+        {
+          label: "浜у搧缂栫爜",
+          prop: "id",
+          min: 110,
+          isShowColumn: true,
+          default: true
+        },
+        {
+          label: "浜у搧瑙勬牸",
+          prop: "specs",
+          isShowColumn: showcol.includes("浜у搧瑙勬牸"),
+          default: false
+        },
+        {
+          label: "浜у搧鍨嬪彿",
+          prop: "type",
+          width: 90,
+          isShowColumn: showcol.includes("浜у搧鍨嬪彿"),
+          default: false
+        }
+      ]
+      return tableColumn
+    },
+    selTableCol(val) {
+      this.showcolTop = val
+      this.tableList.tableColumn = this.setTopTableColumn(val)
+    },
+    // 鍒楄〃澶氶��
+    getSelectArray(val) {
+      this.selectArray = val
+    },
+    saveClick() {
+      this.$emit("getSelectArray", this.selectArray)
+      this.editConfig.editVisible = false
     },
     // 璇锋眰鏁版嵁
     async getData() {
@@ -109,21 +166,15 @@
     },
     // 浜у搧鍚嶇О
     async getProductList() {
-      // let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc;
-      let fn
-      await fn({
-        page: 1,
-        pageSize: 100
-      }).then((res) => {
+      this.bomParams.page = this.pagerOptions.currPage ? this.pagerOptions.currPage : 1
+      this.bomParams.pageSize = this.pagerOptions.pageSize ? this.pagerOptions.pageSize : 15
+      let params = JSON.parse(JSON.stringify(this.bomParams))
+      await getProductList(params).then((res) => {
         console.log(res.data)
-        if (res.data.code === 200) {
-          if (res.data.data.list && res.data.data.list.length > 0) {
-            const list = res.data.data.list.map((item) => {
-              return {
-                ...item
-              }
-            })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+        if (res.code === 200) {
+          if (res.data) {
+            this.tableList.tableInfomation = res.data || []
+            this.pagerOptions.totalCount = res.total ? res.total : 0
           } else {
             this.tableList.tableInfomation = []
           }
@@ -135,25 +186,22 @@
       this.editConfig.editVisible = false
     },
     selNameClick(row) {
+      if (this.editCommonConfig.isSelectBox) {
+        return true
+      }
       this.editConfig.editVisible = false
       if (this.editConfig.title === "浜у搧鍚嶇О") {
         this.$emit("selClient", row, "productName")
       }
     },
     // 鎼滅储
-    searchClick(val, content) {
-      console.log(val, content)
-      this.search_map = {
-        [val.value]: content
-      }
-      this.keyword = content
-      this.keywordType = val.label
+    searchClick() {
+      this.bomParams.page = 1
+      this.total = 0
       this.getData()
     },
     resetClick() {
-      this.search_map = {}
       this.keyword = ""
-      this.keywordType = ""
       this.getData()
     }
   }
@@ -163,18 +211,18 @@
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
 .bg-view {
-  margin: 10px;
+  .bg-list {
+    height: 370px;
+  }
   .query-bg {
-    margin-left: -20px;
     margin-bottom: 10px;
-    display: flex;
-    justify-content: space-between;
     .el-input {
       width: 310px;
       .el-select {
         width: 100px;
       }
     }
+
     .btn {
       float: right;
     }
@@ -185,13 +233,17 @@
   cursor: pointer;
 }
 .dialog-footer {
-  height: 40px;
-  line-height: 40px;
-  color: red;
+  .btn-pager {
+    display: flex;
+    margin-top: 0px;
+    .page {
+      margin-left: auto;
+    }
+  }
 }
 ::v-deep {
-  .input-with-select .el-input-group__prepend {
-    background-color: #fff;
+  .el-dialog__body {
+    padding-bottom: 10px !important;
   }
 }
 </style>

--
Gitblit v1.8.0