This commit is contained in:
2026-03-07 16:48:59 +08:00
parent 5a5af706e5
commit c2e2a64416
36 changed files with 609 additions and 1369 deletions

View File

@@ -7,11 +7,11 @@
label-width="140px"
v-loading="formLoading"
>
<el-form-item label="模型名称" prop="modelName">
<el-input v-model="formData.modelName" placeholder="请输入模型名称" />
<el-form-item label="服务名称" prop="serviceName">
<el-input v-model="formData.serviceName" placeholder="请输入服务名称" />
</el-form-item>
<el-form-item label="模型标识" prop="modelCode">
<el-input v-model="formData.modelCode" placeholder="请输入模型标识/编码" />
<el-form-item label="服务标识" prop="serviceCode">
<el-input v-model="formData.serviceCode" placeholder="请输入服务标识" />
</el-form-item>
<el-form-item label="所属平台" prop="platform">
<el-input v-model="formData.platform" placeholder="请输入所属平台" />
@@ -21,17 +21,16 @@
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status">
<el-radio value="1">启用</el-radio>
<el-radio value="0">禁用</el-radio>
<el-radio :value="1">启用</el-radio>
<el-radio :value="0">禁用</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="模型类型" prop="modelType">
<el-form-item label="服务类型" prop="modelType">
<el-radio-group v-model="formData.modelType">
<el-radio value="image">图像</el-radio>
<el-radio value="text">文本</el-radio>
<el-radio value="video">视频</el-radio>
<el-radio value="audio">音频</el-radio>
<el-radio value="third">第三方</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="消耗积分" prop="consumePoints">
@@ -48,10 +47,10 @@
</Dialog>
</template>
<script setup lang="ts">
import { AiModelConfigApi, AiModelConfig } from '@/api/muye/aimodelconfig'
import { AiServiceConfigApi, AiServiceConfig } from '@/api/muye/aiserviceconfig'
/** AI模型配置 表单 */
defineOptions({ name: 'AiModelConfigForm' })
/** AI第三方服务配置 表单 */
defineOptions({ name: 'AiServiceConfigForm' })
const { t } = useI18n() //
const message = useMessage() //
@@ -62,23 +61,22 @@ const formLoading = ref(false) // 表单的加载中1修改时的数据加
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
modelName: undefined,
modelCode: undefined,
serviceName: undefined,
serviceCode: undefined,
platform: undefined,
apiKey: undefined,
status: undefined,
status: 1,
modelType: undefined,
consumePoints: undefined,
remark: undefined,
})
const formRules = reactive({
modelName: [{ required: true, message: '模型名称不能为空', trigger: 'blur' }],
modelCode: [{ required: true, message: '模型标识/编码不能为空', trigger: 'blur' }],
serviceName: [{ required: true, message: '服务名称不能为空', trigger: 'blur' }],
serviceCode: [{ required: true, message: '服务标识不能为空', trigger: 'blur' }],
platform: [{ required: true, message: '所属平台不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态不能为空', trigger: 'blur' }],
modelType: [{ required: true, message: '模型类型不能为空', trigger: 'change' }],
modelType: [{ required: true, message: '服务类型不能为空', trigger: 'change' }],
consumePoints: [{ required: true, message: '消耗积分不能为空', trigger: 'blur' }],
remark: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
@@ -92,7 +90,7 @@ const open = async (type: string, id?: number) => {
if (id) {
formLoading.value = true
try {
formData.value = await AiModelConfigApi.getAiModelConfig(id)
formData.value = await AiServiceConfigApi.getAiServiceConfig(id)
} finally {
formLoading.value = false
}
@@ -108,12 +106,12 @@ const submitForm = async () => {
//
formLoading.value = true
try {
const data = formData.value as unknown as AiModelConfig
const data = formData.value as unknown as AiServiceConfig
if (formType.value === 'create') {
await AiModelConfigApi.createAiModelConfig(data)
await AiServiceConfigApi.createAiServiceConfig(data)
message.success(t('common.createSuccess'))
} else {
await AiModelConfigApi.updateAiModelConfig(data)
await AiServiceConfigApi.updateAiServiceConfig(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
@@ -128,15 +126,15 @@ const submitForm = async () => {
const resetForm = () => {
formData.value = {
id: undefined,
modelName: undefined,
modelCode: undefined,
serviceName: undefined,
serviceCode: undefined,
platform: undefined,
apiKey: undefined,
status: undefined,
status: 1,
modelType: undefined,
consumePoints: undefined,
remark: undefined,
}
formRef.value?.resetFields()
}
</script>
</script>

View File

@@ -8,19 +8,19 @@
:inline="true"
label-width="68px"
>
<el-form-item label="模型名称" prop="modelName">
<el-form-item label="服务名称" prop="serviceName">
<el-input
v-model="queryParams.modelName"
placeholder="请输入模型名称"
v-model="queryParams.serviceName"
placeholder="请输入服务名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="模型标识" prop="modelCode">
<el-form-item label="服务标识" prop="serviceCode">
<el-input
v-model="queryParams.modelCode"
placeholder="请输入模型标识"
v-model="queryParams.serviceCode"
placeholder="请输入服务标识"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
@@ -50,10 +50,10 @@
<el-option label="启用" value="1" />
</el-select>
</el-form-item>
<el-form-item label="模型类型" prop="modelType">
<el-form-item label="服务类型" prop="modelType">
<el-select
v-model="queryParams.modelType"
placeholder="请选择模型类型"
placeholder="请选择服务类型"
clearable
class="!w-240px"
>
@@ -70,7 +70,7 @@
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['muye:ai-model-config:create']"
v-hasPermi="['muye:ai-service-config:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
@@ -79,7 +79,7 @@
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['muye:ai-model-config:export']"
v-hasPermi="['muye:ai-service-config:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
@@ -88,7 +88,7 @@
plain
:disabled="isEmpty(checkedIds)"
@click="handleDeleteBatch"
v-hasPermi="['muye:ai-model-config:delete']"
v-hasPermi="['muye:ai-service-config:delete']"
>
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
</el-button>
@@ -107,8 +107,8 @@
@selection-change="handleRowCheckboxChange"
>
<el-table-column type="selection" width="55" />
<el-table-column label="模型名称" align="center" width="150" prop="modelName" />
<el-table-column label="模型标识" align="center" prop="modelCode" />
<el-table-column label="服务名称" align="center" width="150" prop="serviceName" />
<el-table-column label="服务标识" align="center" prop="serviceCode" />
<el-table-column label="所属平台" align="center" prop="platform" />
<el-table-column label="API秘钥" align="center" prop="apiKey" />
<el-table-column label="状态" align="center" prop="status" >
@@ -118,7 +118,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="模型类型" align="center" prop="modelType" />
<el-table-column label="服务类型" align="center" prop="modelType" />
<el-table-column label="消耗积分" align="center" prop="consumePoints" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" min-width="120px">
@@ -127,7 +127,7 @@
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['muye:ai-model-config:update']"
v-hasPermi="['muye:ai-service-config:update']"
>
编辑
</el-button>
@@ -135,7 +135,7 @@
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['muye:ai-model-config:delete']"
v-hasPermi="['muye:ai-service-config:delete']"
>
删除
</el-button>
@@ -152,29 +152,29 @@
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<AiModelConfigForm ref="formRef" @success="getList" />
<AiServiceConfigForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
import { isEmpty } from '@/utils/is'
import download from '@/utils/download'
import { AiModelConfigApi, AiModelConfig } from '@/api/muye/aimodelconfig'
import AiModelConfigForm from './AiModelConfigForm.vue'
import { AiServiceConfigApi, AiServiceConfig } from '@/api/muye/aiserviceconfig'
import AiServiceConfigForm from './AiServiceConfigForm.vue'
/** AI模型配置 列表 */
defineOptions({ name: 'AiModelConfig' })
/** AI第三方服务配置 列表 */
defineOptions({ name: 'AiServiceConfig' })
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const list = ref<AiModelConfig[]>([]) //
const list = ref<AiServiceConfig[]>([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
modelName: undefined,
modelCode: undefined,
serviceName: undefined,
serviceCode: undefined,
platform: undefined,
apiKey: undefined,
status: undefined,
@@ -187,7 +187,7 @@ const exportLoading = ref(false) // 导出的加载中
const getList = async () => {
loading.value = true
try {
const data = await AiModelConfigApi.getAiModelConfigPage(queryParams)
const data = await AiServiceConfigApi.getAiServiceConfigPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
@@ -219,19 +219,19 @@ const handleDelete = async (id: number) => {
//
await message.delConfirm()
//
await AiModelConfigApi.deleteAiModelConfig(id)
await AiServiceConfigApi.deleteAiServiceConfig(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 批量删除AI模型配置 */
/** 批量删除AI服务配置 */
const handleDeleteBatch = async () => {
try {
//
await message.delConfirm()
await AiModelConfigApi.deleteAiModelConfigList(checkedIds.value);
await AiServiceConfigApi.deleteAiServiceConfigList(checkedIds.value);
checkedIds.value = [];
message.success(t('common.delSuccess'))
await getList();
@@ -239,7 +239,7 @@ const handleDeleteBatch = async () => {
}
const checkedIds = ref<number[]>([])
const handleRowCheckboxChange = (records: AiModelConfig[]) => {
const handleRowCheckboxChange = (records: AiServiceConfig[]) => {
checkedIds.value = records.map((item) => item.id!);
}
@@ -250,8 +250,8 @@ const handleExport = async () => {
await message.exportConfirm()
//
exportLoading.value = true
const data = await AiModelConfigApi.exportAiModelConfig(queryParams)
download.excel(data, 'AI模型配置.xls')
const data = await AiServiceConfigApi.exportAiServiceConfig(queryParams)
download.excel(data, 'AI服务配置.xls')
} catch {
} finally {
exportLoading.value = false
@@ -262,4 +262,4 @@ const handleExport = async () => {
onMounted(() => {
getList()
})
</script>
</script>

View File

@@ -92,9 +92,9 @@
:formatter="dateFormatter"
width="180px"
/>
<el-table-column label="账户总积分" align="center" prop="totalPoints" />
<el-table-column label="账户消耗积分" align="center" prop="usedPoints" />
<el-table-column label="账户剩余积分" align="center" prop="remainingPoints" />
<el-table-column label="总积分" align="center" prop="totalPoints" />
<el-table-column label="消耗积分" align="center" prop="usedPoints" />
<el-table-column label="剩余积分" align="center" prop="remainingPoints" />
<el-table-column label="云空间总容量" align="center" prop="totalStorage" />
<el-table-column label="云空间已用容量" align="center" prop="usedStorage" />
<el-table-column label="云空间剩余容量" align="center" prop="remainingStorage" />