From 7026e123ee895d17a7d14c82cc50a3fb1d9c03b2 Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期一, 03 六月 2024 23:02:05 +0800
Subject: [PATCH] Merge branch 'master' of http://www.beijingsoft.cn:9090/r/smart-web
---
src/views/mdc/MYTree.vue | 51 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 41 insertions(+), 10 deletions(-)
diff --git a/src/views/mdc/MYTree.vue b/src/views/mdc/MYTree.vue
index 0d290aa..4e70583 100644
--- a/src/views/mdc/MYTree.vue
+++ b/src/views/mdc/MYTree.vue
@@ -1,13 +1,13 @@
<!--
* @Date: 2024-04-18 19:53:35
* @LastEditors: Sneed
- * @LastEditTime: 2024-04-18 21:30:19
+ * @LastEditTime: 2024-05-26 15:49:11
* @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 :render-content="renderContent"></el-tree>
+ highlight-current default-expand-all :expand-on-click-node="false" :render-content="renderContent"></el-tree>
</template>
<script>
@@ -17,19 +17,34 @@
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: 'disabled',
+ class: (data, node) => {
+ return this.value.includes(data.id) ? 'active' : ''
+ },
+ ...this.props
},
data: [],
- value: []
+ value: [],
}
},
watch: {
@@ -46,10 +61,13 @@
this.getList()
},
methods: {
- renderContent(h, { data }) {
+ renderContent(h, { data,node }) {
let img = data.groupTag == 'fms_beltline'
- return h('span', {
-
+ 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
@@ -65,6 +83,8 @@
this.data = this.formatData(data)
this.$nextTick(() => {
this.currentNodeKey = this.firstWorkKey
+ this.$emit('loaded', this.firstWorkKey)
+ this.$emit('request', data)
})
}
})
@@ -79,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
})
@@ -88,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
})
@@ -99,7 +121,6 @@
return newData
},
handleNodeClick(node) {
- console.log(node)
this.$nextTick(() => {
if (node.isWorkstation) {
this.currentNodeKey = node.id
@@ -108,10 +129,20 @@
},
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">
+.active .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