Browse Source

报表统计

master
songguoqiang 9 months ago
parent
commit
5a5f82d0ab
  1. 11
      src/api/tjanalysis/index.ts
  2. 2
      src/utils/dict.ts
  3. 144
      src/views/tjanalysis/hrelongatordata/index.vue
  4. 12
      src/views/tjanalysis/hrpuncherdata/index.vue
  5. 145
      src/views/tjanalysis/hrsizingmilldata/index.vue
  6. 7
      src/views/tjanalysis/natgasdatahr/index.vue
  7. 65
      src/views/tjanalysis/waterday/index.vue

11
src/api/tjanalysis/index.ts

@ -54,3 +54,14 @@ export const queryXcqtyDay = async (params) => {
export const queryHrpuncherDay = async (params) => { export const queryHrpuncherDay = async (params) => {
return await request.get({ url: `/tjanalysis/queryHrpuncherDay`, params }) return await request.get({ url: `/tjanalysis/queryHrpuncherDay`, params })
} }
// 获取热轧延伸机日统计报表
export const queryRzcjinfoDay = async (params) => {
return await request.get({ url: `/tjanalysis/queryRzcjinfoDay`, params })
}
// 获取热轧定经机日统计报表
export const querySizingmillDay = async (params) => {
return await request.get({ url: `/tjanalysis/querySizingmillDay`, params })
}

2
src/utils/dict.ts

@ -99,6 +99,8 @@ export enum DICT_TYPE {
SYSTEM_TENANT_PACKAGE_ID = 'system_tenant_package_id', SYSTEM_TENANT_PACKAGE_ID = 'system_tenant_package_id',
TERMINAL = 'terminal', // 终端 TERMINAL = 'terminal', // 终端
//===============智能水表统计模块===================
Water_Module = 'Water_Module',
// ========== 热轧108穿孔机 模块 ========== // ========== 热轧108穿孔机 模块 ==========
pszc_hr_puncherdata108 ='pszc_hr_puncherdata108',//热轧108运行时间类型 pszc_hr_puncherdata108 ='pszc_hr_puncherdata108',//热轧108运行时间类型
pszc_hr_puncherdata108_roll ='pszc_hr_puncherdata108_roll',//热轧108轧制时间类型 pszc_hr_puncherdata108_roll ='pszc_hr_puncherdata108_roll',//热轧108轧制时间类型

144
src/views/tjanalysis/hrelongatordata/index.vue

@ -0,0 +1,144 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="日期" prop="date">
<el-date-picker
v-model="queryParams.date"
style="width: 240px; height: 30px"
value-format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
<el-form-item label="位置" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择">
<el-option
v-for="item in types.flagList"
:key="item.value"
:label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="handleQuery">搜索</el-button>
<el-button size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-divider content-position="left"><div style="font-size:16px; float: left"><b>{{names}}</b></div></el-divider>
<el-table
v-loading="loading" :data="dataList" border="true" highlight-current-row="true"
header-row-style="height: 50px; text-align: center" :span-method="arraySpanMethod"
:row-class-name="tableRowClassName" :cell-class-name="tableCellClassName">
<el-table-column label="" prop="name" align="right" :show-overflow-tooltip="true" width="150" />
<el-table-column label="00:00-08:00" prop="num0008" align="center" :show-overflow-tooltip="true" />
<el-table-column label="08:00-16:00" prop="num0816" align="center" :show-overflow-tooltip="true" />
<el-table-column label="16:00-24:00" prop="num1624" align="center" :show-overflow-tooltip="true" />
<el-table-column label="00:00-12:00" prop="num0012" align="center" :show-overflow-tooltip="true" />
<el-table-column label="12:00-24:00" prop="num1224" align="center" :show-overflow-tooltip="true" />
<el-table-column label="总(00:00-24:00)" prop="num0024" align="center" :show-overflow-tooltip="true" />
</el-table>
</ContentWrap>
</template>
<script setup lang="ts">
import * as TjanalysisApi from '@/api/tjanalysis'
import { formatDate } from '@/utils/formatTime'
defineOptions({ name: 'HrElongatorData' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const loading = ref(true)
const dataList = ref([])
const names = ref("热轧108延伸");
const queryParams = reactive({
date: formatDate(new Date() , 'YYYY-MM-DD'),
flag: '1'
})
const types = reactive({flagList: [
{name: '热轧108延伸' , value: '1'},
{name: '热轧90延伸' , value: '2'}
]})
const handleQuery = async () => {
getList()
}
const resetQuery = async () => {
queryParams.date = formatDate(new Date() , 'YYYY-MM-DD')
getList()
}
const getList = async () => {
const res = await TjanalysisApi.querySizingmillDay(queryParams)
dataList.value = res.dataList
loading.value = false
if(queryParams.flag=='1'){
names.value = "热轧108延伸"
}else{
names.value = "热轧90延伸"
}
}
function arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
if (rowIndex == 6) {
if (columnIndex == 0) {
return {
rowspan: 1,
colspan: 10
}
} else if (columnIndex == 10) {
return {
rowspan: 1,
colspan: 2
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
}
function tableRowClassName({row, rowIndex}) {
if (rowIndex === 7) {
return 'success-row'
}
return ''
}
function tableCellClassName({row, column, rowIndex, columnIndex}) {
if (columnIndex == 0) {
return 'success-cols'
}
}
/** 初始化 **/
onMounted(async () => {
getList()
})
</script>
<style>
.el-table .success-row {
background: #f0f9eb;
}
.el-table .success-cols {
font-weight: bold;
}
</style>

12
src/views/tjanalysis/hrpuncherdata/index.vue

@ -34,12 +34,12 @@
header-row-style="height: 50px; text-align: center" :span-method="arraySpanMethod" header-row-style="height: 50px; text-align: center" :span-method="arraySpanMethod"
:row-class-name="tableRowClassName" :cell-class-name="tableCellClassName"> :row-class-name="tableRowClassName" :cell-class-name="tableCellClassName">
<el-table-column label="" prop="name" align="right" :show-overflow-tooltip="true" width="150" /> <el-table-column label="" prop="name" align="right" :show-overflow-tooltip="true" width="150" />
<el-table-column label="08:00-00:00" prop="num0008" align="center" :show-overflow-tooltip="true" /> <el-table-column label="00:00-08:00" prop="num0008" align="center" :show-overflow-tooltip="true" />
<el-table-column label="16:00-08:00" prop="num0816" align="center" :show-overflow-tooltip="true" /> <el-table-column label="08:00-16:00" prop="num0816" align="center" :show-overflow-tooltip="true" />
<el-table-column label="24:00-16:00" prop="num1624" align="center" :show-overflow-tooltip="true" /> <el-table-column label="16:00-24:00" prop="num1624" align="center" :show-overflow-tooltip="true" />
<el-table-column label="12:00-00:00" prop="num0012" align="center" :show-overflow-tooltip="true" /> <el-table-column label="00:00-12:00" prop="num0012" align="center" :show-overflow-tooltip="true" />
<el-table-column label="24:00-12:00" prop="num1224" align="center" :show-overflow-tooltip="true" /> <el-table-column label="12:00-24:00" prop="num1224" align="center" :show-overflow-tooltip="true" />
<el-table-column label="总(24:00-00:00)" prop="num0024" align="center" :show-overflow-tooltip="true" /> <el-table-column label="总(00:00-24:00)" prop="num0024" align="center" :show-overflow-tooltip="true" />
</el-table> </el-table>
</ContentWrap> </ContentWrap>

145
src/views/tjanalysis/hrsizingmilldata/index.vue

@ -0,0 +1,145 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form :model="queryParams" ref="queryForm" :inline="true">
<el-form-item label="日期" prop="date">
<el-date-picker
v-model="queryParams.date"
style="width: 240px; height: 30px"
value-format="YYYY-MM-DD"
type="date"
/>
</el-form-item>
<el-form-item label="位置" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择">
<el-option
v-for="item in types.flagList"
:key="item.value"
:label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="handleQuery">搜索</el-button>
<el-button size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-divider content-position="left"><div style="font-size:16px; float: left"><b>{{names}}</b></div></el-divider>
<el-table
v-loading="loading" :data="dataList" border="true" highlight-current-row="true"
header-row-style="height: 50px; text-align: center" :span-method="arraySpanMethod"
:row-class-name="tableRowClassName" :cell-class-name="tableCellClassName">
<el-table-column label="" prop="name" align="right" :show-overflow-tooltip="true" width="150" />
<el-table-column label="00:00-08:00" prop="num0008" align="center" :show-overflow-tooltip="true" />
<el-table-column label="08:00-16:00" prop="num0816" align="center" :show-overflow-tooltip="true" />
<el-table-column label="16:00-24:00" prop="num1624" align="center" :show-overflow-tooltip="true" />
<el-table-column label="00:00-12:00" prop="num0012" align="center" :show-overflow-tooltip="true" />
<el-table-column label="12:00-24:00" prop="num1224" align="center" :show-overflow-tooltip="true" />
<el-table-column label="总(00:00-24:00)" prop="num0024" align="center" :show-overflow-tooltip="true" />
</el-table>
</ContentWrap>
</template>
<script setup lang="ts">
import * as TjanalysisApi from '@/api/tjanalysis'
import { formatDate } from '@/utils/formatTime'
defineOptions({ name: 'HrSizingMillData' })
const message = useMessage() //
const { t } = useI18n() //
const route = useRoute() //
const routeName = ref()
routeName.value = route.name
const loading = ref(true)
const dataList = ref([])
const names = ref("热轧108定经");
const queryParams = reactive({
date: formatDate(new Date() , 'YYYY-MM-DD'),
flag: '1'
})
const types = reactive({flagList: [
{name: '热轧108定经' , value: '1'},
{name: '热轧90定经' , value: '2'}
]})
const handleQuery = async () => {
getList()
}
const resetQuery = async () => {
queryParams.date = formatDate(new Date() , 'YYYY-MM-DD')
getList()
}
const getList = async () => {
const res = await TjanalysisApi.querySizingmillDay(queryParams)
dataList.value = res.dataList
loading.value = false
if(queryParams.flag=='1'){
names.value = "热轧108定经"
}else{
names.value = "热轧90定经"
}
}
function arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
if (rowIndex == 6) {
if (columnIndex == 0) {
return {
rowspan: 1,
colspan: 10
}
} else if (columnIndex == 10) {
return {
rowspan: 1,
colspan: 2
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
}
function tableRowClassName({row, rowIndex}) {
if (rowIndex === 7) {
return 'success-row'
}
return ''
}
function tableCellClassName({row, column, rowIndex, columnIndex}) {
if (columnIndex == 0) {
return 'success-cols'
}
}
/** 初始化 **/
onMounted(async () => {
getList()
})
</script>
<style>
.el-table .success-row {
background: #f0f9eb;
}
.el-table .success-cols {
font-weight: bold;
}
</style>

7
src/views/tjanalysis/natgasdatahr/index.vue

@ -11,7 +11,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="位置" prop="mcode"> <el-form-item label="位置" prop="mcode">
<el-select v-model="queryParams.mcode" placeholder="请选择"> <el-select v-model="queryParams.flag" placeholder="请选择">
<el-option <el-option
v-for="item in types.flagList" v-for="item in types.flagList"
:key="item.value" :key="item.value"
@ -70,14 +70,13 @@ const routeName = ref()
routeName.value = route.name routeName.value = route.name
const loading = ref(true) const loading = ref(true)
const types = reactive({flagList: [ const types = reactive({flagList: [
{name: '热轧108环炉' , value: 'Gas_hr_001'}, {name: '热轧108环炉' , value: '1'}
// {name: '90' , value: '2'} // ,{name: '90' , value: '2'}
]}) ]})
const dataList = reactive({dList: [] , days: 0}) const dataList = reactive({dList: [] , days: 0})
const queryParams = reactive({ const queryParams = reactive({
date: formatDate(new Date() , 'YYYY-MM-DD'), date: formatDate(new Date() , 'YYYY-MM-DD'),
mcode: 'Gas_hr_001',
flag: '1' flag: '1'
}) })

65
src/views/tjanalysis/waterday/index.vue

@ -10,13 +10,28 @@
type="date" type="date"
/> />
</el-form-item> </el-form-item>
<el-form-item label="位置" prop="mcode">
<el-select v-model="queryParams.mcode" placeholder="请选择"> <el-form-item label="模块" prop="flag">
<el-select v-model="queryParams.flag" placeholder="请选择模块"
@change="flagChange"
>
<el-option <el-option
v-for="item in types.flagList" v-for="item in flagList"
:key="item.value" :key="item.value"
:label="item.name" :label="item.label"
:value="item.value" /> :value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="位置" prop="mcode">
<el-select v-model="queryParams.mcode" placeholder="请选择位置">
<el-option
v-for="item in mcodeList"
:key="item.code"
:label="item.label"
:value="item.code" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -28,7 +43,7 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-divider content-position="left"><div style="font-size:16px; float: left"><b>天然气</b></div></el-divider> <el-divider content-position="left"><div style="font-size:16px; float: left"><b>智能水表</b></div></el-divider>
<el-table <el-table
v-loading="loading" :data="dataList.dList" border="true" highlight-current-row="true" v-loading="loading" :data="dataList.dList" border="true" highlight-current-row="true"
header-row-style="height: 50px; text-align: center"> header-row-style="height: 50px; text-align: center">
@ -58,6 +73,8 @@
<script setup lang="ts"> <script setup lang="ts">
import * as TjanalysisApi from '@/api/tjanalysis' import * as TjanalysisApi from '@/api/tjanalysis'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import * as DictApi from '@/utils/dict'
import * as PszcCommonApi from '@/api/pszc/pszccommon'
import { get } from 'http' import { get } from 'http'
defineOptions({ name: 'Waterday' }) defineOptions({ name: 'Waterday' })
@ -69,21 +86,14 @@ const route = useRoute() // 路由信息
const routeName = ref() const routeName = ref()
routeName.value = route.name routeName.value = route.name
const loading = ref(true) const loading = ref(true)
const types = reactive({flagList: [ const flagList =ref([]);//
{name: '冷拔循环水' , value: 'Gas_hr_001'}, const mcodeList =ref([]);//
{name: '冷拔生产水1' , value: '2'},
{name: '冷拔生产水2' , value: '2'},
{name: '热轧90循环水' , value: '2'},
{name: '热轧90生产水' , value: '2'},
{name: '热轧108循环水' , value: '2'},
{name: '热轧108生产水' , value: '2'}
]})
const dataList = reactive({dList: [] }) const dataList = reactive({dList: [] })
const queryParams = reactive({ const queryParams = reactive({
date: formatDate(new Date() , 'YYYY-MM-DD'), date: formatDate(new Date() , 'YYYY-MM-DD'),
mcode: 'Gas_hr_001', mcode: 'Gas_hr_001',
flag: '1' flag: '0'
}) })
const handleQuery = async () => { const handleQuery = async () => {
@ -106,8 +116,31 @@ const getList = async () => {
} }
const flagChange=async()=>{
if(queryParams.flag=='0'){
mcodeList.value =await PszcCommonApi.selectCdPros({flag: '4' , type: '2'});
}else if(queryParams.flag=='1'){
mcodeList.value =await PszcCommonApi.selectHr108Pros({flag: '6' , type: '2'});
}else if(queryParams.flag=='2'){
mcodeList.value =await PszcCommonApi.selectHr90Pros({flag: '5' , type: '2'});
}
if(mcodeList.value && mcodeList.value.length>0){
queryParams.mcode = mcodeList.value[0].code
}else{
queryParams.mcode=''
}
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
flagList.value = DictApi.getStrDictOptions(DICT_TYPE.Water_Module);
if(flagList.value && flagList.value.length>0){
queryParams.flag = flagList.value[0].value;
mcodeList.value = await PszcCommonApi.selectCdPros({flag: '4' , type: '2'});
if(mcodeList.value && mcodeList.value.length>0){
queryParams.mcode = mcodeList.value[0].code
}
}
getList() getList()
}) })

Loading…
Cancel
Save