From bb876681574cd5e508433e9e73d57e075340443f Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期五, 06 六月 2025 18:49:48 +0800 Subject: [PATCH] 建议快照 上下限 bug --- src/views/model/sche/snapshotConf/det/configDetForm.vue | 237 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 158 insertions(+), 79 deletions(-) diff --git a/src/views/model/sche/snapshotConf/det/configDetForm.vue b/src/views/model/sche/snapshotConf/det/configDetForm.vue index ee9ab76..3f9cd5a 100644 --- a/src/views/model/sche/snapshotConf/det/configDetForm.vue +++ b/src/views/model/sche/snapshotConf/det/configDetForm.vue @@ -7,67 +7,111 @@ :rules="formRules" label-width="80px" > - <el-row :gutter="20"> + <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="dataNo"> - <el-input v-model="formData.dataNo" placeholder=""/> + <el-select-v2 v-if="formData.dataType === 'PREDICT_ITEM_N' || formData.dataType === 'PREDICT_ITEM_L' || formData.dataType === 'PREDICT_ITEM_C'" + v-model="formData.dataNo" + :options="modelparamListMap['allPredictItemList'] || []" + 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="dataName"> + <el-input v-model="formData.dataName" placeholder=""/> + </el-form-item> + </el-col> <el-col :span="12"> <el-form-item label="左侧长度" prop="leftLength"> <el-input v-model="formData.leftLength" placeholder=""/> </el-form-item> </el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="右侧长度" prop="rightLength"> <el-input v-model="formData.rightLength" placeholder=""/> </el-form-item> </el-col> - </el-row> - <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="排序" prop="sort"> <el-input v-model="formData.sort" placeholder=""/> </el-form-item> </el-col> + </el-row> + <el-row :gutter="20"> + <el-col :span="12"> + <el-form-item label="上限" prop="limitH"> + <el-input-number v-model="formData.limitH" placeholder=""/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="下限" prop="limitL"> + <el-input-number v-model="formData.limitL" placeholder=""/> + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="拓展字段1" prop="ext1"> <el-input v-model="formData.ext1" placeholder=""/> </el-form-item> </el-col> - </el-row> - <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="拓展字段2" prop="ext2"> <el-input v-model="formData.ext2" placeholder=""/> </el-form-item> </el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="拓展字段3" prop="ext3"> <el-input v-model="formData.ext3" placeholder=""/> </el-form-item> </el-col> - </el-row> - <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="拓展字段4" prop="ext4"> <el-input v-model="formData.ext4" placeholder=""/> </el-form-item> </el-col> + </el-row> + <el-row :gutter="20"> <el-col :span="12"> <el-form-item label="拓展字段5" prop="ext5"> <el-input v-model="formData.ext5" placeholder=""/> </el-form-item> </el-col> </el-row> - </el-form> <template #footer> <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button> @@ -77,36 +121,47 @@ </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, + limitH: undefined, + limitL: 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'}], + limitH: [{required: true, message: '不能为空', trigger: 'blur'}], + limitL: [{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, - 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' }], - dataNo: [{ required: true, message: '不能为空', trigger: 'blur' }], -}) -const formRef = ref() // 表单 Ref + const modelparamListMap = ref({}) /** 打开弹窗 */ const open = async (type: string, id?: string, confId?: string) => { @@ -114,7 +169,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 @@ -125,50 +182,72 @@ } } } -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, + limitH: undefined, + limitL: 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_C') { + for (let item of modelparamListMap.value['allPredictItemList']) { + 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