From 00212ed8e808fc7b76c04389224e65f27f074fb2 Mon Sep 17 00:00:00 2001 From: su1124 <1583764726@qq.com> Date: 星期五, 26 四月 2024 15:30:04 +0800 Subject: [PATCH] su --- src/views/system/package/index.vue | 796 ++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 570 insertions(+), 226 deletions(-) diff --git a/src/views/system/package/index.vue b/src/views/system/package/index.vue index 6e8c394..5644531 100644 --- a/src/views/system/package/index.vue +++ b/src/views/system/package/index.vue @@ -26,19 +26,19 @@ </el-form-item> <el-form-item label="濂楅鍒嗙被" prop="categoryId"> <el-select - v-model="queryParams.categoryId" - placeholder="璇烽�夋嫨鐘舵��" - style="width: 200px" - filterable - clearable - > - <el-option - v-for="dict in categoryList" - :key="dict.id" - :label="dict.name" - :value="dict.id" - ></el-option> - </el-select> + v-model="queryParams.categoryId" + placeholder="璇烽�夋嫨鐘舵��" + style="width: 200px" + filterable + clearable + > + <el-option + v-for="dict in categoryList" + :key="dict.id" + :label="dict.name" + :value="dict.id" + ></el-option> + </el-select> </el-form-item> <el-form-item> <el-button @@ -131,12 +131,27 @@ /> <!-- <el-table-column label="缂栧彿" align="center" prop="pacId" /> --> <el-table-column + label="濂楅鍒嗙被" + width="100px" + align="center" + prop="categoryNames" + fixed + ></el-table-column> + <el-table-column label="濂楅鍚嶇О" align="center" prop="pacName" width="150px" fixed /> + <el-table-column + label="浠锋牸" + width="80px" + align="center" + prop="price" + fixed + > + </el-table-column> <el-table-column label="鍗曢」鍒楄〃" align="center" @@ -172,15 +187,7 @@ <image-preview :src="scope.row.pacPhone" :width="50" :height="50" /> </template> </el-table-column> --> - <el-table-column label="浠锋牸" width="80px" align="center" prop="price"> - </el-table-column> - - <el-table-column - label="濂楅鍒嗙被" - width="100px" - align="center" - prop="categoryNames" - ></el-table-column> + <el-table-column label="鍏抽敭瀛�" width="110px" @@ -193,8 +200,11 @@ align="center" prop="isOnSale" > - <template slot-scope="scope"> - <dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isOnSale"/> + <template slot-scope="scope"> + <dict-tag + :options="dict.type.sys_yes_no" + :value="scope.row.isOnSale" + /> </template> </el-table-column> <!-- <el-table-column @@ -291,7 +301,7 @@ <el-dialog :title="title" :visible.sync="open" - width="1000px" + width="1100px" append-to-body > <el-form @@ -304,10 +314,17 @@ <!-- <div class="dialo"> <div class="dialo1"> --> <el-form-item label="濂楅鍚嶇О" prop="pacName"> + <span + slot="label" + style="display: inline-block; border-bottom: 2px solid blue" + @click="handlePackage" + > + 濂楅鍚嶇О + </span> <el-input v-model="form.pacName" placeholder="璇疯緭鍏ュ椁愬悕绉�" - style="width: 200px" + style="width: 150px" /> </el-form-item> <el-form-item label="濂楅鐘舵��" prop="pacStatus"> @@ -318,7 +335,7 @@ <el-select v-model="form.pacStatus" placeholder="璇烽�夋嫨鐘舵��" - style="width: 200px" + style="width: 150px" filterable clearable > @@ -331,7 +348,7 @@ </el-select> </el-form-item> - <el-form-item label="鍟嗗搧绫荤洰" prop="categoryId"> + <el-form-item label="濂楅绫荤洰" prop="categoryId"> <!-- <el-input v-model="form.createId" placeholder="璇疯緭鍏ュ晢鍝佺被鐩�" @@ -339,8 +356,8 @@ /> --> <el-select v-model="form.categoryId" - placeholder="璇烽�夋嫨鍟嗗搧绫荤洰" - style="width: 200px" + placeholder="璇烽�夋嫨濂楅绫荤洰" + style="width: 150px" @change="shangpin" filterable clearable @@ -354,13 +371,12 @@ </el-select> </el-form-item> - <el-form-item label="鍏抽敭瀛�" prop="keywords"> <el-select multiple v-model="form.keywords" placeholder="璇烽�夋嫨鍏抽敭瀛�" - style="width: 200px" + style="width: 150px" @change="sel" filterable clearable @@ -381,7 +397,7 @@ <el-select v-model="form.isOnSale" placeholder="璇烽�夋嫨鏄惁涓婃灦" - style="width: 200px" + style="width: 150px" filterable clearable > @@ -393,148 +409,184 @@ ></el-option> </el-select> </el-form-item> - + <el-form-item label="鎺掑簭" prop="sort"> <el-input v-model="form.sort" placeholder="璇疯緭鍏ユ帓搴�" - style="width: 200px" + style="width: 150px" /> </el-form-item> <el-form-item label="灏忕▼搴忎环鏍�" prop="retailPrice"> <el-input v-model="form.retailPrice" placeholder="璇疯緭鍏ュ皬绋嬪簭浠锋牸" - style="width: 200px" + style="width: 150px" /> </el-form-item> <el-form-item label="鍘熶环" prop="counterPrice"> <el-input v-model="form.counterPrice" placeholder="璇疯緭鍏ュ師浠�" - style="width: 200px" + style="width: 150px" /> </el-form-item> - <el-form-item label="濂楅鎻忚堪" prop="pacRemark"> - <el-input - type="textarea" - v-model="form.pacRemark" - placeholder="璇疯緭鍏ュ椁愭弿杩�" - style="width: 820px" - rows="2" - ></el-input> - </el-form-item> - <el-form-item label="璇︾粏浠嬬粛" prop="detail"> - <!-- <el-input + + <div v-if="!isCollapsed" style="display: flex"> + <div> + <el-form-item label="濂楅鎻忚堪" prop="pacRemark"> + <el-input + type="textarea" + v-model="form.pacRemark" + placeholder="璇疯緭鍏ュ椁愭弿杩�" + style="width: 670px" + rows="2" + ></el-input> + </el-form-item> + <el-form-item label="璇︾粏浠嬬粛" prop="detail"> + <!-- <el-input v-model="form.detail" placeholder="璇疯緭鍏ヨ缁嗕粙缁�" style="width: 200px" /> --> - <editor v-model="form.detail" :min-height="192" /> - </el-form-item> - <!-- </div> --> - <div class="dialo2"> - <el-form-item label="鍥剧墖"> - <image-upload v-model="form.pacPhone" /> - </el-form-item> + <editor + v-model="form.detail" + :min-height="192" + style="width: 670px" + /> + </el-form-item> + </div> + <!-- </div> --> + <div class="dialo2"> + <el-form-item label="鍥剧墖"> + <image-upload v-model="form.pacPhone" /> + </el-form-item> + </div> + <!-- </div> --> </div> - <!-- </div> --> </el-form> - - <el-button - type="primary" - plain - size="mini" - icon="el-icon-plus" - @click="addmembers()" - >鏂板</el-button - > - <el-table - v-loading="loading" - :data="form.tjProjectList" - @selection-change="handleSelectionChange" - border - max-height="275" - style="margin: 10px 0" - > + <el-button type="primary" plain size="mini" @click="toggleCollapse">{{ + isCollapsed ? "灞曞紑" : "鏀惰捣" + }}</el-button> + <!-- <el-button type="primary" plain size="mini" icon="el-icon-plus" @click="addmembers()">鏂板鍗曢」</el-button> + <el-table v-loading="loading" :data="form.tjProjectList" @selection-change="handleSelectionChange" border + max-height="275" style="margin: 10px 0"> <el-table-column label="搴忓彿" align="center" type="index" /> - <el-table-column - label="椤圭洰鍚嶇О" - align="center" - prop="proName" - width="180px" - > + <el-table-column label="椤圭洰鍚嶇О" align="center" prop="proName" width="180px"> <template slot-scope="scope"> - <el-select - filterable - v-model="scope.row.proName" - placeholder="璇烽�夋嫨椤圭洰鍚嶇О" - @change="getSelectValue" - > - <el-option - v-for="(item, index) in allList" - :key="index" - :label="item.proName" - :value="item.proName" - > + <el-select filterable v-model="scope.row.proName" placeholder="璇烽�夋嫨椤圭洰鍚嶇О" @change="getSelectValue"> + <el-option v-for="(item, index) in allList" :key="index" :label="item.proName" :value="item.proName"> </el-option> </el-select> </template> </el-table-column> - <el-table-column - label="椤圭洰鏄庣粏" - align="center" - prop="allSonProName" - width="400px" - :show-overflow-tooltip="true" - > + <el-table-column label="椤圭洰鏄庣粏" align="center" prop="allSonProName" width="400px" :show-overflow-tooltip="true"> </el-table-column> - <el-table-column - label="鍘熶环(鍏�)" - align="center" - prop="proPrice" - width="80px" - /> - <el-table-column - label="鐜颁环(鍏�)" - align="center" - prop="priceNow" - width="80px" - > + <el-table-column label="鍘熶环(鍏�)" align="center" prop="proPrice" width="80px" /> + <el-table-column label="鐜颁环(鍏�)" align="center" prop="priceNow" width="80px"> <template slot-scope="scope"> - <el-input - v-model="scope.row.priceNow" - autocomplete="off" - placeholder="璇疯緭鍏ュ唴瀹�" - ></el-input> + <el-input v-model="scope.row.priceNow" autocomplete="off" placeholder="璇疯緭鍏ュ唴瀹�"></el-input> </template> </el-table-column> - <el-table-column - label="鎿嶄綔" - fixed="right" - align="center" - class-name="small-padding fixed-width" - > + <el-table-column label="鎿嶄綔" fixed="right" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> - <el-button - size="mini" - type="text" - icon="el-icon-circle-plus-outline" - @click="addmembers(scope.row)" - v-hasPermi="['system:package:edit']" - title="鏂板琛�" - ></el-button> - <el-button - size="mini" - type="text" - icon="el-icon-delete" - @click.native.prevent="Delete(scope.$index)" - v-hasPermi="['hosp:consumables:remove']" - title="鍒犻櫎" - ></el-button> + <el-button size="mini" type="text" icon="el-icon-circle-plus-outline" @click="addmembers(scope.row)" + v-hasPermi="['system:package:edit']" title="鏂板琛�"></el-button> + <el-button size="mini" type="text" icon="el-icon-delete" @click.native.prevent="Delete(scope.$index)" + v-hasPermi="['hosp:consumables:remove']" title="鍒犻櫎"></el-button> </template> </el-table-column> - </el-table> + </el-table> --> + + <el-row :gutter="20"> + <el-col :span="6"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > + 椤圭洰鍒楄〃 + </div> + <el-input placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�" v-model="filterText"> + </el-input> + <div class="tab3"> + <el-tree + class="filter-tree" + v-loading="loading" + :data="Treedata" + :props="defaultProps" + show-checkbox + node-key="proId" + @check-change="handleCurrentChecked" + :default-checked-keys="checkedkey" + :filter-node-method="filterNode" + ref="tree" + > + </el-tree> + </div> + </el-col> + <el-col :span="6"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > + 鏄庣粏椤圭洰鍒楄〃 + </div> + <div class="tab3"> + <el-tree + class="filter-tree" + v-loading="loading" + :data="TreedataList" + node-key="proId" + :props="defaultProps" + :filter-node-method="filterNode" + show-checkbox + @check-change="handleCurrentChecked1" + :default-checked-keys="checkedListkey" + ref="trees" + > + </el-tree> + </div> + </el-col> + <el-col :span="11"> + <div class="grid-content bg-purple"> + <div + style="text-align: center; margin-bottom: 10px; margin-top: 10px" + > + 宸查�夐」鐩垪琛� + </div> + <el-table + :data="DataList" + border + style="width: 100%" + height="400" + :span-method="objectSpanMethod" + > + <el-table-column prop="propinName" label="妫�鏌ラ」鐩�"> + </el-table-column> + <el-table-column prop="proName" label="鏄庣粏椤圭洰" width="260px"> + </el-table-column> + <el-table-column prop="proPrice" label="鍘熶环" width="56px"> + </el-table-column> + + <!-- <el-table-column + label="鎿嶄綔" + align="center" + fixed="right" + class-name="small-padding fixed-width" + width="50px" + > + <template slot-scope="scope"> + <el-button + size="mini" + type="text" + icon="el-icon-delete" + @click="handleDeletes(scope.row)" + title="鍒犻櫎" + ></el-button> + </template> + </el-table-column>--> + </el-table> + </div> + </el-col> + </el-row> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> @@ -558,13 +610,18 @@ </div> </template> </el-dialog> --> + <Packages ref="aaa" @add="handleChanges" /> </div> </template> <script> +import Packages from "@/components/Packages"; import { listCategory } from "@/api/mall/category"; import { listKeyword } from "@/api/mall/keyword"; +import { getProParentIdDxList, getProSonDxList } from "@/api/system/tijian"; import { + getPacList, + getPacInFo, listPackage, getPackage, delPackage, @@ -574,16 +631,46 @@ updateStatus, getAllList, updateProject, + getPacTjProjectList, } from "@/api/system/package"; import { Message } from "element-ui"; export default { name: "Package", dicts: ["sys_normal_disable", "sys_yes_no"], + components: { Packages }, data() { + let checkPhoneNum = (rule, value, callback) => { + console.log(value); + let patter = new RegExp(/^1\s*[3456789]\s*(\d\s*){9}$/); + if (value == "" && value == undefined && !value) { + return callback(""); + } else if (value != undefined && value != "") { + return callback(); + } else if (!patter.test(value)) { + return callback(""); + } + }; return { - categoryList:[], - keys:"", + filterText: "", + DataList: [], + list1: true, + activeName: "1", + checkedObj: {}, + dataObj: {}, + Treedata: [], + TreedataList: [], + treedataList: [], + checkedkey: [], + checkedListkey: [], + defaultProps: { + children: [], + label: "proName", + }, + isCollapsed: true, // 榛樿涓烘姌鍙犵姸鎬� + categoryList: [], + keys: "", keywordList: [], + dataListAll: [], // 澶氶�夋 priceNow: "", checkAll: false, @@ -626,37 +713,41 @@ }, // 琛ㄥ崟鍙傛暟 form: {}, + forms: {}, // 琛ㄥ崟鏍¢獙 rules: { deleted: [ - { required: true, message: "", trigger: "blur" }, + { required: true, validator: checkPhoneNum, trigger: "blur" }, ], pacName: [ - { required: true, message: "", trigger: "blur" }, + { required: true, validator: checkPhoneNum, trigger: "blur" }, ], pacStatus: [ - { required: true, message: "", trigger: "change" }, + { required: true, validator: checkPhoneNum, trigger: "change" }, ], - categoryId: [ - { required: true, message: "", trigger: "change" }, - ], + // categoryId: [ + // { required: true, validator: checkPhoneNum, trigger: "change" }, + // ], keywords: [ - { required: true, message: "", trigger: "change" }, + { required: true, validator: checkPhoneNum, trigger: "change" }, ], isOnSale: [ - { required: true, message: "", trigger: "change" }, + { required: true, validator: checkPhoneNum, trigger: "change" }, ], - sort: [ - { required: true, message: "", trigger: "blur" }, - ], + sort: [{ required: true, validator: checkPhoneNum, trigger: "blur" }], retailPrice: [ - { required: true, message: "", trigger: "blur" }, + { required: true, validator: checkPhoneNum, trigger: "blur" }, ], counterPrice: [ - { required: true, message: "", trigger: "blur" }, + { required: true, validator: checkPhoneNum, trigger: "blur" }, ], }, }; + }, + watch: { + filterText(val) { + this.$refs.tree.filter(val); + }, }, created() { this.getList(); @@ -664,10 +755,26 @@ this.getCategory(); }, methods: { + toggleCollapse() { + this.isCollapsed = !this.isCollapsed; // 鐐瑰嚮鎸夐挳鏃跺垏鎹sCollapsed鐨勫�� + }, + filterNode(value, data) { + if (!value) return true; + return data.proName.indexOf(value) !== -1; + }, /** 鏌ヨ浣撴濂楅鍒楄〃 */ getList() { this.loading = true; - listPackage(this.queryParams).then((response) => { + getPacTjProjectList().then((response) => { + this.allList = response.data; + if (this.allList.proStatus === 0) { + this.allList.proStatus = "鍚敤"; + } else { + this.allList.proStatus = "鍋滅敤"; + } + this.loading = false; + }); + getPacList(this.queryParams).then((response) => { response.rows.forEach((item, index) => { item.newID = (this.queryParams.pageNum - 1) * this.queryParams.pageSize + @@ -687,10 +794,11 @@ }); }, sel(val) { - let id = val + console.log(val); + let id = val; this.keys = ""; id.forEach((item) => { - this.keys += item + "," + this.keys += item + ","; }); }, /** 鏌ヨ绫荤洰鍒楄〃 */ @@ -700,7 +808,7 @@ this.categoryList = response.rows; }); }, - shangpin(vals){ + shangpin(vals) { console.log(vals); }, // 鍙栨秷鎸夐挳 @@ -733,6 +841,20 @@ this.queryParams.pageNum = 1; this.getList(); }, + + handlePackage() { + this.$refs.aaa.open = true; + this.$refs.aaa.getList(); + this.$refs.aaa.title = "濂楅瀛楀吀"; + }, + handleChanges(param1) { + this.form.pacName = param1[0].pacName; + this.form.hisPacId = param1[0].pacId; + if (param1[0].price) { + this.form.counterPrice = param1[0].price; + this.form.retailPrice = param1[0].price; + } + }, /** 閲嶇疆鎸夐挳鎿嶄綔 */ resetQuery() { this.resetForm("queryForm"); @@ -743,7 +865,7 @@ if (!selection[0]) { return; } - this.form = selection[0]; + this.forms = selection[0]; this.ids = selection.map((item) => item.pacId); this.single = selection.length !== 1; this.multiple = !selection.length; @@ -753,15 +875,17 @@ this.reset(); this.open = true; this.title = "浣撴濂楅淇℃伅缁存姢"; - getAllList().then((response) => { - this.allList = response.data; - if (this.allList.proStatus === 0) { - this.allList.proStatus = "鍚敤"; - } else { - this.allList.proStatus = "鍋滅敤"; - } - this.loading = false; - }); + this.DataList = []; + this.getDataList(); + // getAllList().then((response) => { + // this.allList = response.data; + // if (this.allList.proStatus === 0) { + // this.allList.proStatus = "鍚敤"; + // } else { + // this.allList.proStatus = "鍋滅敤"; + // } + // this.loading = false; + // }); // if (!this.form.tjProjectList) { // this.form.tjProjectList = [] // this.form.tjProjectList.push({ @@ -778,11 +902,10 @@ // 鏄惁鍚敤 handleStatusChange(row) { - let data = { - pacId:row.pacId, - pacStatus:row.pacStatus, - } + pacId: row.pacId, + pacStatus: row.pacStatus, + }; let text = row.pacStatus === "0" ? "鍚敤" : "鍋滅敤"; this.$confirm("纭瑕�" + text + row.pacName + "濂楅鍚楋紵") .then(function () { @@ -799,26 +922,33 @@ handleUp() { this.title = "浣撴濂楅淇℃伅缁存姢"; this.open = true; - getAllList().then((response) => { - this.allList = response.data; - this.loading = false; + // getPacTjProjectList().then((response) => { + // this.allList = response.data; + // this.loading = false; + // }); + getPacInFo(this.forms.pacId).then((response) => { + this.form = response.data; + this.form.keywords=this.form.keywords.slice(0, -1); + this.form.keywords = this.form.keywords.split(","); + this.DataList = []; + this.checkedkey = []; + this.checkedListkey = []; + this.getDataList(); }); }, /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { - this.form = row; - this.form.keywords = this.form.keyIds; - // if (this.form.pacStatus === 0) { - // this.form.pacStatus = "鍚敤"; - // } else { - // this.form.pacStatus = "鍋滅敤"; - // } this.title = "浣撴濂楅淇℃伅缁存姢"; this.open = true; - // getAllList().then((response) => { - // this.allList = response.data; - // this.loading = false; - // }); + getPacInFo(row.pacId).then((response) => { + this.form = response.data; + this.form.keywords=this.form.keywords.slice(0, -1); + this.form.keywords = this.form.keywords.split(","); + this.DataList = []; + this.checkedkey = []; + this.checkedListkey = []; + this.getDataList(); + }); }, // 鏂板琛� @@ -872,49 +1002,261 @@ formitem.proId = item.proId; formitem.proPrice = item.proPrice; formitem.priceNow = item.proPrice; - item.tjProjectList.forEach((item1) => { - this.$nextTick(() => { - formitem.allSonProName = - formitem.allSonProName + "," + item1.proName; - }); - // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName - }); + formitem.allSonProName = item.allSonProName; + // item.tjProjectList.forEach((item1) => { + // this.$nextTick(() => { + // formitem.allSonProName = + // formitem.allSonProName + "," + item1.proName; + // }); + // // this.form.tjProjectList.allSonProName = this.form.tjProjectList.allSonProName+','+item1.proName + // }); } }); } }); - }, - /** 鎻愪氦鎸夐挳 */ - submitForm() { - this.$refs["form"].validate((valid) => { - if (valid) { - if (this.form.pacId != null) { - // if (this.form.pacStatus === "鍚敤") { - // this.form.pacStatus = 0; - // } else { - // this.form.pacStatus = 1; - // } - this.form.keywords = this.keys; - updatePackage(this.form).then((response) => { - this.$modal.msgSuccess("淇敼鎴愬姛"); - this.open = false; - this.getList(); - }); - } else { - this.form.keywords = this.keys; - // if (this.form.pacStatus === "鍚敤") { - // this.form.pacStatus = 0; - // } else { - // this.form.pacStatus = 1; - // } - addPackage(this.form).then((response) => { - this.$modal.msgSuccess("鏂板鎴愬姛"); - this.open = false; - this.getList(); - }); + + for (let i = 0; i < this.form.tjProjectList.length; i++) { + for (let j = i + 1; j < this.form.tjProjectList.length; j++) { + if ( + this.form.tjProjectList[i].proId == this.form.tjProjectList[j].proId + ) { + this.form.tjProjectList.splice(j, 1); + j--; + this.$modal.msgError("姝ら」鐩凡褰曞叆锛屼笉鍙噸澶嶅綍鍏�"); } } + } + + return this.form.tjProjectList; + }, + // // 榛樿鎺ュ彈鍥涗釜鍊� { 褰撳墠琛岀殑鍊�, 褰撳墠鍒楃殑鍊�, 琛岀殑涓嬫爣, 鍒楃殑涓嬫爣 } + objectSpanMethod({ row, column, rowIndex, columnIndex }) { + // console.log(row, column, rowIndex, columnIndex); + let fields = ["propinName"]; + let cellValue = row[column.property]; + if (cellValue && fields.includes(column.property)) { + let prevRow = this.DataList[rowIndex - 1]; + let nextRow = this.DataList[rowIndex + 1]; + if (prevRow && prevRow[column.property] === cellValue) { + return { rowspan: 0, colspan: 0 }; + } else { + let countRowspan = 1; + while (nextRow && nextRow[column.property] === cellValue) { + nextRow = this.DataList[++countRowspan + rowIndex]; + } + if (countRowspan > 1) { + return { rowspan: countRowspan, colspan: 1 }; + } + } + } + }, + + getDataList() { + this.loading = true; + getProParentIdDxList().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); + let proId = item1.proId; + getProSonDxList(proId).then((res) => { + this.TreedataList = res.data.list; + this.TreedataList.forEach((item2) => { + item2.disabled = true; + this.checkedListkey.push(item2.proId); + this.DataList.push(item2); + if (this.DataList.length != 0) { + this.DataList.forEach((item) => { + if (item.proParentId == item1.proId) { + item.propinName = item1.proName; + item.propinPrice = item1.proPrice; + } + }); + } + }); + }); + } + }); + }); + } else { + this.checkedkey.push(this.Treedata[0].proId); + let proId = this.Treedata[0].proId; + 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.loading = false; }); + }, + handleCurrentChecked(data, checked, checkedNodes) { + console.log(data, checked); + this.dataObj = data; + this.checkedObj = checked; + if (checked == true) { + // this.$refs.tree.setCheckedKeys([data.proId]); + let proId = data.proId; + 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.spliceData(); + this.DataList.forEach((item1) => { + if (item1.proParentId == data.proId) { + item1.propinName = data.proName; + item1.propinPrice = this.dataObj.proPrice; + } + }); + }); + this.TotalPrice1 = 0; + if (this.DataList.length != 0) { + this.list1 = false; + this.DataList.forEach((item) => { + this.TotalPrice1 = item.proPrice + this.TotalPrice1; + }); + } + }); + } else if (checked == false) { + let proId = data.proId; + getProSonDxList(proId).then((res) => { + this.TreedataList = res.data.list; + this.TreedataList.forEach((item) => { + item.disabled = true; + }); + this.checkedListkey = []; + console.log(this.TreedataList.length); + this.DataList.forEach((item, index) => { + if (item.proParentId == this.dataObj.proId) { + this.DataList.splice(index, this.TreedataList.length); + } + }); + }); + } + }, + + spliceData() { + for (var i = 0; i < this.DataList.length; i++) { + for (var j = i + 1; j < this.DataList.length; j++) { + if (this.DataList[i].proId == this.DataList[j].proId) { + //濡傛灉绗竴涓瓑浜庣浜屼釜锛宻plice鏂规硶鍒犻櫎绗簩涓� + this.DataList.splice(j, 1); + j--; + } + } + } + return this.DataList; + }, + + // 鐐瑰嚮鑾峰彇姣忎釜鏍戣妭鐐� + handleCurrentChecked1(data, checked, checkedNodes) { + if (checked == false) { + this.DataList.forEach((item, index) => { + if (item.proId == data.proId) { + this.DataList.splice(index, 1); + this.TotalPrice1 = 0; + this.DataList.forEach((item1) => { + this.TotalPrice1 = item1.proPrice + this.TotalPrice1; + }); + } + }); + } else if (checked == true) { + this.DataList.push(data); + this.DataList.forEach((item1) => { + if (item1.proParentId == this.dataObj.proId) { + item1.propinName = this.dataObj.proName; + item1.propinPrice = this.dataObj.proPrice; + } + }); + this.spliceData(); + this.TotalPrice1 = 0; + this.DataList.forEach((item1) => { + this.TotalPrice1 = item1.proPrice + this.TotalPrice1; + }); + } + }, + + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDeletes(row) { + this.DataList.forEach((item, index) => { + if (item.proParentId == row.proParentId) { + this.DataList.splice(index, 1); + this.TotalPrice1 = 0; + this.DataList.forEach((item1) => { + this.TotalPrice1 = item1.proPrice + this.TotalPrice1; + }); + } + }); + + // this.$refs.trees.setCheckedKeys([]); + }, + + /** 鎻愪氦鎸夐挳 */ + submitForm() { + if (this.form.pacName) { + this.form.tjProjectList = []; + if (this.DataList.length != 0) { + this.DataList.forEach((item) => { + this.form.tjProjectList.push({ + // id: 0, + proName: item.propinName, + // allSonProName: item.proName + ",", + proPrice: item.propinPrice, + priceNow: item.propinPrice, + proId: item.proParentId, + }); + }); + } + this.$refs["form"].validate((valid) => { + if (valid) { + if (this.form.pacId != null) { + // if (this.form.pacStatus === "鍚敤") { + // this.form.pacStatus = 0; + // } else { + // this.form.pacStatus = 1; + // } + if(this.keys){ + this.form.keywords = this.keys; + }else{ + this.form.keywords = this.form.keywords.toString(); + } + + updatePackage(this.form).then((response) => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + this.form.keywords = this.keys; + // if (this.form.pacStatus === "鍚敤") { + // this.form.pacStatus = 0; + // } else { + // this.form.pacStatus = 1; + // } + // console.log(this.form.tjProjectList); + // return; + addPackage(this.form).then((response) => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + } else { + Message.warning("璇峰厛濉啓濂楅鍚嶇О"); + } }, /** 鍒犻櫎鎸夐挳鎿嶄綔 */ handleDelete(row) { @@ -1028,17 +1370,19 @@ display: flex; justify-content: center; } + .pag1 { width: 30%; } + .dialog-footer { position: absolute; left: 40%; bottom: 2%; } -/* .dialo{ - display: flex; - flex-direction: row; - align-items: center; -} */ +.tab3 { + max-height: 400px; + overflow-y: auto; + border: 1px solid #d9d9d9; +} </style> \ No newline at end of file -- Gitblit v1.8.0