From 37e09a8edf9afb70342b68352329ce959f8ebda6 Mon Sep 17 00:00:00 2001 From: qx <1084500556@qq.com> Date: 星期三, 23 四月 2025 11:11:10 +0800 Subject: [PATCH] qx --- src/views/hosp/project/index.vue | 107 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 74 insertions(+), 33 deletions(-) diff --git a/src/views/hosp/project/index.vue b/src/views/hosp/project/index.vue index 04c2fe4..0ae2020 100644 --- a/src/views/hosp/project/index.vue +++ b/src/views/hosp/project/index.vue @@ -9,8 +9,8 @@ <div class="scrollable-container"> <div class="content"> <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" - :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId" - highlight-current @node-click="handleNodeClick" :render-content="renderContent" v-loading="loadings"/> + :filter-node-method="filterNode" ref="tree1" node-key="id" :default-expanded-keys="treeId" + highlight-current @node-click="handleNodeClick" :render-content="renderContent" v-loading="loadings" /> </div> </div> </el-col> @@ -79,7 +79,7 @@ </el-table-column> <el-table-column label="椤圭洰鏍囧噯鍊�" align="center" prop="proScope" :show-overflow-tooltip="true" width="90px"> </el-table-column> - <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc" :show-overflow-tooltip="true" width="200px"> + <el-table-column label="Lis椤圭洰鍚嶇О" align="center" prop="lisXmmc" :show-overflow-tooltip="true" width="200px"> </el-table-column> <el-table-column label="Lis缂栫爜" align="center" prop="lisXmbm" :show-overflow-tooltip="true" width="90px"> </el-table-column> @@ -228,6 +228,12 @@ </el-form-item> <el-form-item label="鎺掑簭" prop="xh"> <el-input v-model="form.xh" placeholder="璇疯緭鍏ユ帓搴�" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏄惁鍙備笌寮傚父" prop="sfcyyc"> + <el-select v-model="form.sfcyyc" placeholder="璇烽�夋嫨鏄惁鍙備笌寮傚父" style="width: 260px"> + <el-option v-for="dict in dictTypesy" :key="dict.value" :label="dict.label" + :value="dict.value"></el-option> + </el-select> </el-form-item> </el-form> <el-button style="margin-left: 40px" type="primary" plain size="mini" icon="el-icon-plus" @@ -441,6 +447,16 @@ }, xmmc: "", chargeId: [], + dictTypesy: [ + { + value:"0", + label:"鏄�" + }, + { + value:"1", + label:"鍚�" + } + ], List: false, deptName: "", deptOption: [], @@ -515,6 +531,7 @@ proScope: "", proSex: "2", resultType: "", + sfcyyc: "0", }, rules: { createTime: [ @@ -549,7 +566,7 @@ const lastId = newVal[newVal.length - 1] || "532"; const node = this.findNodeById(this.deptOptions, lastId); if (node) { - this.$refs.tree.setCurrentKey(lastId); + this.$refs.tree1.setCurrentKey(lastId); const nodeElement = document.querySelector(`.el-tree-node[data-key="${lastId}"] .el-tree-node__content`); if (nodeElement) { nodeElement.click(); @@ -586,16 +603,25 @@ }); }, methods: { - debounceFilter: debounce(function(val) { - this.$refs.tree.filter(val); + debounceFilter: debounce(function (val) { + this.$refs.tree1.filter(val); }, 300), precomputePinyin() { const traverse = (nodes) => { nodes.forEach(node => { if (node.label) { - const lowerSpell = node.label.spell('low', 'array').join(''); - const upperSpell = node.label.spell('up', 'array').join(''); - this.pinyinCache.set(node.id, { lowerSpell, upperSpell, label: node.label }); + const lowerSpell = cnchar.spell(node.label, 'low', 'array').join(''); // 瀹屾暣灏忓啓鎷奸煶 + const upperSpell = cnchar.spell(node.label, 'up', 'array').join(''); // 瀹屾暣澶у啓鎷奸煶 + const shortPinyin = node.label + .split('') + .map(char => cnchar.spell(char, 'array')[0]?.[0]?.toLowerCase() || char) // 鎷奸煶棣栧瓧姣� + .join(''); + this.pinyinCache.set(node.id, { + lowerSpell, + upperSpell, + shortPinyin, // 缂撳瓨鎷奸煶绠�鍐� + label: node.label + }); } if (node.children) traverse(node.children); }); @@ -603,13 +629,14 @@ traverse(this.deptOptions); }, filterNode(value, data) { - if (!value) return true; + if (!value) return true; // 濡傛灉鎼滅储鍊间负绌猴紝杩斿洖鎵�鏈夎妭鐐� const cached = this.pinyinCache.get(data.id); - if (!cached) return false; + if (!cached) return false; // 濡傛灉娌℃湁缂撳瓨鏁版嵁锛屼笉鏄剧ず璇ヨ妭鐐� + const searchLower = value.toLowerCase(); // 灏嗘悳绱㈣瘝杞负灏忓啓 return ( - cached.label.includes(value) || - cached.lowerSpell.includes(value) || - cached.upperSpell.includes(value) + cached.label.includes(value) || // 鐩存帴鍖归厤姹夊瓧 + cached.shortPinyin.includes(searchLower) || // 鍖归厤鎷奸煶绠�鍐� + cached.lowerSpell.includes(searchLower) // 鍖归厤瀹屾暣鎷奸煶 ); }, filterNode2(value, data) { @@ -690,24 +717,24 @@ this.form.proParentId = row.proId || 0; this.open = true; } else if (this.treeDate.id) { - if(this.treeDate.qf == "0"){ - this.form.proParentId = "0" - this.form.deptId=this.treeDate.id - }else{ - this.form.proParentId = this.treeDate.id; - this.projectOptions.forEach((item) => { - item.children.forEach((item1) => { - if (this.form.proParentId == item1.proId) { - this.form.deptId = item1.deptId; - } + if (this.treeDate.qf == "0") { + this.form.proParentId = "0" + this.form.deptId = this.treeDate.id + } else { + this.form.proParentId = this.treeDate.id; + this.projectOptions.forEach((item) => { + item.children.forEach((item1) => { + if (this.form.proParentId == item1.proId) { + this.form.deptId = item1.deptId; + } + }); }); - }); - } - - + } + + this.open = true; } else { - this.form.proParentId = "0" + this.form.proParentId = "0" this.open = true; } } @@ -824,9 +851,9 @@ }); }, handleNodeClick(date) { - + this.treeDate = date; - console.log(this.treeDate) + this.xiugaiList ={} this.xiugais = date.qf === "0"; let proId = date.id; getInfoByProId(proId).then((response) => { @@ -861,6 +888,11 @@ let data = { proId: this.queryParams.proId }; getAllChildListById(data).then(() => { this.loading = false; + }); + this.deptName = ""; + // 鎵嬪姩璋冪敤杩囨护鏂规硶锛堥渶绛夊緟 DOM 鏇存柊锛� + this.$nextTick(() => { + this.$refs.tree1.filter(this.deptName); }); }, handleClose() { @@ -900,7 +932,7 @@ resetQuery() { this.resetForm("queryForm"); this.queryParams.proId = undefined; - this.$refs.tree.setCurrentKey(null); + this.$refs.tree1.setCurrentKey(null); this.handleQuery(); }, flexColumnWidth(column) { @@ -971,8 +1003,10 @@ } }, handleUpdate1() { + this.form ={} this.form = this.xiugaiList; this.form.proStatus = this.form.proStatus.toString(); + this.form.sfcyyc = this.form.sfcyyc.toString(); this.proParent = true; this.isPriceDisabled = true; getlist().then((response) => { @@ -983,6 +1017,7 @@ project.children = this.handleTree(response.data.list, "proId"); this.key = response.data.key; this.projectOptions.push(project); + console.log( this.projectOptions,11111) } }); this.open = true; @@ -998,6 +1033,7 @@ this.showPrise = this.form.proParentId === "0"; this.showRentPrise = !this.showPrise; this.form.proStatus = this.form.proStatus.toString(); + this.form.sfcyyc = this.form.sfcyyc.toString(); this.form.consumablesList = response.data.consumablesList; this.form.tjStandardList = response.data.tjStandardList; if (this.form.tjStandardList) { @@ -1056,6 +1092,11 @@ this.processSubmission(isUpdate, true); } } + }); + this.deptName = ""; + // 鎵嬪姩璋冪敤杩囨护鏂规硶锛堥渶绛夊緟 DOM 鏇存柊锛� + this.$nextTick(() => { + this.$refs.tree1.filter(this.deptName); }); }, processSubmission(isUpdate, isY) { @@ -1116,7 +1157,7 @@ this.getList(); this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); }) - .catch(() => {}); + .catch(() => { }); }, handleExport() { this.download( -- Gitblit v1.8.0