|
@@ -0,0 +1,273 @@
|
|
|
|
+<template>
|
|
|
|
+ <div class="table_item">
|
|
|
|
+ <s-table ref="tableRef" :columns="columns" :data="loadData" :row-key="(record) => record.code">
|
|
|
|
+ <template #operator>
|
|
|
|
+ <!-- 搜索区域 -->
|
|
|
|
+ <div class="table-search">
|
|
|
|
+ <div class="table-search-form">
|
|
|
|
+ <a-row :gutter="10">
|
|
|
|
+ <a-form
|
|
|
|
+ ref="searchFormRef"
|
|
|
|
+ name="advanced_search"
|
|
|
|
+ layout="inline"
|
|
|
|
+ :label-col="{ style: { width: '70px', justifyContent: 'end' } }"
|
|
|
|
+ :model="searchFormState"
|
|
|
|
+ class="ant-advanced-search-form"
|
|
|
|
+ >
|
|
|
|
+ <a-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
|
|
|
|
+ <a-form-item label="开始时间" name="searchKey">
|
|
|
|
+ <a-date-picker
|
|
|
|
+ v-model:value="searchFormState.searchKey"
|
|
|
|
+ show-time
|
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :xs="24" :sm="24" :md="24" :lg="12" :xl="8">
|
|
|
|
+ <a-form-item label="结束时间" name="jssj">
|
|
|
|
+ <a-date-picker
|
|
|
|
+ v-model:value="searchFormState.jssj"
|
|
|
|
+ show-time
|
|
|
|
+ format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ />
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ <a-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8" v-if="searchFormState.type == 'qst'">
|
|
|
|
+ <a-form-item label="采集类型" name="cjlx">
|
|
|
|
+ <a-select v-model:value="searchFormState.cjlx" placeholder="请选择采集类型">
|
|
|
|
+ <a-select-option value="1">温度</a-select-option>
|
|
|
|
+ <a-select-option value="2">湿度</a-select-option>
|
|
|
|
+ <a-select-option value="3">氧气浓度</a-select-option>
|
|
|
|
+ </a-select>
|
|
|
|
+ </a-form-item>
|
|
|
|
+ </a-col>
|
|
|
|
+ </a-form>
|
|
|
|
+ </a-row>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="table-search-buttons">
|
|
|
|
+ <a-button type="primary" @click="tableRef.refresh(true)">查询</a-button>
|
|
|
|
+ <a-button class="xn-mg08" @click="reset">重置</a-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 其他操作区域 -->
|
|
|
|
+ <div class="table-head-btn">
|
|
|
|
+ <div class="btn-right">
|
|
|
|
+ <a-button class="xn-mg08">
|
|
|
|
+ <template #icon><download-outlined /></template>导出
|
|
|
|
+ </a-button>
|
|
|
|
+ <a-button>
|
|
|
|
+ <template #icon><printer-outlined /></template>打印
|
|
|
|
+ </a-button>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </s-table>
|
|
|
|
+
|
|
|
|
+ <div class="item-right">
|
|
|
|
+ <!-- 单位 -->
|
|
|
|
+ <div class="unit">
|
|
|
|
+ <unitSearch ref="unitSearchRef" />
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 监控点 -->
|
|
|
|
+ <div class="monitor">
|
|
|
|
+ <monitorSearch ref="monitorSearchRef" />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script setup>
|
|
|
|
+ import jobApi from '@/api/dev/jobApi'
|
|
|
|
+ import unitSearch from './unitSearch.vue'
|
|
|
|
+ import monitorSearch from './monitorSearch.vue'
|
|
|
|
+
|
|
|
|
+ const unitSearchRef = ref(null)
|
|
|
|
+ const monitorSearchRef = ref(null)
|
|
|
|
+
|
|
|
|
+ onMounted(() => {
|
|
|
|
+ unitSearchRef.value.onOpen() //获取单位数据
|
|
|
|
+ monitorSearchRef.value.onOpen() //获取监控点数据
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ // 搜索表单
|
|
|
|
+ const searchFormState = ref({})
|
|
|
|
+ const tableRef = ref()
|
|
|
|
+
|
|
|
|
+ const columns = [
|
|
|
|
+ {
|
|
|
|
+ title: '对象名称',
|
|
|
|
+ dataIndex: 'name',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '监控点名称',
|
|
|
|
+ dataIndex: 'jkdname',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '日期',
|
|
|
|
+ dataIndex: 'rq',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '采集类型',
|
|
|
|
+ dataIndex: 'type',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '范围',
|
|
|
|
+ dataIndex: 'fw',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '最大值',
|
|
|
|
+ dataIndex: 'zdz',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '最小值',
|
|
|
|
+ dataIndex: 'zxz',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '平均值',
|
|
|
|
+ dataIndex: 'pjz',
|
|
|
|
+ align: 'center',
|
|
|
|
+ ellipsis: true
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ const loadData = (parameter) => {
|
|
|
|
+ return jobApi.jobPage(Object.assign(parameter, searchFormState.value)).then((res) => {
|
|
|
|
+ // return res
|
|
|
|
+ const obj = {
|
|
|
|
+ current: 1,
|
|
|
|
+ pages: 1,
|
|
|
|
+ records: [
|
|
|
|
+ {
|
|
|
|
+ name: '-70度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点1',
|
|
|
|
+ rq: '2024-08-28 07:03:24',
|
|
|
|
+ type: '温度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '-71度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点2',
|
|
|
|
+ rq: '2024-08-28 09:21:51',
|
|
|
|
+ type: '湿度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '-72度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点2',
|
|
|
|
+ rq: '2024-08-28 11:06:20',
|
|
|
|
+ type: '温度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '-73度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点4',
|
|
|
|
+ rq: '2024-08-28 11:54:19',
|
|
|
|
+ type: '湿度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '-74度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点5',
|
|
|
|
+ rq: '2024-08-28 16:17:36',
|
|
|
|
+ type: '湿度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '-75度超低温冷冻储存箱',
|
|
|
|
+ jkdname: '监控点6',
|
|
|
|
+ rq: '2024-08-28 19:35:58',
|
|
|
|
+ type: '温度',
|
|
|
|
+ fw: '/',
|
|
|
|
+ zdz: '/',
|
|
|
|
+ zxz: '/',
|
|
|
|
+ pjz: '/'
|
|
|
|
+ }
|
|
|
|
+ ],
|
|
|
|
+ size: 10,
|
|
|
|
+ total: 6
|
|
|
|
+ }
|
|
|
|
+ return obj
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 重置
|
|
|
|
+ const reset = () => {
|
|
|
|
+ searchFormRef.value.resetFields()
|
|
|
|
+ tableRef.value.refresh(true)
|
|
|
|
+ }
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
+ .table_item {
|
|
|
|
+ width: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ padding: 15px 20px;
|
|
|
|
+
|
|
|
|
+ .table-wrapper {
|
|
|
|
+ width: 75%;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 右边的搜索区域
|
|
|
|
+ .item-right {
|
|
|
|
+ width: 25%;
|
|
|
|
+ padding: 5px 10px;
|
|
|
|
+
|
|
|
|
+ .unit,
|
|
|
|
+ .monitor {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 350px;
|
|
|
|
+ padding: 10px;
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ border: 1px solid #eaeaea;
|
|
|
|
+ overflow-y: auto;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 树形结构的样式
|
|
|
|
+ :deep(.ant-tree-treenode) {
|
|
|
|
+ width: 100%;
|
|
|
|
+ margin-bottom: 5px;
|
|
|
|
+ border-radius: 5px;
|
|
|
|
+ padding: 5px 0 !important;
|
|
|
|
+ border: 1px solid #eaeaea;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 分页居中显示
|
|
|
|
+ :deep(.ant-table-pagination-right) {
|
|
|
|
+ justify-content: center !important;
|
|
|
|
+ }
|
|
|
|
+</style>
|