From e2fdfe540eaf160dc7d063c60667041edcc64e86 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期二, 05 十一月 2024 22:55:14 +0800 Subject: [PATCH] 处理显示名称 --- src/views/mdc/MYTree.vue | 97 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 73 insertions(+), 24 deletions(-) diff --git a/src/views/mdc/MYTree.vue b/src/views/mdc/MYTree.vue index 687ad0d..f9b59f0 100644 --- a/src/views/mdc/MYTree.vue +++ b/src/views/mdc/MYTree.vue @@ -1,17 +1,30 @@ <!-- * @Date: 2024-04-18 19:53:35 - * @LastEditors: Sneed - * @LastEditTime: 2024-04-23 23:09:18 - * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/MYTree.vue + * @LastEditors: gaoshp + * @LastEditTime: 2024-11-04 20:05:01 + * @FilePath: /cps-web/src/views/mdc/MYTree.vue --> <template> - <el-tree ref="treeRef" v-bind="$attrs" :show-checkbox="showCheckbox" :current-node-key="currentNodeKey" - node-key="id" :props="defalutProps" :data="data" @check-change="checkChange" @node-click="handleNodeClick" - highlight-current default-expand-all :expand-on-click-node="false" :render-content="renderContent"></el-tree> + <el-input v-model="word" style="max-width: 600px" placeholder="" @change="search" class="input-with-select"> + <template #append> + <el-button :icon="ElementPlusIconsVue.Search" /> + </template> + </el-input> + <el-switch v-model="showType" active-text="鍒楄〃" inactive-text="鏍戠姸" @change="switchFn" /> + <el-tree v-show="!showType" :expand-on-click-node="false" ref="treeRef" v-bind="$attrs" + :show-checkbox="showCheckbox" :current-node-key="currentNodeKey" node-key="id" :props="defalutProps" + :data="data" @check-change="checkChange" @node-click="handleNodeClick" highlight-current default-expand-all + :render-content="renderContent"></el-tree> + <el-table v-show="showType" :data="tableData" @selection-change="handleSelectionChange" highlight-current-row + :current-row-key="currentNodeKey" row-key="id" @row-click="rowClick"> + <el-table-column v-if="showCheckbox" type="selection" :selectable="selectable" width="55" /> + <el-table-column prop="title" label="宸ヤ綅鍚嶇О" /> + </el-table> </template> <script> import pmsPng from '@/assets/pms.png' +import * as ElementPlusIconsVue from '@element-plus/icons-vue' export default { props: { showCheckbox: { @@ -21,20 +34,31 @@ getAll: { type: Boolean, default: false + }, + props: { + type: Object, + default: () => { + return {} + } } }, data() { return { + ElementPlusIconsVue, + word: '', + showType: false, // 鏄剧ず绫诲瀷 + tableData: [], pmsPng, firstWorkKey: '', currentNodeKey: [], defalutProps: { label: 'title', children: 'children', - disabled: 'disabled', + disabled: this.showCheckbox ? '' : 'disabled', class: (data, node) => { return this.value.includes(data.id) ? 'active' : '' - } + }, + ...this.props }, data: [], value: [], @@ -50,14 +74,35 @@ this.$emit('update:modelValue', value) } }, - created() { + mounted() { this.getList() + let key = this.$route.path + if (localStorage.getItem(key) === '1') { + this.showType = true + } + console.log(this.$route, '>>>>>>') }, methods: { - renderContent(h, { data }) { + search() { + this.getList() + }, + switchFn(val) { + console.log(this.$route, val, '>>>>>>') + localStorage.setItem(this.$route.path, val ? '1' : '0') + }, + handleSelectionChange(selection) { + this.value = selection.map(v => v.id) + }, + rowClick(row) { + this.currentNodeKey = row.id + }, + renderContent(h, { data, node }) { let img = data.groupTag == 'fms_beltline' return h('a', { - disabled: data.disabled + class: { + disabled: this.props.disabled ? this.props.disabled(data, node) : data.disabled + }, + disabled: this.props.disabled ? this.props.disabled(data, node) : data.disabled }, img ? h('img', { src: pmsPng @@ -65,24 +110,23 @@ data.title) }, getList() { - this.$HTTP.post('/api/blade-cps/group/groupWorkstation/type', { + this.$HTTP.post('/api/smis/group/groupWorkstation/type', { groupCategory: 1, groupType: "group_workstation" }).then(({ code, data }) => { if (code === 200) { - this.data = this.formatData(data) + this.tableData = data.filter(v => v.isWorkstation && v.title.indexOf(this.word) > -1) + this.data = this.formatData(data.filter(v => !v.isWorkstation || (v.isWorkstation && v.title.indexOf(this.word) > -1))) this.$nextTick(() => { - this.currentNodeKey = this.firstWorkKey - this.$emit('loaded', this.firstWorkKey) + this.setCurrentKey(data) + this.$emit('loaded', this.currentNodeKey) + this.$emit('request', data) }) } }) }, - setCurrentKey(v) { - if (this.firstWorkKey) return - if (v.isWorkstation) { - this.firstWorkKey = v.id - } + setCurrentKey(data) { + this.currentNodeKey = data.find(v => v.isWorkstation && v.title.indexOf(this.word) > -1).id }, formatData(data, current) { let newData = [] @@ -92,7 +136,7 @@ v.children = this.formatData(data, v).sort((a, b) => { return b.sort - a.sort }) - this.setCurrentKey(v) + // this.setCurrentKey(v) return v }) } else { @@ -102,7 +146,7 @@ item.children = this.formatData(data, item).sort((a, b) => { return b.sort - a.sort }) - this.setCurrentKey(item) + // this.setCurrentKey(item) return item }) return res @@ -118,6 +162,7 @@ }, checkChange(data, data1, data2) { + console.log('>>>>>>>') if (this.getAll) { return this.value = this.$refs.treeRef.getCheckedNodes().filter(v => v.isWorkstation) } @@ -128,7 +173,11 @@ </script> <style lang="scss"> -.active .el-tree-node__content { - background: var(--el-color-primary) !important; +.is-current>.el-tree-node__content { + // background: var(--el-color-primary) !important; +} + +a.disabled { + color: #ccc; } </style> \ No newline at end of file -- Gitblit v1.9.3