From 7c5c3b8a1b2d571c66efd85b5dbbd37aa57c9ff8 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期三, 15 十一月 2023 14:08:03 +0800
Subject: [PATCH] 采购管理修改

---
 src/api/purchaseManage/purchase.js                           |    2 
 src/store/modules/getSupplierName.js                         |    6 +-
 src/views/purchaseManage/purchase/components/AddPurchase.vue |   36 ++++++++---
 src/views/purchaseManage/purchase/index.vue                  |  111 ++++++++++++++++++++++++++++++++-----
 src/components/makepager/CommonFormTableView.vue             |   21 ++++--
 5 files changed, 138 insertions(+), 38 deletions(-)

diff --git a/src/api/purchaseManage/purchase.js b/src/api/purchaseManage/purchase.js
index fe2a48a..e9ab89b 100644
--- a/src/api/purchaseManage/purchase.js
+++ b/src/api/purchaseManage/purchase.js
@@ -90,7 +90,7 @@
 //   鎻愪氦閲囪喘鍗�
 export function submitPurchase(data) {
     return request({
-      url: "/api/purchase/submit/"+data.id,
+      url: "/api/purchase/submit",
       method: "post",
       data
     })
diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue
index e3a49c1..3f0eb9f 100644
--- a/src/components/makepager/CommonFormTableView.vue
+++ b/src/components/makepager/CommonFormTableView.vue
@@ -39,6 +39,7 @@
               :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
             >
               <el-input
+                :disabled="item.disabled"
                 v-model.trim="scope.row[item.prop]"
                 maxlength="50"
                 size="mini"
@@ -49,9 +50,10 @@
                 "
               ></el-input>
             </el-form-item>
-            <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
+            <el-form-item  v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
               <div class="custom-name">
                 <el-autocomplete
+                  :disabled="item.disabled"
                   v-model="scope.row[item.prop]"
                   :fetch-suggestions="querySearchAsync"
                   value-key="name"
@@ -63,13 +65,13 @@
                     }
                   "
                 ></el-autocomplete>
-                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)">
-                  <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
+                <div v-if="!item.disabled" class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)">
+                  <i  class="el-icon-circle-plus-outline" title="閫夋嫨"></i>
                 </div>
-                <div class="common-select-btn" @click="clearupClient(scope.row, scope)">
+                <div v-if="!item.disabled" class="common-select-btn" @click="clearupClient(scope.row, scope)">
                   <i class="el-icon-remove-outline" title="娓呴櫎"></i>
                 </div>
-                <div class="common-select-btn" v-if="scope.$index != 0" @click="deleteClient(scope.row, scope)">
+                <div class="common-select-btn" v-if="scope.$index != 0||!item.disabled" @click="deleteClient(scope.row, scope)">
                   <i class="el-icon-delete" title="鍒犻櫎"></i>
                 </div>
               </div>
@@ -91,6 +93,7 @@
               :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]"
             >
               <el-input-number
+                :disabled="item.disabled"
                 v-model="scope.row[item.prop]"
                 placeholder=""
                 :min="0"
@@ -112,9 +115,9 @@
             >
               <template v-if="item.multiply">
                 <el-input-number
+                  :disabled="item.disabled"
                   :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]"
                   placeholder=""
-                  :disabled="item.disabled"
                   :min="0"
                   :precision="2"
                   :controls="false"
@@ -129,6 +132,7 @@
               </template>
               <template v-else>
                 <el-input-number
+                  :disabled="item.disabled"
                   v-model="scope.row[item.prop]"
                   placeholder=""
                   :min="0"
@@ -152,8 +156,8 @@
       </el-table>
     </el-form>
     <div v-if="!detailEnter" style="margin: 10px">
-      <el-button size="small" type="primary" @click="add">鏂板</el-button>
-      <el-button size="small" type="primary" @click="empty">娓呯┖</el-button>
+      <el-button :disabled="tableList.disabled" size="small" type="primary" @click="add">鏂板</el-button>
+      <el-button :disabled="tableList.disabled" size="small" type="primary" @click="empty">娓呯┖</el-button>
     </div>
     <!-- 浜у搧鍚嶇О -->
     <SelectCommonDialog
