HumanBreak/src/ui/desc.vue

61 lines
1.5 KiB
Vue
Raw Normal View History

2022-12-29 00:26:12 +08:00
<template>
2022-12-30 15:25:58 +08:00
<Colomn @close="exit" :width="80" :height="80" :left="30" :right="70"
><template #left
><div id="desc-list">
<span
v-for="(data, k) in desc"
class="selectable desc-item"
:selected="selected === k"
@click="selected = k"
>{{ data.text }}</span
>
</div></template
>
<template #right><span v-html="content"></span></template
></Colomn>
2022-12-29 00:26:12 +08:00
</template>
<script lang="ts" setup>
2022-12-30 00:55:03 +08:00
import { computed, ref } from 'vue';
import desc from '../data/desc.json';
import { has } from '../plugin/utils';
2022-12-30 15:25:58 +08:00
import Colomn from '../components/colomn.vue';
2022-12-30 00:55:03 +08:00
type DescKey = keyof typeof desc;
const selected = ref(Object.keys(desc)[0] as DescKey);
function exit() {
core.plugin.descOpened.value = false;
}
const content = computed(() => {
return desc[selected.value].desc
.map((v, i, a) => {
2022-12-30 11:06:46 +08:00
if (/^\d+\./.test(v)) return `${'&nbsp;'.repeat(12)}${v}`;
2022-12-30 00:55:03 +08:00
else if (
2022-12-30 11:06:46 +08:00
(has(a[i - 1]) && v !== '<br>' && a[i - 1] === '<br>') ||
2022-12-30 00:55:03 +08:00
i === 0
) {
return `${'&nbsp;'.repeat(8)}${v}`;
} else return v;
})
.join('');
});
2022-12-29 00:26:12 +08:00
</script>
<style lang="less" scoped>
2022-12-30 00:55:03 +08:00
#desc-left {
flex-basis: 30%;
}
#desc-list {
display: flex;
flex-direction: column;
}
.desc-item {
padding: 1% 3% 1% 3%;
}
2022-12-29 00:26:12 +08:00
</style>