| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="3" :xs="24"> |
| | | <el-col :span="4" :xs="24"> |
| | | <div class="head-container"> |
| | | <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search" |
| | | style="margin-bottom: 15px" /> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | watch: { |
| | | deptName(val) { |
| | | this.debounceFilter(val); |
| | | |
| | | }, |
| | | treeId(newVal) { |
| | | if (newVal && newVal.length > 0) { |
| | |
| | | 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(); |
| | |
| | | }); |
| | | }, |
| | | methods: { |
| | | debounceFilter: debounce(function(val) { |
| | | this.$refs.tree.filter(val); |
| | | debounceFilter: debounce(function (val) { |
| | | this.$refs.tree1.filter(val); |
| | | }, 300), |
| | | precomputePinyin() { |
| | | const traverse = (nodes) => { |
| | |
| | | traverse(this.deptOptions); |
| | | }, |
| | | filterNode(value, data) { |
| | | console.log(value, data,2233) |
| | | if (!value) return true; |
| | | const cached = this.pinyinCache.get(data.id); |
| | | if (!cached) return false; |
| | |
| | | project.children = this.handleTree(response.data.list, "proId"); |
| | | this.key = response.data.key; |
| | | this.projectOptions.push(project); |
| | | // this.open = true; |
| | | if (row.proId) { |
| | | this.form.proParentId = row.proId || 0; |
| | | this.open = true; |
| | | } else if (this.treeDate.id) { |
| | | this.form.proParentId = this.treeDate.id || 0; |
| | | 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.open = true; |
| | | } |
| | | } |
| | |
| | | } else if (this.form.proParentId) { |
| | | if (this.form.proParentId != 0) { |
| | | this.dialogTableVisible = true; |
| | | this.$nextTick(() => { |
| | | this.chargeId.push(this.deptOptionstree[0].id); |
| | | }); |
| | | if (this.deptOptionstree.length != 0) { |
| | | this.$nextTick(() => { |
| | | this.chargeId.push(this.deptOptionstree[0].id); |
| | | }); |
| | | } |
| | | |
| | | this.getlistSfxm(); |
| | | } else { |
| | | this.dialogTableVisible = false; |
| | |
| | | }); |
| | | }, |
| | | handleNodeClick(date) { |
| | | |
| | | this.treeDate = date; |
| | | console.log(this.treeDate) |
| | | this.xiugais = date.qf === "0"; |
| | | let proId = date.id; |
| | | getInfoByProId(proId).then((response) => { |
| | |
| | | let data = { proId: this.queryParams.proId }; |
| | | getAllChildListById(data).then(() => { |
| | | this.loading = false; |
| | | }); |
| | | this.deptName = ""; |
| | | // 手动调用过滤方法(需等待 DOM 更新) |
| | | this.$nextTick(() => { |
| | | this.$refs.tree1.filter(this.deptName); |
| | | }); |
| | | }, |
| | | handleClose() { |
| | |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.proId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.$refs.tree1.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | flexColumnWidth(column) { |
| | |
| | | } |
| | | } |
| | | }); |
| | | this.deptName = ""; |
| | | // 手动调用过滤方法(需等待 DOM 更新) |
| | | this.$nextTick(() => { |
| | | this.$refs.tree1.filter(this.deptName); |
| | | }); |
| | | }, |
| | | processSubmission(isUpdate, isY) { |
| | | if (isUpdate) { |
| | |
| | | } else { |
| | | this.form.consumablesList = null; |
| | | } |
| | | if (!this.form.deptId || !this.form.proParentId) { |
| | | if (!this.form.deptId || this.form.proParentId == null) { |
| | | this.$message.error("请填写父项名称或科室名称"); |
| | | this.open = true; |
| | | } else { |
| | |
| | | this.sfxmId = parseInt(item.id); |
| | | }); |
| | | this.dialogTableVisible = false; |
| | | this.getDeptList(); |
| | | this.getDeptTree().then(() => { |
| | | this.precomputePinyin(); |
| | | }); |
| | | }, |
| | | handleDelete(row) { |
| | | const proIds = row.proId || this.ids; |
| | |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | }, |
| | | handleExport() { |
| | | this.download( |