|
@@ -6,7 +6,7 @@
|
|
<template #atom="{ item }">
|
|
<template #atom="{ item }">
|
|
<div
|
|
<div
|
|
v-if="item.raw === fuseModel"
|
|
v-if="item.raw === fuseModel"
|
|
- @click="$emit('update:current', current === item.raw ? null : item.raw)"
|
|
|
|
|
|
+ @click="updateCurrent(item.raw)"
|
|
>
|
|
>
|
|
<ModelList
|
|
<ModelList
|
|
class="scene-model-list"
|
|
class="scene-model-list"
|
|
@@ -22,7 +22,7 @@
|
|
</template>
|
|
</template>
|
|
</ModelList>
|
|
</ModelList>
|
|
</div>
|
|
</div>
|
|
- <div class="scene" @click="$emit('update:current', {type: item.raw.type, num: item.raw.num})" v-else>
|
|
|
|
|
|
+ <div class="scene" @click="updateCurrent(item.raw)" v-else>
|
|
<p>{{ item.raw.name }}</p>
|
|
<p>{{ item.raw.name }}</p>
|
|
<p>{{ SceneTypeDesc[item.raw.type as SceneType] }}</p>
|
|
<p>{{ SceneTypeDesc[item.raw.type as SceneType] }}</p>
|
|
</div>
|
|
</div>
|
|
@@ -37,21 +37,30 @@ import List from '@/components/list/index.vue'
|
|
import ModelList from '../model-list/index.vue'
|
|
import ModelList from '../model-list/index.vue'
|
|
import { fuseModel, getModelTypeDesc } from '@/model'
|
|
import { fuseModel, getModelTypeDesc } from '@/model'
|
|
|
|
|
|
-import type { ModelType } from '@/model'
|
|
|
|
|
|
+import type { ModelType, FuseModelType } from '@/model'
|
|
|
|
+import type { Scene } from '@/store'
|
|
|
|
|
|
-defineEmits<{ (e: 'update:current', data: ModelType): void }>()
|
|
|
|
|
|
+const emit = defineEmits<{ (e: 'update:current', data: ModelType): void }>()
|
|
const props = defineProps<{ current: ModelType }>()
|
|
const props = defineProps<{ current: ModelType }>()
|
|
|
|
|
|
const list = computed(() => {
|
|
const list = computed(() => {
|
|
const sceneList = scenes.value.map(scene => ({
|
|
const sceneList = scenes.value.map(scene => ({
|
|
raw: scene,
|
|
raw: scene,
|
|
select: props.current !== fuseModel
|
|
select: props.current !== fuseModel
|
|
- && props.current.num === scene.num
|
|
|
|
|
|
+ && (props.current.num === scene.num )
|
|
&& props.current.type === scene.type
|
|
&& props.current.type === scene.type
|
|
}))
|
|
}))
|
|
return [{ raw: fuseModel }, ...sceneList]
|
|
return [{ raw: fuseModel }, ...sceneList]
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+const updateCurrent = (scene: FuseModelType | Scene) => {
|
|
|
|
+ if (scene === fuseModel) {
|
|
|
|
+ emit('update:current', scene)
|
|
|
|
+ } else {
|
|
|
|
+ emit('update:current', { type: scene.type, num: scene.num })
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|