From 02b7655966b254a1c2b9f59006d52deb71aff3f4 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期二, 14 十一月 2023 11:30:49 +0800 Subject: [PATCH] 选择供应商组件优化、列表公共组件优化、创建采购单 --- src/components/makepager/CommonFormTableView.vue | 111 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 61 insertions(+), 50 deletions(-) diff --git a/src/components/makepager/CommonFormTableView.vue b/src/components/makepager/CommonFormTableView.vue index 5220061..e3a49c1 100644 --- a/src/components/makepager/CommonFormTableView.vue +++ b/src/components/makepager/CommonFormTableView.vue @@ -1,12 +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%" - :show-summary="showSummary.show" - :summary-method="getSummaries" - :span-method="arraySpanMethod"> - <el-table-column type="index" label="缂栧彿" width="50" align="center"></el-table-column> + <el-form ref="form" :model="tableList" :show-message="false" label-position="right"> + <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" @@ -47,6 +55,7 @@ v-model="scope.row[item.prop]" :fetch-suggestions="querySearchAsync" value-key="name" + style="width: calc(100% - 70px)" size="mini" @select=" (val) => { @@ -54,13 +63,13 @@ } " ></el-autocomplete> - <div class="common-select-btn" @click="selClientClick(scope.row, item.prop,scope)"> + <div 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,scope)"> + <div class="common-select-btn" @click="clearupClient(scope.row, scope)"> <i class="el-icon-remove-outline" title="娓呴櫎"></i> </div> - <div class="common-select-btn" @click="deleteClient(scope.row,scope)"> + <div class="common-select-btn" v-if="scope.$index != 0" @click="deleteClient(scope.row, scope)"> <i class="el-icon-delete" title="鍒犻櫎"></i> </div> </div> @@ -101,9 +110,9 @@ :prop="'tableData.' + scope.$index + '.' + item.prop" :rules="[{ required: item.isRequird ? true : false, message: '杈撳叆涓嶈兘涓虹┖' }]" > - <template v-if="item.multiply"> + <template v-if="item.multiply"> <el-input-number - :value="scope.row[showSummary.multiply[0]]*scope.row[showSummary.multiply[1]]" + :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]" placeholder="" :disabled="item.disabled" :min="0" @@ -117,22 +126,22 @@ } " ></el-input-number> - </template> - <template v-else> - <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> + <template v-else> + <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> </el-form-item> <span v-else>{{ scope.row[item.prop] }}</span> @@ -157,7 +166,7 @@ </template> <script> -import { getProductListFromGrpc,getProductList } from "@/api/productManage/product" +import { getProductListFromGrpc, getProductList } from "@/api/productManage/product" import SelectCommonDialog from "@/views/other/commonDialog/SelectCommonDialog" export default { name: "CommmonFormTableView", @@ -167,9 +176,9 @@ type: Boolean, default: false }, - sign:{ - type:String, - default:'' + sign: { + type: String, + default: "" }, productTableList: { type: Object, @@ -191,7 +200,7 @@ total: false, refundable: false, sumProp: [], - multiply:[], + multiply: [], titleProp: ["#", "浜у搧鍚嶇О"], mergeNumber: 1 } @@ -200,7 +209,7 @@ recalculateShow: { type: [Boolean], defalut: true - }, + } }, data() { return { @@ -220,20 +229,19 @@ this.tableList = this.productTableList }, computed: {}, - watch:{ - productTableList(){ + watch: { + productTableList() { this.tableList = this.productTableList } }, methods: { // 浜у搧鍚嶇О async getProductList() { - let fn = this.sign == "purchase" ? getProductList : 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 @@ -297,7 +305,7 @@ } if (column.property === "total") { this.total = sums[index] - this.$emit('getSummaries',this.total) + this.$emit("getSummaries", this.total) } }) return sums @@ -393,7 +401,7 @@ } this.$emit("selCommonName", selRow) }, - selClientClick(row, prop,scope) { + selClientClick(row, prop, scope) { console.log(row, prop) this.productIndex = scope.$index this.editSelCommonConfig.title = "浜у搧鍚嶇О" @@ -425,21 +433,20 @@ ite.unit = item.unit ite.deliveryTime = item.deliveryTime ite.shippingDuration = item.shippingDuration - this.$set(this.tableList.tableData,index,ite) + this.$set(this.tableList.tableData, index, ite) this.$forceUpdate() } }) - - - console.log(this.tableList.tableData,'=====chanp') + + console.log(this.tableList.tableData, "=====chanp") } }, // 娓呴櫎宸查�夋嫨鐢ㄦ埛 - clearupClient(row,scope) { + clearupClient(row, scope) { this.productIndex = scope.$index this.tableList.tableData.map((ite, index) => { console.log(scope.$index) - if (scope.$index && scope.$index >= 0) { + if (scope.$index && scope.$index >= 0) { if (index === this.productIndex) { ite.name = "" ite.amount = 1 @@ -461,10 +468,13 @@ }) this.$emit("clearupProduct", this.tableList.tableData) }, - deleteClient(row,scope){ - this.tableList.tableData.splice(scope.$index,1) - }, - + deleteClient(row, scope) { + if (this.tableList.tableData.length == 1) { + this.$message.error("鑷冲皯淇濈暀涓�鏉★紝涓嶈兘鍒櫎浜嗭紒") + return true + } + this.tableList.tableData.splice(scope.$index, 1) + } } } </script> @@ -472,6 +482,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 { -- Gitblit v1.8.0