houzhongjian
2024-11-15 e8dd9ebcac7edb33ec935520e9b9ca4ceb865cd0
Merge remote-tracking branch 'origin/master'
已添加1个文件
已删除3个文件
已修改7个文件
703 ■■■■■ 文件已修改
src/api/data/plan/item/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/mcs/index.ts 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/pre/dm/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/pre/result/index.ts 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/sche/model/index.ts 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/data/point/DaPointChart.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/analysis/index.vue 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/item/MmPredictItemChart.vue 131 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/item/MmPredictItemForm.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/result/MmResultTableForm.vue 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/result/index.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | 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
文件已删除