From f8312b1487c801236905c39395a95514df75e004 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期三, 04 六月 2025 11:12:30 +0800
Subject: [PATCH] 问题模版配置

---
 src/views/ai/model/template/templateForm.vue |   79 +++++++++++++++++++++++++++++++++------
 1 files changed, 66 insertions(+), 13 deletions(-)

diff --git a/src/views/ai/model/template/templateForm.vue b/src/views/ai/model/template/templateForm.vue
index 5262d4c..4c6ace4 100644
--- a/src/views/ai/model/template/templateForm.vue
+++ b/src/views/ai/model/template/templateForm.vue
@@ -11,12 +11,12 @@
       <el-row>
         <el-col :span="12">
           <el-form-item label="问题编号" prop="questionCode">
-            <el-input v-model="formData.questionCode" placeholder="请输入问题编号" />
+            <el-input v-model="formData.questionCode" placeholder="请输入问题编号"/>
           </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="问题名称" prop="questionName">
-            <el-input v-model="formData.questionName" placeholder="请输入问题名称" />
+            <el-input v-model="formData.questionName" placeholder="请输入问题名称"/>
           </el-form-item>
         </el-col>
       </el-row>
@@ -26,9 +26,47 @@
             <el-input v-model="formData.dataLength" placeholder="请输入输入个数"/>
           </el-form-item>
         </el-col>
+        <el-col :span="12">
+          <el-form-item label="模型名称" prop="modelId">
+            <el-select v-model="formData.modelId"
+                       clearable
+                       filterable
+                       :fit-input-width="false" placeholder="请选择模型">
+              <el-option
+                v-for="item in aiModelList"
+                :key="item.id"
+                :label="item.modelName"
+                :value="item.id"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
+          <el-form-item label="是否启用" prop="isEnable">
+            <el-select
+              v-model="formData.isEnable"
+              clearable
+              placeholder="请选择是否启用"
+            >
+              <el-option
+                v-for="dict in getIntDictOptions(DICT_TYPE.COM_IS_INT)"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="formData.remark" placeholder="请输入备注"/>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="20">
           <el-form-item label="问题内容" prop="questionContent">
             <el-input
               type="textarea"
@@ -105,14 +143,15 @@
 </template>
 
 <script lang="ts" setup>
-  import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
+  import {DICT_TYPE, getIntDictOptions} from '@/utils/dict'
   import * as AiQuestionTemplateApi from '@/api/ai/questiontemplate'
-  import { CommonStatusEnum } from '@/utils/constants'
-  import { ElMessage } from 'element-plus'
+  import {CommonStatusEnum} from '@/utils/constants'
+  import {ElMessage} from 'element-plus'
+  import * as AiModelApi from "@/api/ai/model/model";
+  const aiModelList = ref([] as AiModelApi.ModelVO[])
+  defineOptions({name: 'AiTemplateForm'})
 
-  defineOptions({ name: 'AiTemplateForm' })
-
-  const { t } = useI18n()
+  const {t} = useI18n()
   const message = useMessage()
   const dialogVisible = ref(false)
   const dialogTitle = ref('')
@@ -120,10 +159,12 @@
   const formType = ref('')
   const formData = ref({
     id: undefined,
+    modelId: undefined,
     questionCode: undefined,
     questionName: undefined,
     dataLength: undefined,
     questionContent: undefined,
+    isEnable: 1,
     settingList: [{
       settingKey: '',
       settingName: '',
@@ -131,10 +172,11 @@
     }]
   })
   const formRules = reactive({
-    questionCode: [{ required: true, message: '问题编号不能为空', trigger: 'blur' }],
-    questionName: [{ required: true, message: '问题名称不能为空', trigger: 'blur' }],
-    dataLength: [{ required: true, message: '输入个数不能为空', trigger: 'blur' }],
-    questionContent: [{ required: true, message: '问题内容不能为空', trigger: 'blur' }]
+    modelId: [{required: true, message: '模型名称不能为空', trigger: 'blur'}],
+    questionCode: [{required: true, message: '问题编号不能为空', trigger: 'blur'}],
+    questionName: [{required: true, message: '问题名称不能为空', trigger: 'blur'}],
+    dataLength: [{required: true, message: '输入个数不能为空', trigger: 'blur'}],
+    questionContent: [{required: true, message: '问题内容不能为空', trigger: 'blur'}]
   })
   const formRef = ref()
 
@@ -159,6 +201,8 @@
     dialogTitle.value = t('action.' + type)
     formType.value = type
     resetForm()
+    // 加载调度模型列表
+    aiModelList.value = await AiModelApi.ModelApi.getModelSimpleList(1)
     if (id) {
       formLoading.value = true
       try {
@@ -168,7 +212,7 @@
       }
     }
   }
-  defineExpose({ open })
+  defineExpose({open})
 
   const emit = defineEmits(['success'])
   const submitForm = async () => {
@@ -179,6 +223,13 @@
     formLoading.value = true
     try {
       const data = formData.value
+      if (data.settingList == [{
+        settingKey: '',
+        settingName: '',
+        settingValue: '',
+      }]) {
+        data.settingList = null
+      }
       if (formType.value === 'create') {
         await AiQuestionTemplateApi.QuestionTemplateApi.createQuestionTemplate(data)
         message.success(t('common.createSuccess'))
@@ -196,10 +247,12 @@
   const resetForm = () => {
     formData.value = {
       id: undefined,
+      modelId: undefined,
       questionCode: undefined,
       questionName: undefined,
       dataLength: undefined,
       questionContent: undefined,
+      isEnable: 1,
       settingList: [{
         settingKey: '',
         settingName: '',

--
Gitblit v1.9.3