From a6649a3319e9f5e9260848872d8cddabfcfc7553 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 15 十一月 2023 10:42:55 +0800
Subject: [PATCH] Merge branch 'master' of ssh://192.168.5.5:29418/web/SRM

---
 src/views/supplierManage/supplier/index.vue                           |  195 ++++++----
 src/views/productManage/product/index.vue                             |   46 -
 src/views/supplierManage/supplier/AddSupplier.vue                     |   11 
 src/store/index.js                                                    |    2 
 src/views/purchaseManage/purchase/components/AddPurchase.vue          |   10 
 src/assets/img/shoucangfill.png                                       |    0 
 src/views/purchaseManage/purchase/index.vue                           |   20 +
 src/components/makepager/CommonSearch.vue                             |  160 +++----
 src/views/other/commonDialog/SelectCommonDialog.vue                   |  101 ++++-
 src/api/supplierManage/supplier.js                                    |   36 +
 src/assets/style/reset-element.scss                                   |    7 
 src/components/makepager/TableCommonView.vue                          |   68 +-
 /dev/null                                                             |  216 ------------
 src/assets/style/index.scss                                           |    2 
 src/store/modules/getSupplierName.js                                  |   25 +
 src/views/supplierManage/supplier/AddNewProduct.vue                   |   22 
 src/assets/img/shaixuan.png                                           |    0 
 src/assets/img/xiazai.png                                             |    0 
 src/views/productManage/product/DetailProduct.vue                     |    1 
 package.json                                                          |    2 
 src/components/layout/components/appsidebar/index.vue                 |    4 
 src/views/other/commonDialog/EditDropdownDialog.vue                   |    2 
 src/views/supplierManage/supplier/RaleteSupplierList.vue              |   46 ++
 src/views/purchaseManage/purchase/components/SelectSupplierDialog.vue |   75 +++-
 24 files changed, 504 insertions(+), 547 deletions(-)

diff --git a/package.json b/package.json
index 6c8db69..8295bc6 100644
--- a/package.json
+++ b/package.json
@@ -3,7 +3,7 @@
   "version": "0.1.0",
   "private": true,
   "scripts": {
-    "serve": "vue-cli-service serve",
+    "serve": "vue-cli-service serve --open",
     "build": "vue-cli-service build",
     "lint": "vue-cli-service lint"
   },
diff --git a/src/api/supplierManage/supplier.js b/src/api/supplierManage/supplier.js
index 94cad95..ca6d89a 100644
--- a/src/api/supplierManage/supplier.js
+++ b/src/api/supplierManage/supplier.js
@@ -2,8 +2,10 @@
 import axios from "axios"
 
 // 鏈嶅姟鍟嗗垪琛�
-export const getSupplierList = async (data) => {
-  return await axios.get(`/api/s/getSupplierList`, {
+export function getSupplierList(data) {
+  return request({
+    url: "/api/s/getSupplierList",
+    method: "get",
     params: data
   })
 }
@@ -40,8 +42,10 @@
   })
 }
 // 鐢╥d鏌ヨ鏈嶅姟鍟�
-export const findSupplier = async (data) => {
-  return await axios.get(`/api/s/findSupplier`, {
+export function findSupplier(data) {
+  return request({
+    url: "/api/s/findSupplier",
+    method: "get",
     params: data
   })
 }
@@ -55,8 +59,10 @@
   })
 }
 // 鏈嶅姟鍟嗙被鍨嬪垪琛�
-export const getSupplierTypeList = async (data) => {
-  return await axios.get(`/api/st/getSupplierTypeList`, {
+export function getSupplierTypeList(data) {
+  return request({
+    url: "/api/st/getSupplierTypeList",
+    method: "get",
     params: data
   })
 }
@@ -76,14 +82,18 @@
   })
 }
 // 棰勮鍚堝悓
