From 1ed83e98d5bc89f4e87b8ae6692eb31888e55579 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期四, 21 九月 2023 16:45:09 +0800 Subject: [PATCH] 入库、出库、内部调拨列表及新建接口联调 --- src/views/overview/AddOverviewDialog.vue | 209 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 151 insertions(+), 58 deletions(-) diff --git a/src/views/overview/AddOverviewDialog.vue b/src/views/overview/AddOverviewDialog.vue index 1f8f11f..7e31f48 100644 --- a/src/views/overview/AddOverviewDialog.vue +++ b/src/views/overview/AddOverviewDialog.vue @@ -33,7 +33,14 @@ > <div> <!-- <div>aaa</div> --> - <StatusCommonView :showButton="showButton" :isDelClick="isDelClick" :list="list" @delClick="delClick" /> + <StatusCommonView + :showButton="showButton" + :isValidateClick="isValidateClick" + :isDelClick="isDelClick" + :list="list" + @delClick="delClick" + @validateClick="validateClick" + /> </div> <div class="basic-info"> <div class="basic-info-view"> @@ -42,11 +49,12 @@ <el-form-item prop="companyName"> <span slot="label">{{ workType === 1 ? "瀹㈡埛" : workType === 2 ? "閫佽揣鍦板潃" : "鑱旂郴浜�" }}</span> <el-select - v-model="editConfig.infomation.company" + v-model="editConfig.infomation.companyName" placeholder="璇烽�夋嫨" size="mini" style="width: 90%" :disabled="!showFooter" + @change="companyChange" > <el-option v-for="item in companyOptions" @@ -123,7 +131,7 @@ style="width: 90%" :disabled="!showFooter" > - <el-option v-for="item in fromLocationOptions" :key="item.id" :label="item.name" :value="item.id"> + <el-option v-for="item in toLocationOptions" :key="item.id" :label="item.name" :value="item.id"> </el-option> </el-select> </el-form-item> @@ -171,8 +179,14 @@ size="mini" style="width: 90%" :disabled="!showFooter" + @change="contacterChange" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option + v-for="item in memberOptions" + :key="item.id" + :label="item.name" + :value="{ value: item.id, label: item.name }" + > </el-option> </el-select> </el-form-item> @@ -246,7 +260,7 @@ <script> import CommonFormTableView from "@/components/makepager/CommonFormTableView" -// import { addOperation } from "@/api/overview/overview" +import { getLocationList, addOperation, updateOperation, updateStatus, deleteOperation } from "@/api/overview/overview" import { getCompanyList } from "@/api/common/other" export default { name: "AddOverviewDialog", @@ -257,6 +271,7 @@ return { visible: false, title: "鏂板缓", + operationTypeId: 0, infomation: {} } } @@ -277,28 +292,26 @@ dialogWidth: "50%", editConfig: this.editCommonConfig, rules: { - client_name: [{ required: true, message: "璇烽�夋嫨瀹㈡埛鍚嶇О", trigger: "change" }], - number: [{ required: true, message: "璇疯緭鍏ラ��娆惧崟缂栧彿", trigger: "blur" }], - refundDate: [{ required: true, message: "璇烽�夋嫨閫�娆炬棩鏈�", trigger: "change" }], - memberId: [{ required: true, message: "璇烽�夋嫨閿�鍞礋璐d汉", trigger: "change" }], - sale_return_nunber: [{ required: true, message: "璇烽�夋嫨閿�鍞��璐у崟", trigger: "change" }] + sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }], + operationDate: [{ required: true, message: "璇烽�夋嫨鏃ユ湡", trigger: "change" }], + toLocationId: [{ required: true, message: "璇烽�夋嫨浠撳簱浣嶇疆", trigger: "change" }], + fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }] }, companyOptions: [], // 鍏徃 - memberOptions: [], - fromLocationOptions: [], // 婧愪綅缃� - toLocationOptions: [], // 浠撳簱浣嶇疆 + memberOptions: [{ id: 1, name: "绠$悊鍛�" }], + toLocationOptions: [], // 婧愪綅缃� 浠撳簱浣嶇疆 list: [ - { label: "鑽夌", status: "todo" }, - { label: "姝e湪绛夊緟", status: "todo" }, - { label: "灏辩华", status: "todo" }, - { label: "瀹屾垚", status: "todo" } + { label: "鑽夌", status: "todo", value: 1 }, + { label: "姝e湪绛夊緟", status: "todo", value: 2 }, + { label: "灏辩华", status: "todo", value: 3 }, + { label: "瀹屾垚", status: "todo", value: 4 } ], showButton: true, activeName: "first", productTableList: {}, - tableData: [{ name: "ssss" }], - productId: 0, - isNoProduct: false, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 + tableData: [], + countId: 0, + isNoProduct: true, // 娣诲姞鏄庣粏琛屾椂鏄惁鏈変骇鍝佹湭閫夋嫨 showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 isDelClick: false, // 鍒犻櫎鎸夐挳鏄惁鍙偣鍑� showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 @@ -310,15 +323,16 @@ tableColumn: [], receiptType: this.addName, // 鍏ュ簱绫诲瀷 companyObj: {}, - contacterObj: {} + contacterObj: {}, + isValidateClick: false // 楠岃瘉鏄惁鏄剧ず } }, created() { this.setTableForm() this.setBottonView() this.setDetailTableForm() - this.activeName = this.workType === 1 ? "first" : "detail" this.getCompanyList() + this.getLocationList() }, methods: { // 鑾峰彇鍏徃鍒楄〃 @@ -330,31 +344,48 @@ } }) }, + // 鑾峰彇浠撳簱浣嶇疆鍒楄〃 + async getLocationList() { + await getLocationList({ + keyWord: "", + page: 0, + pageSize: 0 + }).then((res) => { + console.log(res) + if (res.code === 200) { + this.toLocationOptions = res.data + } + }) + }, // 璁剧疆鍒犻櫎/鎵撳嵃/缂栬緫鏄惁鏄剧ず setBottonView() { if (this.editConfig.title === "鏂板缓") { this.showButton = false this.showEdit = false this.showFooter = true + this.isValidateClick = false } else if (this.editConfig.infomation.status === "瀹屾垚") { this.showButton = true this.showEdit = false this.isDelClick = true this.showFooter = false + this.isValidateClick = false } else if (this.editConfig.infomation.status === "宸插彇娑�") { this.showButton = true this.showEdit = false this.showFooter = false + this.isValidateClick = false } else { this.showButton = true this.showEdit = true this.showFooter = false + this.isValidateClick = true } if (this.editConfig.title === "鏂板缓") { this.list[0].status = "active" } else { this.list.map((item) => { - if (item.label === this.editConfig.infomation.status) { + if (item.value === this.editConfig.infomation.status) { item.status = "active" } else { item.status = "todo" @@ -374,30 +405,65 @@ this.setTableForm() }, // 淇濆瓨 - saveClick() { - this.saveParams() + saveClick(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].productName.length === 0) { + this.isNoProduct = true + break + } else { + this.isNoProduct = false + } + } + if (this.isNoProduct) { + this.$message.error("璇锋坊鍔犳槑缁嗚鎴栭�夋嫨浜у搧涓嶈兘涓虹┖") + } else { + let requestUrl = this.editConfig.title === "鏂板缓" ? addOperation : updateOperation + let params = this.saveParams() + requestUrl({ + ...params + }).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getData() + } + }) + } + } + }) }, saveParams() { let data = this.editConfig.infomation - console.log(this.companyObj) + let companyID = 0 + let companyName = "" + let contacterID = 0 + let contacterName = "" + if (this.editConfig.title === "鏂板缓") { + companyID = this.companyObj.length === 0 ? 0 : this.companyObj.value + companyName = this.companyObj.length === 0 ? 0 : this.companyObj.label + contacterID = this.contacterObj.length === 0 ? 0 : this.contacterObj.value + contacterName = this.contacterObj.length === 0 ? 0 : this.contacterObj.label + } else { + companyID = this.companyObj.length === 0 ? data.companyID : this.companyObj.value + companyName = this.companyObj.length === 0 ? data.companyName : this.companyObj.label + contacterID = this.contacterObj.length === 0 ? data.contacterID : this.contacterObj.value + contacterName = this.contacterObj.length === 0 ? data.contacterName : this.contacterObj.label + } let params = { - companyID: data.company.value || 0, - companyName: data.company.label || "", - contacterID: 0, - contacterName: "string", - details: [ - { - finishQuantity: 0, - productId: 0, - productName: "string", - quantity: 0 - } - ], + comment: data.comment || "", + companyID: companyID, + companyName: companyName, + contacterID: contacterID, + contacterName: contacterName, + details: this.tableData, fromLocationId: data.fromLocationId || 0, - id: 0, + id: data.id, number: "", operationDate: data.operationDate || "", - operationTypeId: data.operationTypeId, + operationTypeId: this.editConfig.operationTypeId, sourceNumber: data.sourceNumber || "", status: 3, toLocationId: data.toLocationId || 0 @@ -405,26 +471,36 @@ return params }, // 鍒犻櫎 - delClick() {}, + async delClick() { + await deleteOperation(this.editConfig.infomation.id).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("鍒犻櫎鎴愬姛") + this.$parent.getData() + } + }) + }, // 鎿嶄綔鍒楄〃 setTableForm() { + this.tableData = this.editConfig.title !== "鏂板缓" ? this.editConfig.infomation.details : [] this.productTableList = { tableData: this.tableData, tableColumn: [ - { label: "浜у搧", prop: "name", productName: true, isRequird: true }, + { label: "浜у搧", prop: "productName", productName: true, isRequird: true }, // { label: "璇存槑", prop: "number", input: true }, // { label: "鏃ユ湡", prop: "amount", date: true, isRequird: true }, // { label: "鎴鏃ユ湡", prop: "price", date: true }, - { label: "瀹屾垚", prop: "total", inputFloat: true }, - { label: "璁¢噺鍗曚綅", prop: "total", select: true } + { label: "瀹屾垚", prop: "amount", inputFloat: true }, + { label: "璁¢噺鍗曚綅", prop: "unit" } ] } }, // 鎿嶄綔杈撳叆 inputContent(val, prop, row) { - this.productId = row.productId + this.countId = row.countId this.tableData.map((item) => { - if (item.productId === row.productId) { + if (item.countId === row.countId) { item[prop] = val } }) @@ -434,24 +510,21 @@ if (value === "鎿嶄綔") { console.log(this.tableData) for (let i = 0; i < this.tableData.length; i++) { - if (this.tableData[i].name.length === 0) { - this.isNoProduct = true + if (this.tableData[i].productName.length === 0) { + this.isNoProduct = false break } else { - this.isNoProduct = false + this.isNoProduct = true } } - if (!this.isNoProduct) { - this.productId++ + if (this.isNoProduct) { + this.countId++ this.tableData.push({ - productId: this.productId, - id: 0, + countId: this.countId, + productId: "", amount: 0, - desc: "", - name: "", - number: "", - price: 0, - total: 0 + unit: "", + productName: "" }) } } else { @@ -522,6 +595,26 @@ item[prop] = val } }) + }, + // 瀹㈡埛閫夋嫨 + companyChange(val) { + console.log(val) + this.companyObj = val + }, + // 璐熻矗浜洪�夋嫨 + contacterChange(val) { + this.contacterObj = val + }, + // 楠岃瘉 + async validateClick() { + await updateStatus(this.editConfig.infomation.id).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("楠岃瘉鎴愬姛") + this.$parent.getData() + } + }) } } } -- Gitblit v1.8.0