src/api/model/sche/model/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/model/sche/scheme/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/dict.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/mcs/sche/model/ScheduleModelForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/mcs/sche/model/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/mcs/sche/scheme/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/model/sche/model/index.ts
@@ -37,12 +37,12 @@ // 查询ScheduleModel详情 export const getScheduleModel = (id: number) => { return request.get({ url: `/model/sche/model/info/${id}`}) return request.get({ url: '/model/sche/model/get?id=' + id}) } // 新增ScheduleModel export const createScheduleModel = (data: ScheduleModelVO) => { return request.post({ url: '/model/sche/model/add', data }) return request.post({ url: '/model/sche/model/create', data }) } // 修改ScheduleModel @@ -55,9 +55,24 @@ return request.delete({ url: '/model/sche/model/delete?id=' + id }) } // 查询ScheduleModel列表 export const getScheduleModelList = () => { return request.get({ url: '/model/sche/model/list'}) } // 查询模型参数列表 export const getModelParamList = () => { let modelparamListMap = [] // let modelparamListMap = [ // { // modelparamportorder: '', // modelparamorder: '', // modelparamtype: '', // modelparamid: '', // datalength: 0 // } // ] return modelparamListMap //let modelparamListMap = {} return {} } src/api/model/sche/scheme/index.ts
@@ -1,6 +1,6 @@ import request from '@/config/axios' export interface ScheduleScheme { export interface ScheduleSchemeVO { id: string code: string name: string @@ -27,12 +27,12 @@ // 查询ScheduleScheme详情 export const getScheduleScheme = (id: number) => { return request.get({ url: `/model/sche/scheme/info/${id}`}) return request.get({ url: '/model/sche/scheme/get?id=' + id}) } // 新增ScheduleScheme export const createScheduleScheme = (data: ScheduleSchemeVO) => { return request.post({ url: '/model/sche/scheme/add', data }) return request.post({ url: '/model/sche/scheme/create', data }) } // 修改ScheduleScheme src/utils/dict.ts
@@ -226,5 +226,10 @@ AI_WRITE_LENGTH = 'ai_write_length', // AI 写作长度 AI_WRITE_FORMAT = 'ai_write_format', // AI 写作格式 AI_WRITE_TONE = 'ai_write_tone', // AI 写作语气 AI_WRITE_LANGUAGE = 'ai_write_language' // AI 写作语言 AI_WRITE_LANGUAGE = 'ai_write_language', // AI 写作语言 // ========== MODEL - 模型管理模块 ========== SCHE_MODEL_TYPE = 'sche_model_type', SCHE_MODEL_INVOCATION = 'sche_model_invocation', SCHE_TRIGGER_METHOD = 'sche_trigger_method' } src/views/model/mcs/sche/model/ScheduleModelForm.vue
@@ -1,5 +1,5 @@ <template> <Dialog v-model="dialogVisible" :title="dialogTitle" width="50%"> <Dialog v-model="dialogVisible" :title="dialogTitle" width="60%"> <el-form ref="formRef" v-loading="formLoading" @@ -22,12 +22,26 @@ <el-row> <el-col :span="12"> <el-form-item label="模型类型" prop="modelType"> <el-input v-model="formData.modelType" placeholder="请输入模型类型" /> <el-select v-model="formData.modelType" placeholder="请选择"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.SCHE_MODEL_TYPE)" :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="invocation"> <el-input v-model="formData.invocation" placeholder="调用方式" /> <el-select v-model="formData.invocation" placeholder="请选择"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.SCHE_MODEL_INVOCATION)" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-col> </el-row> @@ -46,7 +60,7 @@ </el-col> <el-col :span="12"> <el-form-item label="参数数量" prop="portLength"> <el-input v-model="formData.portLength" placeholder="请输入参数数量 " /> <el-input-number v-model="formData.sort" :min="0" controls-position="right" /> </el-form-item> </el-col> </el-row> @@ -60,7 +74,7 @@ <el-row> <el-col :span="24"> <el-form-item label="模型路径" prop="modelPath"> <el-input v-model="formData.modelPath" placeholder="模型路径 " /> <el-input v-model="formData.modelPath" placeholder="模型路径" /> </el-form-item> </el-col> </el-row> @@ -74,9 +88,9 @@ label="端口" width="100" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.modelparamportorder" maxlength="5" clearable style="width:100%;hight:100%"></el-input> style="width:100%; hight:100%"/> </template> </el-table-column> <el-table-column @@ -84,9 +98,9 @@ label="序号" width="100" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.modelparamorder" maxlength="5" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column @@ -94,7 +108,7 @@ label="类型" width="150" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-select v-model="scope.row.modelparamtype" placeholder="请选择"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.MODEL_PARAM_TYPE)" @@ -105,34 +119,33 @@ </el-select> </template> </el-table-column> <el-table-column <!--<el-table-column prop="" label="参数名称" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-select size="mini" v-model="scope.row.modelparamid" filterable placeholder="请选择"> <el-option v-for="(item, index) in modelparamListMap[scope.row.modelparamtype]" v-for="(item, index) in modelparamListMap.[scope.row.modelparamtype]" :key="index" :label="item.name" :value="item.id" :disabled="!(item.type === scope.row.modelparamtype)"> </el-option> :disabled="!(item.type === scope.row.modelparamtype)"/> </el-select> </template> </el-table-column> </el-table-column>--> <el-table-column prop="" label="参数长度" width="120" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.datalength" maxlength="50" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column @@ -140,16 +153,18 @@ label="操作" width="100" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-button @click.native.prevent="addRow(scope.$index, formData.paramList)" type="text" link @click.prevent="addRow(scope.$index, formData.paramList)" type="primary" size="small"> 添加 </el-button> <el-button @click.native.prevent="deleteRow(scope.$index, formData.paramList)" type="text" link @click.prevent="deleteRow(scope.$index, formData.paramList)" type="primary" size="small"> 删除 </el-button> @@ -159,43 +174,43 @@ <el-divider content-position="left">设置参数</el-divider> <el-table :data="formData.paramList" :data="formData.settingList" border style="width: 100%; margin-top: 5px;"> <el-table-column prop="" label="键" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.key" maxlength="256" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column prop="" label="名称" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.name" maxlength="256" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column prop="" label="类型" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.valuetype" maxlength="256" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column prop="" label="值" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-input size="mini" v-model="scope.row.value" maxlength="256" clearable style="width:100%;hight:100%"></el-input> style="width:100%;hight:100%"/> </template> </el-table-column> <el-table-column @@ -203,16 +218,18 @@ label="操作" width="100" align="center"> <template slot-scope="scope"> <template #default="scope"> <el-button @click.native.prevent="addRow(scope.$index, formData.settingList)" type="text" @click.prevent="addRow(scope.$index, formData.settingList)" link type="primary" size="small"> 添加 </el-button> <el-button @click.native.prevent="deleteRow(scope.$index, formData.settingList)" type="text" @click.prevent="deleteRow(scope.$index, formData.settingList)" link type="primary" size="small"> 删除 </el-button> @@ -230,7 +247,6 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import * as ScheduleModelApi from '@/api/model/sche/model' import { CommonStatusEnum } from '@/utils/constants' import * as DataSourceConfigApi from "@/api/infra/dataSourceConfig"; defineOptions({ name: 'ScheduleModelForm' }) @@ -273,7 +289,7 @@ modelType: [{ required: true, message: '模型类型不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref const modelparamListMap = ref([] as ScheduleModelApi.ModelParamVO[]) const modelparamListMap = ref({}) const addRow = function (index, rows) { let row = JSON.parse(JSON.stringify(rows[index])) @@ -319,7 +335,7 @@ } // 加载数据源列表 modelparamListMap.value = await ScheduleModelApi.getModelParamList() //modelparamListMap.value = await ScheduleModelApi.getModelParamList() } } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 @@ -364,7 +380,7 @@ modelPath: undefined, resultStrId: undefined, invocation: undefined, status: undefined, status: CommonStatusEnum.ENABLE, paramList: [{ modelparamportorder: '1', modelparamorder: '1', src/views/model/mcs/sche/model/index.vue
@@ -51,17 +51,19 @@ <!-- 列表 --> <ContentWrap> <el-table v-loading="loading" :data="list"> <el-table-column label="模型编号" align="center" prop="modelCode" /> <el-table-column label="模型名称" align="center" prop="modelName" /> <el-table-column label="模型类型" align="center" prop="modelType" /> <el-table-column label="类名" align="center" prop="className" /> <el-table-column label="方法名" align="center" prop="methodName" /> <el-table-column label="输入参数数量" align="center" prop="portLength" /> <el-table-column label="参数构造" align="center" prop="paramStructure" /> <el-table-column label=" 模型路径" align="center" prop="modelPath" /> <el-table-column label="调用方式" align="center" prop="invocation" /> <el-table-column label="状态" align="center" prop="status" /> <el-table-column label="操作" align="center" min-width="110" fixed="right"> <el-table-column label="模型编号" align="center" prop="modelCode" min-width="100"/> <el-table-column label="模型名称" align="center" prop="modelName" min-width="100"/> <el-table-column label="模型类型" align="center" prop="modelType" min-width="100"/> <el-table-column label="类名" align="center" prop="className" min-width="200"/> <el-table-column label="方法名" align="center" prop="methodName" min-width="100"/> <el-table-column label="参数数量" align="center" prop="portLength" min-width="100"/> <el-table-column label="参数构造" align="center" prop="paramStructure" min-width="200" /> <el-table-column label="调用方式" align="center" prop="invocation" min-width="100"> <template #default="scope"> <dict-tag :type="DICT_TYPE.SCHE_MODEL_INVOCATION" :value="scope.row.invocation" /> </template> </el-table-column> <el-table-column label="操作" align="center" min-width="100" fixed="right"> <template #default="scope"> <el-button link src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue
@@ -9,216 +9,75 @@ > <el-row> <el-col :span="12"> <el-form-item label="模型编号" prop="modelCode"> <el-input v-model="formData.modelCode" placeholder="请输入模型编号" /> <el-form-item label="方案编号" prop="code"> <el-input v-model="formData.code" placeholder="请输入方案编号" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="模型名称" prop="modelName"> <el-input v-model="formData.modelName" placeholder="请输入模型名称" /> <el-form-item label="方案名称" prop="name"> <el-input v-model="formData.name" placeholder="请输入方案名称" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="模型类型" prop="modelType"> <el-input v-model="formData.modelType" placeholder="请输入模型类型" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="调用方式" prop="invocation"> <el-input v-model="formData.invocation" placeholder="调用方式" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="类名" prop="className"> <el-input v-model="formData.className" placeholder="请输入类名 " /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="方法名" prop="methodName"> <el-input v-model="formData.methodName" placeholder="请输入方法名 " /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="参数数量" prop="portLength"> <el-input v-model="formData.portLength" placeholder="请输入参数数量 " /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="参数构造" prop="paramStructure"> <el-input v-model="formData.paramStructure" placeholder="请输入参数构造 " /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="模型路径" prop="modelPath"> <el-input v-model="formData.modelPath" placeholder="模型路径 " /> </el-form-item> </el-col> </el-row> <el-divider content-position="left">输入参数</el-divider> <el-table :data="formData.paramList" border style="width: 100%; margin-top: 5px;"> <el-table-column prop="" label="端口" width="100" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.modelparamportorder" maxlength="5" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="序号" width="100" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.modelparamorder" maxlength="5" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="类型" width="150" align="center"> <template slot-scope="scope"> <el-select v-model="scope.row.modelparamtype" placeholder="请选择"> <el-form-item label="触发方式" prop="triggerMethod"> <el-select v-model="formData.triggerMethod" placeholder="请选择"> <el-option v-for="dict in getIntDictOptions(DICT_TYPE.MODEL_PARAM_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.SCHE_TRIGGER_METHOD)" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </template> </el-table-column> <el-table-column prop="" label="参数名称" align="center"> <template slot-scope="scope"> <el-select size="mini" v-model="scope.row.modelparamid" filterable placeholder="请选择"> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="触发条件" prop="triggerCondition"> <el-input v-model="formData.triggerCondition" placeholder="请输入触发条件" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="调整对象" prop="scheduleObj"> <el-input v-model="formData.scheduleObj" placeholder="请输入调整对象" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="调整类型" prop="scheduleType"> <el-input v-model="formData.scheduleType" placeholder="请输入调整类型" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="调整策略" prop="scheduleStrategy"> <el-input v-model="formData.scheduleStrategy" placeholder="请输入调整策略 " /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="调度模型" prop="modelId"> <el-select v-model="formData.modelId" clearable placeholder="请选择调度模型"> <el-option v-for="(item, index) in modelparamListMap[scope.row.modelparamtype]" :key="index" :label="item.name" v-for="item in scheduleModelList" :key="item.id" :label="item.modelName" :value="item.id" :disabled="!(item.type === scope.row.modelparamtype)"> </el-option> /> </el-select> </template> </el-table-column> <el-table-column prop="" label="参数长度" width="120" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.datalength" maxlength="50" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="操作" width="100" align="center"> <template slot-scope="scope"> <el-button @click.native.prevent="addRow(scope.$index, formData.paramList)" type="text" size="small"> 添加 </el-button> <el-button @click.native.prevent="deleteRow(scope.$index, formData.paramList)" type="text" size="small"> 删除 </el-button> </template> </el-table-column> </el-table> <el-divider content-position="left">设置参数</el-divider> <el-table :data="formData.paramList" border style="width: 100%; margin-top: 5px;"> <el-table-column prop="" label="键" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.key" maxlength="256" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="名称" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.name" maxlength="256" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="类型" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.valuetype" maxlength="256" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="值" align="center"> <template slot-scope="scope"> <el-input size="mini" v-model="scope.row.value" maxlength="256" clearable style="width:100%;hight:100%"></el-input> </template> </el-table-column> <el-table-column prop="" label="操作" width="100" align="center"> <template slot-scope="scope"> <el-button @click.native.prevent="addRow(scope.$index, formData.settingList)" type="text" size="small"> 添加 </el-button> <el-button @click.native.prevent="deleteRow(scope.$index, formData.settingList)" type="text" size="small"> 删除 </el-button> </template> </el-table-column> </el-table> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="备注" prop="remark"> <el-input v-model="formData.remark" placeholder="请输入备注" type="textarea" maxlength="100" show-word-limit/> </el-form-item> </el-col> </el-row> </el-form> <template #footer> <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button> @@ -228,11 +87,11 @@ </template> <script lang="ts" setup> import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import * as ScheduleModelApi from '@/api/model/sche/model' import * as ScheduleSchemeApi from '@/api/model/sche/scheme' import { CommonStatusEnum } from '@/utils/constants' import * as DataSourceConfigApi from "@/api/infra/dataSourceConfig"; import * as ScheduleModelApi from "@/api/model/sche/model"; defineOptions({ name: 'ScheduleModelForm' }) defineOptions({ name: 'ScheduleSchemeForm' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 @@ -259,7 +118,7 @@ name: [{ required: true, message: '名称不能为空', trigger: 'blur' }] }) const formRef = ref() // 表单 Ref const modelparamListMap = ref([] as ScheduleModelApi.ModelParamVO[]) const scheduleModelList = ref([] as ScheduleModelApi.ScheduleModelVO[]) const addRow = function (index, rows) { let row = JSON.parse(JSON.stringify(rows[index])) @@ -299,14 +158,13 @@ if (id) { formLoading.value = true try { formData.value = await ScheduleModelApi.getScheduleModel(id) formData.value = await ScheduleSchemeApi.getScheduleScheme(id) } finally { formLoading.value = false } // 加载数据源列表 modelparamListMap.value = await ScheduleModelApi.getModelParamList() } // 加载调度模型列表 scheduleModelList.value = await ScheduleModelApi.getScheduleModelList() } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 @@ -320,12 +178,12 @@ // 提交请求 formLoading.value = true try { const data = formData.value as unknown as ScheduleModelApi.ScheduleModelVO const data = formData.value as unknown as ScheduleSchemeApi.ScheduleSchemeVO if (formType.value === 'create') { await ScheduleModelApi.createScheduleModel(data) await ScheduleSchemeApi.createScheduleScheme(data) message.success(t('common.createSuccess')) } else { await ScheduleModelApi.updateScheduleModel(data) await ScheduleSchemeApi.updateScheduleScheme(data) message.success(t('common.updateSuccess')) } dialogVisible.value = false @@ -350,7 +208,7 @@ modelId: undefined, scheduleTime: undefined, remark: undefined, status: 0 status: CommonStatusEnum.ENABLE } formRef.value?.resetFields() } src/views/model/mcs/sche/scheme/index.vue
@@ -51,17 +51,24 @@ <!-- 列表 --> <ContentWrap> <el-table v-loading="loading" :data="list"> <el-table-column label="方案编号" align="center" prop="code" /> <el-table-column label="方案名称" align="center" prop="name" /> <el-table-column label="触发方式" align="center" prop="triggerMethod" /> <el-table-column label="触发条件" align="center" prop="triggerCondition" /> <el-table-column label="方法名" align="center" prop="methodName" /> <el-table-column label="调整对象" align="center" prop="scheduleObj" /> <el-table-column label="调整类型" align="center" prop="scheduleType" /> <el-table-column label=" 调整策略" align="center" prop="scheduleStrategy" /> <el-table-column label="调度时间" align="center" prop="scheduleTime" /> <el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="状态" align="center" prop="status" /> <el-table-column label="方案编号" align="center" prop="code" min-width="100"/> <el-table-column label="方案名称" align="center" prop="name" min-width="100"/> <el-table-column label="触发方式" align="center" prop="triggerMethod" min-width="100"> <template #default="scope"> <dict-tag :type="DICT_TYPE.SCHE_TRIGGER_METHOD" :value="scope.row.triggerMethod" /> </template> </el-table-column> <el-table-column label="触发条件" align="center" prop="triggerCondition" min-width="100"/> <el-table-column label="调整对象" align="center" prop="scheduleObj" min-width="100"/> <el-table-column label="调整类型" align="center" prop="scheduleType" min-width="100"/> <el-table-column label=" 调整策略" align="center" prop="scheduleStrategy" min-width="100"/> <el-table-column label="调度时间" align="center" prop="scheduleTime" min-width="160" /> <el-table-column label="备注" align="center" prop="remark" min-width="100" /> <el-table-column label="状态" align="center" prop="status" min-width="100"> <template #default="scope"> <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" /> </template> </el-table-column> <el-table-column label="操作" align="center" min-width="110" fixed="right"> <template #default="scope"> <el-button