feat(parameter): Add parameter configuration

This commit is contained in:
dataeaseShu
2025-12-05 10:03:34 +08:00
committed by fit2cloud-chenyw
parent d92c377e59
commit 9e39a58da1
5 changed files with 246 additions and 3 deletions
+16 -1
View File
@@ -7,6 +7,21 @@
"AI Model Configuration": "AI Model Configuration",
"Details": "Details"
},
"parameter": {
"parameter_configuration": "Parameter Configuration",
"question_count_settings": "Question Count Settings",
"model_thinking_process": "Expand Model Thinking Process",
"rows_of_data": "Limit 1000 Rows of Data",
"third_party_platform_settings": "Third-Party Platform Settings",
"by_third_party_platform": "Automatic User Creation by Third-Party Platform",
"platform_user_organization": "Third-Party Platform User Organization",
"platform_user_roles": "Third-Party Platform User Roles",
"excessive_data_volume": "Disabling the 1000-row data limit may cause system lag due to excessive data volume.",
"prompt": "Prompt",
"disabling_successfully": "Disabling Successfully",
"closed_by_default": "In the Question Count window, control whether the model thinking process is expanded or closed by default.",
"and_platform_integration": "Scope includes authentication settings and platform integration."
},
"prompt": {
"default_password": "Default password:{msg}",
"no_sql_sample": "No SQL sample currently available",
@@ -800,4 +815,4 @@
"modelType": {
"llm": "Large Language Model"
}
}
}
+16 -1
View File
@@ -7,6 +7,21 @@
"AI Model Configuration": "모델 구성",
"Details": "세부"
},
"parameter": {
"parameter_configuration": "매개변수 구성",
"question_count_settings": "질문 수 설정",
"model_thinking_process": "모델 사고 프로세스 확장",
"rows_of_data": "데이터 1,000행 제한",
"third_party_platform_settings": "타사 플랫폼 설정",
"by_third_party_platform": "타사 플랫폼에 의한 자동 사용자 생성",
"platform_user_organization": "타사 플랫폼 사용자 구성",
"platform_user_roles": "타사 플랫폼 사용자 역할",
"excessive_data_volume": "1,000행 데이터 제한을 비활성화하면 과도한 데이터 양으로 인해 시스템 지연이 발생할 수 있습니다.",
"prompt": "프롬프트",
"disabling_successfully": "비활성화 완료",
"closed_by_default": "질문 수 창에서 모델 사고 프로세스를 기본적으로 확장할지 또는 닫을지 여부를 제어합니다.",
"and_platform_integration": "범위에는 인증 설정 및 플랫폼 통합이 포함됩니다."
},
"prompt": {
"default_password:": "기본 비밀번호:{msg}",
"no_sql_sample": "현재 사용 가능한 SQL 샘플 라이브러리가 없습니다",
@@ -800,4 +815,4 @@
"modelType": {
"llm": "대형 언어 모델"
}
}
}
+16 -1
View File
@@ -7,6 +7,21 @@
"AI Model Configuration": "模型配置",
"Details": "详情"
},
"parameter": {
"parameter_configuration": "参数配置",
"question_count_settings": "问数设置",
"model_thinking_process": "展开模型思考过程",
"rows_of_data": "限制 1000 行数据",
"third_party_platform_settings": "第三方平台设置",
"by_third_party_platform": "第三方自动创建用户",
"platform_user_organization": "第三方平台用户组织",
"platform_user_roles": "第三方平台用户角色",
"excessive_data_volume": "关闭1000行的数据限制后,数据量过大,可能会造成系统卡顿",
"prompt": "提示",
"disabling_successfully": "关闭成功",
"closed_by_default": "在问数窗口中,控制模型思考过程默认展开或者关闭",
"and_platform_integration": "作用域包括认证设置和平台对接"
},
"prompt": {
"default_password": "默认密码:{msg}",
"no_sql_sample": "暂无 SQL 示例",
@@ -801,4 +816,4 @@
"modelType": {
"llm": "大语言模型"
}
}
}
+7
View File
@@ -19,6 +19,7 @@ import Professional from '@/views/system/professional/index.vue'
import Training from '@/views/system/training/index.vue'
import Prompt from '@/views/system/prompt/index.vue'
import Appearance from '@/views/system/appearance/index.vue'
import Parameter from '@/views/system/parameter/index.vue'
import Authentication from '@/views/system/authentication/index.vue'
import Permission from '@/views/system/permission/index.vue'
import User from '@/views/system/user/User.vue'
@@ -196,6 +197,12 @@ export const routes = [
component: Appearance,
meta: { title: t('system.appearance_settings') },
},
{
path: 'parameter',
name: 'parameter',
component: Parameter,
meta: { title: t('parameter.parameter_configuration') },
},
{
path: 'authentication',
name: 'authentication',
@@ -0,0 +1,191 @@
<script lang="ts" setup>
import { ref, shallowRef } from 'vue'
import icon_info_outlined_1 from '@/assets/svg/icon_info_outlined_1.svg'
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
const chatSetting = ref({
modelThinkingProcess: false,
rows_of_data: false,
})
const platform = ref({
organization: false,
modelThinkingProcess: false,
roles: [],
})
const organizations = shallowRef<any[]>([])
const roles = shallowRef<any[]>([])
</script>
<template>
<div class="parameter">
<div class="title">
{{ t('parameter.parameter_configuration') }}
</div>
<div class="card-container">
<div class="card">
<div class="card-title">
{{ t('parameter.question_count_settings') }}
</div>
<div class="card-item">
<div class="label">
{{ t('parameter.model_thinking_process') }}
<el-tooltip effect="dark" :content="t('parameter.closed_by_default')" placement="top">
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-switch v-model="chatSetting.modelThinkingProcess" />
</div>
</div>
<div class="card-item" style="margin-left: 16px">
<div class="label">
{{ t('parameter.rows_of_data') }}
<el-tooltip
effect="dark"
:content="t('parameter.excessive_data_volume')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-switch v-model="chatSetting.rows_of_data" />
</div>
</div>
</div>
<div class="card">
<div class="card-title">
{{ t('parameter.third_party_platform_settings') }}
</div>
<div class="card-item" style="width: 100%">
<div class="label">
{{ t('parameter.by_third_party_platform') }}
</div>
<div class="value">
<el-switch v-model="platform.modelThinkingProcess" />
</div>
</div>
<div class="card-item">
<div class="label">
{{ t('parameter.platform_user_organization') }}
<span class="require"></span>
<el-tooltip
effect="dark"
:content="t('parameter.and_platform_integration')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-select filterable v-model="platform.organization">
<el-option
v-for="item in organizations"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
<div class="card-item" style="margin-left: 16px">
<div class="label">
{{ t('parameter.platform_user_roles') }}
<span class="require"></span>
<el-tooltip
effect="dark"
:content="t('parameter.and_platform_integration')"
placement="top"
>
<el-icon size="16">
<icon_info_outlined_1></icon_info_outlined_1>
</el-icon>
</el-tooltip>
</div>
<div class="value">
<el-select multiple filterable v-model="platform.roles">
<el-option
v-for="item in roles"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</div>
</div>
</div>
</div>
<div class="save" style="margin-top: 16px">
<el-button type="primary">{{ t('common.save') }}</el-button>
</div>
</div>
</template>
<style lang="less" scoped>
.parameter {
.title {
font-weight: 500;
font-style: Medium;
font-size: 20px;
line-height: 28px;
margin-bottom: 16px;
}
.card-container {
.card {
width: 100%;
border-radius: 12px;
padding: 16px;
border: 1px solid #dee0e3;
display: flex;
flex-wrap: wrap;
margin-top: 16px;
.card-title {
font-weight: 500;
font-style: Medium;
font-size: 16px;
line-height: 24px;
width: 100%;
}
.card-item {
margin-top: 16px;
width: calc(50% - 8px);
.label {
font-weight: 400;
font-size: 14px;
line-height: 22px;
display: flex;
align-items: center;
.ed-icon {
margin-left: 4px;
}
.require::after {
content: '*';
color: var(--ed-color-danger);
margin-left: 4px;
}
}
.value {
margin-top: 8px;
line-height: 20px;
}
}
}
}
}
</style>