From 7f5306d896fa0c541a83c4b62d0c533a604dd184 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期日, 28 四月 2024 18:23:23 +0800 Subject: [PATCH] 供应商管理模块 添加新产品的时候供应商对应的产品和已增加的产品都不可选的逻辑处理 --- src/views/supplierManage/supplier/AddNewProduct.vue | 175 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 112 insertions(+), 63 deletions(-) diff --git a/src/views/supplierManage/supplier/AddNewProduct.vue b/src/views/supplierManage/supplier/AddNewProduct.vue index 9a04616..7e714b8 100644 --- a/src/views/supplierManage/supplier/AddNewProduct.vue +++ b/src/views/supplierManage/supplier/AddNewProduct.vue @@ -14,13 +14,19 @@ <div class="basic-info-title">浜у搧淇℃伅</div> <div class="basic-info-view"> <CommonFormTableView + ref="productTable" + :addTypeIdMultiple="true" + :disabledList="disabledList" :product-table-list="productTableList" :detail-enter="detailEnter" + :isOperate="isOperate" @inputContent="inputContent" @addProductClick="addProductClick" + @getSelectArray="getSelectArray" @emptyProductClick="emptyProductClick" @clearupProduct="clearupProduct" @selCommonName="selCommonName" + @handleProduct="handleProduct" /> </div> </div> @@ -47,6 +53,12 @@ infomation: {} } } + }, + disabledList:{ + type:[Array], + default: () => { + return [] + } } }, components: { CommonFormTableView }, @@ -60,7 +72,11 @@ productId: 1, isNoProduct: true, supplierId: this.addCommonConfig.infomation.supplierId, - detailEnter: true + detailEnter: true, + isOperate: true, + deliveryTime: this.addCommonConfig.infomation.deliveryTime, // 渚涜揣鏃堕暱 + shippingDuration: this.addCommonConfig.infomation.shippingDuration, // 鐗╂祦鏃堕暱 + purchasePrice: this.addCommonConfig.infomation.purchasePrice // 閲囪喘浠锋牸 } }, created() { @@ -75,61 +91,73 @@ }, // 淇濆瓨 saveClick() { - console.log(this.editConfig.infomation) - for (let i = 0; i < this.tableData.length; i++) { - if (this.tableData[i].name.length === 0) { - this.isNoProduct = true - break - } else { - this.isNoProduct = false - } - } - if (this.isNoProduct) { - this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖") - } else { - if (this.editConfig.title === "娣诲姞") { - createProduct({ - list: this.tableData - }).then((res) => { - console.log(res) - this.editConfig.visible = false - if (res.code === 200) { - this.$message.success("娣诲姞鎴愬姛") - this.$parent.getProductList() + this.$refs.productTable.$refs.form.validate((valid) => { + if (valid) { + console.log(this.editConfig.infomation) + for (let i = 0; i < this.tableData.length; i++) { + if (this.tableData[i].name.length === 0) { + this.isNoProduct = true + break + } else { + this.isNoProduct = false } - }) - } else { - const params = this.saveParams() - updateProduct(params).then((res) => { - console.log(res) - this.editConfig.visible = false - if (res.code === 200) { - this.$message.success("缂栬緫鎴愬姛") - this.$parent.getProductList() + } + if (this.isNoProduct) { + this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖") + } else { + if (this.editConfig.title === "娣诲姞") { + createProduct({ + list: this.tableData + }) + .then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("娣诲姞鎴愬姛") + this.$parent.getProductList() + } + }) + .catch((e) => { + console.log(e) + }) + } else { + const params = this.saveParams() + updateProduct(params).then((res) => { + console.log(res) + this.editConfig.visible = false + if (res.code === 200) { + this.$message.success("缂栬緫鎴愬姛") + this.$parent.getProductList() + } + }) } - }) + } } - } + }) }, saveParams() { let data = this.editConfig.infomation let params = { - deliveryTime: data.deliveryTime || 0, - id: data.ID || 0, - maximumStock: data.maximumStock || 0, - minimumStock: data.minimumStock || 0, - modelNumber: data.modelNumber || "", - name: data.name || "", - number: data.number || "", - productType: data.productType || "", - purchasePrice: data.purchasePrice || 0, - remark: data.remark || "", - shippingDuration: data.shippingDuration || 0, - specifications: data.specifications || "", + deliveryTime: this.deliveryTime || 0, + id: data.id || 0, + // maximumStock: data.maximumStock || 0, + // minimumStock: data.minimumStock || 0, + // modelNumber: data.modelNumber || "", + // name: data.name || "", + // number: data.number || "", + // productType: data.productType || "", + purchasePrice: this.purchasePrice || 0, + // remark: data.remark || "", + shippingDuration: this.shippingDuration || 0, + // specifications: data.specifications || "", supplierId: this.supplierId || 0, - unit: data.unit || "" + // unit: data.unit || "" + ...this.tableData[0] } return params + }, + handleProduct(item, row) { + this.editConfig.infomation.id = row.id }, setTableForm() { if (this.editConfig.title === "娣诲姞") { @@ -153,8 +181,9 @@ } this.productTableList = { tableData: this.tableData, + isReturn: true, tableColumn: [ - { label: "浜у搧鍚嶇О", prop: "name", productName: true, isRequird: true }, + { label: "浜у搧鍚嶇О", prop: "name", productName: true, isRequird: true, width: 250 }, { label: "浜у搧缂栫爜", prop: "number" }, { label: "璁¢噺鍗曚綅", prop: "unit" }, { label: "瑙勬牸鍨嬪彿", prop: "specifications" }, @@ -166,28 +195,46 @@ }, // 浜у搧鍒楄〃杈撳叆 inputContent(val, prop, row) { - this.productId = row.productId this.tableData.map((item) => { - if (item.productId === row.productId) { + if (item.number == row.number) { item[prop] = val - item.supplierId = this.supplierId + item.supplierId = Number(this.supplierId) } }) }, // 浜у搧鏂板 addProductClick() { - this.productId++ - this.tableData.push({ - productId: this.productId, - id: 0, - amount: 0, - desc: "", - name: "", - number: "", - price: 0, - total: 0, - supplierId: this.supplierId - }) + // this.productId++ + // this.tableData.push({ + // productId: this.productId, + // id: 0, + // amount: 0, + // desc: "", + // name: "", + // number: "", + // purchasePrice: 0, + // total: 0, + // deliveryTime: 0, + // shippingDuration: 0, + // supplierId: this.supplierId + // }) + }, + // 鏂板鏂瑰紡淇敼 + getSelectArray(val, index) { + console.log(val, "ddd99999") + if (this.tableData.length == 1 && this.tableData[0].number.length == 0) { + this.tableData = [] + } + if (index < this.tableData.length) { + this.tableData.splice(index, 1) + val.map((item, ind) => { + this.tableData.splice(index + ind, 0, item) + }) + } else { + this.tableData = this.tableData.concat(val) + } + this.productTableList.tableData = this.tableData + // this.showSummary.show = true }, // 浜у搧娓呯┖ emptyProductClick() { @@ -200,8 +247,10 @@ desc: "", name: "", number: "", - price: 0, + purchasePrice: 0, total: 0, + deliveryTime: 0, + shippingDuration: 0, supplierId: this.supplierId } ] -- Gitblit v1.8.0