| | |
| | | v-loading="formLoading" |
| | | :model="dataForm" |
| | | :rules="formRules" |
| | | label-width="120px" |
| | | label-width="100px" |
| | | > |
| | | <el-divider content-position="left">基本信息</el-divider> |
| | | <el-row> |
| | |
| | | <el-form-item label="粒度" prop="mmPredictItem.granularity"> |
| | | <el-select v-model="dataForm.mmPredictItem.granularity" placeholder="请选择"> |
| | | <el-option |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.TIME_GRANULARITY)" |
| | | v-for="dict in getIntDictOptions(DICT_TYPE.PRED_GRANULARITY)" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | |
| | | :on-success="uploadModelSuccess" |
| | | :on-error="uploadModelError" |
| | | :action="uploadUrl" |
| | | :show-file-list="false" |
| | | :http-request="httpRequest"> |
| | | <el-button type="primary" @click="setReplaceModelOnly(false)"> |
| | | <Icon icon="ep:upload"/> |
| | |
| | | </el-upload> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="8" v-if="dataForm.itemtypename === 'NormalItem'"> |
| | | <el-col :span="12"> |
| | | <el-row v-if="dataForm.itemtypename === 'NormalItem'"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="结果"> |
| | | <el-select v-model="dataForm.mmPredictModel.resultstrid" placeholder="请选择"> |
| | | <el-option |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col :span="8"> |
| | | <el-form-item label="关联项目"> |
| | | <el-select v-model="dataForm.mmPredictModel.mpkprojectid" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in mpkProjectList" |
| | | :key="item.id" |
| | | :label="item.projectName" |
| | | :value="item.id"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="编号"> |
| | | <el-input |
| | | v-model="dataForm.mmPredictModel.modelno" placeholder="编号" maxlength="30" readonly |
| | |
| | | :data="dataForm.mmModelArithSettingsList" |
| | | border |
| | | style="width: 100%; margin-top: 5px;"> |
| | | <el-table-column prop="key" label="键" align="center"/> |
| | | <el-table-column prop="name" label="名称" align="center"/> |
| | | <el-table-column prop="valuetype" label="类型" align="center"/> |
| | | <el-table-column prop="key" label="键" align="center" min-width="150"/> |
| | | <el-table-column prop="name" label="名称" align="center" min-width="150"/> |
| | | <el-table-column prop="valuetype" label="类型" align="center" min-width="150"/> |
| | | <el-table-column prop="" label="值" align="center" min-width="150"> |
| | | <template #default="scope"> |
| | | <el-input size="mini" v-model="scope.row.value" maxlength="256" |
| | |
| | | style="width:100%;hight:100%"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="操作" width="140" align="center"> |
| | | <el-table-column prop="" label="操作" width="120" align="center"> |
| | | <template #default="scope"> |
| | | <el-button |
| | | @click="addRow(scope.$index, dataForm.mmModelParamList)" |
| | | type="text" |
| | | size="small"> |
| | | size="mini"> |
| | | 添加 |
| | | </el-button> |
| | | <el-button |
| | | @click="deleteRow(scope.$index, dataForm.mmModelParamList)" |
| | | type="text" |
| | | size="small"> |
| | | size="mini"> |
| | | 删除 |
| | | </el-button> |
| | | </template> |
| | |
| | | <el-option |
| | | v-for="(item, index) in predictItemList" |
| | | :key="index" |
| | | :label="item.name" |
| | | :value="item.code"/> |
| | | :label="item.itemname" |
| | | :value="item.itemno"/> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | label="运算符" |
| | | align="center"> |
| | | <template #default="scope"> |
| | | <el-select v-model="scope.row.operator" placeholder="请选择"> |
| | | <el-select v-model="scope.row.operator" placeholder="请选择" clearable> |
| | | <el-option |
| | | v-for="item in operatorList" |
| | | :key="item" |
| | |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from '@/utils/dict' |
| | | import * as MmPredictItem from '@/api/model/pre/predict' |
| | | import * as MmItemType from '@/api/model/pre/item' |
| | | import * as MmPredictItem from '@/api/model/pre/item' |
| | | import * as MmItemType from '@/api/model/pre/type' |
| | | import * as DmModule from '@/api/model/pre/dm' |
| | | import * as MmResultTable from '@/api/model/pre/result' |
| | | import * as ProjectApi from '@/api/model/mpk/project' |
| | | import * as DaPoint from '@/api/data/da/point' |
| | | import {useUpload} from '@/api/model/pre/predict' |
| | | import {useUpload} from '@/api/model/pre/item' |
| | | import * as ScheduleModelApi from '@/api/model/sche/model' |
| | | |
| | | const {uploadUrl, httpRequest} = useUpload() |
| | |
| | | const itemTypeMap = ref({}) |
| | | const moduleList = ref([]) |
| | | const resultstridList = ref([]) |
| | | const mpkProjectList = ref([]) |
| | | const pointNoList = ref([]) |
| | | const pointList = ref([]) |
| | | const pointMap = ref({}) |
| | |
| | | methodname: undefined, |
| | | modelparamstructure: undefined, |
| | | resultstrid: undefined, |
| | | settingmap: undefined |
| | | settingmap: undefined, |
| | | mpkprojectid: undefined |
| | | }, |
| | | mmPredictMergeItem: { |
| | | id: undefined, |
| | |
| | | resetForm() |
| | | resetFields(dataForm.value) |
| | | setDefaultFields() |
| | | // 修改时,设置数据 |
| | | if (id) { |
| | | formLoading.value = true |
| | | try { |
| | | getInfo(id) |
| | | } finally { |
| | | /*formLoading.value = false*/ |
| | | } |
| | | } |
| | | |
| | | // 加载参数列表 |
| | | modelparamListMap.value = await ScheduleModelApi.getModelParamList() |
| | |
| | | if (!dataForm.value.id) { |
| | | dataForm.value.mmPredictItem.itemtypeid = itemTypeList.value[0].id |
| | | } |
| | | dataForm.value.itemtypename = itemTypeMap[dataForm.value.mmPredictItem.itemtypeid] |
| | | |
| | | // 获取管网列表 |
| | | moduleList.value = await DmModule.getModuleList() |
| | | |
| | | // 获取结果字符串列表 |
| | | resultstridList.value = await MmResultTable.getResultstridList() |
| | | |
| | | // 获取mpk项目列表 |
| | | mpkProjectList.value = await ProjectApi.list() |
| | | |
| | | // 获取normal列表 |
| | | predictItemList.value = await MmPredictItem.getMmPredictItemList({ |
| | | itemtypename: 'NormalItem' |
| | | }) |
| | | |
| | | // 获取数据点列表 |
| | | pointNoList.value = await DaPoint.getPointList(queryParams) |
| | |
| | | }) |
| | | } |
| | | |
| | | // 修改时,设置数据 |
| | | if (id) { |
| | | formLoading.value = true |
| | | try { |
| | | getInfo(id) |
| | | } finally { |
| | | /*formLoading.value = false*/ |
| | | } |
| | | } |
| | | formLoading.value = false |
| | | } |
| | | defineExpose({open}) // 提供 open 方法,用于打开弹窗 |
| | |
| | | |
| | | const getInfo = async (id) => { |
| | | dataForm.value = await MmPredictItem.getMmPredictItem(id) |
| | | dataForm.value.itemtypename = itemTypeMap[dataForm.value.mmPredictItem.itemtypeid] |
| | | expressionList.value = [] |
| | | if (dataForm.value.mmPredictMergeItem && dataForm.value.mmPredictMergeItem.expression) { |
| | | let expression = dataForm.value.mmPredictMergeItem.expression |