fix:tree-node判断层级;修复分类图片上传picUrl格式
This commit is contained in:
1 parent
293cb7ac20
commit
71803eabe8
3 files changed
+33
-19
No files matched your search
@@ -3,7 +3,7 @@
|
||||
<view v-for="item in nodeData" :key="item.id">
|
||||
<view
|
||||
class="tree-item"
|
||||
:style="item.id == selectedNode.id ? { borderColor: '#1879ff' } : { color: '#000' }"
|
||||
:style="item.id == selectedNodeId ? { borderColor: '#1879ff' } : { color: '#000' }"
|
||||
@click.stop="toCurrentNode(item)"
|
||||
>
|
||||
<image class="tree-item-icon" :src="filePath(item.picUrl)" />
|
||||
@@ -11,10 +11,10 @@
|
||||
</view>
|
||||
|
||||
<node-tree
|
||||
v-model="selectedNode"
|
||||
v-model="selectedNodeId"
|
||||
v-if="item.children && item.children.length"
|
||||
:node-data="item.children"
|
||||
:style="{ marginLeft: `${getLevel(item.level) * 60}rpx` }"
|
||||
:style="{ marginLeft: `${getLevel() * 60}rpx` }"
|
||||
@currentNode="(v) => emit('currentNode', v)"
|
||||
/>
|
||||
</view>
|
||||
@@ -22,19 +22,29 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getCurrentInstance } from "vue"
|
||||
import { filePath } from "../utils/file"
|
||||
import NodeTree from "./node-tree.vue"
|
||||
|
||||
withDefaults(defineProps<{ nodeData: any[] }>(), { nodeData: () => [] })
|
||||
const emit = defineEmits(["currentNode"])
|
||||
const selectedNode = defineModel<any>("modelValue")
|
||||
const selectedNodeId = defineModel<any>("modelValue")
|
||||
defineOptions({ name: "node-tree-item" })
|
||||
|
||||
const compInstance = getCurrentInstance()
|
||||
|
||||
const toCurrentNode = (item) => {
|
||||
emit("currentNode", item)
|
||||
selectedNode.value = item
|
||||
emit("currentNode", { ...item, level: getLevel() })
|
||||
selectedNodeId.value = item.id
|
||||
}
|
||||
|
||||
const getLevel = (level) => {
|
||||
const getLevel = () => {
|
||||
let level = 1
|
||||
let $parent = compInstance?.parent
|
||||
while ($parent && $parent.proxy?.$options.name === "node-tree-item") {
|
||||
level++
|
||||
$parent = $parent.parent
|
||||
}
|
||||
return level
|
||||
}
|
||||
</script>
|
||||
@@ -44,7 +54,7 @@ const getLevel = (level) => {
|
||||
overflow: hidden;
|
||||
}
|
||||
.tree-item {
|
||||
border: 4rpx solid #e4e7ed77;
|
||||
border: 4rpx solid #e4e7ed;
|
||||
margin-bottom: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
Reference in new issue
Block a user