From 0026b3725127be9b0ec5ab2ec6b05181ccb2997f Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期三, 28 二月 2024 15:49:16 +0800 Subject: [PATCH] 报价单-产品管理-添加、删除、编辑等产品数据处理和保存产品校验和数据处理 --- src/components/makepager/CommonFormTableView.vue | 77 +++++++++++++++++++++++--------------- 1 files changed, 46 insertions(+), 31 deletions(-) diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index b11a1ac..1bf5fa7 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -71,18 +71,18 @@ <div v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" class="common-select-btn" - @click="handleEditClient(scope.row, item.prop)" + @click="handleEditClient(scope, item.prop)" > <i class="el-icon-edit" title="缂栬緫"></i> </div> <div v-if="scope.row[item.prop] && scope.row[item.prop].length > 0 && isOperate" class="common-select-btn" - @click="clearupClient(scope.row)" + @click="clearupClient(scope)" > <i class="el-icon-remove-outline" title="娓呴櫎"></i> </div> - <div class="common-select-btn" v-else @click="selClientClick(scope.row, item.prop)"> + <div class="common-select-btn" v-else @click="selClientClick(scope, item.prop)"> <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> </div> @@ -296,15 +296,26 @@ if (!this.selectBox) { this.getProductList() } - this.tableList = this.productTableList - if (this.tableList.tableData.length === 1 && this.tableList.tableData[0].name === "") { - this.isRecalculate = false - } else { - this.isRecalculate = true + this.getTableInfo() + }, + watch:{ + "productTableList": { + handler() { + this.getTableInfo() + }, + immediate: true } }, computed: {}, methods: { + getTableInfo(){ + this.tableList = this.productTableList + if (this.tableList.tableData.length === 1 && this.tableList.tableData[0].name === "") { + this.isRecalculate = false + } else { + this.isRecalculate = true + } + }, // 浜у搧鍚嶇О async getProductList() { await getProductList({ @@ -417,6 +428,7 @@ // 鏂板 add() { if (this.addTypeIdMultiple) { + this.productIndex = this.tableList.tableData.length this.editSelCommonConfig.title = "浜у搧鍚嶇О" this.editSelCommonConfig.isSelectBox = true this.editSelCommonConfig.editVisible = true @@ -508,43 +520,46 @@ }) }, // 鏂板 - selClientClick(row, prop) { - console.log(row, prop) - this.productIndex = row.productId - 1 + selClientClick(scope, prop) { + console.log(scope, prop) + this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" this.editSelCommonConfig.isSelectBox = true this.editSelCommonConfig.editVisible = true }, // 缂栬緫 - handleEditClient(row, prop) { - console.log(row, prop) - this.productIndex = row.productId - 1 + handleEditClient(scope, prop) { + console.log(scope, prop) + this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" this.editSelCommonConfig.isSelectBox = false this.editSelCommonConfig.editVisible = true }, selClient(item) { - console.log(item) - console.log(this.tableList.tableData) - this.isRecalculate = true - // this.editConfig.infomation.client_name = row.name - this.tableList.tableData.map((ite, index) => { - if (index === this.productIndex) { - ite.name = item.name - ite.amount = item.amount || 1 - ite.number = item.number - ite.price = item.price - ite.total = item.amount ? item.amount * item.price : 1 * item.price - ite.unit = item.unit - } - }) + let list = this.tableList.tableData.map((item) => item.number) + if (list.findIndex((v) => v == item.number) == -1) { + this.isRecalculate = true + // this.editConfig.infomation.client_name = row.name + this.tableList.tableData.map((ite, index) => { + if (index === this.productIndex) { + ite.name = item.name + ite.amount = item.amount || 1 + ite.number = item.number + ite.price = item.price + ite.total = item.amount ? item.amount * item.price : 1 * item.price + ite.unit = item.unit + } + }) + } else { + this.$message.error("涓嶈兘閫夋嫨閲嶅鐨勪骇鍝侊紝 璇烽噸鏂伴�夋嫨") + } }, getSelectArray(val) { - this.$emit("getSelectArray", val) + this.$emit("getSelectArray", val, this.productIndex) }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 - clearupClient(row) { - this.productIndex = row.productId - 1 + clearupClient(scope) { + this.productIndex = scope.$index this.tableList.tableData.map((ite, index) => { if (index === this.productIndex) { ite.name = "" -- Gitblit v1.8.0