1616 <option value =" DateTime" >DateTime</option >
1717 <option value =" Boolean" >Boolean</option >
1818 <option value =" Float" >Float</option >
19+ <option value =" Enum" >Enum</option >
20+ </select >
21+ </div >
22+
23+ <div class =" input-group" v-if =" type === 'Enum'" >
24+ <label class =" field-label" >Select Enum</label >
25+ <select class =" field-select" v-model =" selectedEnum" >
26+ <option disabled value =" " >-- Select Enum --</option >
27+ <option v-for =" e in projectStore.enums" :key =" e.name" :value =" e" >
28+ {{ e.name }}
29+ </option >
1930 </select >
2031 </div >
2132
2233 <div class =" input-group" >
2334 <label class =" field-label" >Default value</label >
24- <input class =" field-input" v-model =" defaultValue" type =" text" />
35+ <select class =" field-select" v-model =" defaultValue" v-if =" type === 'Enum'" >
36+ <option value =" " />
37+ <option v-for =" v in selectedEnum?.values" :key =" v.name" :value =" v.name" >
38+ {{ v.name }}
39+ </option >
40+ </select >
41+ <input class =" field-input" v-model =" defaultValue" type =" text" v-else />
2542 </div >
2643 </div >
2744
4259import { ref } from " vue"
4360import { useProjectStore } from " @/stores/useProjectStore"
4461import { useModalStore } from " @/stores/useModalStore"
62+ import type { EnumT , FieldType } from " @/types/types"
4563
4664const props = defineProps <{
4765 id: string
@@ -50,6 +68,8 @@ const props = defineProps<{
5068const projectStore = useProjectStore ()
5169const modalStore = useModalStore ()
5270
71+ const selectedEnum = ref <EnumT | undefined >()
72+
5373const fieldName = ref (" " )
5474const type = ref (" " )
5575const defaultValue = ref (" " )
@@ -62,12 +82,13 @@ const saveField = () => {
6282 if (! fieldName .value || ! type .value ) return
6383 projectStore .addField (props .id , {
6484 name: fieldName .value ,
65- type: type .value ,
66- default: defaultValue .value || undefined ,
85+ type: type .value as FieldType ,
86+ typeEnum: selectedEnum .value ?. name ,
6787 isPrimaryKey: isPrimaryKey .value ,
6888 isNullable: isNullable .value ,
6989 isUnique: isUnique .value ,
7090 isIndex: isIndex .value ,
91+ defaultValue: defaultValue .value || undefined ,
7192 })
7293 modalStore .close ()
7394}
0 commit comments