feat: i18n
This commit is contained in:
parent
8e1a0e678c
commit
5cddada3be
@ -1,38 +1,39 @@
|
|||||||
|
import { t } from '@/locales'
|
||||||
const input_type_list = [
|
const input_type_list = [
|
||||||
{
|
{
|
||||||
label: '文本框',
|
label: t('components.dynamicsForm.input_type_list.TextInput'),
|
||||||
value: 'TextInput'
|
value: 'TextInput'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '滑块',
|
label: t('components.dynamicsForm.input_type_list.Slider'),
|
||||||
value: 'Slider'
|
value: 'Slider'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '开关',
|
label: t('components.dynamicsForm.input_type_list.SwitchInput'),
|
||||||
value: 'SwitchInput'
|
value: 'SwitchInput'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '单选框',
|
label: t('components.dynamicsForm.input_type_list.SingleSelect'),
|
||||||
value: 'SingleSelect'
|
value: 'SingleSelect'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '多选框',
|
label: t('components.dynamicsForm.input_type_list.MultiSelect'),
|
||||||
value: 'MultiSelect'
|
value: 'MultiSelect'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '日期',
|
label: t('components.dynamicsForm.input_type_list.DatePicker'),
|
||||||
value: 'DatePicker'
|
value: 'DatePicker'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'JSON文本框',
|
label: t('components.dynamicsForm.input_type_list.JsonInput'),
|
||||||
value: 'JsonInput'
|
value: 'JsonInput'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '选项卡',
|
label: t('components.dynamicsForm.input_type_list.RadioCard'),
|
||||||
value: 'RadioCard'
|
value: 'RadioCard'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '单行选项卡',
|
label: t('components.dynamicsForm.input_type_list.RadioRow'),
|
||||||
value: 'RadioRow'
|
value: 'RadioRow'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -7,35 +7,35 @@
|
|||||||
:model="form_data"
|
:model="form_data"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
>
|
>
|
||||||
<el-form-item label="参数" :required="true" prop="field" :rules="rules.field">
|
<el-form-item :label="$t('components.dynamicsForm.paramForm.field.label')" :required="true" prop="field" :rules="rules.field">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form_data.field"
|
v-model="form_data.field"
|
||||||
:maxlength="64"
|
:maxlength="64"
|
||||||
placeholder="请输入参数"
|
:placeholder="$t('components.dynamicsForm.paramForm.field.placeholder')"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="显示名称" :required="true" prop="label" :rules="rules.label">
|
<el-form-item :label="$t('components.dynamicsForm.paramForm.name.label')" :required="true" prop="label" :rules="rules.label">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form_data.label"
|
v-model="form_data.label"
|
||||||
:maxlength="64"
|
:maxlength="64"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
placeholder="请输入显示名称"
|
:placeholder="$t('components.dynamicsForm.paramForm.name.placeholder')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参数提示说明">
|
<el-form-item :label="$t('components.dynamicsForm.paramForm.tooltip.label')">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form_data.tooltip"
|
v-model="form_data.tooltip"
|
||||||
:maxlength="128"
|
:maxlength="128"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
placeholder="请输入参数提示说明"
|
:placeholder="$t('components.dynamicsForm.paramForm.tooltip.placeholder')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否必填" :required="true" prop="required" :rules="rules.required">
|
<el-form-item :label="$t('components.dynamicsForm.paramForm.required.label')" :required="true" prop="required" :rules="rules.required">
|
||||||
<el-switch v-model="form_data.required" :active-value="true" :inactive-value="false" />
|
<el-switch v-model="form_data.required" :active-value="true" :inactive-value="false" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="组件类型" :required="true" prop="input_type" :rules="rules.input_type">
|
<el-form-item :label="$t('components.dynamicsForm.paramForm.input_type.label')" :required="true" prop="input_type" :rules="rules.input_type">
|
||||||
<el-select v-model="form_data.input_type" placeholder="请选择组件类型">
|
<el-select v-model="form_data.input_type" :placeholder="$t('components.dynamicsForm.paramForm.input_type.placeholder')">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="input_type in input_type_list"
|
v-for="input_type in input_type_list"
|
||||||
:key="input_type.value"
|
:key="input_type.value"
|
||||||
@ -57,6 +57,7 @@ import { onMounted, ref, nextTick } from 'vue'
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
import { input_type_list as input_type_list_data } from '@/components/dynamics-form/constructor/data'
|
import { input_type_list as input_type_list_data } from '@/components/dynamics-form/constructor/data'
|
||||||
|
import { t } from '@/locales'
|
||||||
const props = withDefaults(
|
const props = withDefaults(
|
||||||
defineProps<{
|
defineProps<{
|
||||||
modelValue?: any
|
modelValue?: any
|
||||||
@ -80,10 +81,10 @@ const form_data = ref<any>({
|
|||||||
input_type: ''
|
input_type: ''
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
label: [{ required: true, message: '显示名称 为必填属性' }],
|
label: [{ required: true, message: t('components.dynamicsForm.paramForm.name.requiredMessage') }],
|
||||||
field: [{ required: true, message: '参数 为必填属性' }],
|
field: [{ required: true, message: t('components.dynamicsForm.paramForm.field.requiredMessage') }],
|
||||||
required: [{ required: true, message: '是否必填 为必填属性' }],
|
required: [{ required: true, message: t('components.dynamicsForm.paramForm.required.requiredMessage') }],
|
||||||
input_type: [{ required: true, message: '组建类型 为必填属性' }]
|
input_type: [{ required: true, message: t('components.dynamicsForm.paramForm.input_type.requiredMessage') }]
|
||||||
}
|
}
|
||||||
const getData = () => {
|
const getData = () => {
|
||||||
let label: string | any = form_data.value.label
|
let label: string | any = form_data.value.label
|
||||||
|
|||||||
@ -29,7 +29,7 @@
|
|||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
>
|
>
|
||||||
<div class="defaultValueCheckbox">
|
<div class="defaultValueCheckbox">
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="[default_value_rule]"
|
:rules="[default_value_rule]"
|
||||||
|
|||||||
@ -47,7 +47,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
|
|||||||
@ -48,7 +48,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
>
|
>
|
||||||
<div class="defaultValueCheckbox">
|
<div class="defaultValueCheckbox">
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
:rules="formValue.required ? [{ required: true, message: '默认值 为必填属性' }] : []"
|
||||||
|
|||||||
@ -52,7 +52,7 @@
|
|||||||
class="defaultValueItem"
|
class="defaultValueItem"
|
||||||
:required="formValue.required"
|
:required="formValue.required"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
:rules="
|
:rules="
|
||||||
formValue.required ? [{ required: true, message: '默认值 为必填属性' }, ...rules] : rules
|
formValue.required ? [{ required: true, message: '默认值 为必填属性' }, ...rules] : rules
|
||||||
"
|
"
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
import { t } from '@/locales'
|
|
||||||
export enum PermissionType {
|
export enum PermissionType {
|
||||||
PRIVATE = '私有',
|
PRIVATE = 'common.private',
|
||||||
PUBLIC = '公用'
|
PUBLIC = 'common.public'
|
||||||
}
|
}
|
||||||
export enum PermissionDesc {
|
export enum PermissionDesc {
|
||||||
PRIVATE = '仅当前用户使用',
|
PRIVATE = 'views.template.templateForm.form.permissionType.privateDesc',
|
||||||
PUBLIC = '所有用户都可使用,不能编辑'
|
PUBLIC = 'views.template.templateForm.form.permissionType.publicDesc',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum modelType {
|
export enum modelType {
|
||||||
|
|||||||
@ -36,6 +36,8 @@ export default {
|
|||||||
creator: 'Creator',
|
creator: 'Creator',
|
||||||
debug: 'Debug',
|
debug: 'Debug',
|
||||||
modify: 'Modify',
|
modify: 'Modify',
|
||||||
|
required: 'Required',
|
||||||
|
noData: 'No data',
|
||||||
status: {
|
status: {
|
||||||
label: 'Status',
|
label: 'Status',
|
||||||
enableSuccess: 'Enable Successful',
|
enableSuccess: 'Enable Successful',
|
||||||
|
|||||||
@ -25,8 +25,6 @@ export default {
|
|||||||
functionForm: {
|
functionForm: {
|
||||||
title: {
|
title: {
|
||||||
copy: 'Copy',
|
copy: 'Copy',
|
||||||
editParam: 'Edit Parameters',
|
|
||||||
addParam: 'Add Parameter',
|
|
||||||
baseInfo: 'Basic Information'
|
baseInfo: 'Basic Information'
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
@ -68,7 +66,6 @@ export default {
|
|||||||
outputParam: 'Output Parameters',
|
outputParam: 'Output Parameters',
|
||||||
paramInfo1: 'Displayed when using the function',
|
paramInfo1: 'Displayed when using the function',
|
||||||
paramInfo2: 'Not displayed when using the function',
|
paramInfo2: 'Not displayed when using the function',
|
||||||
required: 'Required',
|
|
||||||
code: 'Code',
|
code: 'Code',
|
||||||
result: 'Result'
|
result: 'Result'
|
||||||
},
|
},
|
||||||
|
|||||||
@ -21,6 +21,10 @@ export default {
|
|||||||
TTI: 'Image Generation'
|
TTI: 'Image Generation'
|
||||||
},
|
},
|
||||||
templateForm: {
|
templateForm: {
|
||||||
|
title: {
|
||||||
|
editParam: 'Edit Parameters',
|
||||||
|
addParam: 'Add Parameter',
|
||||||
|
},
|
||||||
form: {
|
form: {
|
||||||
provider: {
|
provider: {
|
||||||
label: 'Provider',
|
label: 'Provider',
|
||||||
|
|||||||
@ -30,12 +30,14 @@ export default {
|
|||||||
export: '导出',
|
export: '导出',
|
||||||
exportSuccess: '导出成功',
|
exportSuccess: '导出成功',
|
||||||
unavailable: '(不可用)',
|
unavailable: '(不可用)',
|
||||||
public: '公用',
|
public: '公有',
|
||||||
private: '私有',
|
private: '私有',
|
||||||
paramSetting: '参数设置',
|
paramSetting: '参数设置',
|
||||||
creator: '创建者',
|
creator: '创建者',
|
||||||
debug: '调试',
|
debug: '调试',
|
||||||
modify: '修改',
|
modify: '修改',
|
||||||
|
required: '必填',
|
||||||
|
noData: '暂无数据',
|
||||||
status: {
|
status: {
|
||||||
label: '状态',
|
label: '状态',
|
||||||
enableSuccess: '启用成功',
|
enableSuccess: '启用成功',
|
||||||
|
|||||||
43
ui/src/locales/lang/zh_CN/components/dynamics-form.ts
Normal file
43
ui/src/locales/lang/zh_CN/components/dynamics-form.ts
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
export default {
|
||||||
|
input_type_list: {
|
||||||
|
TextInput: '文本框',
|
||||||
|
Slider: '滑块',
|
||||||
|
SwitchInput: '开关',
|
||||||
|
SingleSelect: '单选框',
|
||||||
|
MultiSelect: '多选框',
|
||||||
|
DatePicker: '日期',
|
||||||
|
JsonInput: 'JSON文本框',
|
||||||
|
RadioCard: '选项卡',
|
||||||
|
RadioRow: '单行选项卡'
|
||||||
|
},
|
||||||
|
default: {
|
||||||
|
label: '默认值',
|
||||||
|
placeholder: '请输入默认值',
|
||||||
|
requiredMessage: '请输入默认值'
|
||||||
|
},
|
||||||
|
paramForm: {
|
||||||
|
field: {
|
||||||
|
label: '参数',
|
||||||
|
placeholder: '请输入参数',
|
||||||
|
requiredMessage: '参数 为必填属性'
|
||||||
|
},
|
||||||
|
name: {
|
||||||
|
label: '显示名称',
|
||||||
|
placeholder: '请输入显示名称',
|
||||||
|
requiredMessage: '显示名称 为必填属性'
|
||||||
|
},
|
||||||
|
tooltip: {
|
||||||
|
label: '参数提示说明',
|
||||||
|
placeholder: '请输入参数提示说明'
|
||||||
|
},
|
||||||
|
required: {
|
||||||
|
label: '是否必填',
|
||||||
|
requiredMessage: '是否必填 为必填属性'
|
||||||
|
},
|
||||||
|
input_type: {
|
||||||
|
label: '组件类型',
|
||||||
|
placeholder: '请选择组件类型',
|
||||||
|
requiredMessage: '组建类型 为必填属性'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1 +1,4 @@
|
|||||||
export default {}
|
import dynamicsForm from './dynamics-form'
|
||||||
|
export default {
|
||||||
|
dynamicsForm
|
||||||
|
}
|
||||||
|
|||||||
@ -23,8 +23,6 @@ export default {
|
|||||||
functionForm: {
|
functionForm: {
|
||||||
title: {
|
title: {
|
||||||
copy: '副本',
|
copy: '副本',
|
||||||
editParam: '编辑参数',
|
|
||||||
addParam: '添加参数',
|
|
||||||
baseInfo: '基础信息'
|
baseInfo: '基础信息'
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
@ -66,7 +64,6 @@ export default {
|
|||||||
outputParam: '输出参数',
|
outputParam: '输出参数',
|
||||||
paramInfo1: '使用函数时显示',
|
paramInfo1: '使用函数时显示',
|
||||||
paramInfo2: '使用函数时不显示',
|
paramInfo2: '使用函数时不显示',
|
||||||
required: '必填',
|
|
||||||
code: '代码',
|
code: '代码',
|
||||||
result: '结果'
|
result: '结果'
|
||||||
},
|
},
|
||||||
|
|||||||
@ -6,12 +6,20 @@ export default {
|
|||||||
searchBar: {
|
searchBar: {
|
||||||
placeholder: '按名称搜索'
|
placeholder: '按名称搜索'
|
||||||
},
|
},
|
||||||
delete: {},
|
delete: {
|
||||||
setting: {},
|
confirmTitle: '删除模型',
|
||||||
|
confirmMessage: '是否删除模型:'
|
||||||
|
},
|
||||||
tip: {
|
tip: {
|
||||||
createSuccessMessage: '创建模型成功',
|
createSuccessMessage: '创建模型成功',
|
||||||
createErrorMessage: '基础信息有填写错误',
|
createErrorMessage: '基础信息有填写错误',
|
||||||
errorMessage:'变量已存在: '
|
errorMessage: '变量已存在: ',
|
||||||
|
emptyMessage1: '请先选择基础信息的模型类型和基础模型',
|
||||||
|
emptyMessage2: '所选模型不支持参数设置',
|
||||||
|
updateSuccessMessage: '修改模型成功',
|
||||||
|
saveSuccessMessage: '模型参数保存成功',
|
||||||
|
downloadError: '下载失败',
|
||||||
|
noModel: '模型在Ollama不存在'
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
allModel: '全部模型',
|
allModel: '全部模型',
|
||||||
@ -28,7 +36,11 @@ export default {
|
|||||||
templateForm: {
|
templateForm: {
|
||||||
title: {
|
title: {
|
||||||
baseInfo: '基础信息',
|
baseInfo: '基础信息',
|
||||||
advancedInfo: '高级设置'
|
advancedInfo: '高级设置',
|
||||||
|
modelParams: '模型参数',
|
||||||
|
editParam: '编辑参数',
|
||||||
|
addParam: '添加参数',
|
||||||
|
paramSetting: '模型参数设置'
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
templateName: {
|
templateName: {
|
||||||
@ -39,9 +51,8 @@ export default {
|
|||||||
},
|
},
|
||||||
permissionType: {
|
permissionType: {
|
||||||
label: '权限',
|
label: '权限',
|
||||||
placeholder: '请给基础模型设置一个名称',
|
privateDesc: '仅当前用户使用',
|
||||||
tooltip: 'MaxKB 中自定义的模型名称',
|
publicDesc: '所有用户都可使用,不能编辑'
|
||||||
requiredMessage: '权限不能为空'
|
|
||||||
},
|
},
|
||||||
model_type: {
|
model_type: {
|
||||||
label: '模型类型',
|
label: '模型类型',
|
||||||
@ -53,9 +64,18 @@ export default {
|
|||||||
tooltip5: '重排模型:在高级编排应用中使用多路召回时,对候选分段进行重新排序的模型。',
|
tooltip5: '重排模型:在高级编排应用中使用多路召回时,对候选分段进行重新排序的模型。',
|
||||||
tooltip6: '图片理解:在高级编排应用中用于图片理解的视觉模型。',
|
tooltip6: '图片理解:在高级编排应用中用于图片理解的视觉模型。',
|
||||||
tooltip7: '图片生成:在高级编排应用中用于图片生成的视觉模型。',
|
tooltip7: '图片生成:在高级编排应用中用于图片生成的视觉模型。',
|
||||||
requiredMessage: '模型类型不能为空',
|
requiredMessage: '模型类型不能为空'
|
||||||
warningMessage: '模型类型不能为空'
|
},
|
||||||
|
base_model: {
|
||||||
|
label: '基础模型',
|
||||||
|
tooltip: '列表中未列出的模型,直接输入模型名称,回车即可添加',
|
||||||
|
placeholder: '自定义输入基础模型后回车即可',
|
||||||
|
requiredMessage: '基础模型不能为空'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
download: {
|
||||||
|
downloading: '正在下载中',
|
||||||
|
cancelDownload: '取消下载'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,12 +30,14 @@ export default {
|
|||||||
export: '匯出',
|
export: '匯出',
|
||||||
exportSuccess: '匯出成功',
|
exportSuccess: '匯出成功',
|
||||||
unavailable: '(不可用)',
|
unavailable: '(不可用)',
|
||||||
public: '公用',
|
public: '公有',
|
||||||
private: '私有',
|
private: '私有',
|
||||||
paramSetting: '參數設定',
|
paramSetting: '參數設定',
|
||||||
creator: '建立者',
|
creator: '建立者',
|
||||||
debug: '調試',
|
debug: '調試',
|
||||||
modify: '修改',
|
modify: '修改',
|
||||||
|
required: '必填',
|
||||||
|
noData: '暂无数据',
|
||||||
status: {
|
status: {
|
||||||
label: '狀態',
|
label: '狀態',
|
||||||
enableSuccess: '啟用成功',
|
enableSuccess: '啟用成功',
|
||||||
|
|||||||
@ -23,8 +23,6 @@ export default {
|
|||||||
functionForm: {
|
functionForm: {
|
||||||
title: {
|
title: {
|
||||||
copy: '副本',
|
copy: '副本',
|
||||||
editParam: '編輯參數',
|
|
||||||
addParam: '添加參數',
|
|
||||||
baseInfo: '基礎信息'
|
baseInfo: '基礎信息'
|
||||||
},
|
},
|
||||||
form: {
|
form: {
|
||||||
@ -66,7 +64,6 @@ export default {
|
|||||||
outputParam: '輸出參數',
|
outputParam: '輸出參數',
|
||||||
paramInfo1: '使用函數時顯示',
|
paramInfo1: '使用函數時顯示',
|
||||||
paramInfo2: '使用函數時不顯示',
|
paramInfo2: '使用函數時不顯示',
|
||||||
required: '必填',
|
|
||||||
code: '代碼',
|
code: '代碼',
|
||||||
result: '結果'
|
result: '結果'
|
||||||
},
|
},
|
||||||
|
|||||||
@ -21,11 +21,12 @@ export default {
|
|||||||
TTI: '圖片生成'
|
TTI: '圖片生成'
|
||||||
},
|
},
|
||||||
templateForm: {
|
templateForm: {
|
||||||
|
title: {
|
||||||
|
editParam: '編輯參數',
|
||||||
|
addParam: '添加參數',
|
||||||
|
},
|
||||||
form: {
|
form: {
|
||||||
provider: {
|
|
||||||
label: '供應商',
|
|
||||||
placeholder: '選擇供應商'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
<el-dialog
|
<el-dialog
|
||||||
:title="
|
:title="
|
||||||
isEdit
|
isEdit
|
||||||
? $t('views.functionLib.functionForm.title.editParam')
|
? $t('views.template.templateForm.title.editParam')
|
||||||
: $t('views.functionLib.functionForm.title.addParam')
|
: $t('views.template.templateForm.title.addParam')
|
||||||
"
|
"
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
|
|||||||
@ -53,9 +53,9 @@
|
|||||||
:class="form.permission_type === key ? 'active' : ''"
|
:class="form.permission_type === key ? 'active' : ''"
|
||||||
>
|
>
|
||||||
<el-radio :value="key" size="large">
|
<el-radio :value="key" size="large">
|
||||||
<p class="mb-4">{{ value }}</p>
|
<p class="mb-4">{{ $t(value) }}</p>
|
||||||
<el-text type="info">
|
<el-text type="info">
|
||||||
{{ PermissionDesc[key] }}
|
{{ $t(PermissionDesc[key]) }}
|
||||||
</el-text>
|
</el-text>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<el-tag type="info" class="info-tag">{{ row.type }}</el-tag>
|
<el-tag type="info" class="info-tag">{{ row.type }}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :label="$t('views.functionLib.functionForm.form.param.required')">
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch size="small" v-model="row.is_required" />
|
<el-switch size="small" v-model="row.is_required" />
|
||||||
@ -141,7 +141,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="title-decoration-1 mb-16 mt-16">
|
<h4 class="title-decoration-1 mb-16 mt-16">
|
||||||
{{ $t('views.functionLib.functionForm.form.param.outputParam') }} <el-text type="info" class="color-secondary"> {{ $t('views.functionLib.functionForm.form.param.paramInfo1') }} </el-text>
|
{{ $t('views.functionLib.functionForm.form.param.outputParam') }}
|
||||||
|
<el-text type="info" class="color-secondary">
|
||||||
|
{{ $t('views.functionLib.functionForm.form.param.paramInfo1') }}
|
||||||
|
</el-text>
|
||||||
</h4>
|
</h4>
|
||||||
<div class="flex-between border-r-4 p-8-12 mb-8 layout-bg lighter">
|
<div class="flex-between border-r-4 p-8-12 mb-8 layout-bg lighter">
|
||||||
<span>{{ $t('views.functionLib.functionForm.form.param.result') }} {result}</span>
|
<span>{{ $t('views.functionLib.functionForm.form.param.result') }} {result}</span>
|
||||||
@ -159,7 +162,12 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- Codemirror 弹出层 -->
|
<!-- Codemirror 弹出层 -->
|
||||||
<el-dialog v-model="dialogVisible" :title="'Python '+ $t('views.functionLib.functionForm.form.param.code')" append-to-body fullscreen>
|
<el-dialog
|
||||||
|
v-model="dialogVisible"
|
||||||
|
:title="'Python ' + $t('views.functionLib.functionForm.form.param.code')"
|
||||||
|
append-to-body
|
||||||
|
fullscreen
|
||||||
|
>
|
||||||
<CodemirrorEditor
|
<CodemirrorEditor
|
||||||
v-model="cloneContent"
|
v-model="cloneContent"
|
||||||
style="
|
style="
|
||||||
@ -233,8 +241,20 @@ watch(visible, (bool) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: t('views.functionLib.functionForm.form.functionName.requiredMessage'), trigger: 'blur' }],
|
name: [
|
||||||
permission_type: [{ required: true, message: t('views.functionLib.functionForm.form.permission_type.requiredMessage'), trigger: 'change' }]
|
{
|
||||||
|
required: true,
|
||||||
|
message: t('views.functionLib.functionForm.form.functionName.requiredMessage'),
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
permission_type: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: t('views.functionLib.functionForm.form.permission_type.requiredMessage'),
|
||||||
|
trigger: 'change'
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
function openCodemirrorDialog() {
|
function openCodemirrorDialog() {
|
||||||
|
|||||||
@ -7,7 +7,13 @@
|
|||||||
:before-close="cancelClick"
|
:before-close="cancelClick"
|
||||||
>
|
>
|
||||||
<template #header>
|
<template #header>
|
||||||
<h4>{{ isEdit ? '编辑参数' : '添加参数' }}</h4>
|
<h4>
|
||||||
|
{{
|
||||||
|
isEdit
|
||||||
|
? $t('views.template.templateForm.title.editParam')
|
||||||
|
: $t('views.template.templateForm.title.addParam')
|
||||||
|
}}
|
||||||
|
</h4>
|
||||||
</template>
|
</template>
|
||||||
<template #default>
|
<template #default>
|
||||||
<DynamicsFormConstructor
|
<DynamicsFormConstructor
|
||||||
@ -19,8 +25,10 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div style="flex: auto">
|
<div style="flex: auto">
|
||||||
<el-button @click="cancelClick">{{$t('common.cancel')}}</el-button>
|
<el-button @click="cancelClick">{{ $t('common.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="confirmClick()">{{ isEdit ? $t('common.save') : $t('common.add') }}</el-button>
|
<el-button type="primary" @click="confirmClick()">{{
|
||||||
|
isEdit ? $t('common.save') : $t('common.add')
|
||||||
|
}}</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|||||||
@ -11,10 +11,10 @@
|
|||||||
<template #header="{ close, titleId, titleClass }">
|
<template #header="{ close, titleId, titleClass }">
|
||||||
<el-breadcrumb separator=">">
|
<el-breadcrumb separator=">">
|
||||||
<el-breadcrumb-item>
|
<el-breadcrumb-item>
|
||||||
<span @click="toSelectProvider" class="select-provider"
|
<span @click="toSelectProvider" class="select-provider">
|
||||||
>{{ $t('views.template.providerPlaceholder') }}</span
|
{{ $t('views.template.providerPlaceholder') }}
|
||||||
></el-breadcrumb-item
|
</span>
|
||||||
>
|
</el-breadcrumb-item>
|
||||||
<el-breadcrumb-item
|
<el-breadcrumb-item
|
||||||
><span class="active-breadcrumb">{{
|
><span class="active-breadcrumb">{{
|
||||||
`${$t('common.add')} ${providerValue?.name}`
|
`${$t('common.add')} ${providerValue?.name}`
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</el-breadcrumb>
|
</el-breadcrumb>
|
||||||
</template>
|
</template>
|
||||||
<el-tabs v-model="activeName">
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane label="基础信息" name="base-info">
|
<el-tab-pane :label="$t('views.template.templateForm.title.baseInfo')" name="base-info">
|
||||||
<DynamicsForm
|
<DynamicsForm
|
||||||
v-model="form_data"
|
v-model="form_data"
|
||||||
:render_data="model_form_field"
|
:render_data="model_form_field"
|
||||||
@ -39,11 +39,11 @@
|
|||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex align-center" style="display: inline-flex">
|
<div class="flex align-center" style="display: inline-flex">
|
||||||
<div class="mr-4">
|
<div class="mr-4">
|
||||||
<span>模型名称 </span>
|
<span> {{ $t('views.template.templateForm.form.templateName.label') }} </span>
|
||||||
</div>
|
</div>
|
||||||
<el-tooltip effect="dark" placement="right">
|
<el-tooltip effect="dark" placement="right">
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>MaxKB 中自定义的模型名称</p>
|
<p>{{ $t('views.template.templateForm.form.templateName.tooltip') }}</p>
|
||||||
</template>
|
</template>
|
||||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -53,12 +53,12 @@
|
|||||||
v-model="base_form_data.name"
|
v-model="base_form_data.name"
|
||||||
maxlength="64"
|
maxlength="64"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
placeholder="请给基础模型设置一个名称"
|
:placeholder="$t('views.template.templateForm.form.templateName.placeholder')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="permission_type" :rules="base_form_data_rule.permission_type">
|
<el-form-item prop="permission_type" :rules="base_form_data_rule.permission_type">
|
||||||
<template #label>
|
<template #label>
|
||||||
<span>权限</span>
|
<span>{{ $t('views.template.templateForm.form.permissionType.label') }}</span>
|
||||||
</template>
|
</template>
|
||||||
<el-radio-group v-model="base_form_data.permission_type" class="card__radio">
|
<el-radio-group v-model="base_form_data.permission_type" class="card__radio">
|
||||||
<el-row :gutter="16">
|
<el-row :gutter="16">
|
||||||
@ -70,9 +70,9 @@
|
|||||||
:class="base_form_data.permission_type === key ? 'active' : ''"
|
:class="base_form_data.permission_type === key ? 'active' : ''"
|
||||||
>
|
>
|
||||||
<el-radio :value="key" size="large">
|
<el-radio :value="key" size="large">
|
||||||
<p class="mb-4">{{ value }}</p>
|
<p class="mb-4">{{ $t(value) }}</p>
|
||||||
<el-text type="info">
|
<el-text type="info">
|
||||||
{{ PermissionDesc[key] }}
|
{{ $t(PermissionDesc[key]) }}
|
||||||
</el-text>
|
</el-text>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -84,18 +84,18 @@
|
|||||||
<el-form-item prop="model_type" :rules="base_form_data_rule.model_type">
|
<el-form-item prop="model_type" :rules="base_form_data_rule.model_type">
|
||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex align-center" style="display: inline-flex">
|
<div class="flex align-center" style="display: inline-flex">
|
||||||
<span class="mr-4">模型类型 </span>
|
<span class="mr-4"
|
||||||
|
>{{ $t('views.template.templateForm.form.model_type.label') }}
|
||||||
|
</span>
|
||||||
<el-tooltip effect="dark" placement="right">
|
<el-tooltip effect="dark" placement="right">
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>大语言模型:在应用中与AI对话的推理模型。</p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip1') }}</p>
|
||||||
<p>向量模型:在知识库中对文档内容进行向量化的模型。</p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip2') }}</p>
|
||||||
<p>语音识别:在应用中开启语音识别后用于语音转文字的模型。</p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip3') }}</p>
|
||||||
<p>语音合成:在应用中开启语音播放后用于文字转语音的模型。</p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip4') }}</p>
|
||||||
<p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip5') }}</p>
|
||||||
重排模型:在高级编排应用中使用多路召回时,对候选分段进行重新排序的模型。
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip6') }}</p>
|
||||||
</p>
|
<p>{{ $t('views.template.templateForm.form.model_type.tooltip7') }}</p>
|
||||||
<p>图片理解:在高级编排应用中用于图片理解的视觉模型。</p>
|
|
||||||
<p>图片生成:在高级编排应用中用于图片生成的视觉模型。</p>
|
|
||||||
</template>
|
</template>
|
||||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -106,7 +106,7 @@
|
|||||||
@change="list_base_model($event, true)"
|
@change="list_base_model($event, true)"
|
||||||
v-model="base_form_data.model_type"
|
v-model="base_form_data.model_type"
|
||||||
class="w-full m-2"
|
class="w-full m-2"
|
||||||
placeholder="请选择模型类型"
|
:placeholder="$t('views.template.templateForm.form.model_type.placeholder')"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in model_type_list"
|
v-for="item in model_type_list"
|
||||||
@ -121,8 +121,10 @@
|
|||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex align-center" style="display: inline-flex">
|
<div class="flex align-center" style="display: inline-flex">
|
||||||
<div class="mr-4">
|
<div class="mr-4">
|
||||||
<span>基础模型 </span>
|
<span>{{ $t('views.template.templateForm.form.base_model.label') }} </span>
|
||||||
<span class="danger">列表中未列出的模型,直接输入模型名称,回车即可添加</span>
|
<span class="danger ml-4">{{
|
||||||
|
$t('views.template.templateForm.form.base_model.tooltip')
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -131,7 +133,7 @@
|
|||||||
v-loading="base_model_loading"
|
v-loading="base_model_loading"
|
||||||
v-model="base_form_data.model_name"
|
v-model="base_form_data.model_name"
|
||||||
class="w-full m-2"
|
class="w-full m-2"
|
||||||
placeholder="自定义输入基础模型后回车即可"
|
:placeholder="$t('views.template.templateForm.form.base_model.placeholder')"
|
||||||
filterable
|
filterable
|
||||||
allow-create
|
allow-create
|
||||||
default-first-option
|
default-first-option
|
||||||
@ -156,10 +158,13 @@
|
|||||||
</template>
|
</template>
|
||||||
</DynamicsForm>
|
</DynamicsForm>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="高级设置" name="advanced-info">
|
<el-tab-pane
|
||||||
|
:label="$t('views.template.templateForm.title.advancedInfo')"
|
||||||
|
name="advanced-info"
|
||||||
|
>
|
||||||
<el-empty
|
<el-empty
|
||||||
v-if="!base_form_data.model_type || !base_form_data.model_name"
|
v-if="!base_form_data.model_type || !base_form_data.model_name"
|
||||||
description="请先选择基础信息的模型类型和基础模型"
|
:description="$t('views.template.tip.emptyMessage1')"
|
||||||
/>
|
/>
|
||||||
<el-empty
|
<el-empty
|
||||||
v-else-if="
|
v-else-if="
|
||||||
@ -167,10 +172,10 @@
|
|||||||
base_form_data.model_type === 'EMBEDDING' ||
|
base_form_data.model_type === 'EMBEDDING' ||
|
||||||
base_form_data.model_type === 'STT'
|
base_form_data.model_type === 'STT'
|
||||||
"
|
"
|
||||||
description="所选模型不支持参数设置"
|
:description="$t('views.template.tip.emptyMessage2')"
|
||||||
/>
|
/>
|
||||||
<div class="flex-between mb-8" v-else>
|
<div class="flex-between mb-8" v-else>
|
||||||
<h5>模型参数</h5>
|
<h5>{{ $t('views.template.templateForm.title.modelParams') }}</h5>
|
||||||
<el-button
|
<el-button
|
||||||
type="text"
|
type="text"
|
||||||
@click.stop="openAddDrawer()"
|
@click.stop="openAddDrawer()"
|
||||||
@ -181,7 +186,7 @@
|
|||||||
base_form_data.model_type !== 'TTI'
|
base_form_data.model_type !== 'TTI'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<AppIcon iconName="Plus" class="add-icon" />添加
|
<AppIcon iconName="Plus" class="add-icon" />{{ $t('common.add') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
@ -189,7 +194,11 @@
|
|||||||
v-if="base_form_data.model_params_form?.length > 0"
|
v-if="base_form_data.model_params_form?.length > 0"
|
||||||
class="mb-16"
|
class="mb-16"
|
||||||
>
|
>
|
||||||
<el-table-column prop="label" label="显示名称" show-overflow-tooltip>
|
<el-table-column
|
||||||
|
prop="label"
|
||||||
|
:label="$t('components.dynamicsForm.paramForm.name.label')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span v-if="row.label && row.label.input_type === 'TooltipLabel'">{{
|
<span v-if="row.label && row.label.input_type === 'TooltipLabel'">{{
|
||||||
row.label.label
|
row.label.label
|
||||||
@ -197,16 +206,27 @@
|
|||||||
<span v-else>{{ row.label }}</span>
|
<span v-else>{{ row.label }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="field" label="参数" show-overflow-tooltip />
|
<el-table-column
|
||||||
<el-table-column label="组件类型" width="110px">
|
prop="field"
|
||||||
|
:label="$t('components.dynamicsForm.paramForm.field.label')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
:label="$t('components.dynamicsForm.paramForm.input_type.label')"
|
||||||
|
width="110px"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag type="info" class="info-tag">{{
|
<el-tag type="info" class="info-tag">{{
|
||||||
input_type_list.find((item) => item.value === row.input_type)?.label
|
input_type_list.find((item) => item.value === row.input_type)?.label
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="default_value" label="默认值" show-overflow-tooltip />
|
<el-table-column
|
||||||
<el-table-column label="必填">
|
prop="default_value"
|
||||||
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch disabled size="small" v-model="row.required" />
|
<el-switch disabled size="small" v-model="row.required" />
|
||||||
@ -237,8 +257,10 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="close">{{$t('common.cancel')}}</el-button>
|
<el-button @click="close">{{ $t('common.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="submit" :loading="loading"> {{$t('common.save')}} </el-button>
|
<el-button type="primary" @click="submit" :loading="loading">
|
||||||
|
{{ $t('common.save') }}
|
||||||
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -256,6 +278,7 @@ import { MsgError, MsgSuccess, MsgWarning } from '@/utils/message'
|
|||||||
import { PermissionType, PermissionDesc } from '@/enums/model'
|
import { PermissionType, PermissionDesc } from '@/enums/model'
|
||||||
import { input_type_list } from '@/components/dynamics-form/constructor/data'
|
import { input_type_list } from '@/components/dynamics-form/constructor/data'
|
||||||
import AddParamDrawer from '@/views/template/component/AddParamDrawer.vue'
|
import AddParamDrawer from '@/views/template/component/AddParamDrawer.vue'
|
||||||
|
import { t } from '@/locales'
|
||||||
|
|
||||||
const providerValue = ref<Provider>()
|
const providerValue = ref<Provider>()
|
||||||
const dynamicsFormRef = ref<InstanceType<typeof DynamicsForm>>()
|
const dynamicsFormRef = ref<InstanceType<typeof DynamicsForm>>()
|
||||||
@ -272,10 +295,26 @@ const activeName = ref('base-info')
|
|||||||
const AddParamRef = ref()
|
const AddParamRef = ref()
|
||||||
|
|
||||||
const base_form_data_rule = ref<FormRules>({
|
const base_form_data_rule = ref<FormRules>({
|
||||||
name: { required: true, trigger: 'blur', message: '模型名称不能为空' },
|
name: {
|
||||||
permission_type: { required: true, trigger: 'change', message: '权限不能为空' },
|
required: true,
|
||||||
model_type: { required: true, trigger: 'change', message: '模型类型不能为空' },
|
trigger: 'blur',
|
||||||
model_name: { required: true, trigger: 'change', message: '基础模型不能为空' }
|
message: t('views.template.templateForm.form.templateName.requiredMessage')
|
||||||
|
},
|
||||||
|
permission_type: {
|
||||||
|
required: true,
|
||||||
|
trigger: 'change',
|
||||||
|
message: t('views.template.templateForm.form.permissionType.requiredMessage')
|
||||||
|
},
|
||||||
|
model_type: {
|
||||||
|
required: true,
|
||||||
|
trigger: 'change',
|
||||||
|
message: t('views.template.templateForm.form.model_type.requiredMessage')
|
||||||
|
},
|
||||||
|
model_name: {
|
||||||
|
required: true,
|
||||||
|
trigger: 'change',
|
||||||
|
message: t('views.template.templateForm.form.base_model.requiredMessage')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const base_form_data = ref<{
|
const base_form_data = ref<{
|
||||||
@ -306,7 +345,7 @@ const form_data = computed({
|
|||||||
|
|
||||||
const getModelForm = (model_name: string) => {
|
const getModelForm = (model_name: string) => {
|
||||||
if (!form_data.value.model_type) {
|
if (!form_data.value.model_type) {
|
||||||
MsgWarning('请先选择模型类型')
|
MsgWarning(t('views.template.templateForm.form.model_type.requiredMessage'))
|
||||||
base_form_data.value.model_name = ''
|
base_form_data.value.model_name = ''
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -383,13 +422,13 @@ const submit = () => {
|
|||||||
loading
|
loading
|
||||||
).then((ok) => {
|
).then((ok) => {
|
||||||
close()
|
close()
|
||||||
MsgSuccess('创建模型成功')
|
MsgSuccess(t('views.template.tip.createSuccessMessage'))
|
||||||
emit('submit')
|
emit('submit')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
MsgError('基础信息有填写错误')
|
MsgError(t('views.template.tip.createErrorMessage'))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -414,11 +453,11 @@ function refresh(data: any, index: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (field === data.field && index !== i) {
|
if (field === data.field && index !== i) {
|
||||||
MsgError('变量已存在: ' + data.field)
|
MsgError(t('views.template.tip.errorMessage') + data.field)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (label === label2 && index !== i) {
|
if (label === label2 && index !== i) {
|
||||||
MsgError('变量已存在: ' + label)
|
MsgError(t('views.template.tip.errorMessage') + label)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,11 +31,11 @@
|
|||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex align-center" style="display: inline-flex">
|
<div class="flex align-center" style="display: inline-flex">
|
||||||
<div class="mr-4">
|
<div class="mr-4">
|
||||||
<span>模型名称 </span>
|
<span>{{ $t('views.template.templateForm.form.templateName.label') }} </span>
|
||||||
</div>
|
</div>
|
||||||
<el-tooltip effect="dark" placement="right">
|
<el-tooltip effect="dark" placement="right">
|
||||||
<template #content>
|
<template #content>
|
||||||
<p>MaxKB 中自定义的模型名称</p>
|
<p>{{ $t('views.template.templateForm.form.templateName.tooltip') }}</p>
|
||||||
</template>
|
</template>
|
||||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -45,12 +45,12 @@
|
|||||||
v-model="base_form_data.name"
|
v-model="base_form_data.name"
|
||||||
maxlength="64"
|
maxlength="64"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
placeholder="请给基础模型设置一个名称"
|
:placeholder="$t('views.template.templateForm.form.templateName.placeholder')"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="permission_type" :rules="base_form_data_rule.permission_type">
|
<el-form-item prop="permission_type" :rules="base_form_data_rule.permission_type">
|
||||||
<template #label>
|
<template #label>
|
||||||
<span>权限</span>
|
<span>{{ $t('views.template.templateForm.form.permissionType.label') }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-radio-group v-model="base_form_data.permission_type" class="card__radio">
|
<el-radio-group v-model="base_form_data.permission_type" class="card__radio">
|
||||||
@ -63,9 +63,9 @@
|
|||||||
:class="base_form_data.permission_type === key ? 'active' : ''"
|
:class="base_form_data.permission_type === key ? 'active' : ''"
|
||||||
>
|
>
|
||||||
<el-radio :value="key" size="large">
|
<el-radio :value="key" size="large">
|
||||||
<p class="mb-4">{{ value }}</p>
|
<p class="mb-4">{{ $t(value) }}</p>
|
||||||
<el-text type="info">
|
<el-text type="info">
|
||||||
{{ PermissionDesc[key] }}
|
{{ $t(PermissionDesc[key]) }}
|
||||||
</el-text>
|
</el-text>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -76,7 +76,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="model_type" :rules="base_form_data_rule.model_type">
|
<el-form-item prop="model_type" :rules="base_form_data_rule.model_type">
|
||||||
<template #label>
|
<template #label>
|
||||||
<span>模型类型</span>
|
<span>{{ $t('views.template.templateForm.form.model_type.label') }}</span>
|
||||||
</template>
|
</template>
|
||||||
<el-select
|
<el-select
|
||||||
disabled
|
disabled
|
||||||
@ -84,7 +84,7 @@
|
|||||||
@change="list_base_model($event, true)"
|
@change="list_base_model($event, true)"
|
||||||
v-model="base_form_data.model_type"
|
v-model="base_form_data.model_type"
|
||||||
class="w-full m-2"
|
class="w-full m-2"
|
||||||
placeholder="请选择模型类型"
|
:placeholder="$t('views.template.templateForm.form.model_type.placeholder')"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in model_type_list"
|
v-for="item in model_type_list"
|
||||||
@ -98,8 +98,10 @@
|
|||||||
<template #label>
|
<template #label>
|
||||||
<div class="flex align-center" style="display: inline-flex">
|
<div class="flex align-center" style="display: inline-flex">
|
||||||
<div class="mr-4">
|
<div class="mr-4">
|
||||||
<span>基础模型 </span>
|
<span>{{ $t('views.template.templateForm.form.base_model.label') }} </span>
|
||||||
<span class="danger">列表中未列出的模型,直接输入模型名称,回车即可添加</span>
|
<span class="danger">{{
|
||||||
|
$t('views.template.templateForm.form.base_model.tooltip')
|
||||||
|
}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -108,7 +110,7 @@
|
|||||||
v-loading="base_model_loading"
|
v-loading="base_model_loading"
|
||||||
v-model="base_form_data.model_name"
|
v-model="base_form_data.model_name"
|
||||||
class="w-full m-2"
|
class="w-full m-2"
|
||||||
placeholder="请选择基础模型"
|
:placeholder="$t('views.template.templateForm.form.base_model.requiredMessage')"
|
||||||
filterable
|
filterable
|
||||||
allow-create
|
allow-create
|
||||||
default-first-option
|
default-first-option
|
||||||
@ -134,7 +136,7 @@
|
|||||||
</DynamicsForm>
|
</DynamicsForm>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="close">{{$t('common.cancel')}}</el-button>
|
<el-button @click="close">{{ $t('common.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="submit" :loading="loading">
|
<el-button type="primary" @click="submit" :loading="loading">
|
||||||
{{ $t('common.modify') }}
|
{{ $t('common.modify') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -152,6 +154,7 @@ import DynamicsForm from '@/components/dynamics-form/index.vue'
|
|||||||
import type { FormRules } from 'element-plus'
|
import type { FormRules } from 'element-plus'
|
||||||
import { MsgSuccess } from '@/utils/message'
|
import { MsgSuccess } from '@/utils/message'
|
||||||
import { PermissionType, PermissionDesc } from '@/enums/model'
|
import { PermissionType, PermissionDesc } from '@/enums/model'
|
||||||
|
import { t } from '@/locales'
|
||||||
|
|
||||||
const providerValue = ref<Provider>()
|
const providerValue = ref<Provider>()
|
||||||
const dynamicsFormRef = ref<InstanceType<typeof DynamicsForm>>()
|
const dynamicsFormRef = ref<InstanceType<typeof DynamicsForm>>()
|
||||||
@ -167,9 +170,21 @@ const model_form_field = ref<Array<FormField>>([])
|
|||||||
const dialogVisible = ref<boolean>(false)
|
const dialogVisible = ref<boolean>(false)
|
||||||
|
|
||||||
const base_form_data_rule = ref<FormRules>({
|
const base_form_data_rule = ref<FormRules>({
|
||||||
name: { required: true, trigger: 'blur', message: '模型名称不能为空' },
|
name: {
|
||||||
model_type: { required: true, trigger: 'change', message: '模型类型不能为空' },
|
required: true,
|
||||||
model_name: { required: true, trigger: 'change', message: '基础模型不能为空' }
|
trigger: 'blur',
|
||||||
|
message: t('views.template.templateForm.form.templateName.requiredMessage')
|
||||||
|
},
|
||||||
|
model_type: {
|
||||||
|
required: true,
|
||||||
|
trigger: 'change',
|
||||||
|
message: t('views.template.templateForm.form.model_type.requiredMessage')
|
||||||
|
},
|
||||||
|
model_name: {
|
||||||
|
required: true,
|
||||||
|
trigger: 'change',
|
||||||
|
message: t('views.template.templateForm.form.base_model.requiredMessage')
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const base_form_data = ref<{
|
const base_form_data = ref<{
|
||||||
@ -260,7 +275,7 @@ const submit = () => {
|
|||||||
},
|
},
|
||||||
loading
|
loading
|
||||||
).then((ok) => {
|
).then((ok) => {
|
||||||
MsgSuccess('修改模型成功')
|
MsgSuccess(t('views.template.tip.updateSuccessMessage'))
|
||||||
close()
|
close()
|
||||||
emit('submit')
|
emit('submit')
|
||||||
})
|
})
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<span v-if="currentModel.status === 'PAUSE_DOWNLOAD'">
|
<span v-if="currentModel.status === 'PAUSE_DOWNLOAD'">
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
effect="dark"
|
effect="dark"
|
||||||
:content="`基础模型: ${props.model.model_name} 下载失败`"
|
:content="`${$t('views.template.templateForm.form.base_model.label')}: ${props.model.model_name} ${$t('views.template.tip.downloadError')}`"
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<el-icon class="danger ml-4" size="18"><Warning /></el-icon>
|
<el-icon class="danger ml-4" size="18"><Warning /></el-icon>
|
||||||
@ -24,9 +24,9 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
<el-tag v-if="model.permission_type === 'PRIVATE'" type="danger" class="danger-tag"
|
<el-tag v-if="model.permission_type === 'PRIVATE'" type="danger" class="danger-tag">{{
|
||||||
>私有</el-tag
|
$t('common.private')
|
||||||
>
|
}}</el-tag>
|
||||||
<el-tag v-else type="info" class="info-tag"> {{ $t('common.public') }}</el-tag>
|
<el-tag v-else type="info" class="info-tag"> {{ $t('common.public') }}</el-tag>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -36,13 +36,17 @@
|
|||||||
<div class="mt-16">
|
<div class="mt-16">
|
||||||
<ul>
|
<ul>
|
||||||
<li class="flex mt-16">
|
<li class="flex mt-16">
|
||||||
<el-text type="info">模型类型</el-text>
|
<el-text type="info">{{
|
||||||
|
$t('views.template.templateForm.form.model_type.label')
|
||||||
|
}}</el-text>
|
||||||
<span class="ellipsis ml-16">
|
<span class="ellipsis ml-16">
|
||||||
{{ $t(modelType[model.model_type as keyof typeof modelType]) }}</span
|
{{ $t(modelType[model.model_type as keyof typeof modelType]) }}</span
|
||||||
>
|
>
|
||||||
</li>
|
</li>
|
||||||
<li class="flex mt-12">
|
<li class="flex mt-12">
|
||||||
<el-text type="info">基础模型</el-text>
|
<el-text type="info">{{
|
||||||
|
$t('views.template.templateForm.form.base_model.label')
|
||||||
|
}}</el-text>
|
||||||
<span class="ellipsis-1 ml-16" style="height: 20px; width: 70%">
|
<span class="ellipsis-1 ml-16" style="height: 20px; width: 70%">
|
||||||
{{ model.model_name }}</span
|
{{ model.model_name }}</span
|
||||||
>
|
>
|
||||||
@ -60,14 +64,14 @@
|
|||||||
<DownloadLoading class="percentage" />
|
<DownloadLoading class="percentage" />
|
||||||
|
|
||||||
<div class="percentage-label flex-center">
|
<div class="percentage-label flex-center">
|
||||||
正在下载中 <span class="dotting"></span>
|
{{ $t('views.template.download.downloading') }} <span class="dotting"></span>
|
||||||
<el-button
|
<el-button
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
class="ml-16"
|
class="ml-16"
|
||||||
:disabled="!is_permisstion"
|
:disabled="!is_permisstion"
|
||||||
@click.stop="cancelDownload"
|
@click.stop="cancelDownload"
|
||||||
>取消下载</el-button
|
>{{ $t('views.template.download.cancelDownload') }}</el-button
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -104,7 +108,7 @@
|
|||||||
icon="Setting"
|
icon="Setting"
|
||||||
@click.stop="openParamSetting"
|
@click.stop="openParamSetting"
|
||||||
>
|
>
|
||||||
模型参数设置
|
{{ $t('views.template.templateForm.title.paramSetting') }}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
icon="Delete"
|
icon="Delete"
|
||||||
@ -133,7 +137,7 @@ import { MsgConfirm } from '@/utils/message'
|
|||||||
import { modelType } from '@/enums/model'
|
import { modelType } from '@/enums/model'
|
||||||
import useStore from '@/stores'
|
import useStore from '@/stores'
|
||||||
import ParamSettingDialog from './ParamSettingDialog.vue'
|
import ParamSettingDialog from './ParamSettingDialog.vue'
|
||||||
|
import { t } from '@/locales'
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
model: Model
|
model: Model
|
||||||
provider_list: Array<Provider>
|
provider_list: Array<Provider>
|
||||||
@ -157,7 +161,7 @@ const currentModel = computed(() => {
|
|||||||
const errMessage = computed(() => {
|
const errMessage = computed(() => {
|
||||||
if (currentModel.value.meta && currentModel.value.meta.message) {
|
if (currentModel.value.meta && currentModel.value.meta.message) {
|
||||||
if (currentModel.value.meta.message === 'pull model manifest: file does not exist') {
|
if (currentModel.value.meta.message === 'pull model manifest: file does not exist') {
|
||||||
return `${currentModel.value.model_name} 模型在Ollama不存在`
|
return `${currentModel.value.model_name} ${t('views.template.tip.noModel')}`
|
||||||
}
|
}
|
||||||
return currentModel.value.meta.message
|
return currentModel.value.meta.message
|
||||||
}
|
}
|
||||||
@ -167,10 +171,14 @@ const emit = defineEmits(['change', 'update:model'])
|
|||||||
const editModelRef = ref<InstanceType<typeof EditModel>>()
|
const editModelRef = ref<InstanceType<typeof EditModel>>()
|
||||||
let interval: any
|
let interval: any
|
||||||
const deleteModel = () => {
|
const deleteModel = () => {
|
||||||
MsgConfirm(`删除模型 `, `是否删除模型:${props.model.name} ?`, {
|
MsgConfirm(
|
||||||
|
t('views.template.delete.confirmTitle'),
|
||||||
|
`${t('views.template.delete.confirmMessage')}${props.model.name} ?`,
|
||||||
|
{
|
||||||
confirmButtonText: t('common.delete'),
|
confirmButtonText: t('common.delete'),
|
||||||
confirmButtonClass: 'danger'
|
confirmButtonClass: 'danger'
|
||||||
})
|
}
|
||||||
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
ModelApi.deleteModel(props.model.id).then(() => {
|
ModelApi.deleteModel(props.model.id).then(() => {
|
||||||
emit('change')
|
emit('change')
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="模型参数设置"
|
:title="$t('views.template.templateForm.title.paramSetting')"
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
width="800px"
|
width="800px"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
@ -8,9 +8,11 @@
|
|||||||
:destroy-on-close="true"
|
:destroy-on-close="true"
|
||||||
:before-close="close"
|
:before-close="close"
|
||||||
>
|
>
|
||||||
<el-button type="primary" @click="openAddDrawer()" class="mb-12"> 添加参数 </el-button>
|
<el-button type="primary" @click="openAddDrawer()" class="mb-12">
|
||||||
|
{{ $t('views.template.templateForm.title.addParam') }}
|
||||||
|
</el-button>
|
||||||
<el-table :data="modelParamsForm" class="mb-16">
|
<el-table :data="modelParamsForm" class="mb-16">
|
||||||
<el-table-column prop="label" label="显示名称" show-overflow-tooltip>
|
<el-table-column prop="label" :label="$t('components.dynamicsForm.paramForm.name.label')" show-overflow-tooltip>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span v-if="row.label && row.label.input_type === 'TooltipLabel'">{{
|
<span v-if="row.label && row.label.input_type === 'TooltipLabel'">{{
|
||||||
row.label.label
|
row.label.label
|
||||||
@ -18,16 +20,20 @@
|
|||||||
<span v-else>{{ row.label }}</span>
|
<span v-else>{{ row.label }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="field" label="参数" show-overflow-tooltip />
|
<el-table-column prop="field" :label="$t('components.dynamicsForm.paramForm.field.label')" show-overflow-tooltip />
|
||||||
<el-table-column label="组件类型" width="110px">
|
<el-table-column :label="$t('components.dynamicsForm.paramForm.input_type.label')" width="110px">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-tag type="info" class="info-tag">{{
|
<el-tag type="info" class="info-tag">{{
|
||||||
input_type_list.find((item) => item.value === row.input_type)?.label
|
input_type_list.find((item) => item.value === row.input_type)?.label
|
||||||
}}</el-tag>
|
}}</el-tag>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="default_value" label="默认值" show-overflow-tooltip />
|
<el-table-column
|
||||||
<el-table-column label="必填">
|
prop="default_value"
|
||||||
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
|
show-overflow-tooltip
|
||||||
|
/>
|
||||||
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch disabled size="small" v-model="row.required" />
|
<el-switch disabled size="small" v-model="row.required" />
|
||||||
@ -56,8 +62,10 @@
|
|||||||
</el-table>
|
</el-table>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="close">{{$t('common.cancel')}}</el-button>
|
<el-button @click="close">{{ $t('common.cancel') }}</el-button>
|
||||||
<el-button type="primary" @click="submit" :loading="loading"> {{$t('common.save')}} </el-button>
|
<el-button type="primary" @click="submit" :loading="loading">
|
||||||
|
{{ $t('common.save') }}
|
||||||
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -119,11 +127,11 @@ function refresh(data: any, index: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (field === data.field && index !== i) {
|
if (field === data.field && index !== i) {
|
||||||
MsgError('变量已存在: ' + data.field)
|
MsgError(t('views.template.tip.errorMessage') + data.field)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (label === label2 && index !== i) {
|
if (label === label2 && index !== i) {
|
||||||
MsgError('变量已存在: ' + label)
|
MsgError(t('views.template.tip.errorMessage') + label)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,7 +144,7 @@ function refresh(data: any, index: any) {
|
|||||||
|
|
||||||
function submit() {
|
function submit() {
|
||||||
ModelApi.updateModelParamsForm(props.model.id, modelParamsForm.value, loading).then((ok) => {
|
ModelApi.updateModelParamsForm(props.model.id, modelParamsForm.value, loading).then((ok) => {
|
||||||
MsgSuccess('模型参数保存成功')
|
MsgSuccess(t('views.template.tip.saveSuccessMessage'))
|
||||||
close()
|
close()
|
||||||
// emit('submit')
|
// emit('submit')
|
||||||
})
|
})
|
||||||
|
|||||||
@ -49,7 +49,7 @@
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import ModelApi from '@/api/model'
|
import ModelApi from '@/api/model'
|
||||||
import type { Provider } from '@/api/type/model'
|
import type { Provider } from '@/api/type/model'
|
||||||
import { modelTypeList } from './data.ts'
|
import { modelTypeList } from './data'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
|
|
||||||
const loading = ref<boolean>(false)
|
const loading = ref<boolean>(false)
|
||||||
|
|||||||
@ -90,9 +90,18 @@
|
|||||||
@change="search_type_change"
|
@change="search_type_change"
|
||||||
>
|
>
|
||||||
<el-option :label="$t('common.creator')" value="create_user" />
|
<el-option :label="$t('common.creator')" value="create_user" />
|
||||||
<el-option label="权限" value="permission_type" />
|
<el-option
|
||||||
<el-option label="模型类型" value="model_type" />
|
:label="$t('views.template.templateForm.form.permissionType.label')"
|
||||||
<el-option label="模型名称" value="name" />
|
value="permission_type"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.template.templateForm.form.model_type.label')"
|
||||||
|
value="model_type"
|
||||||
|
/>
|
||||||
|
<el-option
|
||||||
|
:label="$t('views.template.templateForm.form.templateName.label')"
|
||||||
|
value="name"
|
||||||
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-input
|
<el-input
|
||||||
v-if="search_type === 'name'"
|
v-if="search_type === 'name'"
|
||||||
@ -124,8 +133,8 @@
|
|||||||
@change="list_model"
|
@change="list_model"
|
||||||
style="width: 220px"
|
style="width: 220px"
|
||||||
>
|
>
|
||||||
<el-option label="公有" value="PUBLIC" />
|
<el-option :label="$t('views.template.templateForm.form.permissionType.public')" value="PUBLIC" />
|
||||||
<el-option label="私有" value="PRIVATE" />
|
<el-option :label="$t('views.template.templateForm.form.permissionType.private')" value="PRIVATE" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<el-select
|
<el-select
|
||||||
v-else-if="search_type === 'model_type'"
|
v-else-if="search_type === 'model_type'"
|
||||||
@ -166,7 +175,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-empty description="暂无数据" v-else />
|
<el-empty :description="$t('common.noData')" v-else />
|
||||||
</div>
|
</div>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</div>
|
</div>
|
||||||
@ -192,7 +201,7 @@ import type { Provider, Model } from '@/api/type/model'
|
|||||||
import AppIcon from '@/components/icons/AppIcon.vue'
|
import AppIcon from '@/components/icons/AppIcon.vue'
|
||||||
import ModelCard from '@/views/template/component/ModelCard.vue'
|
import ModelCard from '@/views/template/component/ModelCard.vue'
|
||||||
import { splitArray } from '@/utils/common'
|
import { splitArray } from '@/utils/common'
|
||||||
import { modelTypeList } from '@/views/template/component/data.ts'
|
import { modelTypeList } from '@/views/template/component/data'
|
||||||
import CreateModelDialog from '@/views/template/component/CreateModelDialog.vue'
|
import CreateModelDialog from '@/views/template/component/CreateModelDialog.vue'
|
||||||
import SelectProviderDialog from '@/views/template/component/SelectProviderDialog.vue'
|
import SelectProviderDialog from '@/views/template/component/SelectProviderDialog.vue'
|
||||||
import { t } from '@/locales'
|
import { t } from '@/locales'
|
||||||
|
|||||||
@ -1,6 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="isEdit ? '编辑参数' : '添加参数'"
|
:title="
|
||||||
|
isEdit
|
||||||
|
? $t('views.template.templateForm.title.editParam')
|
||||||
|
: $t('views.template.templateForm.title.addParam')
|
||||||
|
"
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:close-on-press-escape="false"
|
:close-on-press-escape="false"
|
||||||
@ -29,17 +33,17 @@
|
|||||||
<el-switch size="small" v-model="form.is_required"></el-switch>
|
<el-switch size="small" v-model="form.is_required"></el-switch>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item
|
<el-form-item
|
||||||
label="默认值"
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
prop="default_value"
|
prop="default_value"
|
||||||
:rules="{
|
:rules="{
|
||||||
required: form.is_required,
|
required: form.is_required,
|
||||||
message: '请输入默认值',
|
message: $t('components.dynamicsForm.paramForm.default.requiredMessage'),
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.default_value"
|
v-model="form.default_value"
|
||||||
placeholder="请输入默认值"
|
:placeholder="$t('components.dynamicsForm.paramForm.default.placeholder')"
|
||||||
@blur="form.name = form.name.trim()"
|
@blur="form.name = form.name.trim()"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|||||||
@ -14,8 +14,8 @@
|
|||||||
class="mb-16"
|
class="mb-16"
|
||||||
>
|
>
|
||||||
<el-table-column prop="variable" label="参数" />
|
<el-table-column prop="variable" label="参数" />
|
||||||
<el-table-column prop="default_value" label="默认值" />
|
<el-table-column prop="default_value" :label="$t('components.dynamicsForm.default.label')" />
|
||||||
<el-table-column label="必填">
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch disabled size="small" v-model="row.is_required" />
|
<el-switch disabled size="small" v-model="row.is_required" />
|
||||||
|
|||||||
@ -1,6 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="isEdit ? '编辑参数' : '添加参数'"
|
:title="
|
||||||
|
isEdit
|
||||||
|
? $t('views.template.templateForm.title.editParam')
|
||||||
|
: $t('views.template.templateForm.title.addParam')
|
||||||
|
"
|
||||||
v-model="dialogVisible"
|
v-model="dialogVisible"
|
||||||
:close-on-click-modal="false"
|
:close-on-click-modal="false"
|
||||||
:close-on-press-escape="false"
|
:close-on-press-escape="false"
|
||||||
@ -72,7 +76,9 @@ const currentRow = computed(() => {
|
|||||||
label: row.label || row.name,
|
label: row.label || row.name,
|
||||||
default_value: row.default_value,
|
default_value: row.default_value,
|
||||||
required: row.required != undefined ? row.required : row.is_required,
|
required: row.required != undefined ? row.required : row.is_required,
|
||||||
option_list: row.option_list ? row.option_list: row.optionList.map((o: any) => {
|
option_list: row.option_list
|
||||||
|
? row.option_list
|
||||||
|
: row.optionList.map((o: any) => {
|
||||||
return { key: o, value: o }
|
return { key: o, value: o }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,12 +47,15 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="default_value" label="默认值">
|
<el-table-column
|
||||||
|
prop="default_value"
|
||||||
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span :title="row.default_value" class="ellipsis-1">{{ getDefaultValue(row) }}</span>
|
<span :title="row.default_value" class="ellipsis-1">{{ getDefaultValue(row) }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="必填">
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch disabled size="small" v-model="row.required" />
|
<el-switch disabled size="small" v-model="row.required" />
|
||||||
|
|||||||
@ -86,14 +86,17 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="default_value" label="默认值">
|
<el-table-column
|
||||||
|
prop="default_value"
|
||||||
|
:label="$t('components.dynamicsForm.default.label')"
|
||||||
|
>
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<span :title="row.default_value" class="ellipsis-1">{{
|
<span :title="row.default_value" class="ellipsis-1">{{
|
||||||
getDefaultValue(row)
|
getDefaultValue(row)
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="必填">
|
<el-table-column :label="$t('common.required')">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<div @click.stop>
|
<div @click.stop>
|
||||||
<el-switch disabled size="small" v-model="row.required" />
|
<el-switch disabled size="small" v-model="row.required" />
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user