From 9c14867ccb5214f635afbecd7fb2b0837e8c16e2 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期六, 23 九月 2023 16:16:12 +0800 Subject: [PATCH] 报废列表、新建、验证接口联调及公共组件优化 --- src/views/operate/scrap/AddScrapDialog.vue | 151 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 123 insertions(+), 28 deletions(-) diff --git a/src/views/operate/scrap/AddScrapDialog.vue b/src/views/operate/scrap/AddScrapDialog.vue index 4ed9700..c3c675e 100644 --- a/src/views/operate/scrap/AddScrapDialog.vue +++ b/src/views/operate/scrap/AddScrapDialog.vue @@ -33,70 +33,83 @@ > <div> <!-- <div>aaa</div> --> - <StatusCommonView :list="list" /> + <StatusCommonView + :list="list" + :showButton="showButton" + :showOther="false" + :isValidateClick="isValidateClick" + @validateClick="validateClick" + /> </div> <div class="basic-info"> <div class="basic-info-view"> <el-row> <el-col :span="12"> - <el-form-item label="浜у搧" prop="client_name"> + <el-form-item label="浜у搧" prop="productName"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.productName" placeholder="璇烽�夋嫨" size="mini" style="width: 90%" :disabled="!showFooter" + @change="selProductChange" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :value="item.id"> + <el-option + v-for="item in productOptions" + :key="item.id" + :label="item.name" + :value="{ value: item.id, label: item.name, unit: item.unit }" + > </el-option> </el-select> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="婧愪綅缃�" prop="client_name"> + <el-form-item label="婧愪綅缃�" prop="fromLocationId"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.fromLocationId" placeholder="璇烽�夋嫨" size="mini" style="width: 90%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :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> </el-col> <el-col :span="12"> - <el-form-item label="鏁伴噺" prop="client_name"> + <el-form-item label="鏁伴噺" prop="amount"> <el-input-number - v-model="editConfig.infomation.number" + v-model="editConfig.infomation.amount" placeholder="" :min="0" :precision="2" :controls="false" - style="width: 90%" + style="width: 85%" :disabled="!showFooter" ></el-input-number> + <span>{{ " " + unit }}</span> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="鎶ュ簾浣嶇疆" prop="client_name"> + <el-form-item label="鎶ュ簾浣嶇疆" prop="toLocationId"> <el-select - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.toLocationId" placeholder="璇烽�夋嫨" size="mini" style="width: 90%" :disabled="!showFooter" > - <el-option v-for="item in memberOptions" :key="item.id" :label="item.username" :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> </el-col> <el-col :span="12"> - <el-form-item label="鏉ユ簮鍗曟嵁" prop="memberId"> + <el-form-item label="鏉ユ簮鍗曟嵁" prop="sourceNumber"> <el-input - v-model="editConfig.infomation.memberId" + v-model="editConfig.infomation.sourceNumber" placeholder="渚嬪:PO0032" style="width: 90%" :disabled="!showFooter" @@ -117,6 +130,9 @@ </template> <script> +import { getProductList } from "@/api/product/product" +import { getLocationList } from "@/api/overview/overview" +import { addDisuse, finishDisuse } from "@/api/operate/scrap" export default { name: "AddScrapDialog", props: { @@ -138,45 +154,86 @@ 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" }] + // 浜у搧锛屾暟閲忓繀濉� + productName: [{ required: true, message: "璇烽�夋嫨浜у搧", trigger: "change" }], + amount: [{ required: true, message: "璇疯緭鍏ユ暟閲�", trigger: "blur" }], + fromLocationId: [{ required: true, message: "璇烽�夋嫨婧愪綅缃�", trigger: "change" }], + toLocationId: [{ required: true, message: "璇烽�夋嫨鎶ュ簾浣嶇疆", trigger: "change" }], + sourceNumber: [{ required: true, message: "璇疯緭鍏ユ潵婧愬崟鎹�", trigger: "blur" }] }, memberOptions: [], - paymentTypeListOptions: [], + productOptions: [], + toLocationOptions: [], list: [ - { label: "鑽夌", status: "todo" }, - { label: "瀹屾垚", status: "todo" } + { label: "鑽夌", status: "todo", value: 1 }, + { label: "灏辩华", status: "todo", value: 3 }, + { label: "瀹屾垚", status: "todo", value: 4 } ], showEdit: false, // 鏄惁鏄剧ず缂栬緫鎸夐挳 showFooter: false, // 鏄惁鏄剧ず鍙栨秷淇濆瓨 - currentState: "todo" // 褰撳墠鐘舵�� + currentState: "todo", // 褰撳墠鐘舵�� + unit: "", + showButton: true, + isValidateClick: false // 楠岃瘉鏄惁鏄剧ず } }, created() { this.setBottonView() + this.getProductList() + this.getLocationList() + this.unit = this.editConfig.infomation.unit || "" }, methods: { + // 浜у搧 + async getProductList() { + await getProductList({ + page: 1, + pageSize: 100 + }).then((res) => { + // console.log(res.data) + if (res.code === 200) { + if (res.data && res.data.length > 0) { + this.productOptions = res.data + } + } + }) + }, + // 鑾峰彇浠撳簱浣嶇疆鍒楄〃 + 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 - } else if (this.editConfig.infomation.status === "瀹屾垚") { + this.isValidateClick = false + } else if (this.editConfig.infomation.status === 4) { + this.showButton = false 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" @@ -194,7 +251,42 @@ this.showFooter = true }, // 淇濆瓨 - saveClick() {} + saveClick(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + this.editConfig.infomation.productId = this.productId + this.editConfig.infomation.productName = this.productName + this.editConfig.infomation.unit = this.unit + addDisuse({ + ...this.editConfig.infomation + }).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getData() + } + }) + } + }) + }, + // 閫夋嫨浜у搧 + selProductChange(val) { + this.unit = val.unit + this.productName = val.label + this.productId = val.value + }, + // 楠岃瘉 + async validateClick() { + await finishDisuse(this.editConfig.infomation.id).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("楠岃瘉鎴愬姛") + this.$parent.getData() + } + }) + } } } </script> @@ -262,5 +354,8 @@ line-height: 30px; font-size: 13px; } + .el-input__inner { + text-align: left; + } } </style> -- Gitblit v1.8.0