From a59ab6b2cb459c2ab6e1ac30bfa09de65d5f5856 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期四, 23 十一月 2023 13:54:49 +0800
Subject: [PATCH] modify:修改供应商管理-采购列表数据,修改合同附件的上传下载和删除

---
 src/api/supplierManage/supplier.js                           |   17 ++++-
 src/views/supplierManage/supplier/DetailSupplier.vue         |   38 +++++++++---
 src/views/supplierManage/supplier/AddSupplier.vue            |   76 +++++++++++++++++-------
 src/views/purchaseManage/purchase/components/AddPurchase.vue |    2 
 src/api/common/other.js                                      |   17 ++++-
 src/views/purchaseManage/purchase/index.vue                  |   14 +++-
 6 files changed, 116 insertions(+), 48 deletions(-)

diff --git a/src/api/common/other.js b/src/api/common/other.js
index 4f88e95..adf2e9d 100644
--- a/src/api/common/other.js
+++ b/src/api/common/other.js
@@ -1,9 +1,16 @@
-// import request from "@/common/untils/request.js"
-import axios from "axios"
+import request from "@/common/untils/request.js"
+// import axios from "axios"
 
 // 璐熻矗浜�
-export const getMemberListFromGrpc = async (data) => {
-  return await axios.get(`/api/m/getMemberListFromGrpc`, {
+// export const getMemberListFromGrpc = async (data) => {
+//   return await axios.get(`/api/m/getMemberListFromGrpc`, {
+//     params: data
+//   })
+// }
+export function getMemberListFromGrpc(data) {
+  return request({
+    url: "/api/m/getMemberListFromGrpc",
+    method: "get",
     params: data
   })
-}
+}
\ No newline at end of file
diff --git a/src/api/supplierManage/supplier.js b/src/api/supplierManage/supplier.js
index ca6d89a..df43251 100644
--- a/src/api/supplierManage/supplier.js
+++ b/src/api/supplierManage/supplier.js
@@ -1,5 +1,5 @@
 import request from "@/common/untils/request.js"
-import axios from "axios"
+// import axios from "axios"
 
 // 鏈嶅姟鍟嗗垪琛�
 export function getSupplierList(data) {
@@ -68,9 +68,16 @@
 }
 
 // 涓婁紶鍚堝悓
-export const createContract = async (data) => {
-  return await axios.post(`/api/con/createContract`, data, {
-    headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" }
+// export const createContract = async (data) => {
+//   return await axios.post(`/api/con/createContract`, data, {
+//     headers: { "Content-Type": "application/x-www-form-urlencoded;charset=utf-8" }
+//   })
+// }
+export function createContract(data) {
+  return request({
+    url: "/api/con/createContract",
+    method: "post",
+    data
   })
 }
 // 鍒犻櫎鍚堝悓
@@ -92,7 +99,7 @@
 // 涓嬭浇鍚堝悓
 export function downloadContract(data) {
   return request({
-    url: "/api/con/downloadContract",
+    url: "/api/downloadContract",
     method: "get",
     params: data
   })
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index b29c0e1..ca221b1 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -125,6 +125,8 @@
                     :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.phone"
                     placeholder="璇峰~鍐�"
+                    maxlength="11"
+                    show-word-limit
                     clearable
                   ></el-input>
                 </el-form-item>
diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue
index f5ef1f0..485d218 100644
--- a/src/views/purchaseManage/purchase/index.vue
+++ b/src/views/purchaseManage/purchase/index.vue
@@ -9,7 +9,7 @@
             :show-download="false"
             :amount-view="false"
             :show-action-btn="false"
-            :placeholder="'璇疯緭鍏ヤ緵搴斿晢/鐗╂枡/閲囪喘鍗曠瓑'"
+            :placeholder="'璇疯緭鍏ヤ緵搴斿晢鍚嶇О/鐗╂枡鍚嶇О/閲囪喘鍗曞悕绉�'"
             @searchClick="onFilterSearch"
         />
       </div>
@@ -44,9 +44,9 @@
                   <el-button v-if="scope.row.status===1" type="text" size="small" @click="btnCancel(scope.row)" style="margin-right: 5px"
                   >鍙栨秷</el-button
                   >
-                  <el-button v-if="scope.row.status===1" type="text" size="small" @click="btnDelete(scope.row)" style="margin-right: 5px"
+                  <!-- <el-button v-if="scope.row.status===1" type="text" size="small" @click="btnDelete(scope.row)" style="margin-right: 5px"
                   >鍒犻櫎</el-button
-                  >
+                  > -->
                   <!-- <el-button v-if="scope.row.status< 4" @click="submitClick(scope.row)" type="text" size="small">鎻愪氦</el-button> -->
                 </template>
               </el-table-column>
@@ -115,10 +115,16 @@
       pagerOptions:{
         pageSize:15,
         currPage:1,
-      }
+      },
     }
   },
   created() {
+    console.log(this.$route.params,"璺敱鍙傛暟")
+    if(this.$route.params.supplierId){
+      this.editConfig.visible = true
+      this.editConfig.infomation.supplierId=this.$route.params.supplierId
+      this.editConfig.infomation.supplierName=this.$route.params.supplierName
+    }
     this.setTable()
     this.getData()
     this.getSupplierData()
diff --git a/src/views/supplierManage/supplier/AddSupplier.vue b/src/views/supplierManage/supplier/AddSupplier.vue
index f6083ba..c8dbfa4 100644
--- a/src/views/supplierManage/supplier/AddSupplier.vue
+++ b/src/views/supplierManage/supplier/AddSupplier.vue
@@ -164,7 +164,8 @@
                     <div @click="addAnnexClick">
                       <el-upload
                         class="upload-demo"
-                        action="https://jsonplaceholder.typicode.com/posts/"
+                        :headers="headers"
+                        action=""
                         :limit="1"
                         :before-upload="beforeAvatarUpload"
                         :on-exceed="handleExceed"
@@ -210,14 +211,15 @@
   createContract,
   updateSupplier,
   getIndustryList,
-  getSupplierTypeList
+  getSupplierTypeList,
+  // downloadContract
   // previewContract
 } from "@/api/supplierManage/supplier"
 import EditDropdownDialog from "@/views/other/commonDialog/EditDropdownDialog"
 import { getMemberListFromGrpc } from "@/api/common/other"
 import download from "downloadjs"
 // import { renderAsync } from "docx-preview"
-// import axios from "axios"
+import axios from "axios"
 export default {
   name: "AddSupplierDialog",
   props: {
@@ -233,7 +235,12 @@
     }
   },
   components: { EditDropdownDialog },
-  computed: {},
+  computed: {
+    headers() {
+      const authorization = "Bearer "+document.cookie.replace(/(?:(?:^|.*;\s*)token\s*=\s*([^;]*).*$)|^.*$/, "$1")|| ''
+      return { authorization }
+    }
+  },
   data() {
     return {
       dialogWidth: "50%",
@@ -290,7 +297,7 @@
         pageSize: 100
       }).then((res) => {
         console.log(res)
-        this.memberOptions = res.data.data.list
+        this.memberOptions = res.data.list
       })
     },
     // 渚涘簲鍟嗙被鍨�
@@ -403,10 +410,9 @@
         fd.append("name", file.name)
         // 璋冪敤鎺ュ彛
         createContract(fd).then((res) => {
-          if (res.status == 200) {
-            console.log(res.data.data)
+          if (res.code == 200) {
             this.file_name = file.name
-            this.file_id = res.data.data.id
+            this.file_id = res.data.id
           }
         })
       }
@@ -418,7 +424,7 @@
     },
     // 涓嬭浇鍚堝悓
     downloadClick() {
-      let url = "/api/con/downloadContract?id=" + this.file_id
+      let url = "/api/downloadContract?id=" + this.file_id
       download(url, "", "")
     },
     // 鍒犻櫎鍚堝悓
@@ -432,20 +438,44 @@
       // })
     },
     // 棰勮鍚堝悓
