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