-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathApp.vue
75 lines (72 loc) · 1.5 KB
/
App.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<script lang="ts" setup>
import { computed, nextTick, ref, watch } from 'vue'
const enableLocalConfig = ref(true)
const isMounted = ref(true)
const localConfig = computed(() => ({
...enableLocalConfig.value && {
// Local Prop
title: 'Local Title',
// Local Attr
data: [
{ key: 1, label: 'Local Option 1' },
{ key: 2, label: 'Local Option 2' },
],
// Local Listener
onLeftCheckChange() {
console.log('Local LeftCheckChange')
},
// Local Hook
onVnodeMounted() {
console.log('Local Mounted')
},
},
}))
watch(enableLocalConfig, () => {
isMounted.value = false
nextTick(() => {
isMounted.value = true
})
})
</script>
<template>
<FaFormDialog
show
>
<p>
<FaImage
model-value="https://picsum.photos/100/100"
qrcode
/>
</p>
<p>
<FaImageUpload />
</p>
<p>
<FaPopSwitch
v-model="enableLocalConfig"
inline-prompt
active-text="Enable Local Config"
inactive-text="Disable Local Config"
/>
</p>
<YourComponent
v-if="isMounted"
v-bind="localConfig"
>
<!-- Local Slot -->
<template
v-if="enableLocalConfig"
#left-footer
>
Local Slot
</template>
<!-- Local Scoped Slot -->
<template
v-if="enableLocalConfig"
#default="{ option }"
>
{{ option.label }} (From Local Scoped Slot)
</template>
</YourComponent>
</FaFormDialog>
</template>