From 3b2fc427d0b25bd606c261b9d8b6b8a727a0e37b Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期三, 22 十一月 2023 17:34:06 +0800 Subject: [PATCH] 供应商管理-销售负责人默认设为当前登录人 --- src/components/makepager/CommonFormTableView.vue | 148 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 105 insertions(+), 43 deletions(-) diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 91b6d2c..4b10151 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -1,8 +1,20 @@ <template> <div class="page-view"> <el-form ref="form" :model="tableList" :show-message="false" label-position="right"> - <el-table :data="tableList.tableData" style="width: 100%"> - <el-table-column type="index" label="缂栧彿" width="50" align="center"></el-table-column> + <el-table + :data="tableList.tableData" + style="width: 100%" + :show-summary="showSummary.show" + :summary-method="getSummaries" + :span-method="arraySpanMethod" + > + <el-table-column + type="index" + v-if="tableList.tableColumn && tableList.tableColumn.length > 0" + label="缂栧彿" + width="50" + align="center" + ></el-table-column> <el-table-column v-for="(item, i) in tableList.tableColumn" :key="i" @@ -27,6 +39,7 @@ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > <el-input + :disabled="item.disabled" v-model.trim="scope.row[item.prop]" maxlength="50" size="mini" @@ -37,12 +50,14 @@ " ></el-input> </el-form-item> - <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"> + <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop"> <div class="custom-name"> <el-autocomplete + :disabled="item.disabled" v-model="scope.row[item.prop]" :fetch-suggestions="querySearchAsync" value-key="name" + style="width: calc(100% - 70px)" size="mini" @select=" (val) => { @@ -50,11 +65,14 @@ } " ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick(scope.row, item.prop)"> - <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> + <div v-if="!item.disabled" class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)"> + <i class="el-icon-circle-plus-outline" title="閫夋嫨"></i> </div> - <div class="common-select-btn" @click="clearupClient(scope.row)"> + <div v-if="!item.disabled" class="common-select-btn" @click="clearupClient(scope.row, scope)"> <i class="el-icon-remove-outline" title="娓呴櫎"></i> + </div> + <div class="common-select-btn" v-if="scope.$index != 0||!item.disabled" @click="deleteClient(scope.row, scope)"> + <i class="el-icon-delete" title="鍒犻櫎"></i> </div> </div> </el-form-item> @@ -75,6 +93,7 @@ :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > <el-input-number + :disabled="item.disabled" v-model="scope.row[item.prop]" placeholder="" :min="0" @@ -94,20 +113,41 @@ :prop="'tableData.' + scope.$index + '.' + item.prop" :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > - <el-input-number - v-model="scope.row[item.prop]" - placeholder="" - :min="0" - :precision="2" - :controls="false" - size="mini" - style="width: 100%; margin-right: 5px" - @change=" - (val) => { - commonInputChange(val, item.prop, scope.row) - } - " - ></el-input-number> + <!-- 閲囪喘绠$悊 --> + <template v-if="item.multiply"> + <el-input-number + :disabled="item.disabled" + :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]" + placeholder="" + :min="0" + :precision="2" + :controls="false" + size="mini" + style="width: 100%; margin-right: 5px" + @input=" + (val) => { + commonInputChange(val, item.prop, scope.row) + } + " + ></el-input-number> + </template> + <template v-else> + <el-input-number + :disabled="item.disabled" + v-model="scope.row[item.prop]" + placeholder="" + :min="0" + :precision="2" + :controls="false" + size="mini" + style="width: 100%; margin-right: 5px" + @change=" + (val) => { + commonInputChange(val, item.prop, scope.row) + } + " + ></el-input-number> + </template> </el-form-item> <span v-else>{{ scope.row[item.prop] }}</span> <!-- </template> --> @@ -117,20 +157,21 @@ </el-table> </el-form> <div v-if="!detailEnter" style="margin: 10px"> - <el-button size="small" type="primary" @click="add">鏂板</el-button> - <el-button size="small" type="primary" @click="empty">娓呯┖</el-button> + <el-button :disabled="tableList.disabled" size="small" type="primary" @click="add">鏂板</el-button> + <el-button :disabled="tableList.disabled" size="small" type="primary" @click="empty">娓呯┖</el-button> </div> <!-- 浜у搧鍚嶇О --> <SelectCommonDialog v-if="editSelCommonConfig.editVisible" :edit-common-config="editSelCommonConfig" + :sign="sign" @selClient="selClient" /> </div> </template> <script> -import { getProductListFromGrpc } from "@/api/productManage/product" +import { getProductListFromGrpc, getProductList } from "@/api/productManage/product" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" export default { name: "CommmonFormTableView", @@ -140,10 +181,16 @@ type: Boolean, default: false }, + sign: { + type: String, + default: "" + }, productTableList: { type: Object, default: () => { return { + tableProductList:[], + disabled:false, tableData: [], // 鎺ュ彛杩斿洖鏁版嵁 tableColumn: [ // table琛ㄥ崟 @@ -160,6 +207,7 @@ total: false, refundable: false, sumProp: [], + multiply: [], titleProp: ["#", "浜у搧鍚嶇О"], mergeNumber: 1 } @@ -180,7 +228,8 @@ title: "", infomation: {} }, - productIndex: 0 + productIndex: 0, + tableProductLists:[], } }, created() { @@ -188,17 +237,23 @@ this.tableList = this.productTableList }, computed: {}, + watch: { + productTableList() { + this.tableList = this.productTableList + }, + }, methods: { // 浜у搧鍚嶇О async getProductList() { - await getProductListFromGrpc({ + let fn = this.sign == "purchase" ? getProductList : getProductListFromGrpc + await fn({ page: 1, pageSize: 100 }).then((res) => { - console.log(res.data) - if (res.data.code === 200) { - if (res.data.data.list && res.data.data.list.length > 0) { - this.productList = res.data.data.list + if (res.code === 200) { + if (res.data.list && res.data.list.length > 0) { + this.productList = res.data.list + this.tableProductLists = res.data.list } } }) @@ -259,6 +314,7 @@ } if (column.property === "total") { this.total = sums[index] + this.$emit("getSummaries", this.total) } }) return sums @@ -297,8 +353,6 @@ this.$emit("addProductClick") }, commonInputChange(val, prop, row) { - console.log(val, prop) - console.log(row) this.$emit("inputContent", val, prop, row) }, // 娓呯┖ @@ -307,7 +361,7 @@ }, // 閫夋嫨浜у搧鍚嶇О鐩稿叧鏂规硶 querySearchAsync(queryString, cb) { - var restaurants = this.productList + var restaurants = this.tableProductLists var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants cb(results) }, @@ -318,7 +372,6 @@ }, handleSelectClient(item, prop, row) { // this.clientId = item.id - console.log(item, prop, row) this.tableList.tableData.map((ite) => { if (ite.name === item.name) { ite.ID = row.ID @@ -354,9 +407,9 @@ } this.$emit("selCommonName", selRow) }, - selClientClick(row, prop) { + selClientClick(row, prop, scope) { console.log(row, prop) - this.productIndex = row.productId - 1 + this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" this.editSelCommonConfig.editVisible = true }, @@ -379,22 +432,27 @@ this.tableList.tableData.map((ite, index) => { if (index === this.productIndex) { ite.name = item.name + ite.productId = item.ID ite.amount = item.amount || 1 ite.number = item.number ite.purchasePrice = item.purchasePrice ite.unit = item.unit ite.deliveryTime = item.deliveryTime ite.shippingDuration = item.shippingDuration + this.$set(this.tableList.tableData, index, ite) + this.$forceUpdate() } }) + + console.log(this.tableList.tableData, "=====chanp") } }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 - clearupClient(row) { - this.productIndex = row.productId - 1 + clearupClient(row, scope) { + this.productIndex = scope.$index this.tableList.tableData.map((ite, index) => { - console.log(row.productId) - if (row.productId && row.productId >= 0) { + console.log(scope.$index) + if (scope.$index && scope.$index >= 0) { if (index === this.productIndex) { ite.name = "" ite.amount = 1 @@ -416,9 +474,12 @@ }) this.$emit("clearupProduct", this.tableList.tableData) }, - // 鍒犻櫎 - deleteClient(row) { - this.$emit("deleteProduct", row) + deleteClient(row, scope) { + if (this.tableList.tableData.length == 1) { + this.$message.error("鑷冲皯淇濈暀涓�鏉★紝涓嶈兘鍒櫎浜嗭紒") + return true + } + this.tableList.tableData.splice(scope.$index, 1) } } } @@ -427,6 +488,7 @@ <!-- Add "scoped" attribute to limit CSS to this component only --> <style lang="scss" scoped> .page-view { + min-width: 100px; .el-form-item { margin-bottom: 0; .custom-name { @@ -445,7 +507,7 @@ } .el-table__footer-wrapper tbody td.el-table__cell { background-color: #fff; - text-align: right; + // text-align: right; font-weight: bold; } .el-input--suffix .el-input__inner { -- Gitblit v1.8.0