-    async previewClick() {
-      this.previewUrl = "/api/con/previewContract?id=" + this.file_id
-      if (this.file_name.includes("pdf")) {
-        window.open(this.previewUrl, "_blank")
-      } else {
-        let routeUrl = this.$router.resolve({
-          path: "/PreviewFile",
-          query: {
-            //瑕佷紶鐨勫弬鏁�
-            previewUrl: this.previewUrl
-          }
-        })
-        window.open(routeUrl.href, "_blank")
-      }
+    // async previewClick() {
+    //   this.previewUrl = "/api/con/previewContract?id=" + this.file_id
+    //   if (this.file_name.includes("pdf")) {
+    //     window.open(this.previewUrl, "_blank")
+    //   } else {
+    //     let routeUrl = this.$router.resolve({
+    //       path: "/PreviewFile",
+    //       query: {
+    //         //瑕佷紶鐨勫弬鏁�
+    //         previewUrl: this.previewUrl
+    //       }
+    //     })
+    //     window.open(routeUrl.href, "_blank")
+    //   }
+    // }
+    async previewClick() {  
+      this.previewUrl = "/api/previewContract?id=" + this.file_id  
+      if (this.file_name.includes("pdf")) {  
+        console.log("鏄痯df鏂囦欢")
+        await axios.get(this.previewUrl, { headers: { "Authorization":"Bearer "+ document.cookie.replace(/(?:(?:^|.*;\s*)token\s*=\s*([^;]*).*$)|^.*$/, "$1")} })  
+          .then(response => {  
+            window.open(this.previewUrl, "_blank") 
+            console.log("response",response,this.previewUrl)
+          })  
+          .catch(error => {  
+            console.error(error);  
+          });  
+      } else {  
+        console.log(this.previewUrl,"鐪嬬湅鏄暐瀛�")
+        let routeUrl = this.$router.resolve({  
+          path: "/PreviewFile",  
+          query: {  
+            //瑕佷紶鐨勫弬鏁�  
+            previewUrl: this.previewUrl  
+          }  
+        })  
+        window.open(routeUrl.href, "_blank")  
+      }  
     }
   }
 }
