From dcf9c9e0410fe1186239e3f8d6f7bdc789c08010 Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期三, 05 六月 2024 18:00:39 +0800 Subject: [PATCH] 1 --- src/views/mdc/MYTree.vue | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 7 deletions(-) diff --git a/src/views/mdc/MYTree.vue b/src/views/mdc/MYTree.vue index c54ec8f..1713833 100644 --- a/src/views/mdc/MYTree.vue +++ b/src/views/mdc/MYTree.vue @@ -1,33 +1,50 @@ <!-- * @Date: 2024-04-18 19:53:35 * @LastEditors: Sneed - * @LastEditTime: 2024-04-18 20:56:37 + * @LastEditTime: 2024-06-04 21:33:08 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/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></el-tree> + highlight-current default-expand-all :expand-on-click-node="false" :render-content="renderContent"></el-tree> </template> <script> +import pmsPng from '@/assets/pms.png' export default { props: { showCheckbox: { type: Boolean, default: false + }, + getAll: { + type: Boolean, + default: false + }, + props: { + type: Object, + default: () => { + return {} + } } }, data() { return { + pmsPng, firstWorkKey: '', - currentNodeKey: '', + currentNodeKey: [], defalutProps: { label: 'title', - children: 'children' + children: 'children', + disabled: this.showCheckbox ? '' : 'disabled', + class: (data, node) => { + return this.value.includes(data.id) ? 'active' : '' + }, + ...this.props }, data: [], - value: [] + value: [], } }, watch: { @@ -44,6 +61,19 @@ this.getList() }, methods: { + renderContent(h, { data, node }) { + let img = data.groupTag == 'fms_beltline' + return h('a', { + 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 + }, '') : '', + data.title) + }, getList() { this.$HTTP.post('/api/blade-cps/group/groupWorkstation/type', { groupCategory: 1, @@ -53,6 +83,8 @@ this.data = this.formatData(data) this.$nextTick(() => { this.currentNodeKey = this.firstWorkKey + this.$emit('loaded', this.firstWorkKey) + this.$emit('request', data) }) } }) @@ -67,6 +99,7 @@ let newData = [] if (!current) { newData = data.filter(item => item.parentId == 0).map(v => { + if (!v.isWorkstation) v.disabled = true v.children = this.formatData(data, v).sort((a, b) => { return b.sort - a.sort }) @@ -76,6 +109,7 @@ } else { let res = data.filter(v => v.parentId == current.id) res = res.map(item => { + if (!item.isWorkstation) item.disabled = true item.children = this.formatData(data, item).sort((a, b) => { return b.sort - a.sort }) @@ -87,7 +121,6 @@ return newData }, handleNodeClick(node) { - console.log(node) this.$nextTick(() => { if (node.isWorkstation) { this.currentNodeKey = node.id @@ -96,10 +129,21 @@ }, checkChange(data, data1, data2) { + if (this.getAll) { + return this.value = this.$refs.treeRef.getCheckedNodes().filter(v => v.isWorkstation) + } this.value = this.$refs.treeRef.getCheckedNodes().filter(v => v.isWorkstation).map(item => item.id) }, }, } </script> -<style lang="scss" scoped></style> \ No newline at end of file +<style lang="scss"> +.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