parent
f9b032a194
commit
b7d451b5fb
@ -0,0 +1,62 @@ |
||||
<script lang="ts" setup> |
||||
import { computed } from "vue"; |
||||
import { useSource } from "../context" |
||||
defineOptions({ |
||||
name: "DddBackgroundConfig" |
||||
}) |
||||
const props = defineProps<{ |
||||
field: string |
||||
help?: string |
||||
features: string[] |
||||
label?: string |
||||
}>() |
||||
|
||||
const tempString = useSource(props.field) |
||||
const typeList = computed(() => { |
||||
return props.features.map((item: any)=> { |
||||
return { |
||||
value: item, |
||||
label: formart(item) |
||||
} |
||||
}) |
||||
}) |
||||
|
||||
function formart(str: string) { |
||||
const temp: Record<string, any> = { |
||||
color: '纯色', |
||||
gradient: '渐变', |
||||
} |
||||
return temp[str] |
||||
} |
||||
</script> |
||||
<template> |
||||
<div class="box"> |
||||
<label>{{ label }}</label> |
||||
<div class="box-typeList"> |
||||
<div v-for="(item,index) in typeList" :key="index" class="box-typeList-box"> |
||||
<span>{{ item.label }}</span> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<style lang="less" scoped> |
||||
.box{ |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
&-typeList{ |
||||
display: flex; |
||||
&-box{ |
||||
display: flex; |
||||
color:#fff; |
||||
background-color: aqua; |
||||
width:50px; |
||||
height:20px; |
||||
font-size: 12px; |
||||
justify-content: center; |
||||
align-items: center; |
||||
} |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,32 @@ |
||||
<script lang="ts" setup> |
||||
import { useSource } from '../context' |
||||
|
||||
defineOptions({ |
||||
name: "DddBooleanConfig" |
||||
}) |
||||
|
||||
const props = defineProps<{ |
||||
field: string |
||||
label?: string |
||||
values?: any |
||||
}>() |
||||
|
||||
const tempString = useSource<boolean>(props.field) |
||||
|
||||
|
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
<label> |
||||
{{ label }} |
||||
</label> |
||||
<div> |
||||
<label>是</label> |
||||
<input type="radio" :value="true" v-model="tempString"><br> |
||||
<label>否</label> |
||||
<input type="radio" :value="false" v-model="tempString"><br> |
||||
</div> |
||||
</div> |
||||
|
||||
</template> |
@ -0,0 +1,34 @@ |
||||
<script lang="ts" setup> |
||||
import { useSource } from '../context' |
||||
defineOptions({ |
||||
name: "DddMarkConfig" |
||||
}) |
||||
|
||||
const props = defineProps<{ |
||||
field: string |
||||
label?: string |
||||
string?: string |
||||
values?: any |
||||
}>() |
||||
|
||||
|
||||
const tempString = useSource<string>(props.field) |
||||
|
||||
function selectChange(e: any){ |
||||
console.log(e.target.value) |
||||
} |
||||
</script> |
||||
<template> |
||||
<div> |
||||
<label> |
||||
{{ label }} |
||||
</label> |
||||
<div> |
||||
<select v-model="tempString" @change="selectChange"> |
||||
<option value="none">不设置</option> |
||||
<option v-for="(opt,idx) in values" :key="idx" :value="opt.value">{{ opt.label }}</option> |
||||
</select> |
||||
</div> |
||||
|
||||
</div> |
||||
</template> |
@ -0,0 +1,35 @@ |
||||
<script lang="ts" setup> |
||||
import { ModuleConfig } from ".."; |
||||
import { useSource } from "../context" |
||||
import { RenderConfig } from './render'; |
||||
|
||||
defineOptions({ |
||||
name: "DddObjectConfig" |
||||
}) |
||||
|
||||
defineProps<{ |
||||
field: string |
||||
label?: string |
||||
help?: string |
||||
required?: boolean |
||||
configs: ModuleConfig[] |
||||
}>() |
||||
|
||||
</script> |
||||
|
||||
<template> |
||||
<div> |
||||
<label> |
||||
<span>{{ label }}设置</span> |
||||
</label> |
||||
<div v-for="(cfg, idx) in configs" :key="idx"> |
||||
<RenderConfig |
||||
:type="cfg.type" |
||||
:props="{ |
||||
...cfg, |
||||
field: `${field}.${cfg.field}`, |
||||
}" |
||||
/> |
||||
</div> |
||||
</div> |
||||
</template> |
Loading…
Reference in new issue