diff --git a/src/views/supplierManage/supplier/DetailSupplier.vue b/src/views/supplierManage/supplier/DetailSupplier.vue
index c2765a1..df157c1 100644
--- a/src/views/supplierManage/supplier/DetailSupplier.vue
+++ b/src/views/supplierManage/supplier/DetailSupplier.vue
@@ -65,7 +65,7 @@
               </ul>
               <div class="business_scope">
                 <div class="content-title">{{ "鍚堝悓闄勪欢" }}</div>
-                <div class="content-data">
+                <div class="content-data" @click="downLoadFiles">
                   {{ detailConfig.infomation.contract.fileName ? detailConfig.infomation.contract.fileName : "--" }}
                 </div>
               </div>
@@ -82,6 +82,7 @@
               <span style="margin-left: 10px">浜у搧淇℃伅</span>
             </div>
             <div v-show="isBasicExpand" class="basic-info-content">
+            <el-button type="primary" size="mini" @click="toPurchaseBtn"><i class="el-icon-plus"></i>   鏂板缓</el-button>
               <TableCommonView
                 style="margin-top: 2px"
                 class="content-table"
@@ -99,6 +100,7 @@
 </template>
 
 <script>
+import download from "downloadjs"
 export default {
   name: "DetailSupplier",
   props: {
@@ -128,21 +130,21 @@
       noContactDays: 0,
       newContactDays: "",
       tableList:{},
-      showCol: ['浜у搧鍚嶇О', '浜у搧缂栫爜', '璁¢噺鍗曚綅', '瑙勬牸鍨嬪彿', '鏁伴噺', '閿�鍞崟浠�','浠风◣鍚堣','鎻忚堪'],
+      showCol: ['閲囪喘鍗曞彿', '閲囪喘鍗曞悕绉�', '鍗曟嵁绫诲瀷', '渚涘簲鍟嗗悕绉�', '閲囪喘鏁伴噺', '鏀惰揣浠撳簱','缁忓姙浜�','鍒跺崟浜�'],
       tableColumn: [
-        { label: "浜у搧鍚嶇О", prop: "name", min: 160,  },
-        { label: "浜у搧缂栫爜", prop: "number", min: 130, },
-        { label: "璁¢噺鍗曚綅", prop: "unit", min: 130 },
-        { label: "瑙勬牸鍨嬪彿", prop: "specifications", min: 130 },
-        { label: "鏁伴噺", prop: "amount", min: 130 },
-        { label: "閿�鍞崟浠�", prop: "price", min: 130 },
-        { label: "浠风◣鍚堣", prop: "total", min: 130 },
-        { label: "鎻忚堪", prop: "remark", min: 130 },
+        { label: "鍗曟嵁绫诲瀷", prop: "orderType", min: 130 },
+        { label: "閲囪喘鍗曞彿", prop: "number", min: 150, isCommonClick: true ,default:true},
+        { label: "閲囪喘鍗曞悕绉�", prop: "name", min: 130, isCommonClick: true },
+        { label: "渚涘簲鍟嗗悕绉�", prop: "supplierName", min: 130 },
+        { label: "閲囪喘鏁伴噺", prop: "quantity", min: 130 },
+        { label: "鏀惰揣浠撳簱", prop: "warehouse", min: 130 },
+        { label: "缁忓姙浜�", prop: "handledBy", min: 130 },
+        { label: "鍒跺崟浜�", prop: "creator", min: 130 }
       ],
     }
   },
   created() {
-    console.log(this.detailConfig,"鎶藉眽缁勪欢")
+    console.log(this.commonDetail,"鎶藉眽缁勪欢props")
     this.setData(this.detailConfig.infomation)
     this.addConfig = {
       id_name: "sales_leads_id",
@@ -295,6 +297,20 @@
       // console.log(totalDays)
 
       return totalDays // 鐩稿樊鐨勫ぉ鏁�
+    },
+    toPurchaseBtn(){
+      this.$router.push({  
+        name: 'purchase', 
+        params: {
+          supplierId:this.commonDetail.infomation.ID,
+          supplierName:this.commonDetail.infomation.name
+        }
+      });
+    },
+    // 涓嬭浇鍚堝悓闄勪欢
+    downLoadFiles(){
+      let url = "/api/downloadContract?id=" + this.commonDetail.infomation.fileId
+      download(url, "", "")
     }
   }
 }

--
Gitblit v1.8.0