-export const previewContract = async (data) => {
-  return await axios.get(`/api/con/previewContract`, {
+export function previewContract(data) {
+  return request({
+    url: "/api/con/previewContract",
+    method: "get",
     params: data
   })
 }
 // 涓嬭浇鍚堝悓
-export const downloadContract = async (data) => {
-  return await axios.get(`/api/con/downloadContract`, {
+export function downloadContract(data) {
+  return request({
+    url: "/api/con/downloadContract",
+    method: "get",
     params: data
   })
 }
@@ -97,8 +107,10 @@
   })
 }
 // 鎵�灞炶涓氬垪琛�
-export const getIndustryList = async (data) => {
-  return await axios.get(`/api/i/getIndustryList`, {
+export function getIndustryList(data) {
+  return request({
+    url: "/api/i/getIndustryList",
+    method: "get",
     params: data
   })
 }
diff --git a/src/assets/img/shaixuan.png b/src/assets/img/shaixuan.png
new file mode 100644
index 0000000..ab3dd53
--- /dev/null
+++ b/src/assets/img/shaixuan.png
Binary files differ
diff --git a/src/assets/img/shoucangfill.png b/src/assets/img/shoucangfill.png
new file mode 100644
index 0000000..8ac3848
--- /dev/null
+++ b/src/assets/img/shoucangfill.png
Binary files differ
diff --git a/src/assets/img/xiazai.png b/src/assets/img/xiazai.png
new file mode 100644
index 0000000..8dd6e61
--- /dev/null
+++ b/src/assets/img/xiazai.png
Binary files differ
diff --git a/src/assets/style/index.scss b/src/assets/style/index.scss
index 89fe4ef..44f2fe4 100644
--- a/src/assets/style/index.scss
+++ b/src/assets/style/index.scss
@@ -136,7 +136,7 @@
   }
 }
 
-.border_radius_12{
+.border_radius_12 {
   border-radius: 12px;
 }
 
diff --git a/src/assets/style/reset-element.scss b/src/assets/style/reset-element.scss
index 142ecc7..0fae205 100644
--- a/src/assets/style/reset-element.scss
+++ b/src/assets/style/reset-element.scss
@@ -25,3 +25,10 @@
     padding: 0;
   }
 }
+.el-drawer__wrapper {
+  z-index: 9999 !important;
+}
+// 棰滆壊
+.el-table .onSelect {
+  background: #ebf2ff;
+}
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index 4aaecf5..96653ac 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -29,9 +29,9 @@
             <span>閲囪喘绠$悊</span>
           </template>
           <el-menu-item index="/purchaseManage/purchase">閲囪喘璁㈠崟</el-menu-item>
-          <el-menu-item index="/purchaseManage/quality">閲囪喘璐ㄦ鍗�</el-menu-item>
+          <!-- <el-menu-item index="/purchaseManage/quality">閲囪喘璐ㄦ鍗�</el-menu-item> -->
           <!-- <el-menu-item index="/purchaseManage/warehouse">閲囪喘鍏ュ簱鍗�</el-menu-item> -->
-          <el-menu-item index="/purchaseManage/returned">閲囪喘閫�璐у崟</el-menu-item>
+          <!-- <el-menu-item index="/purchaseManage/returned">閲囪喘閫�璐у崟</el-menu-item> -->
         </el-submenu>
         <el-submenu index="3">
           <template slot="title">
diff --git a/src/components/makepager/CommonSearch.vue b/src/components/makepager/CommonSearch.vue
index 7e83725..f61df8c 100644
--- a/src/components/makepager/CommonSearch.vue
+++ b/src/components/makepager/CommonSearch.vue
@@ -2,29 +2,24 @@
   <div class="search-list">
     <div class="search-top">
       <div class="left">
-        <el-button v-if="showAdd" type="primary" size="mini" @click="addBtn">{{
-            addTitle
-          }}</el-button>
-        <div
-            class="download"
-            v-if="showDownload"
-            @click="downloadClick"
-            :style="{ cursor: showDownload ? 'pointer' : 'no-drop' }"
-        >
-          <img
-              src="../../../public/images/download.png"
-              style="width: 13px"
-              alt="涓嬭浇"
-          />
-        </div>
+        <el-button v-if="showAdd" type="primary" size="mini" @click="addBtn">
+          <div style="display: flex">
+            <slot name="buttonIcon" />
+            <span style="margin-top: 1px; line-height: 15px">{{ addTitle }}</span>
+          </div>
+        </el-button>
         <slot name="leftButton" />
+        <div
+          v-if="showDownload"
+          class="download"
+          @click="downloadClick"
+          :style="{ cursor: showDownload ? 'pointer' : 'no-drop' }"
+        >
+          <img src="@/assets/img/xiazai.png" style="width: 13px" />
+        </div>
       </div>
       <div v-if="amountView" class="amount">
-        <div
-            v-if="twoTotalAmount"
-            class="top_left"
-            style="width: 8%; border: 0"
-        >
+        <div v-if="twoTotalAmount" class="top_left" style="width: 8%; border: 0px">
           <dl>
             <dd class="font_weight">{{ twoObject.value }}</dd>
             <dd class="top_right_bottom">{{ twoObject.label }}</dd>
@@ -37,16 +32,12 @@
           </dl>
         </div>
         <div class="top_right" style="width: 50%; margin-right: 15px">
-          <dl v-for="item in otherOptions" :key="item.label">
+          <dl v-for="item in otherOptions" :key="item.value">
             <dd class="font_weight">
               {{ item.value }}
             </dd>
             <dd class="top_right_bottom">
-              <span
-                  v-if="item.status"
-                  class="Badge"
-                  :class="item.status"
-              ></span>
+              <span v-if="item.status" class="Badge" :class="item.status"></span>
               <span>{{ item.label }}</span>
             </dd>
           </dl>
@@ -56,29 +47,20 @@
       <div class="search">
         <template v-if="isSearchForm">
           <el-input
-              :placeholder="placeholder"
-              v-model.trim="searchInput"
-              class="input-with-select"
-              style="width: 410px"
-              clearable
-              @change="searchClick"
-              @clear="clearClick"
+            :placeholder="placeholder"
+            v-model.trim="searchInput"
+            class="input-with-select"
+            style="width: 410px"
+            clearable
+            @change="searchClick"
+            @clear="clearClick"
           >
-            <i
-                slot="suffix"
-                class="el-icon-search"
-                style="cursor: pointer"
-                @click="searchClick"
-            ></i>
+            <i slot="suffix" class="el-icon-search" style="cursor: pointer" @click="searchClick"></i>
           </el-input>
         </template>
-        <div class="search-Btn" v-if="showActionBtn">
+        <div v-if="showScreen" class="search-Btn">
           <div class="common">
-            <img
-                src="../../../public/images/filter.png"
-                style="width: 10px"
-                alt="绛涢��"
-            />
+            <img src="@/assets/img/shaixuan.png" style="width: 10px" />
             <span>绛涢��</span>
           </div>
           <div class="common">
@@ -92,11 +74,7 @@
         </div>
       </div>
       <div v-if="showSet">
-        <i
-            class="el-icon-setting cursor_pointer font_size_30"
-            style="color: rgb(128,128,128)"
-            @click="inspectionConfigClick"
-        ></i>
+        <i class="el-icon-setting cursor_pointer font_size_30" style="color: gray" @click="inspectionConfigClick"></i>
       </div>
       <div class="right">
         <slot name="rightButton"></slot>
@@ -112,32 +90,32 @@
   props: {
     showAdd: {
       type: Boolean,
-      default: true,
+      default: true
     },
     showDownload: {
       type: Boolean,
-      default: false,
+      default: false
     },
     showActionBtn: {
       type: Boolean,
-      default: true,
+      default: true
     },
     placeholder: {
       type: String,
-      default: "璇疯緭鍏ュ唴瀹�",
+      default: "璇疯緭鍏ュ唴瀹�"
     },
     addTitle: {
       type: String,
-      default: "娣诲姞",
+      default: "娣诲姞"
     },
     totalObject: {
       type: Object,
       default: () => {
         return {
           value: 0,
-          label: "鍏ㄩ儴鐗╂枡",
-        };
-      },
+          label: "鍏ㄩ儴鐗╂枡"
+        }
+      }
     },
     otherOptions: {
       type: Array,
@@ -145,98 +123,102 @@
         {
           value: 2,
           label: "瀹夊叏搴撳瓨",
-          status: "success",
+          status: "success"
         },
         {
           value: 12,
           label: "娆犳枡",
-          status: "error",
+          status: "error"
         },
         {
           value: 2,
           label: "瀹夊叏搴撳瓨",
-          status: "success",
+          status: "success"
         },
         {
           value: 12,
           label: "娆犳枡",
-          status: "error",
-        },
-      ],
+          status: "error"
+        }
+      ]
     },
     searchSel: {
       type: Object,
       default: () => {
         return {
           value: "name",
-          label: "",
-        };
-      },
+          label: ""
+        }
+      }
     },
     twoTotalAmount: {
       type: Boolean,
-      default: false,
+      default: false
     },
     twoObject: {
       type: Object,
       default: () => {
         return {
           value: 0,
-          label: "杞﹂棿鎬婚噺",
-        };
-      },
+          label: "杞﹂棿鎬婚噺"
+        }
+      }
     },
     amountView: {
       type: Boolean,
-      default: true,
+      default: true
     },
     isSearchForm: {
       type: Boolean,
-      default: true,
+      default: true
     },
     showSet: {
       type: Boolean,
-      default: false,
+      default: false
     },
     inputName: {
       type: String,
-      default: "",
+      default: ""
     },
+    showScreen: {
+      type: Boolean,
+      default: true
+    }
   },
   watch: {
     inputName(val) {
-      this.searchInput = val;
-    },
+      this.searchInput = val
+    }
   },
   data() {
     return {
       searchInput: "",
-      searchSelValue: this.searchSel,
-    };
+      searchSelValue: this.searchSel
+    }
   },
   methods: {
     // 鎼滅储
     searchClick() {
-      this.$emit("searchClick", this.searchInput);
+      this.$emit("searchClick", this.searchInput)
     },
     // 娓呴櫎
     clearClick() {
-      this.$emit("clearClick", 1);
+      this.$emit("clearClick", 1)
     },
     // 娣诲姞
     addBtn() {
-      this.$emit("addCommonClick");
+      this.$emit("addCommonClick")
     },
     // 涓嬭浇
     downloadClick() {
-      this.$emit("downloadClick");
+      this.$emit("downloadClick")
     },
     // 妯″叿-妫�鏌ラ厤缃�
     inspectionConfigClick() {
-      this.$emit("inspectionConfigClick");
-    },
-  },
-};
+      this.$emit("inspectionConfigClick")
+    }
+  }
+}
 </script>
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
@@ -280,7 +262,7 @@
         .font_weight {
           font-weight: 500;
           font-size: 18px;
-          font-family: "DIN Alternate",serif;
+          font-family: "DIN Alternate", serif;
         }
         .top_right_bottom {
           font-size: 12px;
@@ -300,7 +282,7 @@
         .font_weight {
           font-weight: 500;
           font-size: 18px;
-          font-family: "DIN Alternate",serif;
+          font-family: "DIN Alternate", serif;
         }
         .top_right_bottom {
           font-size: 12px;
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index d037c30..a8e9b4c 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -11,7 +11,7 @@
       :lazy="tableList.lazy"
       size="mini"
       @selection-change="handleSelectionChange"
-      :header-cell-style="{ background: '#f1f3f8', color: '#000009' , 'font-size': '14px'}"
+      :header-cell-style="{ background: '#f1f3f8', color: '#000009', 'font-size': '14px' }"
       :highlight-current-row="tableList.highlight"
       :row-class-name="tableRowClassName"
       @row-click="tableRowClick"
@@ -20,7 +20,8 @@
       :tree-props="{ children: 'child', hasChildren: 'hasChildren' }"
     >
       <el-table-column align="center" v-if="tableList.selectBox" type="selection" width="40"> </el-table-column>
-      <el-table-column align="center" v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50"> </el-table-column>
+      <el-table-column align="center" v-if="tableList.selectIndex" type="index" label="搴忓彿" width="50">
+      </el-table-column>
       <template v-for="(item, i) in tableList.tableColumn">
         <el-table-column
           align="center"
@@ -37,19 +38,22 @@
             <span v-if="item.price">{{ "锟�" + number_format(scope.row[item.prop], 2, ".", ",") }}</span>
             <div v-else-if="item.status" :class="scope.row.status">{{ scope.row[item.prop] }}</div>
             <span v-else-if="item.isTime">{{
-                dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
-                    ? "--"
-                    : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
-              }}</span>
-            <span v-else-if="item.isClick && scope.row[item.prop]" class="sel-name" @click="selCommonClick(scope.row)">{{
-                scope.row[item.prop]
-              }}</span>
+              dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop]) === "1900-01-01 00:06:26"
+                ? "--"
+                : dateFormat("YYYY-mm-dd HH:MM:SS", scope.row[item.prop])
+            }}</span>
+            <span
+              v-else-if="item.isClick && scope.row[item.prop]"
+              class="sel-name"
+              @click="selCommonClick(scope.row)"
+              >{{ scope.row[item.prop] }}</span
+            >
             <span v-else-if="item.isFirst">{{ scope.row[item.prop] ? "鏄�" : "鍚�" }}</span>
             <span
