fuguobin
1 year ago
18 changed files with 417 additions and 109 deletions
@ -0,0 +1,14 @@ |
|||||
|
.statisticalContainer { |
||||
|
.search { |
||||
|
margin-bottom: 15px; |
||||
|
.el-form-item--default { |
||||
|
margin-bottom: 0; |
||||
|
} |
||||
|
} |
||||
|
.statistical { |
||||
|
.statPagination { |
||||
|
justify-content: right; |
||||
|
margin-top: 15px; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,144 @@ |
|||||
|
<template> |
||||
|
<div class="statisticalContainer"> |
||||
|
<section class="search"> |
||||
|
<el-card shadow="always"> |
||||
|
<el-form |
||||
|
ref="searchFormRef" |
||||
|
:model="searchForm" |
||||
|
:rules="rules" |
||||
|
:inline="true" |
||||
|
label-width="120px" |
||||
|
class="searchForm" |
||||
|
status-icon |
||||
|
> |
||||
|
<el-form-item label="时间" prop="qDate"> |
||||
|
<el-date-picker |
||||
|
v-model="searchForm.qDate" |
||||
|
type="date" |
||||
|
format="YYYY-MM-DD" |
||||
|
value-format="YYYY-MM-DD" |
||||
|
placeholder="请选择时间" |
||||
|
/> |
||||
|
</el-form-item> |
||||
|
<el-form-item> |
||||
|
<el-button type="primary" @click="submitForm(searchFormRef)">查询</el-button> |
||||
|
<el-button @click="resetForm(searchFormRef)">重置</el-button> |
||||
|
</el-form-item> |
||||
|
</el-form> |
||||
|
</el-card> |
||||
|
</section> |
||||
|
<section class="statistical"> |
||||
|
<el-card shadow="always"> |
||||
|
<el-table class="statTable" :data="statData" border style="width: 100%"> |
||||
|
<el-table-column prop="devicName" label="设备名" align="center" /> |
||||
|
<el-table-column prop="paramName" label="参数名" align="center" /> |
||||
|
<el-table-column prop="aval" label="均值" align="center" /> |
||||
|
<el-table-column prop="aday" label="日" align="center" /> |
||||
|
<el-table-column prop="amonth" label="月" align="center" /> |
||||
|
</el-table> |
||||
|
<el-pagination |
||||
|
class="statPagination" |
||||
|
:page-sizes="[10, 20, 30, 40, 50]" |
||||
|
layout="sizes, prev, pager, next" |
||||
|
background |
||||
|
:total="statPage.total" |
||||
|
@size-change="handleSizeChange" |
||||
|
@current-change="handleCurrentChange" |
||||
|
/> |
||||
|
</el-card> |
||||
|
</section> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script lang="ts" setup> |
||||
|
import type { FormInstance, FormRules, TableColumnCtx } from 'element-plus'; |
||||
|
import { useDateFormat, useNow } from '@vueuse/core'; |
||||
|
import { dcBusiDayReport } from '@/api/table/list'; |
||||
|
import { StatVo } from '@/api/table/types'; |
||||
|
|
||||
|
interface searchForm { |
||||
|
qDate: string; |
||||
|
} |
||||
|
|
||||
|
interface SpanMethodProps { |
||||
|
row: StatVo; |
||||
|
column: TableColumnCtx<StatVo>; |
||||
|
rowIndex: number; |
||||
|
columnIndex: number; |
||||
|
} |
||||
|
|
||||
|
const searchFormRef = ref<FormInstance>(); |
||||
|
const searchForm = reactive<searchForm>({ |
||||
|
qDate: '' |
||||
|
}); |
||||
|
|
||||
|
const rules = reactive<FormRules<searchForm>>({ |
||||
|
qDate: [ |
||||
|
{ |
||||
|
type: 'date', |
||||
|
required: true, |
||||
|
message: '请选择时间', |
||||
|
trigger: 'change' |
||||
|
} |
||||
|
] |
||||
|
}); |
||||
|
|
||||
|
const today = useDateFormat(useNow(), 'YYYY-MM-DD'); |
||||
|
const statData = ref<StatVo[]>([]); |
||||
|
const statPage = reactive({ |
||||
|
total: 0, |
||||
|
pageNum: 1, |
||||
|
pageSize: 10 |
||||
|
}); |
||||
|
|
||||
|
onMounted(() => { |
||||
|
searchForm.qDate = today.value; |
||||
|
getDayReport(); |
||||
|
}); |
||||
|
|
||||
|
function getDayReport() { |
||||
|
//获取数据 |
||||
|
const params = { |
||||
|
qDate: searchForm.qDate, |
||||
|
pageNum: statPage.pageNum, |
||||
|
pageSize: statPage.pageSize |
||||
|
}; |
||||
|
dcBusiDayReport(params).then((res: any) => { |
||||
|
if (res.code === 200) { |
||||
|
statData.value = res.rows; |
||||
|
statPage.total = res.total; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
const handleSizeChange = (val: number) => { |
||||
|
statPage.pageSize = val; |
||||
|
getDayReport(); |
||||
|
}; |
||||
|
const handleCurrentChange = (val: number) => { |
||||
|
statPage.pageNum = val; |
||||
|
getDayReport(); |
||||
|
}; |
||||
|
|
||||
|
const submitForm = async (formEl: FormInstance | undefined) => { |
||||
|
if (!formEl) return; |
||||
|
await formEl.validate((valid, fields) => { |
||||
|
if (valid) { |
||||
|
getDayReport(); |
||||
|
} else { |
||||
|
console.log('error submit!', fields); |
||||
|
} |
||||
|
}); |
||||
|
}; |
||||
|
|
||||
|
const resetForm = (formEl: FormInstance | undefined) => { |
||||
|
if (!formEl) return; |
||||
|
formEl.resetFields(); |
||||
|
searchForm.qDate = today.value; |
||||
|
getDayReport(); |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import './index.scss'; |
||||
|
</style> |
Loading…
Reference in new issue