src/api/data/plan/item/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/model/mcs/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/model/pre/dm/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/model/pre/result/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/api/model/sche/model/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/data/point/DaPointChart.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/pre/analysis/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/pre/item/MmPredictItemChart.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/pre/item/MmPredictItemForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/pre/result/MmResultTableForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/model/pre/result/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/data/plan/item/index.ts
@@ -50,7 +50,7 @@ //获取下拉集合 export const getItemList = (params: PageParam) => { return request.get({ url: '/data/plan-item/getList', params}) return request.get({ url: '/data/plan-item/list', params}) } // 查询Plan图表 src/api/model/mcs/index.ts
对比新文件 @@ -0,0 +1,26 @@ import request from '@/config/axios' export interface PreDataBarLineReqVO { outIds: string[], predictTime: string, startTime: string, endTime: string } export interface PreDataItemChartReqVO { itemId: string, startTime: string, endTime: string } export const getPredictItemTree = () => { return request.get({ url: '/model/api/mcs/predict-item/tree'}) } export const getPreDataCharts = (data: PreDataBarLineReqVO) => { return request.post({ url: '/model/api/mcs/predict-data/charts', data }) } export const getPreDataItemChart = (data: PreDataItemChartReqVO) => { return request.post({ url: '/model/api/mcs/predict-data/item-chart', data }) } src/api/model/pre/dm/index.ts
@@ -1,7 +1,7 @@ import request from '@/config/axios' export interface DmModuleVO { id: string id: string, modulename: string, moduletype: string, cycle: string src/api/model/pre/result/index.ts
文件已删除 src/api/model/sche/model/index.ts
@@ -1,7 +1,9 @@ import request from '@/config/axios' import * as DataPointApi from '@/api/data/da/point' import * as PredictItemApi from '@/api/model/pre/item' import * as PlanItemApi from '@/api/data/plan/item' import {CommonEnabled} from "@/utils/constants"; import {getItemList, ItemVO} from "@/api/data/plan/item"; export interface ScheduleModelVO { id: string @@ -100,8 +102,25 @@ ) }) } const planItemList = ref([] as PlanItemApi.ItemVO) planItemList.value = await PlanItemApi.getItemList({ }) const planList = [] if (planItemList.value) { planItemList.value.forEach(item => { planList.push( { id: item.id, name: item.itemName } ) }) } return { 'DATAPOINT':pointList, 'PREDICTITEM': itemList 'PREDICTITEM': itemList, 'PLAN': planList, } } src/views/data/point/DaPointChart.vue
@@ -41,7 +41,8 @@ :loading="exportLoading" v-hasPermi="['data:point:export']" > <Icon icon="ep:download" />导出 <Icon icon="ep:download"/> 导出 </el-button> </el-form-item> </el-form> @@ -55,12 +56,14 @@ import * as DaPoint from '@/api/data/da/point/daPointChart' import {getYMDHM0} from "@/utils/dateUtil" import download from "@/utils/download"; const message = useMessage() // 消息弹窗 const visible = ref(false); const chartDom = ref(null); let myChart = null; const chartParams = reactive({ codes:[], pointNo: undefined, startDate : undefined, endDate: undefined, }) @@ -162,18 +165,20 @@ } } } /** 导出按钮操作 */ const exportLoading = ref(false) const handleExport = async () => { chartParams.codes=[dataForm.value.pointNo]; chartParams.startDate = dataForm.value.startTime; chartParams.endDate = dataForm.value.endTime; try { // 导出的二次确认 await message.exportConfirm() // 发起导出 exportLoading.value = true const data = await DaPoint.exportDaPointValue(chartParams) const data = await DaPoint.exportDaPointValue({ pointNo: dataForm.value.pointNo, start: dataForm.value.startTime, end: dataForm.value.endTime }) download.excel(data, dataForm.value.pointName +'.xls') } catch { } finally { src/views/model/pre/analysis/index.vue
@@ -4,37 +4,42 @@ <el-form :inline="true" :model="formData" label-width="80px"> <el-form-item label="开始时间"> <el-date-picker size="mini" v-model="formData.startTime" type="datetime" format="YYYY-MM-DD HH:mm:00" value-format="YYYY-MM-DD HH:mm:00" placeholder="选择日期时间"/> </el-form-item> <el-form-item label="结束时间"> <el-date-picker size="mini" v-model="formData.endTime" type="datetime" format="YYYY-MM-DD HH:mm:00" value-format="YYYY-MM-DD HH:mm:00" placeholder="选择日期时间"/> </el-form-item> <el-form-item label="预测时间"> <el-date-picker size="mini" v-model="formData.predictTime" type="datetime" format="YYYY-MM-DD HH:mm:00" value-format="YYYY-MM-DD HH:mm:00" placeholder="选择日期时间"/> </el-form-item> <el-form-item label="预测频率"> <el-input-number size="mini" v-model="formData.predictFreq" controls-position="right" :min="1" <el-input-number v-model="formData.predictFreq" controls-position="right" :min="1" :max="10"/> </el-form-item> <el-form-item> <el-button-group> <el-button size="mini" type="primary" plain :icon="ArrowLeft" v-loading="loading1" @click="leftSearchDataByRange()"/> <el-button size="mini" type="primary" plain :icon="Search" v-loading="loading1" @click="getList()">查询</el-button> <el-button size="mini" type="primary" plain :icon="ArrowRight" v-loading="loading1" @click="rightSearchDataByRange()"/> <el-button type="primary" plain :icon="ArrowLeft" :loading="loading1" @click="leftSearchDataByRange()"/> <el-button type="primary" plain :icon="Search" :loading="loading1" @click="getList()">查询 </el-button> <el-button type="primary" plain :icon="ArrowRight" :loading="loading1" @click="rightSearchDataByRange()"/> </el-button-group> </el-form-item> @@ -53,35 +58,41 @@ </div> <div class="his-body-right"> <div class="his-body-chart"> <el-form :inline="true" :model="calRateForm" :rules="formRules" ref="calRateForm" label-width="108px"> <el-form :inline="true" :model="calRateForm" :rules="formRules" ref="calRateFormRef" label-width="108px"> <el-row> <el-col :span="6" > <el-form-item label="预测项" prop="calItem" style="width: 90%"> <el-select v-model="calRateForm.calItem" @change="calItemBaseVale" placeholder="请选择"> <el-select size="small" v-model="calRateForm.calItem" @change="calItemBaseVale" placeholder="请选择"> <el-option v-for="item in formData.checkedItemData" :key="item.id" :label="item.label" :value="item.id"/> v-for="itemOut in formData.checkedItemData" :key="itemOut.id" :label="itemOut.label" :value="itemOut.id"/> </el-select> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="精准度偏差" prop="IN_DEVIATION"> <el-input-number size="mini" v-model="calRateForm.IN_DEVIATION" controls-position="right" :min="1" <el-input-number size="small" v-model="calRateForm.IN_DEVIATION" controls-position="right" :min="1" :max="10"/> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="不可信率偏差" prop="OUT_DEVIATION"> <el-input-number size="mini" v-model="calRateForm.OUT_DEVIATION" controls-position="right" <el-input-number size="small" v-model="calRateForm.OUT_DEVIATION" controls-position="right" :min="1" :max="20"/> </el-form-item> </el-col> <el-col :span="4"> <el-form-item> <el-button size="mini" type="primary" plain :loading="loading2" @click="calAccuracyRate">计算精准度 <el-button size="small" type="primary" plain :loading="loading2" @click="calAccuracyRate">计算精准度 </el-button> </el-form-item> </el-col> @@ -146,20 +157,25 @@ <el-col :span="12"> <el-form-item label="数据类型"> <el-checkbox-group v-model="formData.chartCheck" @change="changeChartCheck"> <el-checkbox v-for="item in formData.chartOptions" :label="item" :key="item">{{item}} <el-checkbox v-for="item in formData.chartOptions" :label="item" :key="item">{{ item }} </el-checkbox> </el-checkbox-group> </el-form-item> </el-col> <el-col :span="6"> <el-form-item> <el-radio v-model="formData.isMultipleY" :label="false" @input="onChangeMultipleY">单坐标轴</el-radio> <el-radio v-model="formData.isMultipleY" :label="true" @input="onChangeMultipleY">多坐标轴</el-radio> <el-radio v-model="formData.isMultipleY" :label="false" @input="onChangeMultipleY">单坐标轴 </el-radio> <el-radio v-model="formData.isMultipleY" :label="true" @input="onChangeMultipleY">多坐标轴 </el-radio> </el-form-item> </el-col> </el-row> </el-form> <div id="data-analysis" style="height: 500px;"></div> <div ref="dataAnalysisChart" style="height: 500px;"></div> </div> </div> </div> @@ -169,29 +185,19 @@ </template> <script lang="ts" setup> import {getYMDHMS} from "@/utils/dateUtil" import * as CategoryApi from "@/api/data/ind/category"; import * as DmModule from '@/api/model/pre/dm' import * as ItemApi from "@/api/data/ind/item/item"; import * as MmPredictItem from '@/api/model/pre/item' import * as McsApi from '@/api/model/mcs' import * as echarts from "echarts"; import { onMounted, ref } from 'vue'; import { Search, ArrowLeft, ArrowRight,} from '@element-plus/icons-vue' defineOptions({name: 'AnalysisformData'}) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化 const dataCategoryList = ref([] as CategoryApi.IndItemCategoryVO[]) const dataAnalysisChart = ref(null); const loading1 = ref(false) // 列表的加载中 const loading2 = ref(false) // 列表的加载中 const total = ref(0) // 列表的总页数 const list = ref([]) // 字典表格数据 const queryParams = reactive({ pageNo: 1, pageSize: 10, itemno: '', itemname: '', }) let formData = ref({ rangeDate: '', startTime: '', @@ -219,8 +225,9 @@ isMultipleY: false, predictFreq: 3, }) let calRateForm = ref({ calItem: '', const calRateFormRef = ref() const calRateForm = ref({ calItem: undefined, IN_DEVIATION: 0, OUT_DEVIATION: 0, IN_ACCURACY_RATE: 0, @@ -239,22 +246,21 @@ chart: {}, option: {} }) const chartContainer = ref(null); const treeData = ref([]) const itemDataObject = ref() const timer = ref() let myChart = null; const formRules = reactive({ calItem: [{required: true, message: '预测项不能为空', trigger: 'blur'}], IN_DEVIATION: [{required: true, message: '精准度偏差不能为空', trigger: 'blur'}], OUT_DEVIATION: [{required: true, message: '不可信率偏差不能为空', trigger: 'blur'}], }) //const myChart = echarts.init(document.getElementById("data-analysis")); /** 查询列表 */ const getList = async () => { loading1.value = true try { const data = formData.value if (!formData.value.chartCheck) { formData.value.chartCheck = ['真实值'] } @@ -263,24 +269,21 @@ itemData.value.option = {}; return; } let itemIdList = formData.value.checkedItemData.map(item => { let outIds = formData.value.checkedItemData.map(item => { return item.id }) const params = ref({ itemIds: itemIdList.join(','), const params = reactive({ outIds: outIds, predictTime: formData.value.predictTime, startTime: formData.value.startTime, endTime: formData.value.endTime }) const res = await MmPredictItem.getViewCharts(params) if (res.code !== 0) { return message.error(res.msg) } formData.value.predictTime = res.data.predictTime; formData.value.startTime = res.data.startTime formData.value.endTime = res.data.endTime const data = await McsApi.getPreDataCharts(params) formData.value.predictTime = data.predictTime; formData.value.startTime = data.startTime formData.value.endTime = data.endTime let xAxisData = res.data.categories; let xAxisData = data.categories; let yAxisData = []; let offset = 0; let yAxisIndex = 0; @@ -311,9 +314,9 @@ }, }); itemDataObject.value = {} for (let i = 0; i < res.data.dataViewList.length; i++) { let dataView = res.data.dataViewList[i] itemDataObject.value.dataView.itemId = dataView; for (let i = 0; i < data.dataViewList.length; i++) { let dataView = data.dataViewList[i] itemDataObject.value[dataView.outId] = dataView; let maxValue = dataView.maxValue; let minValue = dataView.minValue; yAxisIndex = formData.value.isMultipleY ? i : 0; @@ -358,7 +361,7 @@ }) offset = offset + 40 if (chartCheckArray.indexOf('真实值') !== -1) { let legendName = dataView.itemName + '(真实)'; let legendName = dataView.resultstr + '(真实)'; legendData.push(legendName); seriesData.push({ name: legendName, @@ -368,12 +371,12 @@ showSymbol: false, smooth: true, lineStyle: { width: 3 width: 2 } }); } if (chartCheckArray.indexOf('T+N') !== -1) { let legendName = dataView.itemName + '(T+N)'; let legendName = dataView.resultstr + '(T+N)'; seriesData.push({ name: legendName, data: dataView.preDataN || [], @@ -382,12 +385,12 @@ showSymbol: false, smooth: true, lineStyle: { width: 3 width: 2 } }); } if (chartCheckArray.indexOf('T+L') !== -1) { let legendName = dataView.itemName + '(T+L)'; let legendName = dataView.resultstr + '(T+L)'; legendData.push(legendName); seriesData.push({ name: legendName, @@ -398,12 +401,12 @@ yAxisIndex: yAxisIndex, smooth: true, lineStyle: { width: 3 width: 2 } }); } if (chartCheckArray.indexOf('当时') !== -1) { let legendName = dataView.itemName + '(当时)'; let legendName = dataView.resultstr + '(当时)'; legendData.push(legendName); seriesData.push({ name: legendName, @@ -413,12 +416,12 @@ showSymbol: false, smooth: true, lineStyle: { width: 3 width: 2 } }); } if (chartCheckArray.indexOf('调整值') !== -1) { let legendName = dataView.itemName + '(调整值)'; let legendName = dataView.resultstr + '(调整值)'; legendData.push(legendName); seriesData.push({ name: legendName, @@ -429,7 +432,7 @@ connectNulls: true, smooth: true, lineStyle: { width: 3, width: 2, type: 'dashed' } }); @@ -445,6 +448,7 @@ } } } myChart = echarts.init(dataAnalysisChart.value); let option = { title: { text: '' @@ -458,7 +462,7 @@ top: 10 }, grid: { top: 50, top: '20%', left: '3%', right: '6%', bottom: '3%', @@ -487,19 +491,20 @@ ], series: seriesData } //chart.setOption(option) myChart.clear() myChart.setOption(option) } finally { loading1.value = false } } onMounted(() => { resetForm() getPreItemTree() getList() }) async function getPreItemTree() { treeData.value = await MmPredictItem.getMmPredictItemTree() treeData.value = await McsApi.getPredictItemTree() } function leftSearchDataByRange() { @@ -538,8 +543,7 @@ if (checked.checkedNodes) { formData.value.checkedItemData = [...checked.checkedNodes] } //myChart.clear() debounce(getList(), 1000); debounce(getList, 1000); } function debounce(func, wait) { @@ -563,9 +567,8 @@ calRateForm.value.itemMin = 0; calRateForm.value.itemAvg = 0; calRateForm.value.realCumulant = 0; return } else { let dataView = itemDataObject[calRateForm.value.calItem] let dataView = itemDataObject.value[calRateForm.value.calItem] calRateForm.value.itemPreMax = dataView.preMax; calRateForm.value.itemPreMin = dataView.preMin; calRateForm.value.itemPreAvg = dataView.preAvg; @@ -651,6 +654,52 @@ getList(); } /** 重置表单 */ const resetForm = () => { formData.value = { rangeDate: '', startTime: '', endTime: '', predictTime: '', predictTimeStr: '', startTimeStr: '', endTimeStr: '', predictTimeStamp: 0, startTimeStamp: 0, endTimeStamp: 0, currentStamp: '', currentStamp60: '', predictStamp: '', chartCheck: ['T+L', '真实值'], chartOptions: ['T+N', 'T+L', '当时', '真实值', '调整值'], checkedItemData: [], backItem: '', backValue: 0, backCoe: 1, preCumulant: 0, realCumulant: 0, queryStep: 2, isMultipleYRadio: '单坐标轴', isMultipleY: false, predictFreq: 3, } calRateForm.value = { calItem: undefined, IN_DEVIATION: 0, OUT_DEVIATION: 0, IN_ACCURACY_RATE: 0, OUT_ACCURACY_RATE: 0, itemAvg: 0, itemMax: 0, itemMin: 0, itemPreAvg: 0, itemPreMax: 0, itemPreMin: 0, preCumulant: 0, realCumulant: 0 } calRateFormRef.value?.resetFields() } </script> <style scoped> .el-form-item { src/views/model/pre/item/MmPredictItemChart.vue
@@ -1,6 +1,6 @@ <template> <el-dialog title="采集值" title="预测数据" :close-on-click-modal="false" width="50%" v-model="visible" @@ -39,47 +39,48 @@ plain @click="handleExport" :loading="exportLoading" v-hasPermi="['data:point:export']" > <Icon icon="ep:download" />导出 <Icon icon="ep:download"/> 导出 </el-button> </el-form-item> </el-form> <div ref="chartDom" class="result-chart"></div> <div ref="chartDomPre" class="result-chart"></div> </el-dialog> </template> <script lang="ts" setup> import {ref} from 'vue'; import * as echarts from 'echarts'; import * as DaPoint from '@/api/data/da/point/daPointChart' import * as McsApi from '@/api/model/mcs' import {getYMDHM0} from "@/utils/dateUtil" import download from "@/utils/download"; const message = useMessage() // 消息弹窗 const visible = ref(false); const chartDom = ref(null); const chartDomPre = ref(null); let myChart = null; const chartParams = reactive({ codes:[], startDate : undefined, endDate: undefined, itemId: undefined, startTime: undefined, endTime: undefined, }) const dataForm = ref({ id: "", pointNo: "", pointName: "", pointTypeName: "", itemName: "", startTime: getYMDHM0(new Date() - 60 * 60 * 1000), endTime: "", endTime: getYMDHM0(new Date() + 60 * 60 * 1000), }); /** 打开弹窗 */ const open = async (row: object) => { visible.value = true resetForm() dataForm.value.id = row.id; dataForm.value.pointNo = row.pointNo; dataForm.value.pointName = row.pointName; dataForm.value.itemName = row.itemname; if (row.id) { getDataList(); } } defineExpose({open}) // 提供 open 方法,用于打开弹窗 @@ -88,31 +89,79 @@ visible.value = true; if (dataForm.value.id) { try { chartParams.codes=[dataForm.value.pointNo]; chartParams.startDate = dataForm.value.startTime; chartParams.endDate = dataForm.value.endTime; const data = await DaPoint.getPointDaChart(chartParams) chartParams.itemId = dataForm.value.id; chartParams.startTime = dataForm.value.startTime; chartParams.endTime = dataForm.value.endTime; const data = await McsApi.getPreDataItemChart(chartParams) let legendData = [] if (data.legend && data.legend.length > 0) { data.legend.forEach(item => { legendData.push(item + ":" + '真实值') legendData.push(item + ":" + '预测值') }) } let seriesData = [] data.series.forEach(item => { if (data.lastTime) { seriesData.push({ name: item.name, name: '', data: [null], type: 'line', smooth: true, color: 'green', markLine: { silent: true, lineStyle: { color: '#32a487', width: 2 }, data: [{ xAxis: data.lastTime }], label: { normal: { formatter: data.lastTime } }, symbol: ['circle', 'none'], }, }); } if (data.viewMap) { Object.keys(data.viewMap).forEach(key => { let viewData = data.viewMap[key] seriesData.push({ name: key + ":" + '真实值', type: "line", data: item.data, showSymbol: true, data: viewData.realData, showSymbol: false, smooth: false, lineStyle: { normal: { color: "#5B8FF9", width: 1, }, }, }); }) seriesData.push({ name: key + ":" + '预测值', type: "line", data: viewData.preDataN, showSymbol: false, smooth: false, lineStyle: { normal: { width: 1, }, }, }) }) } myChart = echarts.init(chartDom.value); myChart = echarts.init(chartDomPre.value); const option = { title: { text: dataForm.value.pointName, text: dataForm.value.itemName, top: 0, left: "1%", textStyle: { @@ -131,11 +180,12 @@ }, }, legend: { show: false, top: 10, show: true, top: 20, data: legendData }, grid: { top: 30, top: "20%", left: "3%", right: "5%", bottom: 10, @@ -162,24 +212,35 @@ } } } /** 导出按钮操作 */ const exportLoading = ref(false) const handleExport = async () => { chartParams.codes=[dataForm.value.pointNo]; chartParams.startDate = dataForm.value.startTime; chartParams.endDate = dataForm.value.endTime; chartParams.itemId = dataForm.value.id; chartParams.startTime = dataForm.value.startTime; chartParams.endTime = dataForm.value.endTime; try { // 导出的二次确认 await message.exportConfirm() // 发起导出 exportLoading.value = true const data = await DaPoint.exportDaPointValue(chartParams) download.excel(data, dataForm.value.pointName +'.xls') /*const data = await DaPoint.exportDaPointValue(chartParams) download.excel(data, dataForm.value.pointName + '.xls')*/ } catch { } finally { exportLoading.value = false } } /** 重置表单 */ const resetForm = () => { dataForm.value = { id: undefined, itemName: undefined, startTime: undefined, endTime: undefined } } </script> <style> .el-select { src/views/model/pre/item/MmPredictItemForm.vue
@@ -17,7 +17,8 @@ </el-col> <el-col :span="12"> <el-form-item label="编号" prop="mmPredictItem.itemno"> <el-input v-model="dataForm.mmPredictItem.itemno" placeholder="编号" maxlength="50" readonly/> <el-input v-model="dataForm.mmPredictItem.itemno" placeholder="编号" maxlength="50" readonly/> </el-form-item> </el-col> </el-row> @@ -233,7 +234,9 @@ </el-table-column> <el-table-column label="索引" align="center" width="120px"> <template #default="scope"> <el-input-number style="width:100%;hight:100%" :disabled="scope.row.resultType !== 2" v-model="scope.row.resultIndex" :min="0" step-strictly controls-position="right"/> <el-input-number style="width:100%;hight:100%" :disabled="scope.row.resultType !== 2" v-model="scope.row.resultIndex" :min="0" step-strictly controls-position="right"/> </template> </el-table-column> <el-table-column label="数据点" align="center"> @@ -290,7 +293,9 @@ <el-table-column prop="modelparamorder" label="序号" width="60" align="center"/> <el-table-column prop="" label="类型" width="200" align="center"> <template #default="scope"> <el-select v-model="scope.row.modelparamtype" placeholder="请选择"> <el-select v-model="scope.row.modelparamtype" @change="changeModelparamtype(scope.row)" placeholder="请选择"> <el-option v-for="dict in getStrDictOptions(DICT_TYPE.MODEL_PARAM_TYPE)" :key="dict.value" @@ -414,12 +419,10 @@ 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/item' import * as ScheduleModelApi from '@/api/model/sche/model' import request from "@/config/axios"; const {uploadUrl, httpRequest} = useUpload() @@ -434,7 +437,6 @@ const itemTypeList = ref([]) const itemTypeMap = ref({}) const moduleList = ref([]) const resultstridList = ref([]) const mpkProjectList = ref([]) const pointNoList = ref([]) const pointList = ref([]) @@ -553,9 +555,6 @@ // 获取管网列表 moduleList.value = await DmModule.getModuleList() // 获取结果字符串列表 resultstridList.value = await MmResultTable.getResultstridList() // 获取mpk项目列表 mpkProjectList.value = await ProjectApi.list() @@ -767,7 +766,7 @@ dataForm.value.itemtypename = itemTypeMap[value] } function changeModelparamtype(value, row) { function changeModelparamtype(row) { row.modelparamid = '' } @@ -798,10 +797,12 @@ rows.splice(index, 0, row) orderRow(rows) } function addItemOutput(list) { list.push({}) orderItemOutput(list) } function deleteItemOutput(index: string, rows) { if (!rows || rows.length === 1) { message.error('不能全部删除!') @@ -810,6 +811,7 @@ rows.splice(index, 1) orderItemOutput(rows) } function orderItemOutput(list) { list.sort((a, b) => a.outputorder - b.outputorder); let outputorder = 1 src/views/model/pre/result/MmResultTableForm.vue
文件已删除 src/views/model/pre/result/index.vue
文件已删除