-                v-else-if="item.isCommonClick && scope.row[item.prop]"
-                class="sel-name"
-                @click="selCommonClick(scope.row)"
-            >{{ scope.row[item.prop] }}</span
+              v-else-if="item.isCommonClick && scope.row[item.prop]"
+              class="sel-name"
+              @click="selCommonClick(scope.row)"
+              >{{ scope.row[item.prop] }}</span
             >
             <div v-else-if="item.isProductName" class="product-view">
               <ul v-if="scope.row.products && scope.row.products.length > 0">
@@ -103,15 +107,8 @@
     <div class="overSpread1" v-show="iscolopen" @click="onMaskClick"></div>
     <div class="styleBtn">
       <i @click="checkCol()" class="label">...</i>
-      <el-checkbox-group
-          v-model="showcol"
-          v-show="iscolopen"
-          class="checkbox-group"
-          @change="selectCheckBoxList"
-      >
-        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item"
-        >{{ item }}
-        </el-checkbox>
+      <el-checkbox-group v-model="showcol" v-show="iscolopen" class="checkbox-group" @change="selectCheckBoxList">
+        <el-checkbox v-for="item in tableList.allcol" :label="item" :key="item">{{ item }} </el-checkbox>
       </el-checkbox-group>
     </div>
   </div>
@@ -160,27 +157,27 @@
   data() {
     return {
       iscolopen: false,
-      showcol:[]
+      showcol: []
     }
   },
   watch: {
-    'tableList.showcol':{
-      handler(newVal){
-        this.showcol=newVal
+    "tableList.showcol": {
+      handler(newVal) {
+        this.showcol = newVal
       },
-      immediate:true
+      immediate: true
     }
   },
   computed: {},
   methods: {
     onMaskClick() {
-      this.iscolopen = false;
+      this.iscolopen = false
     },
     checkCol() {
-      this.iscolopen = !this.iscolopen;
+      this.iscolopen = !this.iscolopen
     },
     selectCheckBoxList(val) {
-      this.$emit("selTableCol", val);
+      this.$emit("selTableCol", val)
     },
     handleReserve(row) {
       return row._id ? row._id : row.id
@@ -316,6 +313,10 @@
     selCommonClick(row) {
       this.$emit("selCommonClick", row)
     },
+    // 琛岀偣鍑�
+    tableRowClick(row, column, event) {
+      this.$emit("tableRowClick", row, column, event)
+    },
     // 鍗曢�夎鐩稿叧
     tableRowClassName({ row }) {
       if (Object.keys(this.selectClassRow).length > 0) {
@@ -324,9 +325,6 @@
         }
       }
       this.$emit("tableRowClassName", row)
-    },
-    tableRowClick(row) {
-      this.$emit("tableRowClick", row)
     }
   }
 }
@@ -398,8 +396,8 @@
   text-align: center;
 }
 
-::v-deep{
-  .el-table .cell .el-button--text.el-button--small{
+::v-deep {
+  .el-table .cell .el-button--text.el-button--small {
     padding: 4px 0;
   }
 }
diff --git a/src/store/index.js b/src/store/index.js
index ceffa8e..3f464bf 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,5 +1,6 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
+import getSupplierName from "./modules/getSupplierName"
 
 Vue.use(Vuex)
 
@@ -13,5 +14,6 @@
   actions: {
   },
   modules: {
+    getSupplierName
   }
 })
diff --git a/src/store/modules/getSupplierName.js b/src/store/modules/getSupplierName.js
new file mode 100644
index 0000000..3a9a5c5
--- /dev/null
+++ b/src/store/modules/getSupplierName.js
@@ -0,0 +1,25 @@
+import { getSupplierList } from "@/api/supplierManage/supplier"
+import { Message } from "element-ui"
+
+export default{
+  state:{
+    supplierList:[],  //渚涘簲鍟嗗垪琛�
+  },
+  mutations:{
+    supplierNameList(state, payload) {
+      state.supplierList = payload
+    },
+  },
+  actions:{
+    getSupplier(context){
+      getSupplierList({page:1,pageSize:50}).then((res) => {
+        if (res.data.code == 200) {
+          context.commit("supplierNameList", res.data.data.list)
+        } else {
+          Message.error(res.msg)
+        }
+      })
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/src/views/other/commonDialog/EditDropdownDialog.vue b/src/views/other/commonDialog/EditDropdownDialog.vue
index 61713a6..c51d8de 100644
--- a/src/views/other/commonDialog/EditDropdownDialog.vue
+++ b/src/views/other/commonDialog/EditDropdownDialog.vue
@@ -111,7 +111,7 @@
         pageSize: 100
       }).then((res) => {
         console.log(res.data)
-        this.tableData = res.data.data.list
+        this.tableData = res.data.list
       })
     },
     handleClose() {
diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index cfe8f7b..2b2516f 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -28,10 +28,19 @@
             <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>
@@ -39,9 +48,12 @@
 </template>
 
 <script>
-import { getProductListFromGrpc,getProductList } from "@/api/productManage/product"
+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,
@@ -53,16 +65,16 @@
         }
       }
     },
-    sign:{
-      type:String,
-      default:''
+    sign: {
+      type: String,
+      default: ""
     }
   },
   components: {},
   computed: {},
   data() {
     return {
-      dialogWidth: "50%",
+      dialogWidth: "40%",
       editConfig: this.editCommonConfig,
       queryInput: "",
       select: "鍏ㄩ儴瀛楁",
@@ -74,7 +86,14 @@
       search_map: {},
       searchSel: {},
       keyword: "",
-      keywordType: ""
+      keywordType: "",
+      showProductCol: ["浜у搧鍚嶇О", "浜у搧缂栧彿"],
+      tableProductColumn: [
+        { label: "浜у搧鍚嶇О", prop: "name", isClick: true },
+        { label: "浜у搧缂栧彿", prop: "number" }
+      ],
+      showCol: [],
+      tableColumn: []
     }
   },
   created() {
@@ -82,17 +101,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: "name", isClick: true },
-            { label: "浜у搧缂栧彿", prop: "number" }
-          ]
-        }
-        this.searchSel = { value: "name", label: "浜у搧鍚嶇О" }
+        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
@@ -100,6 +132,18 @@
         this.searchOptions.push({ value: value, label: label })
       }
     },