@@ -184,6 +188,7 @@
       type: Object,
       default: () => {
         return {
+          disabled:false,
           tableData: [], // 鎺ュ彛杩斿洖鏁版嵁
           tableColumn: [
             // table琛ㄥ崟
diff --git a/src/store/modules/getSupplierName.js b/src/store/modules/getSupplierName.js
index 3a9a5c5..172e6e5 100644
--- a/src/store/modules/getSupplierName.js
+++ b/src/store/modules/getSupplierName.js
@@ -12,9 +12,9 @@
   },
   actions:{
     getSupplier(context){
-      getSupplierList({page:1,pageSize:50}).then((res) => {
-        if (res.data.code == 200) {
-          context.commit("supplierNameList", res.data.data.list)
+      getSupplierList({page:1,pageSize:100}).then((res) => {
+        if (res.code == 200) {
+          context.commit("supplierNameList", res.data.list)
         } else {
           Message.error(res.msg)
         }
diff --git a/src/views/purchaseManage/purchase/components/AddPurchase.vue b/src/views/purchaseManage/purchase/components/AddPurchase.vue
index 5dcef72..97e8b19 100644
--- a/src/views/purchaseManage/purchase/components/AddPurchase.vue
+++ b/src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -31,6 +31,7 @@
                   style="width:100%;"
                 >
                   <el-select
+                    :disabled="editConfig.isDisabled"
                     placeholder="璇烽�夋嫨閲囪喘绫诲瀷"
                     v-model="editConfig.infomation.purchaseTypeId"
                     clearable
@@ -44,6 +45,7 @@
                     ></el-option>
                   </el-select>
                   <i
+                    v-if="!editConfig.isDisabled"
                     class="el-icon-setting margin_left_10px cursor_pointer"
                     style="font-size: 20px; color: #333"
                     @click="handleShow"
@@ -55,6 +57,7 @@
                 <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
                   <div class="custom-name">
                     <el-autocomplete
+                      :disabled="editConfig.isDisabled"
                       style="width: calc(100% - 40px)"
                       v-model="editConfig.infomation.supplierName"
                       :fetch-suggestions="
@@ -67,6 +70,7 @@
                       @select="handleSelectClient('client', $event)"
                     ></el-autocomplete>
                     <div
+                      v-if="!editConfig.isDisabled"
                       class="common-select-btn"
                       @click="selClientClick('client')"
                     >
@@ -80,7 +84,8 @@
                       class="common-select-btn"
                       @click="clearupClient('client')"
                     >
-                      <i class="el-icon-remove-outline" title="娓呴櫎"></i>
+                      <i class="el-icon-remove-outline" 
+                      v-if="!editConfig.isDisabled" title="娓呴櫎"></i>
                     </div>
                   </div>
                 </el-form-item>
@@ -97,6 +102,7 @@
               <el-col :span="12">
                 <el-form-item label="閲囪喘鍗曞悕绉�" prop="name">
                   <el-input
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.name"
                     placeholder="璇峰~鍐�"
                     clearable
@@ -106,6 +112,7 @@
               <el-col :span="12">
                 <el-form-item label="渚涘簲鍟嗚仈绯讳汉" prop="contact">
                   <el-input
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.contact"
                     placeholder="璇峰~鍐�"
                     clearable
@@ -115,6 +122,7 @@
               <el-col :span="12">
                 <el-form-item label="鑱旂郴鐢佃瘽" prop="phone">
                   <el-input
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.phone"
                     placeholder="璇峰~鍐�"
                     clearable
@@ -124,6 +132,7 @@
               <el-col :span="12">
                 <el-form-item label="绛剧害鏃ユ湡" prop="signingDate">
                   <el-date-picker
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.signingDate"
                     style="width: 100%"
                     type="date"
@@ -137,6 +146,7 @@
               <el-col :span="12">
                 <el-form-item label="浜や粯鏃ユ湡" prop="deliveryDate">
                   <el-date-picker
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.deliveryDate"
                     style="width: 100%"
                     type="date"
@@ -150,6 +160,7 @@
               <el-col :span="24">
                 <el-form-item label="澶囨敞淇℃伅" prop="remark">
                   <el-input
+                    :disabled="editConfig.isDisabled"
                     type="textarea"
                     :autosize="{ minRows: 3, maxRows: 4 }"
                     maxlength="500"
@@ -182,6 +193,7 @@
                   <el-select
                     v-model="editConfig.infomation.wholeDiscountType"
                     placeholder="璇烽�夋嫨"
+                    :disabled="editConfig.isDisabled"
                     filterable
                     @change="getTotal"
                   >
@@ -195,7 +207,7 @@
                   <el-input
                     v-model="editConfig.infomation.wholeDiscount"
                     size="mini"
-                    :disabled="editConfig.infomation.wholeDiscountType?false:true"
+                    :disabled="editConfig.isDisabled"
                     @change="getTotal"
                     placeholder="璇峰~鍐�"
                   ></el-input>
@@ -206,6 +218,7 @@
               <div class="table-bottom-l">
                 <el-form-item label="璋冩暣" prop="member_id">
                   <el-select
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.priceAdjustmentType"
                     placeholder="璇烽�夋嫨"
                     filterable
@@ -219,9 +232,9 @@
               <div class="table-bottom-r">
                 <el-form-item label="" prop="member_id">
                   <el-input
+                    :disabled="editConfig.isDisabled"
                     v-model="editConfig.infomation.priceAdjustment"
                     size="mini"
-                    :disabled="editConfig.infomation.priceAdjustmentType?false:true"
                     @change="getTotal"
                     placeholder="璇峰~鍐�"
                   ></el-input>
@@ -495,10 +508,8 @@
             this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖");
           } else {
             const params = this.saveParams();
-            console.log(params);
             if (this.editConfig.title === "鍒涘缓") {
               addPurchase(params).then((res) => {
-                console.log(res);
                 this.editConfig.visible = false;
                 if (res.code === 200) {
                   this.$message.success("娣诲姞鎴愬姛");
@@ -533,7 +544,7 @@
       let params = {
         productList:this.tableData,
         purchase:{
-          supplierId:this.supplierId||0,
+          supplierId:data.supplierId,
           signingDate:data.signingDate||'',
           remark:data.remark,
           orderSource:data.orderSource||'',
@@ -577,9 +588,9 @@
       };
     },
     handleSelectClient(value, item) {
-      console.log(value);
       if (value === "client") {
         this.supplierId = item.id;
+        this.editConfig.infomation.supplierId=item.ID
       }
     },
     selClientClick() {
@@ -624,6 +635,7 @@
       }
       this.productTableList = {
         tableData: this.tableData,
+        disabled:this.editConfig.isDisabled,
         tableColumn: [
           {
             label: "浜у搧鍚嶇О",
@@ -631,19 +643,21 @@
             min: 180,
             productName: true,
             isRequird: true,
+            disabled:this.editConfig.isDisabled,
           },
           { label: "浜у搧缂栧彿", prop: "number", min: 150,},
           { label: "璁¢噺鍗曚綅", prop: "unit" },
-          { label: "瑙勬牸鍨嬪彿", prop: "specifications" },
-          { label: "鏁伴噺", prop: "amount", inputNumber: true, isRequird: true },
+          { label: "瑙勬牸鍨嬪彿", prop: "specifications",},
+          { label: "鏁伴噺", prop: "amount", inputNumber: true,disabled:this.editConfig.isDisabled, },
           {
             label: "閲囪喘鍗曚环",
             prop: "price",
             inputFloat: true,
             isRequird: true,
+            disabled:this.editConfig.isDisabled,
           },
-          { label: "浠风◣鍚堣", prop: "total", inputFloat: true,disabled:true,multiply:true, },
-          { label: "鎻忚堪", prop: "remark", input: true },
+          { label: "浠风◣鍚堣", prop: "total", inputFloat: true,disabled:this.editConfig.isDisabled,multiply:true, },
+          { label: "鎻忚堪", prop: "remark", input: true,disabled:this.editConfig.isDisabled},
         ],
       };
       this.toal=this.editConfig.infomation.realTotalPrice
diff --git a/src/views/purchaseManage/purchase/index.vue b/src/views/purchaseManage/purchase/index.vue
index 4a12b42..e16f0dd 100644
--- a/src/views/purchaseManage/purchase/index.vue
+++ b/src/views/purchaseManage/purchase/index.vue
@@ -30,12 +30,24 @@
                   {{ getpurchaseStatus(scope.row.status) }}
                 </template>
               </el-table-column>
-              <el-table-column label="鎿嶄綔" width="120" fixed="right">
+              <el-table-column label="鎿嶄綔" width="220" fixed="right">
                 <template slot-scope="scope">
-                  <el-button type="text" size="small" @click="editClick(scope.row)" style="margin-right: 5px"
+                  <el-button type="text" size="small" @click="btnConfirm(scope.row)" style="margin-right: 5px"
+                  >纭</el-button
+                  >
+                  <el-button type="text" size="small" @click="btnEdit(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>
+                  <el-button type="text" size="small" @click="btnLook(scope.row)" style="margin-right: 5px"
+                  >鏌ョ湅</el-button
+                  >
+                  <el-button type="text" size="small" @click="btnCancel(scope.row)" style="margin-right: 5px"
+                  >鍙栨秷</el-button
+                  >
+                  <el-button 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>
             </template>
@@ -53,16 +65,15 @@
     <!-- 璇︽儏 -->
     <DetailSupplier v-if="commonDetail.visible" :common-detail="commonDetail" />
     <!-- 鏂板缓/缂栬緫 -->
-    <AddPurchase v-if="editConfig.visible" :edit-common-config="editConfig" />
+    <AddPurchase ref="addDialog" v-if="editConfig.visible" :edit-common-config="editConfig" />
   </div>
 </template>
 
 <script>
 import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
-import { getPurchaseList, getPurchaseInfo, submitPurchase } from "@/api/purchaseManage/purchase"
+import { getPurchaseList, getPurchaseInfo, submitPurchase,deletePurchase } from "@/api/purchaseManage/purchase"
 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",
@@ -84,11 +95,11 @@
       editConfig: {
         visible: false,
         title: "鍒涘缓",
+        isDisabled:false,
         infomation: {
           supplierList:[]
         }
       },
-      purchaseStatusList: getDataByType("purchaseStatus"),
       tableColumn: [
         { label: "閲囪喘鍗曞彿", prop: "number", min: 150, isCommonClick: true ,default:true},
         { label: "閲囪喘鍗曞悕绉�", prop: "name", min: 130, isCommonClick: true },
@@ -109,10 +120,17 @@
   },
   methods: {
     getpurchaseStatus(val) {
+      let statusList=[
+        {id:1,name:"寰呯‘璁�"},
+        {id:2,name:"寰呭叆搴�"},
+        {id:3,name:"宸插叆搴�"},
+        {id:4,name:"宸插畬鎴�"},
+        {id:5,name:"宸插彇娑�"}
+      ]
       if (val) {
-        for (let i in this.purchaseStatusList) {
-          if (this.purchaseStatusList[i].id == val) {
-            return this.purchaseStatusList[i].name
+        for (let i in statusList) {
+          if (statusList[i].id == val) {
+            return statusList[i].name
           }
         }
       } else {
@@ -181,6 +199,7 @@
     },
     // 鏂板缓
     addBtnClick() {
+      this.editConfig.isDisabled=false
       // this.editRow = {};
       // this.$refs.add.islook = true;
       this.editConfig.visible = true
@@ -206,7 +225,7 @@
     },
 
     // 缂栬緫
-    editClick(row) {
+    btnEdit(row) {
       this.tableLoading = true
       getPurchaseInfo({ id: row.ID }).then((res) => {
         if (res.code == 200) {
@@ -229,15 +248,14 @@
       // this.$refs.add.islook = true;
     },
     // 纭鍙戣揣
-    submitClick(row) {
+    btnConfirm(row) {
       this.$confirm("鏄惁鎻愪氦?", "鎻愮ず", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         type: "warning"
       })
         .then(() => {
-          console.log("dddd")
-          submitPurchase({ id: row.ID }).then((response) => {
+          submitPurchase({ id: row.ID,status:2 }).then((response) => {
             if (response.code === 200) {
               this.$message.success("鎻愪氦鎴愬姛")
               this.getData()
@@ -249,7 +267,70 @@
           console.error(e)
         })
     },
-
+    // 鍙栨秷
+    btnCancel(row){
+      this.$confirm("鏄惁鍙栨秷?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+      .then(() => {
+        submitPurchase({ id: row.ID,status:5 }).then((response) => {
+          if (response.code === 200) {
+            this.$message.success("宸插彇娑�")
+            this.getData()
+          } else {
+            // this.$message.warning("鎻愪氦澶辫触")
+          }
+        })
+      },(e)=>{
+        console.error(e)
+      })
+    },
+    // 鍒犻櫎
+    btnDelete(row){
+      this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          type: 'warning'
+        }).then(() => {
+          deletePurchase({ id: row.ID }).then((response) => {
+            if (response.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛")
+              this.getData()
+            } else {
+              this.$message.warning("鍒犻櫎澶辫触")
+            }
+          })
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '宸插彇娑堝垹闄�'
+          });          
+        });
+    },
+    // 鏌ョ湅
+    btnLook(row){
+      this.editConfig.isDisabled=true
+      this.tableLoading = true
+      getPurchaseInfo({ id: row.ID }).then((res) => {
+        if (res.code == 200) {
+          this.tableLoading = false
+          this.editConfig.visible = true
+          this.editConfig.title = "鏌ョ湅"
+          this.editConfig.infomation = {
+            productList: res.data.productList,
+            supplierName: res.data.purchase.supplier.name,
+            ...res.data.purchase
+          }
+        } else {
+          this.$message.error(res.msg ? res.msg + "," : "" + "鑾峰彇淇℃伅澶辫触锛�")
+        }
+      })
+      setTimeout(() => {
+        this.tableLoading = false
+      }, 3000)
+    },
     // 璇︽儏
     selCommonClick(row) {
       console.log(row)

--
Gitblit v1.8.0