From cb1f69717eed3b6a61b6c61a8934bac752782b2d Mon Sep 17 00:00:00 2001 From: wwl <xchao828@163.com> Date: 星期三, 05 三月 2025 17:00:38 +0800 Subject: [PATCH] 1 --- src/views/system/package/index.vue | 347 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 211 insertions(+), 136 deletions(-) diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue index 1fcdfd2..839dfd1 100644 --- a/src/views/system/package/index.vue +++ b/src/views/system/package/index.vue @@ -24,19 +24,19 @@ @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label="濂楅鍒嗙被" prop="categoryId"> + <el-form-item label="浣撴绫诲埆" prop="tjCategory"> <el-select - v-model="queryParams.categoryId" + v-model="queryParams.tjCategory" placeholder="璇烽�夋嫨鐘舵��" style="width: 200px" filterable clearable > <el-option - v-for="dict in categoryList" + v-for="dict in dict.type.dict_tjtype" :key="dict.id" - :label="dict.name" - :value="dict.id" + :label="dict.label" + :value="dict.value" ></el-option> </el-select> </el-form-item> @@ -131,12 +131,19 @@ /> <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> --> <el-table-column - label="濂楅鍒嗙被" + label="浣撴绫诲埆" width="100px" align="center" prop="categoryNames" fixed - ></el-table-column> + > + <template slot-scope="scope"> + <dict-tag + :options="dict.type.dict_tjtype" + :value="scope.row.tjCategory" + /> + </template> + </el-table-column> <el-table-column label="濂楅鍚嶇О" align="center" @@ -240,12 +247,12 @@ align="center" prop="retailPrice" ></el-table-column> - <el-table-column + <!-- <el-table-column label="鍘熶环" width="90px" align="center" prop="counterPrice" - ></el-table-column> + ></el-table-column> --> <el-table-column label="宸插敭鏁伴噺" width="90px" @@ -363,12 +370,7 @@ </el-select> </el-form-item> - <el-form-item label="濂楅绫荤洰" prop="categoryId"> - <!-- <el-input - v-model="form.createId" - placeholder="璇疯緭鍏ュ晢鍝佺被鐩�" - style="width: 200px" - /> --> + <!-- <el-form-item label="濂楅绫荤洰" prop="categoryId"> <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨濂楅绫荤洰" @@ -384,26 +386,24 @@ :value="item.id" ></el-option> </el-select> - </el-form-item> - - <el-form-item label="鍏抽敭瀛�" prop="keywords"> + </el-form-item> --> + <el-form-item label="浣撴绫诲埆" prop="tjCategory"> <el-select - multiple - v-model="form.keywords" - placeholder="璇烽�夋嫨鍏抽敭瀛�" + v-model="form.tjCategory" + placeholder="璇烽�夋嫨浣撴绫诲埆" style="width: 150px" - @change="sel" filterable clearable > <el-option - v-for="item in keywordList" - :key="item.id" - :label="item.keyword" - :value="item.id" + v-for="dict in dict.type.dict_tjtype" + :key="dict.value" + :label="dict.label" + :value="dict.value" ></el-option> </el-select> </el-form-item> + <el-form-item label="鏄惁涓婃灦" prop="isOnSale"> <!-- <el-radio-group v-model="form.pacStatus"> <el-radio :label="0">鍚敤</el-radio> @@ -412,7 +412,7 @@ <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" - style="width: 150px" + style="width: 140px" filterable clearable > @@ -467,19 +467,21 @@ style="width: 140px" /> </el-form-item> - <el-form-item label="浣撴绫诲埆" prop="tjCategory"> + <el-form-item label="鍏抽敭瀛�" prop="keywords"> <el-select - v-model="form.tjCategory" - placeholder="璇烽�夋嫨浣撴绫诲埆" - style="width: 150px" + multiple + v-model="form.keywords" + placeholder="璇烽�夋嫨鍏抽敭瀛�" + style="width: 160px" + @change="sel" filterable clearable > <el-option - v-for="dict in dict.type.dict_tjtype" - :key="dict.value" - :label="dict.label" - :value="dict.value" + v-for="item in keywordList" + :key="item.id" + :label="item.keyword" + :value="item.id" ></el-option> </el-select> </el-form-item> @@ -550,16 +552,20 @@ </el-table-column> </el-table> --> - <el-row style="display: flex; width: 1300px;"> + <el-row style="display: flex; width: 1300px"> <el-col> <div style="text-align: center; margin-bottom: 10px; margin-top: 10px" > 椤圭洰鍒楄〃 </div> - <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> - </el-input> - <div class="tab3" style="height: 365px;"> + <el-input + placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" + @input="handleFilterInput" + v-model="queryParams1.nr" + clearable + /> + <div class="tab3" style="height: 365px"> <el-tree class="filter-tree" v-loading="loading" @@ -576,10 +582,10 @@ </el-tree> <pagination small - v-show="total > 0" - :total="total" - :page.sync="queryParams.page" - :limit.sync="queryParams.pageSize" + v-show="total1 > 0" + :total="total1" + :page.sync="queryParams1.page" + :limit.sync="queryParams1.pageSize" @pagination="getDataList" /> </div> @@ -728,7 +734,11 @@ import { listCategory } from "@/api/mall/category"; import { listKeyword } from "@/api/mall/keyword"; // import { getProParentIdDxList, getProSonDxList } from "@/api/system/tijian"; -import { getProParentIdDxList, getProSonDxList } from "@/api/system/package"; +import { + getProParentIdDxList, + search, + getProSonDxList, +} from "@/api/system/package"; import { getPacList, getPacInFo, @@ -815,16 +825,22 @@ // 鏄惁鏄剧ず寮瑰嚭灞� open: false, Seachopen: false, + checkedNodes: [], pacId: "", // 鎬绘潯鏁� total: 0, + total1: 0, // 鏌ヨ鍙傛暟 queryParams: { - page: 1, pageNum: 1, pageSize: 10, pacName: null, pacRemark: null, + }, + queryParams1: { + page: 1, + pageSize: 30, + nr: "", }, // 琛ㄥ崟鍙傛暟 form: { @@ -848,9 +864,9 @@ // categoryId: [ // { required: true, validator: checkPhoneNum, trigger: "change" }, // ], - keywords: [ + /* keywords: [ { required: true, validator: checkPhoneNum, trigger: "change" }, - ], + ], */ isOnSale: [ { required: true, validator: checkPhoneNum, trigger: "change" }, ], @@ -861,14 +877,17 @@ counterPrice: [ { required: true, validator: checkPhoneNum, trigger: "blur" }, ], + tjCategory: [ + { required: true, validator: checkPhoneNum, trigger: "blur" }, + ], }, }; }, - watch: { - filterText(val) { - this.$refs.tree.filter(val); - }, - }, + // watch: { + // filterText(val) { + // this.$refs.tree.filter(val); + // }, + // }, created() { this.getList(); @@ -912,6 +931,7 @@ this.loading = false; }); }, + /** 鏌ヨ鍏抽敭瀛楀垪琛� */ getKeyword() { this.loading = true; @@ -931,6 +951,7 @@ this.loading = true; listCategory(this.queryParams).then((response) => { this.categoryList = response.rows; + console.log(this.categoryList, 9988); }); }, shangpin(vals) {}, @@ -1053,6 +1074,8 @@ // }); getPacInFo(this.forms.pacId).then((response) => { this.form = response.data; + console.log(this.form, 2233); + this.form.keywords = this.form.keywords.slice(0, -1); this.form.keywords = this.form.keywords.split(","); // this.DataList = []; @@ -1078,6 +1101,8 @@ this.open = true; getPacInFo(row.pacId).then((response) => { this.form = response.data; + console.log(this.form, 445); + this.form.keywords = this.form.keywords.slice(0, -1); this.form.keywords = this.form.keywords.split(","); this.DataList = []; @@ -1139,13 +1164,18 @@ /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete1(row) { this.DataList = this.DataList.filter((item) => item.proId !== row.proId); - const tree = this.$refs.tree; - const node = tree.getNode(row.proId); // 鏍规嵁鑺傜偣鐨勫敮涓�鏍囪瘑鑾峰彇鑺傜偣瀵硅薄 - if (node) { - node.setChecked(false); // 鍙栨秷閫変腑鐘舵�� + // 浠� checkedNodes 涓Щ闄� + const index = this.checkedNodes.indexOf(row.proId); + if (index > -1) { + this.checkedNodes.splice(index, 1); } + const tree = this.$refs.tree; + const node = tree.getNode(row.proId); + if (node) { + node.setChecked(false); + } + this.updateTotalPrice(); }, - getSelectValue(val) { this.form.tjProjectList.forEach((formitem) => { if (formitem.proName == val) { @@ -1257,97 +1287,142 @@ }, getDataList() { this.loading = true; - getProParentIdDxList(this.queryParams).then((response) => { - this.Treedata = response.data.list; - /* if (this.form.tjProjectList) { - this.form.tjProjectList.forEach((item) => { - this.Treedata.forEach((item1) => { - if (item.proId == item1.proId) { - this.checkedkey.push(item1.proId); - - this.DataList.push(item1); - - this.DataList.forEach((item1) => { - item1.limits = 10; - if (item1.limits > 10) { - item1.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у�� - } else if (item1.limits < 0) { - item1.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓�� - } - this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫 - }); - - } - }); - }); - } */ /* else { - this.checkedkey.push(this.Treedata[0].proId); - let proId = this.Treedata[0].proId; - this.TreedataList = this.Treedata.filter( - (item) => item.proId == proId - ); */ - - // 灏嗙涓�涓」鐩坊鍔犲埌 DataList - // this.TreedataList.forEach((item) => { - // this.checkedListkey.push(item.proId); - // this.DataList.push(item); - // }); - /* getProSonDxList(proId).then((res) => { - this.TreedataList = res.data.list; - this.TreedataList.forEach((item) => { - item.disabled = true; - this.checkedListkey.push(item.proId); - this.DataList.push(item); - this.DataList.forEach((item) => { - item.propinName = this.Treedata[0].proName; - item.propinPrice = this.Treedata[0].proPrice; - }); - this.pics = 0; - this.DataList.forEach((item) => { - this.pics += item.proPrice; - }); - }); - }); */ - // } + search(this.queryParams1).then((response) => { + this.Treedata = response.data.list; // 鏇存柊鏍戝舰鏁版嵁 + this.total1 = response.data.total; // 鏇存柊鎬绘潯鏁� this.pics = this.DataList.reduce( (total, item) => total + item.priceOrd, 0 ); - this.loading = false; + + // 纭繚鍦ㄦ暟鎹姞杞藉悗淇濇寔閫変腑鐘舵�� + this.$nextTick(() => { + this.$refs.tree.setCheckedKeys(this.checkedNodes); + }); + }); + this.loading = false; + }, + // getDataList() { + // this.loading = true; + + // getProParentIdDxList(this.queryParams).then((response) => { + // this.Treedata = response.data.list; + // /* if (this.form.tjProjectList) { + // this.form.tjProjectList.forEach((item) => { + // this.Treedata.forEach((item1) => { + // if (item.proId == item1.proId) { + // this.checkedkey.push(item1.proId); + + // this.DataList.push(item1); + + // this.DataList.forEach((item1) => { + // item1.limits = 10; + // if (item1.limits > 10) { + // item1.limits = 10; // 寮哄埗灏嗗�艰缃负鏈�澶у�� + // } else if (item1.limits < 0) { + // item1.limits = 0; // 寮哄埗灏嗗�艰缃负鏈�灏忓�� + // } + // this.updateProPrice(item1); // 鏇存柊浠锋牸鎴栧叾浠栭�昏緫 + // }); + + // } + // }); + // }); + // } */ /* else { + // this.checkedkey.push(this.Treedata[0].proId); + // let proId = this.Treedata[0].proId; + // this.TreedataList = this.Treedata.filter( + // (item) => item.proId == proId + // ); */ + + // // 灏嗙涓�涓」鐩坊鍔犲埌 DataList + // // this.TreedataList.forEach((item) => { + // // this.checkedListkey.push(item.proId); + // // this.DataList.push(item); + // // }); + // /* getProSonDxList(proId).then((res) => { + // this.TreedataList = res.data.list; + // this.TreedataList.forEach((item) => { + // item.disabled = true; + // this.checkedListkey.push(item.proId); + // this.DataList.push(item); + // this.DataList.forEach((item) => { + // item.propinName = this.Treedata[0].proName; + // item.propinPrice = this.Treedata[0].proPrice; + // }); + // this.pics = 0; + // this.DataList.forEach((item) => { + // this.pics += item.proPrice; + // }); + // }); + // }); */ + // // } + // this.pics = this.DataList.reduce( + // (total, item) => total + item.priceOrd, + // 0 + // ); + // this.loading = false; + // }); + // }, + handleFilterInput() { + this.queryParams1.page = 1; // 鎼滅储鏃堕噸缃负绗竴椤� + this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁 + // 鍦ㄨ繃婊ゅ悗锛岄噸鏂拌缃�変腑鐘舵�� + this.$nextTick(() => { + this.$refs.tree.setCheckedKeys(this.checkedNodes); }); }, - handleCurrentChecked(data, checked, checkedNodes) { - this.dataObj = data; - this.checkedObj = checked; + // 鍒嗛〉浜嬩欢 + handlePageChange({ page, pageSize }) { + this.queryParams.page = page; // 鏇存柊褰撳墠椤� + this.queryParams.pageSize = pageSize; // 鏇存柊姣忛〉鏉℃暟 + this.getDataList(); // 璋冪敤鎺ュ彛鑾峰彇鏁版嵁 + }, + handleCurrentChecked(data, checked, indeterminate) { if (checked) { - // 妫�鏌ユ槸鍚﹀凡瀛樺湪浜� DataL - this.DataList.push({ - proId: data.proId, - proName: data.proName, - priceOrd: data.proPrice, // 鍘熶环锛岀‘淇濊祴鍊兼纭� - limits: 10, - priceNow: data.proPrice, - }); - + // 濡傛灉宸查�夊垪琛ㄤ腑涓嶅瓨鍦ㄦ椤圭洰锛屽垯娣诲姞 + if (!this.DataList.some((item) => item.proId === data.proId)) { + this.DataList.push({ + proId: data.proId, + proName: data.proName, + priceOrd: data.proPrice, + limits: 10, + priceNow: data.proPrice, + }); + } + // 娣诲姞鍒� checkedNodes 鏁扮粍 + if (!this.checkedNodes.includes(data.proId)) { + this.checkedNodes.push(data.proId); + } } else { - let index = this.DataList.findIndex( - (item) => item.proId === data.proId + // 鍙栨秷閫変腑鏃讹紝浠嶥ataList涓Щ闄� + this.DataList = this.DataList.filter( + (item) => item.proId !== data.proId ); - if (index !== -1) { - this.DataList.splice(index, 1); + // 浠� checkedNodes 涓Щ闄� + const index = this.checkedNodes.indexOf(data.proId); + if (index > -1) { + this.checkedNodes.splice(index, 1); } } - this.pics = 0; - this.TotalPrice1 = 0; - this.DataList.forEach((item) => { - this.pics += item.priceOrd; - this.form.counterPrice += item.priceOrd; - this.TotalPrice1 += item.priceOrd; // 鍙互鏍规嵁闇�瑕佹敼鎴愪紭鎯犱环 `priceNow` - }); - }, + // 鏇存柊浼樻儬浠峰拰鎬讳环 + this.updateTotalPrice(); + }, + updateTotalPrice() { + // 璁$畻鎵�鏈夐」鐩殑鎬讳紭鎯犱环 + this.form.xianprice = this.DataList.reduce((sum, item) => { + return sum.plus(new Big(item.priceNow || "0")); + }, new Big(0)).toNumber(); + + // 璁$畻鍘熶环鎬诲拰 + this.pics = this.DataList.reduce( + (total, item) => total + item.priceOrd, + 0 + ); + }, spliceData() { for (var i = 0; i < this.DataList.length; i++) { for (var j = i + 1; j < this.DataList.length; j++) { @@ -1419,7 +1494,7 @@ if (this.keys) { this.form.keywords = this.keys; // 濡傛灉鏈� this.keys锛屽垯鐩存帴璧嬪�� } else { - this.form.keywords = this.form.keywords.toString(); // 濡傛灉娌℃湁锛屽垯灏� this.form.keywords 杞垚瀛楃涓� + // this.form.keywords = this.form.keywords; // 濡傛灉娌℃湁锛屽垯灏� this.form.keywords 杞垚瀛楃涓� } let packageProjects = []; // 瀹氫箟涓�涓┖鏁扮粍 @@ -1442,7 +1517,7 @@ price: this.pics, pacId: this.form.pacId || null, isOnSale: this.form.isOnSale, - keywords: this.form.keywords, + // keywords: this.form.keywords, sort: this.form.sort, retailPrice: this.form.retailPrice, tjCategory: this.form.tjCategory, -- Gitblit v1.8.0