+    selTableCol(val) {
+      this.showcol = val;
+      this.tableList.tableColumn = this.setColumnVisible(val);
+    },
+    // setColumnVisible(showCol){
+    //   return  this.tableColumn.map(ele=>{
+    //     return {
+    //       ...ele,
+    //       isShowColumn:showCol.includes(ele.label)
+    //     }
+    //   })
+    // },
     // 璇锋眰鏁版嵁
     async getData() {
       this.loading = true
@@ -109,11 +153,12 @@
     },
     // 浜у搧鍚嶇О
     async getProductList() {
-      
-      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc;
-      await  fn({
-        page: 1,
-        pageSize: 100
+      let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc
+      await fn({
+        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.data.code === 200) {
@@ -123,7 +168,8 @@
                 ...item
               }
             })
-            this.tableList.tableInfomation = list.slice(0, 5) || []
+            this.tableList.tableInfomation = list
+            this.pagerOptions.totalCount = res.data.data.total
           } else {
             this.tableList.tableInfomation = []
           }
@@ -185,9 +231,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 {
diff --git a/src/views/other/product/index.vue b/src/views/other/product/index.vue
deleted file mode 100644
index 9b43bd8..0000000
--- a/src/views/other/product/index.vue
+++ /dev/null
@@ -1,216 +0,0 @@
-<template>
-  <div class="product">
-    <div v-if="isDetail" class="detail-top">
-      <DetailListCommonBtn :query-class-options="queryClassOptions" />
-      <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
-    </div>
-    <div v-else class="top">
-      <SearchCommonView
-        ref="searchCommonView"
-        :query-class-options="queryClassOptions"
-        :search-options="searchOptions"
-        :search-sel="searchSel"
-        @searchClick="searchClick"
-        @resetClick="resetClick"
-      />
-      <div class="btn-pager">
-        <PublicFunctionBtnView :statistics="true" :operates-list="operatesList" @batchDelete="delClick" />
-        <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
-      </div>
-    </div>
-    <TableCommonView
-      ref="tableListRef"
-      v-loading="loading"
-      :table-list="tableList"
-      :select-box="!isDetail"
-      @getSelectArray="getSelectArray"
-    >
-      <!-- <template slot="tableButton">
-        <el-table-column label="鎿嶄綔" width="60" fixed="right">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">缂栬緫</el-button>
-          </template>
-        </el-table-column>
-      </template> -->
-    </TableCommonView>
-  </div>
-</template>
-
-<script>
-import { getProductList } from "@/api/common/other"
-import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-
-export default {
-  name: "ProductView",
-  props: {
-    isDetail: {
-      type: Boolean,
-      default: false
-    },
-    addConfig: {
-      type: Object,
-      default: () => {
-        return {}
-      }
-    }
-  },
-  mixins: [pageMixin],
-  components: {},
-  computed: {},
-  data() {
-    return {
-      tableList: {},
-      loading: false,
-      activeName: "second",
-      queryClassValue: "1",
-      queryClassOptions: [
-        { value: "1", label: "鍏ㄩ儴" },
-        { value: "2", label: "浠婃棩鑱旂郴" },
-        { value: "3", label: "鏈懆鑱旂郴" },
-        { value: "4", label: "鏈湀鑱旂郴" }
-      ],
-      searchOptions: [],
-      operatesList: [
-        { id: "1", name: "鍏变韩" },
-        { id: "2", name: "鎵归噺缂栬緫" },
-        { id: "3", name: "瀵煎嚭" },
-        { id: "4", name: "涓嬭浇鍏ㄩ儴闄勪欢" },
-        { id: "5", name: "鏇存敼鍒涘缓浜�" },
-        { id: "6", name: "鏍戠粨鏋勮缃�" },
-        { id: "7", name: "瀹℃壒璁剧疆" },
-        { id: "8", name: "鍥炶棰勮鍒楀" }
-      ],
-      editConfig: {
-        visible: false,
-        title: "鏂板缓",
-        infomation: {}
-      },
-      saleChanceName: "",
-      contactsDeail: {
-        visible: false,
-        infomation: {}
-      },
-      clientDeail: {
-        visible: false,
-        infomation: {}
-      },
-      selValueList: [],
-      searchSel: {
-        value: "topic",
-        label: ""
-      },
-      search_map: {}
-    }
-  },
-  created() {
-    this.setTable()
-    if (!this.isDetail) {
-      this.search_map = {}
-    } else {
-      this.search_map = {
-        [this.addConfig.id_name]: this.addConfig.client_name
-      }
-    }
-    this.getData(this.search_map)
-  },
-  methods: {
-    setTable() {
-      this.tableList = {
-        tableInfomation: [],
-        tableColumn: [
-          { label: "浜у搧鍚嶇О", prop: "topic" },
-          { label: "浜у搧缂栧彿", prop: "client_name" },
-          { label: "浜у搧绫诲埆", prop: "contact_name" },
-          { label: "瑙勬牸鍨嬪彿", prop: "client_status" },
-          { label: "璁¢噺鍗曚綅", prop: "contact_information_name" },
-          { label: "浜у搧鎶ヤ环", prop: "follow_time" },
-          { label: "鍙傝�冩垚鏈环", prop: "next_follow_time" },
-          { label: "鎬诲簱瀛樻暟閲�", prop: "member_name" },
-          { label: "璐熻矗浜�", prop: "record" }
-        ]
-      }
-      this.searchOptions = []
-      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 })
-      }
-    },
-    // 璇锋眰鏁版嵁
-    async getData() {
-      this.loading = true
-      await getProductList({
-        productName: "",
-        productNumber: "",
-        page: this.pagerOptions.currPage,
-        pageSize: this.pagerOptions.pageSize
-      })
-        .then((res) => {
-          console.log(res)
-          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 || []
-              this.pagerOptions.totalCount = res.data.count
-            } else {
-              this.tableList.tableInfomation = []
-            }
-          } else {
-            this.tableList.tableInfomation = []
-          }
-          this.loading = false
-        })
-        .catch((err) => {
-          console.log(err)
-          this.tableList.tableInfomation = []
-          this.loading = false
-        })
-    },
-    // 鎼滅储
-    searchClick(val, content) {
-      console.log(val, content)
-      this.search_map = {
-        [val.value]: content
-      }
-      this.getData()
-    },
-    resetClick() {
-      this.search_map = {}
-      this.getData()
-    },
-    getSelectArray(val) {
-      console.log(val)
-      this.selValueList = []
-      const list = val.map((item) => {
-        return item.id
-      })
-      this.selValueList = list
-    }
-  }
-}
-</script>
-
-<!-- Add "scoped" attribute to limit CSS to this component only -->
-<style lang="scss" scoped>
-.product {
-  .top {
-    margin-bottom: 20px;
-    .btn-pager {
-      display: flex;
-      .page {
-        margin-left: auto;
-      }
-    }
-  }
-  .detail-top {
-    display: flex;
-    .page {
-      margin-left: auto;
-    }
-  }
-}
-</style>
diff --git a/src/views/productManage/product/DetailProduct.vue b/src/views/productManage/product/DetailProduct.vue
index 6a687d7..70d8732 100644
--- a/src/views/productManage/product/DetailProduct.vue
+++ b/src/views/productManage/product/DetailProduct.vue
@@ -172,6 +172,7 @@
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
 .detail-view {
+  z-index: 9999;
   .header {
     height: 56px;
     display: flex;
diff --git a/src/views/productManage/product/index.vue b/src/views/productManage/product/index.vue
index 53eef98..f85e494 100644
--- a/src/views/productManage/product/index.vue
+++ b/src/views/productManage/product/index.vue
@@ -2,25 +2,14 @@
   <div class="product-manage">
     <div class="filter">
       <div class="filter-card">
-<!--              <SearchCommonView-->
-<!--                  ref="searchCommonView"-->
-<!--                  :search-options="searchOptions"-->
-<!--                  @searchClick="searchClick"-->
-<!--                  @resetClick="resetClick"-->
-<!--              />-->
-
         <CommonSearch
           :show-add="false"
-          :show-download="false"
+          :show-download="true"
           :amount-view="false"
           :show-action-btn="false"
           :placeholder="'璇疯緭鍏ヤ骇鍝佸悕绉�/渚涘簲鍟�'"
           @searchClick="onFilterSearch"
         />
-
-        <div class="add-view">
-          <!--           <el-button type="primary" size="mini" @click="addBtnClick">鏂板缓</el-button>-->
-        </div>
       </div>
     </div>
     <div class="body">
@@ -46,7 +35,6 @@
           <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
         </div>
       </div>
-
     </div>
     <!-- 鏂板缓/缂栬緫浜у搧 -->
     <AddProduct v-if="editConfig.visible" :add-common-config="editConfig" />
@@ -69,7 +57,7 @@
   computed: {},
   data() {
     return {
-      searchText:'',
+      searchText: "",
       tableList: {},
       searchOptions: [],
       commonDetail: {
@@ -84,7 +72,7 @@
       },
       tableColumn: [
         { label: "浜у搧缂栫爜", prop: "number", min: 190, isCommonClick: true },
-        { label: "浜у搧鍚嶇О", prop: "name", min: 130 ,default:true},
+        { label: "浜у搧鍚嶇О", prop: "name", min: 130, default: true },
         { label: "渚涘簲鍟�", prop: "supplierName", min: 130 },
         { label: "浜у搧绫诲埆", prop: "productType", min: 130 },
         { label: "瑙勬牸", prop: "specifications", min: 130 },
@@ -94,7 +82,7 @@
         { label: "鏈�浣庡簱瀛�", prop: "minimumStock", min: 80 },
         { label: "鏈�楂樺簱瀛�", prop: "maximumStock", min: 80 }
       ],
-      showCol: ['浜у搧缂栫爜', '浜у搧鍚嶇О', '渚涘簲鍟�', '浜у搧绫诲埆', '瑙勬牸', '浠锋牸', '鏈�浣庡簱瀛�', '鏈�楂樺簱瀛�']
+      showCol: ["浜у搧缂栫爜", "浜у搧鍚嶇О", "渚涘簲鍟�", "浜у搧绫诲埆", "瑙勬牸", "浠锋牸", "鏈�浣庡簱瀛�", "鏈�楂樺簱瀛�"]
     }
   },
   created() {
@@ -102,11 +90,11 @@
     this.getData()
   },
   methods: {
-    setColumnVisible(showCol){
-      return  this.tableColumn.map(ele=>{
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
         return {
           ...ele,
-          isShowColumn:showCol.includes(ele.label)
+          isShowColumn: showCol.includes(ele.label)
         }
       })
     },
@@ -116,9 +104,9 @@
         selectIndex: true,
         showcol: this.showCol,
         allcol: [],
-        tableColumn:this.setColumnVisible(this.showCol)
+        tableColumn: this.setColumnVisible(this.showCol)
       }
-      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
+      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++) {
@@ -128,8 +116,8 @@
       }
     },
     selTableCol(val) {
-      this.showcol = val;
-      this.tableList.tableColumn = this.setColumnVisible(val);
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
     },
     // 璇锋眰鏁版嵁
     async getData() {
@@ -156,8 +144,8 @@
     //   this.getData(val.value, content)
     // },
 
-    onFilterSearch(val){
-      this.searchText = val ?? ''
+    onFilterSearch(val) {
+      this.searchText = val ?? ""
       this.pagerOptions.currPage = 1
       this.getData()
     },
@@ -208,15 +196,15 @@
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
-.product-manage{
+.product-manage {
   height: 100%;
   overflow: hidden;
-  .filter{
+  .filter {
     height: 80px;
     display: flex;
     align-items: center;
     padding: 12px 20px 0 20px;
-    &-card{
+    &-card {
       height: 80px;
       display: flex;
       align-items: center;
@@ -227,7 +215,7 @@
       background-color: #fff;
     }
   }
-  .body{
+  .body {
     box-sizing: border-box;
     padding: 10px 20px;
     border-radius: 12px;
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index 260540a..5dcef72 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -59,7 +59,7 @@
                       v-model="editConfig.infomation.supplierName"
                       :fetch-suggestions="
                         (queryString, callback) => {
-                          querySearchAsync(queryString, callback, 'client');
+                          querySearchAsync(queryString, callback, 'supplier');
                         }
                       "
                       value-key="name"
@@ -358,8 +358,12 @@
   },
   created() {
     this.handleGetBomKindDictList();
+    this.$store.dispatch("getSupplier")
   },
   computed: {
+    supplierList() {
+      return this.$store.state.getSupplierName.supplierList
+    }
   },
   watch:{
     'editCommonConfig.visible':{
@@ -557,8 +561,8 @@
     // 閫夋嫨瀹㈡埛鐩稿叧鏂规硶
     querySearchAsync(queryString, cb, value) {
       var restaurants = [];
-      if (value === "client") {
-        restaurants = this.clientList;
+      if (value === "supplier") {
+        restaurants = this.supplierList;
       } 
       var results = queryString
         ? restaurants.filter(this.createStateFilter(queryString))
diff --git a/src/views/purchaseManage/purchase/components/SelectSupplierDialog.vue b/src/views/purchaseManage/purchase/components/SelectSupplierDialog.vue
index a5dd842..9e553ad 100644
--- a/src/views/purchaseManage/purchase/components/SelectSupplierDialog.vue
+++ b/src/views/purchaseManage/purchase/components/SelectSupplierDialog.vue
@@ -27,10 +27,13 @@
           :table-list="tableList"
           :select-box="false"
           @selCommonClick="selNameClick"
+          @selTableCol="selTableCol"
         >
         </TableCommonView>
         <div slot="footer" class="dialog-footer">
-          <div class="remark">璇存槑锛氭敮鎸佸瀛楁妯$硦鏌ヨ锛屼粎鏄剧ず绗﹀悎鏉′欢鐨勫墠5鏉℃暟鎹�</div>
+          <div class="btn-pager">
+            <PagerView class="page" :pager-options="pagerOptions" v-on="pagerEvents" />
+          </div>
         </div>
       </div>
     </el-dialog>
@@ -39,8 +42,11 @@
 
 <script>
 import { getSupplierList } from "@/api/supplierManage/supplier"
+import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
+
 export default {
   name: "EditSelClientDialog",
+  mixins: [pageMixin],
   props: {
     editCommonConfig: {
       type: Object,
@@ -57,7 +63,7 @@
   computed: {},
   data() {
     return {
-      dialogWidth: "50%",
+      dialogWidth: "40%",
       editConfig: this.editCommonConfig,
       queryInput: "",
       select: "1",
@@ -66,28 +72,34 @@
       loading: false,
       searchOptions: [],
       tableList: {},
-      search_map: {}
+      search_map: {},
+      tableColumn: [
+        { label: "渚涘簲鍟嗙紪鍙�", prop: "number", min: 190 },
+        { label: "渚涘簲鍟嗗悕绉�", prop: "name", min: 130, isCommonClick: true },
+        { label: "渚涘簲鍟嗙被鍨�", prop: "supplierType", min: 130 },
+        { label: "鎵�灞炶涓�", prop: "industry", min: 130 },
+        { label: "鑱旂郴浜�", prop: "contact", min: 130 },
+        { label: "鑱旂郴鐢佃瘽", prop: "phone", min: 130 },
+        { label: "鐘舵��", prop: "status_name", min: 130 },
+        { label: "鍒涘缓鏃堕棿", prop: "member_name", min: 130 }
+      ],
+      showCol: ["渚涘簲鍟嗙紪鍙�", "渚涘簲鍟嗗悕绉�", "渚涘簲鍟嗙被鍨�", "鑱旂郴浜�", "鑱旂郴鐢佃瘽", "鐘舵��"]
     }
   },
   created() {
     this.setTable()
     this.getData()
   },
+  mounted() {},
   methods: {
     setTable() {
       this.tableList = {
         tableInfomation: [],
-        tableColumn: [
-         { label: "渚涘簲鍟嗙紪鍙�", prop: "number", min: 190, isCommonClick: true },
-          { label: "渚涘簲鍟嗗悕绉�", prop: "name", min: 130 },
-          { label: "渚涘簲鍟嗙被鍨�", prop: "supplierType", min: 130 },
-          { label: "鎵�灞炶涓�", prop: "industry", min: 130 },
-          { label: "鑱旂郴浜�", prop: "contact", min: 130 },
-          { label: "鑱旂郴鐢佃瘽", prop: "phone", min: 130 },
-          { label: "鐘舵��", prop: "status_name", min: 130 },
-          { label: "鍒涘缓鏃堕棿", prop: "member_name", min: 130 }
-        ]
+        tableColumn: this.setColumnVisible(this.showCol),
+        showcol: this.showCol,
+        allcol: []
       }
+      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
@@ -95,27 +107,41 @@
         this.searchOptions.push({ value: value, label: label })
       }
     },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
+    },
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
     handleClose() {
       this.editConfig.editVisible = false
     },
     // 璇锋眰鏁版嵁
     async getData(val, content) {
       this.loading = true
+
       await getSupplierList({
         [val]: content,
-        page:1,
-        pageSize: 10
+        page: this.pagerOptions.currPage,
+        pageSize: this.pagerOptions.pageSize
       })
         .then((res) => {
-          if (res.data.code == 200) {
-            if (res.data.data.list && res.data.data.list.length > 0) {
-              const list = res.data.data.list.map((item) => {
+          if (res.code == 200) {
+            if (res.data.list && res.data.list.length > 0) {
+              const list = res.data.list.map((item) => {
                 return {
                   ...item,
                   status_name: item.status === 0 ? "鏈惎鐢�" : "鍚敤"
                 }
               })
-              this.tableList.tableInfomation = list.slice(0, 5) || []
+              this.tableList.tableInfomation = list
+              this.pagerOptions.totalCount = res.data.total
             } else {
               this.tableList.tableInfomation = []
             }
@@ -170,9 +196,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 {
diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue
index ae0314a..4a12b42 100644
--- a/src/views/purchaseManage/purchase/index.vue
+++ b/src/views/purchaseManage/purchase/index.vue
@@ -63,6 +63,7 @@
 import DetailSupplier from "@/views/purchaseManage/purchase/DetailSupplier"
 import AddPurchase from "@/views/purchaseManage/purchase/components/AddPurchase"
 import { getDataByType } from "@/api/data"
+import { getSupplierList } from "@/api/supplierManage/supplier"
 export default {
   name: "SupplierManage",
   props: {},
@@ -83,7 +84,9 @@
       editConfig: {
         visible: false,
         title: "鍒涘缓",
-        infomation: {}
+        infomation: {
+          supplierList:[]
+        }
       },
       purchaseStatusList: getDataByType("purchaseStatus"),
       tableColumn: [
@@ -102,6 +105,7 @@
   created() {
     this.setTable()
     this.getData()
+    this.getSupplierData()
   },
   methods: {
     getpurchaseStatus(val) {
@@ -155,6 +159,20 @@
           console.log(err)
         })
     },
+    // 鑾峰彇渚涘簲鍟嗘暟鎹�
+    async getSupplierData() {
+      await getSupplierList({
+        // [val]: content,
+        page:1,
+        pageSize: 10
+      })
+      .then((res) => {
+        if (res.data.code == 200) {
+          this.editConfig.infomation.supplierList=res.data.data.list
+          
+        }
+      })
+    },
     // 鎼滅储
     onFilterSearch(searchText){
       this.search = searchText ?? ''
diff --git a/src/views/supplierManage/supplier/AddNewProduct.vue b/src/views/supplierManage/supplier/AddNewProduct.vue
index cee0353..4ebb1bc 100644
--- a/src/views/supplierManage/supplier/AddNewProduct.vue
+++ b/src/views/supplierManage/supplier/AddNewProduct.vue
@@ -96,16 +96,18 @@
             if (this.editConfig.title === "娣诲姞") {
               createProduct({
                 list: this.tableData
-              }).then((res) => {
-                console.log(res)
-                this.editConfig.visible = false
-                if (res.code === 200) {
-                  this.$message.success("娣诲姞鎴愬姛")
-                  this.$parent.getProductList()
-                }
-              }).catch(e=>{
-                console.log(e)
               })
+                .then((res) => {
+                  console.log(res)
+                  this.editConfig.visible = false
+                  if (res.code === 200) {
+                    this.$message.success("娣诲姞鎴愬姛")
+                    this.$parent.getProductList()
+                  }
+                })
+                .catch((e) => {
+                  console.log(e)
+                })
             } else {
               const params = this.saveParams()
               updateProduct(params).then((res) => {
@@ -164,7 +166,7 @@
       this.productTableList = {
         tableData: this.tableData,
         tableColumn: [
-          { label: "浜у搧鍚嶇О", prop: "name", productName: true, isRequird: true },
+          { label: "浜у搧鍚嶇О", prop: "name", productName: true, isRequird: true, width: 250 },
           { label: "浜у搧缂栫爜", prop: "number" },
           { label: "璁¢噺鍗曚綅", prop: "unit" },
           { label: "瑙勬牸鍨嬪彿", prop: "specifications" },
diff --git a/src/views/supplierManage/supplier/AddSupplier.vue b/src/views/supplierManage/supplier/AddSupplier.vue
index 93e1654..24608fe 100644
--- a/src/views/supplierManage/supplier/AddSupplier.vue
+++ b/src/views/supplierManage/supplier/AddSupplier.vue
@@ -236,7 +236,7 @@
   computed: {},
   data() {
     return {
-      dialogWidth: "60%",
+      dialogWidth: "50%",
       editConfig: this.addCommonConfig,
       rules: {
         name: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -299,7 +299,7 @@
         page: 1,
         pageSize: 100
       }).then((res) => {
-        this.supplierTypeOptions = res.data.data.list
+        this.supplierTypeOptions = res.data.list
       })
     },
     // 鎵�灞炶涓�
@@ -308,7 +308,7 @@
         page: 1,
         pageSize: 100
       }).then((res) => {
-        this.industryOptions = res.data.data.list
+        this.industryOptions = res.data.list
       })
     },
     handleClose() {
@@ -493,11 +493,6 @@
       .file-content {
         display: flex;
       }
-    }
-    .dialog-footer {
-      background-color: #f5f5f5;
-      height: 55px;
-      line-height: 55px;
     }
   }
 }
diff --git a/src/views/supplierManage/supplier/RaleteSupplierList.vue b/src/views/supplierManage/supplier/RaleteSupplierList.vue
index 2cd65f0..9f70e62 100644
--- a/src/views/supplierManage/supplier/RaleteSupplierList.vue
+++ b/src/views/supplierManage/supplier/RaleteSupplierList.vue
@@ -44,13 +44,21 @@
   computed: {},
   data() {
     return {
-      dialogWidth: "80%",
+      dialogWidth: "60%",
       editConfig: this.commonConfig,
       tableList: {},
       commonDetail: {
         visible: false,
         infomation: {}
-      }
+      },
+      showCol: ["渚涘簲鍟嗙紪鍙�", "渚涘簲鍟嗗悕绉�", "閲囪喘浠锋牸", "渚涜揣澶╂暟", "鐗╂祦鏃堕暱(澶�)"],
+      tableColumn: [
+        { label: "渚涘簲鍟嗙紪鍙�", prop: "supplierNumber", min: 190, isCommonClick: true },
+        { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", min: 130 },
+        { label: "閲囪喘浠锋牸", prop: "purchasePrice", min: 130 },
+        { label: "渚涜揣澶╂暟", prop: "deliveryTime", min: 130 },
+        { label: "鐗╂祦鏃堕暱(澶�)", prop: "shippingDuration", min: 130 }
+      ]
     }
   },
   created() {
@@ -58,18 +66,36 @@
     this.getProductList()
   },
   methods: {
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
+        return {
+          ...ele,
+          isShowColumn: showCol.includes(ele.label)
+        }
+      })
+    },
     setTable() {
       this.tableList = {
         tableInfomation: [],
         selectIndex: true,
-        tableColumn: [
-          { label: "渚涘簲鍟嗙紪鍙�", prop: "supplierNumber", min: 190, isCommonClick: true },
-          { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", min: 130 },
-          { label: "閲囪喘浠锋牸", prop: "purchasePrice", min: 130 },
-          { label: "渚涜揣澶╂暟", prop: "deliveryTime", min: 130 },
-          { label: "鐗╂祦鏃堕暱(澶�)", prop: "shippingDuration", min: 130 }
-        ]
+        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
+        const value = this.tableList.tableColumn[i].prop
+        this.searchOptions.push({ value: value, label: label })
+      }
+    },
+    selTableCol(val) {
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
     },
     // 浜у搧鍒楄〃
     async getProductList(val, content) {
@@ -89,7 +115,7 @@
           }
         })
         this.tableList.tableInfomation = list || []
-        this.tableList.totalCount = res.data.data.total
+        this.pagerOptions.totalCount = res.data.data.total
       })
     },
     handleClose() {
diff --git a/src/views/supplierManage/supplier/index.vue b/src/views/supplierManage/supplier/index.vue
index 0755ae7..8383a57 100644
--- a/src/views/supplierManage/supplier/index.vue
+++ b/src/views/supplierManage/supplier/index.vue
@@ -4,14 +4,14 @@
       <div class="filter">
         <div class="filter-card">
           <CommonSearch
-              :show-add="true"
-              add-title="鏂板缓"
-              @addCommonClick="addBtnClick"
-              :show-download="false"
-              :amount-view="false"
-              :show-action-btn="false"
-              :placeholder="'璇疯緭鍏ヤ緵搴斿晢鍚嶇О'"
-              @searchClick="onFilterSearch"
+            :show-add="true"
+            add-title="鏂板缓"
+            @addCommonClick="addBtnClick"
+            :show-download="true"
+            :amount-view="false"
+            :show-action-btn="false"
+            :placeholder="'璇疯緭鍏ヤ緵搴斿晢鍚嶇О'"
+            @searchClick="onFilterSearch"
           />
         </div>
       </div>
@@ -19,21 +19,22 @@
         <div class="body-card">
           <div class="list-view">
             <TableCommonView
-                ref="tableSupplier"
-                :table-list="tableList"
-                @selCommonClick="selCommonClick"
-                @tableRowClick="tableRowClick"
-                @selTableCol="selTableCol"
+              ref="tableSupplier"
+              :table-list="tableList"
+              @selCommonClick="selCommonClick"
+              @selTableCol="selTableCol"
+              @tableRowClick="tableRowClick"
+              :selectClassRow="selectRow"
             >
               <template slot="tableButton">
                 <el-table-column label="鎿嶄綔" width="100">
                   <template slot-scope="scope">
                     <el-button
-                        v-if="scope.row.status === 0"
-                        @click="enableClick(scope.row, '鍚敤')"
-                        type="text"
-                        size="small"
-                    >鍚敤</el-button
+                      v-if="scope.row.status === 0"
+                      @click="enableClick(scope.row, '鍚敤')"
+                      type="text"
+                      size="small"
+                      >鍚敤</el-button
                     >
                     <el-button v-else @click="enableClick(scope.row, '鍋滅敤')" type="text" size="small">鍋滅敤</el-button>
                     <el-button @click="modifyClick(scope.row)" type="text" size="small">淇敼</el-button>
@@ -47,22 +48,22 @@
           </div>
         </div>
       </div>
-
     </div>
     <div class="bottom">
       <div class="simple-filter">
         <div class="simple-filter-card">
           <CommonSearch
-              :show-add="false"
-              :show-download="false"
-              :amount-view="false"
-              :show-action-btn="false"
-              :placeholder="'璇疯緭鍏ヤ骇鍝佸悕绉�'"
-              @searchClick="onProductFilterSearch"
+            :show-add="false"
+            :show-download="false"
+            :amount-view="false"
+            :show-screen="false"
+            :show-action-btn="false"
+            :placeholder="'璇疯緭鍏ヤ骇鍝佸悕绉�'"
+            @searchClick="onProductFilterSearch"
           >
             <template slot="leftButton">
               <div class="sub-title"><span class="sub-title-decorator"></span>鍙彁渚涚殑浜у搧</div>
-              <el-button type="primary" size="mini">鍒涘缓閲囪喘鍗�</el-button>
+              <el-button type="primary" size="mini" @click="creatPurchase">鍒涘缓閲囪喘鍗�</el-button>
             </template>
             <template slot="rightButton">
               <el-button type="primary" size="mini" @click="addNewProductClick">娣诲姞鏂颁骇鍝�</el-button>
@@ -74,11 +75,11 @@
         <div class="body-card">
           <div class="list-view">
             <TableCommonView
-                ref="tableListProduct"
-                :table-list="productTableList"
-                @selCommonClick="selCommonClick"
-                @getSelectArray="getSelectArray"
-                @selTableCol="selProductTableCol"
+              ref="tableListProduct"
+              :table-list="productTableList"
+              @selCommonClick="selCommonClick"
+              @getSelectArray="getSelectArray"
+              @selTableCol="selProductTableCol"
             >
               <template slot="tableButton">
                 <el-table-column label="鎿嶄綔" width="170">
@@ -93,10 +94,10 @@
           </div>
           <div class="btn-pager">
             <PagerView
-                class="page"
-                :pager-options="productPagerOptions"
-                @size-change="productChangeHandler"
-                @current-change="currentProductHandler"
+              class="page"
+              :pager-options="productPagerOptions"
+              @size-change="productChangeHandler"
+              @current-change="currentProductHandler"
             />
           </div>
         </div>
@@ -110,6 +111,8 @@
     <RaleteSupplierList v-if="raleteSupplierConfig.visible" :common-config="raleteSupplierConfig" />
     <!-- 娣诲姞鏂颁骇鍝� -->
     <AddNewProduct v-if="newProductConfig.visible" :add-common-config="newProductConfig" />
+    <!-- 鏂板缓/缂栬緫 -->
+    <AddPurchase v-if="editPurchaseConfig.visible" :edit-common-config="editPurchaseConfig" />
   </div>
 </template>
 
@@ -121,16 +124,17 @@
 import RaleteSupplierList from "@/views/supplierManage/supplier/RaleteSupplierList"
 import AddNewProduct from "@/views/supplierManage/supplier/AddNewProduct"
 import { getProductList, deleteProduct } from "@/api/productManage/product"
+import AddPurchase from "@/views/purchaseManage/purchase/components/AddPurchase"
 
 export default {
   name: "SupplierManage",
   props: {},
-  components: { DetailSupplier, AddSupplier, RaleteSupplierList, AddNewProduct },
+  components: { DetailSupplier, AddSupplier, RaleteSupplierList, AddNewProduct, AddPurchase },
   mixins: [pageMixin],
   computed: {},
   data() {
     return {
-      searchSupplierName: '',
+      searchSupplierName: "",
       tableList: {}, // 渚涘簲鍟嗗垪琛�
       productTableList: {}, // 浜у搧鍒楄〃
       selValueList: [],
@@ -160,7 +164,7 @@
         totalCount: 0
       },
       supplierId: 0,
-      showCol:['渚涘簲鍟嗙紪鍙�','渚涘簲鍟嗗悕绉�','渚涘簲鍟嗙被鍨�','鎵�灞炶涓�','鑱旂郴浜�','鑱旂郴鐢佃瘽','鐘舵��'],
+      showCol: ["渚涘簲鍟嗙紪鍙�", "渚涘簲鍟嗗悕绉�", "渚涘簲鍟嗙被鍨�", "鎵�灞炶涓�", "鑱旂郴浜�", "鑱旂郴鐢佃瘽", "鐘舵��"],
       tableColumn: [
         { label: "渚涘簲鍟嗙紪鍙�", prop: "number", min: 190, isCommonClick: true },
         { label: "渚涘簲鍟嗗悕绉�", prop: "name", min: 130, default: true },
@@ -171,8 +175,8 @@
         { label: "鐘舵��", prop: "status_name", min: 130 },
         { label: "鍒涘缓鏃堕棿", prop: "created_at", min: 130 }
       ],
-      showProductCol:['浜у搧缂栫爜','浜у搧鍚嶇О','浜у搧瑙勬牸','鍗曚綅','閲囪喘浠锋牸','渚涜揣鏃堕暱(澶�)','鐗╂祦鏃堕暱(澶�)'],
-      productColumn:[
+      showProductCol: ["浜у搧缂栫爜", "浜у搧鍚嶇О", "浜у搧瑙勬牸", "鍗曚綅", "閲囪喘浠锋牸", "渚涜揣鏃堕暱(澶�)", "鐗╂祦鏃堕暱(澶�)"],
+      productColumn: [
         { label: "浜у搧缂栫爜", prop: "number", min: 190 },
         { label: "浜у搧鍚嶇О", prop: "name", min: 130, default: true },
         { label: "浜у搧瑙勬牸", prop: "specifications", min: 130 },
@@ -180,7 +184,16 @@
         { label: "閲囪喘浠锋牸", prop: "purchasePrice", min: 130 },
         { label: "渚涜揣鏃堕暱(澶�)", prop: "deliveryTime", min: 130 },
         { label: "鐗╂祦鏃堕暱(澶�)", prop: "shippingDuration", min: 130 }
-      ]
+      ],
+      editPurchaseConfig: {
+        // 鍒涘缓閲囪喘
+        visible: false,
+        title: "鍒涘缓",
+        infomation: {
+          supplierName: ""
+        }
+      },
+      selectRow: {}
     }
   },
   created() {
@@ -189,19 +202,19 @@
     this.getData()
   },
   methods: {
-    setColumnVisible(showCol){
-      return  this.tableColumn.map(ele=>{
+    setColumnVisible(showCol) {
+      return this.tableColumn.map((ele) => {
         return {
           ...ele,
           isShowColumn: showCol.includes(ele.label)
         }
       })
     },
-    setProductColumnVisible(showCol){
-      return  this.productColumn.map(ele=>{
+    setProductColumnVisible(showCol) {
+      return this.productColumn.map((ele) => {
         return {
           ...ele,
-          isShowColumn:showCol.includes(ele.label)
+          isShowColumn: showCol.includes(ele.label)
         }
       })
     },
@@ -213,9 +226,9 @@
         ref: "tableListRef",
         showcol: this.showCol,
         allcol: [],
-        tableColumn: this.setColumnVisible(this.showCol),
+        tableColumn: this.setColumnVisible(this.showCol)
       }
-      this.tableList.allcol = this.tableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
+      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++) {
@@ -225,8 +238,8 @@
       }
     },
     selTableCol(val) {
-      this.showcol = val;
-      this.tableList.tableColumn = this.setColumnVisible(val);
+      this.showcol = val
+      this.tableList.tableColumn = this.setColumnVisible(val)
     },
     setProductTable() {
       this.productTableList = {
@@ -235,7 +248,7 @@
         selectIndex: true,
         showcol: this.showProductCol,
         allcol: [],
-        tableColumn: this.setProductColumnVisible(this.showProductCol),
+        tableColumn: this.setProductColumnVisible(this.showProductCol)
       }
       this.searchProductOptions = []
       for (let i = 0; i < this.productTableList.tableColumn.length; i++) {
@@ -244,12 +257,14 @@
         this.searchProductOptions.push({ value: value, label: label })
       }
 
-      this.productTableList.allcol = this.productTableList.tableColumn.filter(ele=>!ele.default).map(ele=>ele.label);
-      console.log('this.productTableList',this.productTableList)
+      this.productTableList.allcol = this.productTableList.tableColumn
+        .filter((ele) => !ele.default)
+        .map((ele) => ele.label)
+      console.log("this.productTableList", this.productTableList)
     },
     selProductTableCol(val) {
-      this.showProductCol = val;
-      this.productTableList.tableColumn = this.setProductColumnVisible(val);
+      this.showProductCol = val
+      this.productTableList.tableColumn = this.setProductColumnVisible(val)
     },
     // 璇锋眰鏁版嵁
     getData() {
@@ -262,33 +277,36 @@
         page: this.pagerOptions.currPage,
         pageSize: this.pagerOptions.pageSize
       }).then((res) => {
-        console.log(res.data)
-        if (res.data.code === 200) {
-          const list = res.data.data.list.map((item) => {
+        console.log(res)
+        if (res.code === 200) {
+          const list = res.data.list.map((item) => {
             return {
               ...item,
+              id: item.ID,
               status_name: item.status === 0 ? "鏈惎鐢�" : "鍚敤"
             }
           })
+          console.log(list)
           this.tableList.tableInfomation = list || []
-          this.pagerOptions.totalCount = res.data.data.total
+          this.pagerOptions.totalCount = res.data.total
           if (list && list.length > 0) {
             this.supplierId = this.tableList.tableInfomation[0].ID
+            this.selectRow = this.tableList.tableInfomation.length > 0 ? this.tableList.tableInfomation[0] : {}
           } else {
             this.supplierId = 0
           }
-          this.$nextTick(() => {
-            this.$refs.tableSupplier.$refs.table.setCurrentRow(this.tableList.tableInfomation[0])
-          })
+          // this.$nextTick(() => {
+          //   this.$refs.tableSupplier.$refs.table.setCurrentRow(this.tableList.tableInfomation[0])
+          // })
 
           // 閲嶆柊鑾峰彇渚涘簲鍟嗗垪琛ㄥ悗搴旇閲嶇疆浜у搧鍒楄〃椤电爜
-          this.productPagerOptions.currPage = 1;
+          this.productPagerOptions.currPage = 1
           // 濡傛灉渚涘簲鍟嗗垪琛ㄤ负绌�,鍒欏彲鎻愪緵浜у搧鍒楄〃涔熷簲涓虹┖
-          if (list.length){
+          if (list.length) {
             this.getProductList()
-          }else {
-            this.productTableList.tableInfomation=[]
-            this.productPagerOptions.currPage = 1;
+          } else {
+            this.productTableList.tableInfomation = []
+            this.productPagerOptions.currPage = 1
             this.productPagerOptions.totalCount = 0
           }
         }
@@ -314,15 +332,15 @@
       })
     },
     // 鎼滅储渚涘簲鍟�
-    onFilterSearch(searchText){
-      this.searchSupplierName = searchText ??''
+    onFilterSearch(searchText) {
+      this.searchSupplierName = searchText ?? ""
       this.pagerOptions.currPage = 1
       this.getSupplierList()
     },
     // 鎼滅储浜у搧
-    onProductFilterSearch(searchText){
+    onProductFilterSearch(searchText) {
       this.productPagerOptions.currPage = 1
-      this.getProductList('name', searchText)
+      this.getProductList("name", searchText)
     },
     // 鏂板缓渚涘簲鍟�
     addBtnClick() {
@@ -398,6 +416,7 @@
     tableRowClick(row) {
       console.log(row)
       this.productPagerOptions.currPage = 1
+      this.selectRow = row
       this.supplierId = row.ID
       this.getProductList()
     },
@@ -416,6 +435,15 @@
     currentProductHandler(val) {
       this.productPagerOptions.currPage = val
       this.getProductList()
+    },
+    // 鍒涘缓閲囪喘鍗�
+    creatPurchase() {
+      this.editPurchaseConfig.visible = true
+      this.editPurchaseConfig.title = "鍒涘缓"
+      this.editPurchaseConfig.infomation = {
+        supplierId: this.selectRow.ID,
+        supplierName: this.selectRow.name
+      }
     }
   }
 }
@@ -423,32 +451,32 @@
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style lang="scss" scoped>
-.supplier{
+.supplier {
   height: 100%;
   overflow: hidden;
-  .top{
+  .top {
     position: relative;
     height: 55%;
-    .body{
+    .body {
       position: relative;
       height: calc(100% - 92px);
     }
   }
-  .bottom{
+  .bottom {
     position: relative;
     height: 45%;
-    .body{
+    .body {
       position: relative;
       height: calc(100% - 40px);
       padding-top: 0;
     }
   }
-  .filter{
+  .filter {
     height: 80px;
     display: flex;
     align-items: center;
     padding: 12px 20px 0 20px;
-    &-card{
+    &-card {
       height: 80px;
       display: flex;
       align-items: center;
@@ -459,13 +487,13 @@
       background-color: #fff;
     }
   }
-  .simple-filter{
+  .simple-filter {
     height: 40px;
     box-sizing: border-box;
     display: flex;
     align-items: center;
     padding: 0 20px;
-    &-card{
+    &-card {
       height: 80px;
       display: flex;
       align-items: center;
@@ -473,7 +501,7 @@
       flex: 1;
     }
   }
-  .body{
+  .body {
     box-sizing: border-box;
     padding: 10px 20px;
     border-radius: 12px;
@@ -504,7 +532,7 @@
     }
   }
 }
-.sub-title{
+.sub-title {
   flex-shrink: 0;
   margin-right: 20px;
   font-size: 16px;
@@ -513,7 +541,7 @@
   line-height: 28px;
   position: relative;
   padding-left: 12px;
-  &-decorator{
+  &-decorator {
     position: absolute;
     height: 100%;
     width: 4px;
@@ -522,5 +550,4 @@
     left: 0;
   }
 }
-
 </style>

--
Gitblit v1.8.0