@@ -4,35 +4,32 @@ import _ from 'lodash'
44import { useSettingsStore } from ' @/pinia'
55import type { Variable } from ' @/api/template'
66
7- const props = defineProps <{
8- data: Variable
9- name: string
10- }>()
11-
12- const emit = defineEmits <{
13- ' update:data' : [data : Variable ]
14- }>()
15-
16- const data = computed ({
17- get() {
18- return props .data
19- },
20- set(v ) {
21- emit (' update:data' , v )
22- },
7+ const data = defineModel <Variable >({
8+ default : () => {},
239})
2410
2511const { language } = storeToRefs (useSettingsStore ())
2612
2713const trans_name = computed (() => {
28- return props . data ?.name ?.[language .value ] ?? props . data ?.name ?.en ?? ' '
14+ return data . value ?.name ?.[language .value ] ?? data . value ?.name ?.en ?? ' '
2915})
3016
3117const build_template = inject (' build_template' ) as () => void
3218
33- const value = computed (() => props . data .value )
19+ const value = computed (() => data . value .value )
3420
3521watch (value , _ .throttle (build_template , 500 ))
22+
23+ const selectOptions = computed (() => {
24+ return Object .keys (data .value ?.mask || {}).map (k => {
25+ const label = data .value .mask ?.[k ]?.[language .value ] ?? data .value .mask ?.[k ]?.en ?? ' '
26+
27+ return {
28+ label ,
29+ value: k ,
30+ }
31+ })
32+ })
3633 </script >
3734
3835<template >
@@ -41,6 +38,11 @@ watch(value, _.throttle(build_template, 500))
4138 v-if =" data.type === 'string'"
4239 v-model:value =" data.value"
4340 />
41+ <ASelect
42+ v-else-if =" data.type === 'select'"
43+ v-model:value =" data.value"
44+ :options =" selectOptions"
45+ />
4446 <ASwitch
4547 v-else-if =" data.type === 'boolean'"
4648 v-model:checked =" data.value"
0 commit comments