From d0fdc8e4351c737f41a8108c913f8b2e546c666d Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期四, 05 六月 2025 13:58:52 +0800 Subject: [PATCH] 建议快照 真实数据分割线 --- src/views/model/sche/snapshotConf/det/configDetForm.vue | 205 ++++++++++++++++++++++++++++++++------------------- 1 files changed, 129 insertions(+), 76 deletions(-) diff --git a/src/views/model/sche/snapshotConf/det/configDetForm.vue b/src/views/model/sche/snapshotConf/det/configDetForm.vue index 470a342..08670fc 100644 --- a/src/views/model/sche/snapshotConf/det/configDetForm.vue +++ b/src/views/model/sche/snapshotConf/det/configDetForm.vue @@ -10,19 +10,45 @@ <el-row :gutter="24"> <el-col :span="12"> <el-form-item label="数据类型" prop="dataType"> - <el-input v-model="formData.dataType" placeholder=""/> + <el-select v-model="formData.dataType" placeholder="请选择" @change="changeDataType()"> + <el-option + v-for="dict in getStrDictOptions(DICT_TYPE.SUGGEST_SNAPSHOT_DATA_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="dataName"> - <el-input v-model="formData.dataName" placeholder=""/> + <el-form-item label="数据编号" prop="dataNo"> + <el-select-v2 v-if="formData.dataType === 'PREDICT_ITEM_N' || formData.dataType === 'PREDICT_ITEM_L' || formData.dataType === 'PREDICT_ITEM_CUR'" + v-model="formData.dataNo" + :options="modelparamListMap['NormalItem'] || []" + placeholder="请选择" + :props="{value:'value',label:'label',options:'children'}" + clearable + filterable + :fit-input-width="false" + @change="changeDataNo" + /> + <el-select-v2 v-else + v-model="formData.dataNo" + :options="modelparamListMap[formData.dataType] || []" + placeholder="请选择" + :props="{value:'itemNo',label:'name'}" + clearable + filterable + :fit-input-width="false" + @change="changeDataNo" + /> </el-form-item> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="12"> - <el-form-item label="数据编号" prop="dataNo"> - <el-input v-model="formData.dataNo" placeholder=""/> + <el-form-item label="数据名称" prop="dataName"> + <el-input v-model="formData.dataName" placeholder=""/> </el-form-item> </el-col> <el-col :span="12"> @@ -83,38 +109,43 @@ </template> <script lang="ts" setup> import * as ConfigDetApi from '@/api/model/sche/suggest/snapshotConfigDet' -import {deleteIcon} from "@/api/model/mpk/icon"; + import {deleteIcon} from "@/api/model/mpk/icon"; + import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from '@/utils/dict' + import * as ScheduleModelApi from "@/api/model/sche/model"; -defineOptions({ name: 'ConfigDetForm' }) + defineOptions({name: 'ConfigDetForm'}) + const {t} = useI18n() // 国际化 + const message = useMessage() // 消息弹窗 -const { t } = useI18n() // 国际化 -const message = useMessage() // 消息弹窗 + const dialogVisible = ref(false) // 弹窗的是否展示 + const dialogTitle = ref('') // 弹窗的标题 + const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 + const formType = ref('') // 表单的类型:create - 新增;update - 修改 + const formData = ref({ + id: undefined, + confId: undefined, + dataType: undefined, + dataName: undefined, + dataNo: undefined, + leftLength: undefined, + rightLength: undefined, + sort: undefined, + ext1: undefined, + ext2: undefined, + ext3: undefined, + ext4: undefined, + ext5: undefined, + }) + const formRules = reactive({ + dataType: [{required: true, message: '不能为空', trigger: 'blur'}], + dataName: [{required: true, message: '不能为空', trigger: 'blur'}], + dataNo: [{required: true, message: '不能为空', trigger: 'blur'}], + leftLength: [{required: true, message: '不能为空', trigger: 'blur'}], + rightLength: [{required: true, message: '不能为空', trigger: 'blur'}], + }) + const formRef = ref() // 表单 Ref -const dialogVisible = ref(false) // 弹窗的是否展示 -const dialogTitle = ref('') // 弹窗的标题 -const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 -const formType = ref('') // 表单的类型:create - 新增;update - 修改 -const formData = ref({ - id: undefined, - confId: undefined, - dataType: undefined, - dataName: undefined, - dataNo: undefined, - leftLength: undefined, - rightLength: undefined, - sort: undefined, - ext1: undefined, - ext2: undefined, - ext3: undefined, - ext4: undefined, - ext5: undefined, -}) -const formRules = reactive({ - dataType: [{ required: true, message: '不能为空', trigger: 'blur' }], - dataName: [{ required: true, message: '不能为空', trigger: 'blur' }], - dataNo: [{ required: true, message: '不能为空', trigger: 'blur' }], -}) -const formRef = ref() // 表单 Ref + const modelparamListMap = ref({}) /** 打开弹窗 */ const open = async (type: string, id?: string, confId?: string) => { @@ -122,7 +153,9 @@ dialogTitle.value = t('action.' + type) formType.value = type resetForm() - formData.confId = confId + formData.value.confId = confId + // 加载参数列表 + modelparamListMap.value = await ScheduleModelApi.getModelParamList(id) // 修改时,设置数据 if (id) { formLoading.value = true @@ -133,50 +166,70 @@ } } } -defineExpose({ open }) // 提供 open 方法,用于打开弹窗 + defineExpose({open}) // 提供 open 方法,用于打开弹窗 -/** 提交表单 */ -const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 -const submitForm = async () => { - // 校验表单 - if (!formRef) return - const valid = await formRef.value.validate() - if (!valid) return - // 提交请求 - formLoading.value = true - try { - const data = formData.value - if (formType.value === 'create') { - await ConfigDetApi.create(data) - message.success(t('common.createSuccess')) - } else { - await ConfigDetApi.update(data) - message.success(t('common.updateSuccess')) + /** 提交表单 */ + const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 + const submitForm = async () => { + // 校验表单 + if (!formRef) return + const valid = await formRef.value.validate() + if (!valid) return + // 提交请求 + formLoading.value = true + try { + const data = formData.value + if (formType.value === 'create') { + await ConfigDetApi.create(data) + message.success(t('common.createSuccess')) + } else { + await ConfigDetApi.update(data) + message.success(t('common.updateSuccess')) + } + dialogVisible.value = false + // 发送操作成功的事件 + emit('success') + } finally { + formLoading.value = false } - dialogVisible.value = false - // 发送操作成功的事件 - emit('success') - } finally { - formLoading.value = false } -} -/** 重置表单 */ -const resetForm = () => { - formData.value = { - id: undefined, - confId: undefined, - dataType: undefined, - dataNo: undefined, - leftLength: undefined, - rightLength: undefined, - sort: undefined, - ext1: undefined, - ext2: undefined, - ext3: undefined, - ext4: undefined, - ext5: undefined, + /** 重置表单 */ + const resetForm = () => { + formData.value = { + id: undefined, + confId: undefined, + dataType: undefined, + dataNo: undefined, + leftLength: undefined, + rightLength: undefined, + sort: undefined, + ext1: undefined, + ext2: undefined, + ext3: undefined, + ext4: undefined, + ext5: undefined, + } + formRef.value?.resetFields() } - formRef.value?.resetFields() -} + + function changeDataType() { + formData.value.dataNo = undefined + formData.value.dataName = undefined + } + const changeDataNo = (value) => { + let dataName = undefined; + if (formData.value.dataType === 'PREDICT_ITEM_N' || formData.value.dataType === 'PREDICT_ITEM_L' || formData.value.dataType === 'PREDICT_ITEM_CUR') { + for (let item of modelparamListMap.value['NormalItem']) { + dataName = item.children?.find(e => e.value === value)?.label; + if (dataName != undefined) { + break + } + } + }else { + dataName = modelparamListMap.value?.[formData.value.dataType]?.find(e => e.itemNo === value)?.name; + } + console.log(dataName) + formData.value.dataName = dataName + } </script> -- Gitblit v1.9.3