From 7f5306d896fa0c541a83c4b62d0c533a604dd184 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期日, 28 四月 2024 18:23:23 +0800 Subject: [PATCH] 供应商管理模块 添加新产品的时候供应商对应的产品和已增加的产品都不可选的逻辑处理 --- src/components/makepager/CommonFormTableView.vue | 102 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 88 insertions(+), 14 deletions(-) diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 145cd11..cfbb18b 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -3,15 +3,17 @@ <el-form ref="form" :model="tableList" :show-message="false" label-position="right"> <el-table ref="fromTable" + :border="isBoder" :data="tableList.tableData" :show-summary="showSummary.show" :summary-method="getSummaries" :span-method="arraySpanMethod" style="width: 100%" @selection-change="handleSelectionChange" - :row-key="(row) => row.productId" + :row-key="getRowKeys" > - <el-table-column v-if="selectBox" type="selection" :reserve-selection="true" width="40" align="center"> + <el-table-column v-if="selectBox" type="selection" :selectable="isDisabled" :reserve-selection="true" width="40" align="center"> + </el-table-column> <el-table-column v-if="tableList.isReturn" type="index" label="#" width="50" align="center"></el-table-column> <el-table-column @@ -27,6 +29,9 @@ <template slot="header"> <span v-if="item.isRequird" style="color: #f56c6c">*</span> <span>{{ item.label }}</span> + <FilterPopover @toFiltering="toFiltering" class="margin_left_3px" v-if="item.isFilter" + :layout="item.prop" :isFilterList="item.isFilterList" + :selectedListDefault="item.selectedListDefault"></FilterPopover> </template> <!-- column鏍峰紡 --> <template slot-scope="scope"> @@ -49,6 +54,13 @@ " ></el-input> </el-form-item> + <span v-else-if="item.compute">{{ calculateDifference(scope.row) }}</span> + <!-- 璋冪敤鏂规硶鏄剧ず鏂囧瓧 --> + <div v-else-if="item.isCallMethod"> + <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">{{ + item.getCallMethod(scope.row[item.prop], scope.row) + }}</span> + </div> <el-form-item v-else-if="item.productName" label=" " @@ -173,9 +185,14 @@ " ></el-input-number> </el-form-item> - <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span> + <span v-else style="text-align: right">{{ scope.row[item.prop] }}</span> + </template> + <!-- <template slot-scope="scope" v-if="item.compute"> + </template> --> </el-table-column> + <!-- <el-table-column label="鍓╀綑鏀惰揣鏁伴噺"> + </el-table-column> --> <el-table-column label="鎿嶄綔" width="40" v-if="!detailEnter" align="center"> <template slot-scope="scope"> <el-button type="text" size="small" :disabled="!isOperate" @click="deleteClick(scope)">鍒犻櫎</el-button> @@ -206,7 +223,7 @@ v-if="editSelCommonConfig.editVisible" :edit-common-config="editSelCommonConfig" :sign="sign" - :selectBoxList="tableList.tableData" + :selectBoxList="arrDisabledList" :quotationNumber="quotationNumber" @selClient="selClient" @getSelectArray="getSelectArray" @@ -217,11 +234,21 @@ <script> import { getProductListFromGrpc, getProductList } from "@/api/productManage/product" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" +import FilterPopover from "@/components/makepager/FilterPopover"; export default { name: "CommmonFormTableView", - components: { SelectCommonDialog }, + components: { SelectCommonDialog ,FilterPopover}, props: { detailEnter: { + type: Boolean, + default: false + }, + // selection 閫夋嫨鐘舵�� 椤甸潰 + name: { + type: String, + default: "", + }, + isBoder:{ type: Boolean, default: false }, @@ -277,20 +304,31 @@ mergeNumber: 1 } } + }, + disabledList:{ + type:[Array], + default: () => { + return [] + } } }, data() { return { total: 0, productList: [], - tableList: [], + tableList: { + tableData:[] + }, editSelCommonConfig: { editVisible: false, isSelectBox: false, title: "", - infomation: {} + infomation: {}, + supplierId:null, }, - productIndex: 0 + productIndex: 0, + supplierId:null, + arrDisabledList:[] } }, created() { @@ -305,20 +343,56 @@ this.getTableInfo() }, immediate: true + }, + supplierId(n,o) { + this.editSelCommonConfig.supplierId=n + console.log(n,o,"鐪嬬湅閭�") + } , + 'tableList.tableData':function () { + this.arrDisabledList=this.disabledList.concat(this.tableList.tableData) } }, computed: {}, methods: { + // 鑾峰彇row鐨刱ey鍊� + getRowKeys(row) { + let string; + string = row[this.productTableList.key?this.productTableList.key:this.productTableList.productId]; + return string; + }, + isDisabled(row){ + if (this.name == "rework") { + if (row.status == 1) { + return true; + } else { + return false; + } + }else { + return true; + } + }, + calculateDifference(row) { + if (row.notReceiveAmount !== null && row.nowReceiveAmount !== null) { + row.surplusReceiveAmount=row.notReceiveAmount - row.nowReceiveAmount; + return row.surplusReceiveAmount + } else { + return 0; + } + }, + toFiltering(event){ + this.$emit("toFiltering", event); + }, getTableInfo() { this.tableList = this.productTableList + this.arrDisabledList=this.disabledList.concat(this.tableList.tableData) }, // 浜у搧鍚嶇О async getProductList() { let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc await fn({ - page: 1, - pageSize: 100 - }).then((res) => { + page: 1, + pageSize: 100, + }).then((res) => { if (res.code === 200) { if (res.data.list && res.data.list.length > 0) { this.productList = res.data.list @@ -433,7 +507,7 @@ } }, commonInputChange(val, prop, row, scope) { - if (prop === "amount") { + if (prop === "amount"||prop=='purchasePrice') { this.tableList.tableData.map((ite) => { if (ite.name === row.name) { ite.total = row.amount * row.purchasePrice @@ -492,6 +566,7 @@ this.tableList.tableData.map((ite) => { if (ite.name === item.name) { ite.amount = item.amount || 1 + ite.productId = item.id ite.number = item.number ite.purchasePrice = item.purchasePrice ite.price = item.purchasePrice @@ -504,8 +579,7 @@ }) }, // 鏂板 - selClientClick(scope, prop) { - console.log(scope, prop) + selClientClick(scope) { this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" this.editSelCommonConfig.isSelectBox = true -- Gitblit v1.8.0