mirror of
https://github.com/yangjian102621/geekai.git
synced 2026-05-10 19:54:25 +08:00
ParamBuilder component support hidden input
This commit is contained in:
@@ -39,121 +39,119 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
<template v-for="param in selectedModel.params">
|
||||||
<div v-for="param in selectedModel.params" :key="param.name" class="w-full">
|
<div class="w-full" :key="param.name" v-if="param.type !== 'hidden'">
|
||||||
<div class="w-full flex flex-col !items-start space-y-2" v-if="param.type === 'switch'">
|
<div class="w-full flex flex-col !items-start space-y-2" v-if="param.type === 'switch'">
|
||||||
<div class="w-full flex justify-between">
|
<div class="w-full flex justify-between">
|
||||||
<label class="label font-bold">{{ param.label }}</label>
|
<label class="label font-bold">{{ param.label }}</label>
|
||||||
<el-switch v-model="modelValue[param.name]" size="large" />
|
<el-switch v-model="modelValue[param.name]" size="large" />
|
||||||
|
</div>
|
||||||
|
<p v-if="param.info" class="text-xs text-gray-500 mb-1">{{ param.info }}</p>
|
||||||
</div>
|
</div>
|
||||||
<p v-if="param.info" class="text-xs text-gray-500 mb-1">{{ param.info }}</p>
|
<div class="w-full flex flex-col !items-start space-y-2" v-else>
|
||||||
</div>
|
<label class="label font-bold">
|
||||||
<div
|
{{ param.label }}
|
||||||
class="w-full flex flex-col !items-start space-y-2"
|
<span v-if="param.required" class="text-red-500 ml-1">*</span>
|
||||||
v-else-if="param.type !== 'hidden'"
|
</label>
|
||||||
>
|
<p v-if="param.info" class="text-xs text-gray-500 mb-1">{{ param.info }}</p>
|
||||||
<label class="label font-bold">
|
<div class="flex w-full">
|
||||||
{{ param.label }}
|
<el-input
|
||||||
<span v-if="param.required" class="text-red-500 ml-1">*</span>
|
v-if="param.type === 'text'"
|
||||||
</label>
|
v-model="modelValue[param.name]"
|
||||||
<p v-if="param.info" class="text-xs text-gray-500 mb-1">{{ param.info }}</p>
|
:placeholder="param.placeholder"
|
||||||
<div class="flex w-full">
|
/>
|
||||||
<el-input
|
<el-input-number
|
||||||
v-if="param.type === 'text'"
|
v-if="param.type === 'number'"
|
||||||
v-model="modelValue[param.name]"
|
v-model="modelValue[param.name]"
|
||||||
:placeholder="param.placeholder"
|
class="!w-full"
|
||||||
/>
|
:placeholder="param.placeholder"
|
||||||
<el-input-number
|
:min="param.min"
|
||||||
v-if="param.type === 'number'"
|
:max="param.max"
|
||||||
v-model="modelValue[param.name]"
|
:step="param.step"
|
||||||
class="!w-full"
|
/>
|
||||||
:placeholder="param.placeholder"
|
<el-slider
|
||||||
:min="param.min"
|
v-if="param.type === 'slider'"
|
||||||
:max="param.max"
|
v-model="modelValue[param.name]"
|
||||||
:step="param.step"
|
:min="param.min"
|
||||||
/>
|
:max="param.max"
|
||||||
<el-slider
|
:step="param.step"
|
||||||
v-if="param.type === 'slider'"
|
/>
|
||||||
v-model="modelValue[param.name]"
|
<el-date-picker
|
||||||
:min="param.min"
|
v-if="param.type === 'date'"
|
||||||
:max="param.max"
|
v-model="modelValue[param.name]"
|
||||||
:step="param.step"
|
:placeholder="param.placeholder"
|
||||||
/>
|
/>
|
||||||
<el-date-picker
|
<el-time-picker
|
||||||
v-if="param.type === 'date'"
|
v-if="param.type === 'time'"
|
||||||
v-model="modelValue[param.name]"
|
v-model="modelValue[param.name]"
|
||||||
:placeholder="param.placeholder"
|
:placeholder="param.placeholder"
|
||||||
/>
|
/>
|
||||||
<el-time-picker
|
<el-select
|
||||||
v-if="param.type === 'time'"
|
v-if="param.type === 'select'"
|
||||||
v-model="modelValue[param.name]"
|
v-model="modelValue[param.name]"
|
||||||
:placeholder="param.placeholder"
|
:placeholder="param.placeholder"
|
||||||
/>
|
:popper-class="param.popperClass"
|
||||||
<el-select
|
filterable
|
||||||
v-if="param.type === 'select'"
|
|
||||||
v-model="modelValue[param.name]"
|
|
||||||
:placeholder="param.placeholder"
|
|
||||||
:popper-class="param.popperClass"
|
|
||||||
filterable
|
|
||||||
>
|
|
||||||
<template #prefix v-if="param.prefix">
|
|
||||||
<i class="iconfont !text-lg" :class="param.prefix"></i>
|
|
||||||
</template>
|
|
||||||
<el-option
|
|
||||||
v-for="option in param.options"
|
|
||||||
:key="option.value"
|
|
||||||
:label="option.label"
|
|
||||||
:value="option.value"
|
|
||||||
>
|
>
|
||||||
<div class="flex justify-start" v-if="option.image">
|
<template #prefix v-if="param.prefix">
|
||||||
<span class="flex py-3 mr-2">
|
<i class="iconfont !text-lg" :class="param.prefix"></i>
|
||||||
<img
|
</template>
|
||||||
:src="option.image"
|
<el-option
|
||||||
class="rounded-lg"
|
v-for="option in param.options"
|
||||||
:style="{ width: param.imgSize, height: param.imgSize }"
|
:key="option.value"
|
||||||
/></span>
|
:label="option.label"
|
||||||
<div class="flex !items-start flex-col py-2 space-y-1">
|
:value="option.value"
|
||||||
<span class="label text-sm">{{ option.label }}</span>
|
>
|
||||||
<span
|
<div class="flex justify-start" v-if="option.image">
|
||||||
class="text-xs text-gray-500 break-words line-clamp-1 max-w-[200px]"
|
<span class="flex py-3 mr-2">
|
||||||
:title="option.value"
|
<img
|
||||||
>{{ option.value }}</span
|
:src="option.image"
|
||||||
>
|
class="rounded-lg"
|
||||||
|
:style="{ width: param.imgSize, height: param.imgSize }"
|
||||||
|
/></span>
|
||||||
|
<div class="flex !items-start flex-col py-2 space-y-1">
|
||||||
|
<span class="label text-sm">{{ option.label }}</span>
|
||||||
|
<span
|
||||||
|
class="text-xs text-gray-500 break-words line-clamp-1 max-w-[200px]"
|
||||||
|
:title="option.value"
|
||||||
|
>{{ option.value }}</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="flex justify-start items-center h-full" v-else>
|
||||||
<div class="flex justify-start items-center h-full" v-else>
|
<span class="label text-sm">{{ option.label }}</span>
|
||||||
<span class="label text-sm">{{ option.label }}</span>
|
</div>
|
||||||
</div>
|
</el-option>
|
||||||
</el-option>
|
</el-select>
|
||||||
</el-select>
|
<el-input
|
||||||
<el-input
|
type="textarea"
|
||||||
type="textarea"
|
v-if="param.type === 'textarea'"
|
||||||
v-if="param.type === 'textarea'"
|
v-model="modelValue[param.name]"
|
||||||
v-model="modelValue[param.name]"
|
:autosize="param.autosize"
|
||||||
:autosize="param.autosize"
|
:maxlength="param.maxlength"
|
||||||
:maxlength="param.maxlength"
|
:show-word-limit="param.showWordLimit"
|
||||||
:show-word-limit="param.showWordLimit"
|
:placeholder="param.placeholder"
|
||||||
:placeholder="param.placeholder"
|
/>
|
||||||
/>
|
<ImageUpload
|
||||||
<ImageUpload
|
v-if="param.type === 'image'"
|
||||||
v-if="param.type === 'image'"
|
v-model="modelValue[param.name]"
|
||||||
v-model="modelValue[param.name]"
|
:max-count="param.maxCount"
|
||||||
:max-count="param.maxCount"
|
:multiple="param.multiple"
|
||||||
:multiple="param.multiple"
|
:max-size="param.maxSize"
|
||||||
:max-size="param.maxSize"
|
:accept="param.accept"
|
||||||
:accept="param.accept"
|
/>
|
||||||
/>
|
<FileUpload
|
||||||
<FileUpload
|
v-if="param.type === 'file'"
|
||||||
v-if="param.type === 'file'"
|
v-model="modelValue[param.name]"
|
||||||
v-model="modelValue[param.name]"
|
:max-count="param.maxCount"
|
||||||
:max-count="param.maxCount"
|
:multiple="param.multiple"
|
||||||
:multiple="param.multiple"
|
:max-size="param.maxSize"
|
||||||
:max-size="param.maxSize"
|
:accept="param.accept"
|
||||||
:accept="param.accept"
|
/>
|
||||||
/>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -197,6 +197,22 @@
|
|||||||
>
|
>
|
||||||
视频
|
视频
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
|
<el-button
|
||||||
|
:type="store.taskFilter === 'virtual_human' ? 'primary' : 'default'"
|
||||||
|
@click="store.switchTaskFilter('virtual_human')"
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
数字人
|
||||||
|
</el-button>
|
||||||
|
|
||||||
|
<el-button
|
||||||
|
:type="store.taskFilter === 'action_transfer' ? 'primary' : 'default'"
|
||||||
|
@click="store.switchTaskFilter('action_transfer')"
|
||||||
|
size="small"
|
||||||
|
>
|
||||||
|
动作迁移
|
||||||
|
</el-button>
|
||||||
</el-button-group>
|
</el-button-group>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user