You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.9 KiB
51 lines
1.9 KiB
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!-- 样式 -->
|
|
<link rel="stylesheet" type="text/css" href="../../lib/eazax/css/cocos-tag.css">
|
|
<link rel="stylesheet" type="text/css" href="../../lib/eazax/css/cocos-class.css">
|
|
<link rel="stylesheet" type="text/css" href="index.css">
|
|
<!-- 脚本 -->
|
|
<script type="text/javascript" src="../../lib/vue.global.prod.js" defer></script>
|
|
<script type="text/javascript" src="index.js" defer></script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app" v-cloak>
|
|
<div>
|
|
<!-- 初始渲染 -->
|
|
<ref-item
|
|
v-for="(item, index) in results"
|
|
:key="index"
|
|
:item="item"
|
|
@item-click="onItemClick">
|
|
</ref-item>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/x-template" id="ref-item-template">
|
|
<div class="item"
|
|
:class="{ prefab: item.type=='prefab', scene: item.type=='scene' }">
|
|
<!-- -->
|
|
<div class="item-header" :class="{ selected: item.selected }" @click="$emit('item-click', item)">
|
|
<span class="icon">{{ item.icon }}</span>
|
|
<span v-if="item.refs && item.refs.length > 0" class="toggle-arrow" @click.stop="toggleExpand">{{ isExpanded ? '▼' : '▶' }}</span>
|
|
<div v-if="item.url != null">{{ item.url }}</div>
|
|
<div v-if="item.node != null">{{ item.node }}{{ item.details }}</div>
|
|
</div>
|
|
<!-- 递归渲染子项 -->
|
|
<div v-if="item.refs && item.refs.length > 0 && isExpanded" class="item-child">
|
|
<ref-item
|
|
v-for="(child, childIndex) in item.refs"
|
|
:key="childIndex"
|
|
:item="child"
|
|
@item-click="$emit('item-click', child)">
|
|
</ref-item>
|
|
</div>
|
|
</div>
|
|
</script>
|
|
</body>
|
|
|
|
</html> |