潘志宝
2025-02-05 3e5f6c444a32a66a6111aacd3a4c5212c32bdf9e
测点当前值查询功能
已修改3个文件
已添加1个文件
181 ■■■■■ 文件已修改
src/api/data/da/point/daPointChart.ts 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/data/point/DaPointChart.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/data/point/DaPointValue.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/data/point/index.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/data/da/point/daPointChart.ts
@@ -6,11 +6,25 @@
  end?: Date,
}
export interface ApiPointPageReqVO extends PageParam {
  pointNo?: string
}
// 查询chart列表
export const getPointDaChart = (data: DaPointChartReqVO) => {
  return request.post({ url: '/data/api/query-points/chart', data })
}
// 查询多个测点当前值
export const getPointsRealValue = (data: []) => {
  return request.post({ url: '/data/api/query-points/real-value', data })
}
// 查询计算点当前值
export const getMathPointCurrentValue = (data: ApiPointPageReqVO) => {
  return request.post({ url: '/data/api/query-math-point/current-value', data })
}
//导出DaPointValue
export const exportDaPointValue = (params) => {
  return request.download({ url: '/data/da/point/exportValue', params })
src/views/data/point/DaPointChart.vue
@@ -1,6 +1,6 @@
<template>
  <el-dialog
    title="采集值"
    title="历史值"
    :close-on-click-modal="false"
    width="50%"
    v-model="visible"
src/views/data/point/DaPointValue.vue
对比新文件
@@ -0,0 +1,144 @@
<template>
  <el-dialog
    title="当前值"
    :close-on-click-modal="false"
    width="50%"
    v-model="visible"
  >
    <el-form
      :model="dataForm"
      v-loading="formLoading"
      label-width="120px"
    >
      <el-row>
        <el-col :span="12">
          <el-form-item label="测点编码" prop="pointNo">
            <el-input v-model="dataForm.pointNo" readonly/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="测点名称" prop="pointName">
            <el-input v-model="dataForm.pointName" readonly/>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item label="数据时间" prop="dataTime">
            <el-input v-model="dataForm.dataTime" readonly/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="数据值" prop="dataValue">
            <el-input v-model="dataForm.dataValue" readonly>
              <template #append>{{ dataForm.unit }}</template>
            </el-input>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <!-- 列表 -->
    <ContentWrap v-if="dataForm.pointType === 'CALCULATE'">
      <el-table border stripe v-loading="tableLoading" :data="list">
        <el-table-column type="index" header-align="center" align="center" fixed="left" width="50"/>
        <el-table-column fixed label="测点编码" header-align="center" align="left" min-width="130" prop="pointNo" />
        <el-table-column fixed label="测点名称" header-align="center" align="left" min-width="240" prop="pointName" />
        <el-table-column fixed label="当前值" header-align="center" align="left" min-width="240" prop="currentValue" />
      </el-table>
      <!-- 分页 -->
      <Pagination
        :total="total"
        v-model:page="queryParams.pageNo"
        v-model:limit="queryParams.pageSize"
        @pagination="getList"
      />
    </ContentWrap>
  </el-dialog>
</template>
<script lang="ts" setup>
import {reactive, ref} from "vue";
import {getYMDHM0} from "@/utils/dateUtil";
import * as DaPoint from "@/api/data/da/point/daPointChart";
const message = useMessage() // 消息弹窗
const visible = ref(false);
const formLoading = ref(false)
const tableLoading = ref(false)
const total = ref(0) // 列表的总页数
const list = ref([]) // 列表的数据
const queryParams = reactive({
  pageNo: 1,
  pageSize: 10,
  pointNo: undefined
})
const queryFormRef = ref() // 搜索的表单
const dataForm = ref({
  id: "",
  pointNo: "",
  pointName: "",
  pointType: "",
  unit: "",
  dataTime: "",
  dataValue: "",
});
/** 打开弹窗 */
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.pointType = row.pointType;
  dataForm.value.unit = row.unit;
  getCurrentData()
  queryParams.pointNo = row.pointNo;
  if (dataForm.value.pointType === "CALCULATE") {
    getList()
  }
}
defineExpose({open}) // 提供 open 方法,用于打开弹窗
async function getCurrentData() {
  visible.value = true;
  formLoading.value = true
  if (dataForm.value.id) {
    let params0 = [dataForm.value.pointNo]
    const data = await DaPoint.getPointsRealValue(params0)
    formLoading.value = false
    dataForm.value.dataTime = getYMDHM0(new Date());
    dataForm.value.dataValue = data[dataForm.value.pointNo]
  }
}
/** 查询列表 */
const getList = async () => {
  tableLoading.value = true
  try {
    const page = await DaPoint.getMathPointCurrentValue(queryParams)
    list.value = page.list
    total.value = page.total
  } finally {
    tableLoading.value = false
  }
}
/** 重置表单 */
const resetForm = () => {
  dataForm.value = {
    id: undefined,
    pointNo: undefined,
    pointName: undefined,
    pointType: undefined,
    unit: undefined,
    dataTime: undefined,
    dataValue: undefined,
  }
}
</script>
src/views/data/point/index.vue
@@ -160,7 +160,7 @@
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" min-width="130" fixed="right" width="120">
      <el-table-column label="操作"  align="center" min-width="130" fixed="right" width="140">
        <template #default="scope">
          <el-button
            link
@@ -171,7 +171,7 @@
          >
            编辑
          </el-button>
          <el-button link size="mini" type="primary" @click="chartHandle(scope.row)">数据</el-button>
          <el-button link size="mini" type="primary" @click="chartHandle(scope.row)">历史值</el-button>
          <el-button
            link
            size="mini"
@@ -181,6 +181,7 @@
          >
            删除
          </el-button>
          <el-button link size="mini" type="primary" @click="pointValueHandle(scope.row)">当前值</el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -196,9 +197,13 @@
  <!-- 表单弹窗:添加/修改 -->
  <DaPointForm ref="formRef" @success="getList" />
  <!-- 历史值 -->
  <DaPointChart ref="chartView" />
  <!-- 用户导入对话框 -->
  <!-- 当前值 -->
  <DaPointValue ref="pointValue" />
  <!-- 测点导入对话框 -->
  <PointImportForm ref="importFormRef" @success="getList" />
</template>
<script lang="ts" setup>
@@ -208,7 +213,7 @@
import {DICT_TYPE, getDictOptions, getIntDictOptions, getStrDictOptions} from "@/utils/dict";
import DaPointForm from './DaPointForm.vue'
import DaPointChart from './DaPointChart.vue'
import * as UserApi from "@/api/system/user";
import DaPointValue from './DaPointValue.vue'
import PointImportForm from './PointImportForm.vue'
defineOptions({name: 'DataPoint'})
@@ -248,12 +253,18 @@
    getList()
  }
  /** 查看数据操作 */
  /** 查看历史值操作 */
  const chartView  = ref()
  const chartHandle = (raw: object) => {
    chartView.value.open(raw)
  }
/** 查看当前值操作 */
const pointValue  = ref()
const pointValueHandle = (raw: object) => {
  pointValue.value.open(raw)
}
  /** 重置按钮操作 */
  const resetQuery = () => {
    queryFormRef.value.resetFields()