From 3e091224ab26252d8624b42b461ba773ee8bee0f Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期日, 03 十一月 2024 19:16:31 +0800 Subject: [PATCH] update --- src/views/mdc/MYTree.vue | 64 +++++++++++++++++++++++++++----- 1 files changed, 54 insertions(+), 10 deletions(-) diff --git a/src/views/mdc/MYTree.vue b/src/views/mdc/MYTree.vue index c54ec8f..93e9090 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-16 16:21:59 * @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> + <el-tree :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> </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,8 +61,21 @@ 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', { + this.$HTTP.post('/api/smis/group/groupWorkstation/type', { groupCategory: 1, groupType: "group_workstation" }).then(({ code, data }) => { @@ -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