上传字体包 版本树页面

This commit is contained in:
X1627315083@163.com
2026-02-05 10:43:18 +08:00
parent 29baa2f786
commit 58c7e4187b
48 changed files with 566 additions and 246 deletions

View File

@@ -8,12 +8,18 @@ const props = defineProps({
treeState:{
default:false,
},
selectItem: {
type: Object,
default: () => ({})
} as any,
})
//const emit = defineEmits([
//])
const emit = defineEmits([
'update:selectItem'
])
let data = reactive({
})
const isLoad = ref(false)
const treeStateTime = ref(true)
watch(()=>props.treeState,(newVal,oldVal)=>{
@@ -28,7 +34,7 @@ const pushView2Item = (item)=>{
view2Ref.value.push(item)
}
const view1List = ref([
const treeList = ref([
{
name:'P1',
},{
@@ -37,9 +43,34 @@ const view1List = ref([
name:'V1-1',
}
])
function traverseArray(items, callback) {
for (let i = 0; i < items.length; i++) {
const item = items[i]
callback(item, i)
if (item.child && Array.isArray(item.child) && item.child.length > 0) {
traverseArray(item.child, callback)
}
}
}
const initialize = ()=>{
isLoad.value = false
setSelectItem(versionsList[0])
treeList.value = []
traverseArray(versionsList, (item, index) => {
treeList.value.push(item)
})
isLoad.value = true
}
const setSelectItem = (item)=>{
console.log(item[0])
emit('update:selectItem', {...item})
}
onMounted(()=>{
// addView2Item()
view2Ref.value.init(versionsList)
initialize()
})
onUnmounted(()=>{
})
@@ -47,12 +78,17 @@ defineExpose({})
const {} = toRefs(data);
</script>
<template>
<div class="tree" v-show="treeStateTime">
<div class="tree" v-show="treeStateTime" v-if="isLoad">
<div v-show="!treeState" class="box view1">
<view1Item v-for="item in view1List" :key="item.name" :item="item"></view1Item>
<view1Item v-for="item in treeList" :key="item.name" :item="item" @click="emit('selectItem', item)"></view1Item>
</div>
<div v-show="treeState" class="box view2">
<view2 ref="view2Ref"></view2>
<view2
ref="view2Ref"
@setSelectItem="setSelectItem"
:treeList="treeList"
:selectItem="props.selectItem"
></view2>
</div>
</div>
</template>
@@ -67,7 +103,9 @@ const {} = toRefs(data);
box-sizing: border-box;
&.view1{
overflow-y: auto;
&::-webkit-scrollbar {
display: none;
}
}
&.view2{
border: 1px solid #D9D9D9;