1.首页添加 月度OEE统计 报表
2.可选择日期范围查询单个设备的OEE数据
main
liuhr 2 years ago
parent 80744d746f
commit 81c707fe2a

@ -3,7 +3,8 @@ import { request } from '../../boot/axios';
import { Pagination } from '../class';
import {
EquipmentRecord,
EquipmentNoTimeRecord
EquipmentNoTimeRecord,
EquipmentOEE
} from './model/equipmentRecord';
const pathName = 'EquipmentRecord/';
@ -103,6 +104,20 @@ class EquipmentRecordApi {
);
};
// 获取 设备记录 OEE月度统计
getEquipmentRecordOEEMonthTotal = () => {
return request.get(`${pathName}GetEquipmentRecordOEEMonthTotal`);
};
// 根据 获取设备OEE 信息
GetEquipmentOEEMonthTotal = (val: EquipmentOEE) => {
const format = helper.params(val);
return request.get(
`${pathName}GetEquipmentOEEMonthTotal${format}`
);
};
// 获取设备总览
getEquipmentStateView = () => {
return request.get(`${pathName}GetEquipmentStateView`);

@ -14,3 +14,9 @@ export class EquipmentNoTimeRecord {
begTime!: string;
endTime!: string;
}
export class EquipmentOEE {
equipmentId!: string;
begDate!: string;
endDate!: string;
}

@ -3,7 +3,7 @@
<!-- :fullScreen="true" width="1920" height="923" -->
<v-scale-screen width="1920" height="1080">
<!-- :style="{ height: Screen.height + 'px', width: Screen.width + 'px' }" -->
<q-layout view="hHh LpR fFf">
<q-layout view="hHh LpR fFf" style="width: 100%;height:100%;">
<!-- reveal -->
<q-header elevated class="bg-primary text-white">
<!-- shadow-18 rounded-borders -->

@ -1,14 +1,16 @@
<template>
<!-- <transition appear enter-active-class="animated fadeIn"> -->
<q-card>
<q-card-section class="q-pa-sm" :style="{ height: '100%' }">
<div class="row q-col-gutter-sm">
<q-card style="height:100%;width: 100%;">
<q-card-section class="q-pa-sm" style="height:100%;width: 100%;">
<div class="row q-col-gutter-sm" style="height:100%;width: 100%;">
<div :class="Platform.is.android ? 'col-xl-4' : 'col-xl-4 col-lg-4 col-sm-4'">
<!-- <div class="row"> -->
<!-- 设备运行状态总览 -->
<!-- <div class="col-xl-12 col-lg-12 col-sm-12"> -->
<!-- (Number(Screen.height) - 65)) + 'px' -->
<div ref="equipmentStateViewRef" :style="{
width: (Platform.is.android ? '620px' : '100%'), height: (Platform.is.android ? screenStore.CurrentAppFullscreen == true ? '980' : '930' : (Number(Screen.height) - 65)) + 'px'
width: (Platform.is.android ? '620px' : '100%'),
height: (Platform.is.android ? (screenStore.CurrentAppFullscreen == true ? '980' : '930') : (Number(Screen.height) + 100)) + 'px'
}">
</div>
<!-- </div> -->
@ -17,35 +19,46 @@
<div class="col-xl-8 col-lg-8 col-sm-8">
<div class="row q-col-gutter-sm">
<!-- 月度运行数据 -->
<div class="col-xl-12 col-lg-12 col-sm-12">
<div :class="Platform.is.android ? 'col-6' : 'col-xl-6 col-lg-6 col-sm-6'">
<div ref="equipmentRecordStateMonthTotalRef" :style="{
width: (Platform.is.android ? '1250px' : '100%'), height: (Platform.is.android ? '420' : (Number(Screen.height) / 2 - 50)) + 'px'
width: (Platform.is.android ? '625px' : '100%'),
height: (Platform.is.android ? '420' : (Number(Screen.height) / 2 + 50)) + 'px'
}"></div>
</div>
<!-- 月度OEE统计 -->
<div :class="Platform.is.android ? 'col-6' : 'col-xl-6 col-lg-6 col-sm-6'">
<div ref="equipmentRecordOEEMonthTotalRef" :style="{
width: (Platform.is.android ? '625px' : '100%'),
height: (Platform.is.android ? '420' : (Number(Screen.height) / 2 + 50)) + 'px'
}"></div>
</div>
<div :class="Platform.is.android ? 'col-6' : 'col-xl-6 col-lg-6 col-sm-6'">
<div ref="equipmentRecordFurnaceMonthTotalRef"
:style="{ width: (Platform.is.android ? '600px' : '100%'), height: (Platform.is.android ? '470' : (Number(Screen.height) / 2 - 10)) + 'px' }">
<div ref="equipmentRecordFurnaceMonthTotalRef" :style="{
width: (Platform.is.android ? '600px' : '100%'),
height: (Platform.is.android ? '470' : (Number(Screen.height) / 2 + 50)) + 'px'
}">
</div>
</div>
<div :class="Platform.is.android ? 'col-6' : 'col-xl-6 col-lg-6 col-sm-6'">
<!-- <div ref="deviceRef3" style="width: 100%; height: 400px"></div> -->
<div class="row q-col-gutter-sm">
<!--<div class="col-xl-12 col-lg-12 col-sm-12">
<div :style="'width: 100%; height:' + (Number(Screen.height) / 2 - 100) + 'px'">
<div class="col-xl-12 col-lg-12 col-sm-12">
<div class="text-weight-bold q-pb-md" style="font-size:18px;color: #464646;">设备正常运行率
</div>
</div>
<div class="col-xl-12 col-lg-12 col-sm-12" align="center">
<q-circular-progress show-value font-size="50px" :value="66" size="270px"
:thickness="0.34" color="blue" track-color="grey-3"
class="q-ml-md q-mr-md q-mb-md q-mt-xs text-weight-bold">
66%
</q-circular-progress>
<!-- <div class="col-xl-12 col-lg-12 col-sm-12">
<div :style="'width: 100%; height:' + (Number(Screen.height) / 2 - 100) + 'px'">
<div class="col-xl-12 col-lg-12 col-sm-12">
<div class="text-weight-bold q-pb-md" style="font-size:18px;color: #464646;">
设备正常运行率
</div>
</div>
</div> -->
<div class="col-xl-12 col-lg-12 col-sm-12" align="center">
<q-circular-progress show-value font-size="50px" :value="66" size="270px"
:thickness="0.34" color="blue" track-color="grey-3"
class="q-ml-md q-mr-md q-mb-md q-mt-xs text-weight-bold">
66%
</q-circular-progress>
</div>
</div>
</div> -->
<div class="col-xl-12 col-lg-12 col-sm-12">
<div class="col-xl-12 col-lg-12 col-sm-12">
<div class="text-weight-bold" style="font-size:18px;color: #464646;">当前报警发生设备
@ -126,15 +139,18 @@ const equipmentStateViewRef = ref() // 使用ref创建虚拟DOM引用使用
const equipmentRecordFurnaceMonthTotalRef = ref() //
// const deviceRef3 = ref() //
const equipmentRecordStateMonthTotalRef = ref() //
const equipmentRecordOEEMonthTotalRef = ref(); // OEE
// 绿
const color = ref(['#ffcb05', '#ff2e55', '#58a65b'])
let equipmentStateViewEcharts: any = null; // echartsVue3tooltip
let equipmentRecordStateMonthTotalEcharts: any = null; // echartsVue3tooltip
let equipmentRecordOEEMonthTotalEcharts: any = null; // echartsVue3tooltip
let equipmentRecordFurnaceMonthTotalEcharts: any = null; // echartsVue3tooltip
let equipmentStateViewTimer: NodeJS.Timer | null = null; //
let equipmentRecordStateMonthTotalTimer: NodeJS.Timer | null = null; //
let equipmentRecordOEEMonthTotalTimer: NodeJS.Timer | null = null; // OEE
let equipmentRecordFurnaceMonthTotalTimer: NodeJS.Timer | null = null; //
let getEquipmentAlarmListTimer: NodeJS.Timer | null = null; //
@ -155,6 +171,13 @@ onMounted(() => {
EquipmentRecordStateMonthTotal();
}, 10000);
// OEE
equipmentRecordOEEMonthTotalEcharts = echarts.init(equipmentRecordOEEMonthTotalRef.value);// domecharts
EquipmentRecordOEEMonthTotal();
equipmentRecordOEEMonthTotalTimer = setInterval(() => {
EquipmentRecordOEEMonthTotal();
}, 10000);
//
equipmentRecordFurnaceMonthTotalEcharts = echarts.init(equipmentRecordFurnaceMonthTotalRef.value); // domecharts
EquipmentRecordFurnaceMonthTotal();
@ -173,6 +196,7 @@ onBeforeUnmount(() => {
// timer
clearInterval(Number(equipmentStateViewTimer))
clearInterval(Number(equipmentRecordStateMonthTotalTimer))
clearInterval(Number(equipmentRecordOEEMonthTotalTimer)) // OEE
clearInterval(Number(equipmentRecordFurnaceMonthTotalTimer))
clearInterval(Number(getEquipmentAlarmListTimer))
})
@ -462,6 +486,7 @@ const EquipmentRecordStateMonthTotal = () => {
},
legend: {
top: 1,
right: '2%',
data: ['运行时间', '待机时间', '报警时间']
},
xAxis: [
@ -563,6 +588,155 @@ const EquipmentRecordStateMonthTotal = () => {
});
}
// OEE
const EquipmentRecordOEEMonthTotal = () => {
let oeeData: any = []; //
let month: any = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
// OEE
equipmentRecordApi.getEquipmentRecordOEEMonthTotal().then((res: any) => {
month.forEach((m: any) => {
res.forEach((item: any) => {
if (item.totalMonth == m) {
oeeData.push(item.oee);
}
else {
oeeData.push(0);
}
})
})
//
let equipmentRecordOEEMonthTotalOption = {
title: {
text: 'OEE月度统计'
},
//
grid: {
x: 45,
// y: 50,
x2: 5,
y2: 40,
// width: {totalWidth} - x - x2,
// height: {totalHeight} - y - y2,
// backgroundColor: 'rgba(0,0,0,0)',
// borderWidth: 1,
// borderColor: '#ccc'
},
color: ['#176bbf'],
tooltip: {
enable: true,
show: true,
trigger: 'axis',
// axisPointer: {
// // type: 'cross',
// crossStyle: {
// color: '#999'
// }
// },
// formatter: function (params: any) {
// debugger
// let name = params.name //
// let percent = params.percent //
// let value = params.value[params.encode.value[0]] //
// return echarts.format.addCommas(`${name}: ${value} ${percent}%`); // formatter
// }
},
toolbox: {
feature: {
dataView: { show: false, readOnly: false },
magicType: { show: false, type: ['line', 'bar'] },
restore: { show: false },
saveAsImage: { show: false }
}
},
legend: {
top: 1,
right: '2%',
data: ['OEE数据']
},
xAxis: [
{
type: 'category',
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// axisPointer: {
// type: 'shadow'
// }
}
],
yAxis: [
{
type: 'value',
name: 'OEE data',
// position: 'left',
alignTicks: true,
// min: 0,
// max: 50,
// interval: 5,
boundaryGap: ['0%', '10%'],
axisLine: {
show: true,
lineStyle: {
color: '#6e7079'
}
},
axisLabel: {
formatter: '{value}'
},
splitLine: {
show: true //线
}
}
],
series: [
{
name: 'OEE数据',
type: 'line',
data: oeeData,
itemStyle: {
normal: {
label: {
color: '#176bbf',
position: 'top', //
show: true // 线
},
}
},
areaStyle: { //
color: { // // 线 x0, y0, x2, y2, 0 - 1 globalCoord `true`
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: '#176bbf', // 0%
},
{
offset: 1,
color: '#5398dd' // 100%
}
],
global: false, // false
}
},
xAxisIndex: 0,
tooltip: {
valueFormatter: function (value: any) {
return value + ' %';
}
}
}
]
}
// 使
equipmentRecordOEEMonthTotalEcharts.setOption(equipmentRecordOEEMonthTotalOption);
categoryEcharts(equipmentRecordOEEMonthTotalEcharts, equipmentRecordOEEMonthTotalOption);
});
}
//
const EquipmentRecordFurnaceMonthTotal = () => {
let Balzers: any = [];

@ -1,6 +1,6 @@
<template>
<!-- <transition appear enter-active-class="animated fadeIn"> -->
<q-card :style="{ height: '100%' }">
<q-card>
<!-- 搜索条件 -->
<q-card-section :style="{ height: '100%' }">
<div class="row q-col-gutter-md">

@ -1,5 +1,5 @@
<template>
<q-dialog v-model="visible">
<q-dialog v-model="visible" persistent>
<!-- style="height: 750px; max-width: 50vw" -->
<q-card style="max-width: 30vw">
<q-card-section class="no-padding">
@ -10,22 +10,63 @@
<q-tooltip content-class="bg-amber text-black shadow-4"> 关闭 </q-tooltip>
</q-btn>
</q-card-actions>
<q-card-section>
<div class="row q-col-gutter-md items-center">
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-input class="text-h6" outlined readonly label="总运行时间(小时)" v-model="formData.val1" />
</div>
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-input class="text-h6" outlined readonly label="总报警时间(小时)" v-model="formData.val2" />
</div>
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-input class="text-h6" outlined readonly label="总待机时间(小时)" v-model="formData.val3" />
</div>
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-input class="text-h6" outlined readonly label="OEE时序" v-model="formData.val4" />
<q-form ref="myForm">
<q-card-section>
<div class="row q-col-gutter-md">
<div class="col-xl-6 col-lg-6 col-xs-12">
<q-input dense label="日期范围" ref="rangDateRef" readonly outlined v-model="rangDateText">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">选择日期范围</q-tooltip>
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
<q-date v-model="rangeDate" years-in-month-view landscape range
mask="YYYY-MM-DD" @update:model-value="rangeDateUpdate">
<div class="row">
<div class="col-3">
<q-btn v-close-popup label="本月" @click="setCurrMonth"
color="orange" flat />
</div>
<div class="col-3">
<q-btn v-close-popup label="本年" @click="setCurrYear" color="red"
flat />
</div>
<div class="col-3"></div>
<div class="col-3">
<q-btn v-close-popup label="关闭" color="primary" flat />
</div>
</div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
<div class="col-xl-4 col-lg-4 col-xs-12">
<q-btn push color="primary" label="查询" icon="search" @click="getPage()">
<q-tooltip content-class="bg-amber text-black shadow-4">查询</q-tooltip>
</q-btn>
</div>
</div>
</q-card-section>
</q-form>
</q-card-section>
<q-separator />
<q-card-section>
<div class="row q-col-gutter-md items-center">
<div class="col-xl-6 col-lg-6 col-sm-6">
<q-input class="text-h6" outlined readonly label="总运行时间(小时)" v-model="formData.val1" />
</div>
</q-card-section>
<div class="col-xl-6 col-lg-6 col-sm-6">
<q-input class="text-h6" outlined readonly label="总报警时间(小时)" v-model="formData.val2" />
</div>
<div class="col-xl-6 col-lg-6 col-sm-6">
<q-input class="text-h6" outlined readonly label="总待机时间(小时)" v-model="formData.val3" />
</div>
<div class="col-xl-6 col-lg-6 col-sm-6">
<q-input class="text-h6" outlined readonly label="OEE时序" v-model="formData.val4" />
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right">
@ -35,11 +76,13 @@
</q-dialog>
</template>
<script setup lang="ts">
import { parse } from 'src/Utils/date';
import { stringify } from 'querystring';
import { Notify, date } from 'quasar'
import { EquipmentOEE } from 'src/api/equipmentRecord/model/equipmentRecord'
import { equipmentRecordApi } from 'src/api/equipmentRecord/equipmentRecordApi';
import { ref } from 'vue';
const rangeDate = ref();
const rangDateText = ref();
const visible = ref(false);
const currObj = ref();
const formData = ref({
@ -48,23 +91,94 @@ const formData = ref({
val3: 0, //
val4: '', // OEE
});
const equipmentOEE = ref(new EquipmentOEE());
const clickForm = (e: any) => {
currObj.value = JSON.parse(JSON.stringify(e)); // ;
equipmentRecordApi.getEquipmentRecordTotalDetail(e.id).then((res: any) => {
console.log(res)
equipmentOEE.value.equipmentId = e.id;
setCurrMonthToDay();
visible.value = true;
};
//
const setCurrMonthToDay = () => {
var d = new Date(); //
var monthStart = date.formatDate(new Date(d.getFullYear(), d.getMonth(), 1), 'YYYY-MM-DD'); //
var monthEnd = date.formatDate(d, 'YYYY-MM-DD'); // 23:59:59
rangDateText.value = `${monthStart} ~ ${monthEnd}`
rangeDate.value = { from: `${monthStart}`, to: `${monthEnd}` }
equipmentOEE.value.begDate = monthStart;
equipmentOEE.value.endDate = monthEnd;
getPage();
}
const getPage = () => {
if (rangeDate.value) {
equipmentOEE.value.begDate = rangeDate.value.from;
equipmentOEE.value.endDate = rangeDate.value.to;
}
equipmentRecordApi.GetEquipmentOEEMonthTotal(equipmentOEE.value).then((res: any) => {
formData.value.val1 = res.totalRunningTime; //(Math.random() * 100).toFixed(1)
formData.value.val2 = res.totalAlarmTime; // (Math.random() * 100).toFixed(1)
formData.value.val3 = res.totalStopTime; // (Math.random() * 100).toFixed(1)
formData.value.val4 = (res.totalRunningTime / 24).toFixed(2) + '%' // (Math.random() * 24).toFixed(1)
formData.value.val4 = res.oee; // (res.totalRunningTime / 24).toFixed(2) + '%' // (Math.random() * 24).toFixed(1)
})
visible.value = true;
};
}
const closeDialog = () => {
visible.value = false;
};
//
const setCurrMonth = () => {
var d = new Date(); //
var monthStart = date.formatDate(new Date(d.getFullYear(), d.getMonth(), 1), 'YYYY-MM-DD'); //
var monthEnd = date.formatDate(new Date(d.getFullYear(), d.getMonth() + 1, 0), 'YYYY-MM-DD'); // 23:59:59
rangDateText.value = `${monthStart} ~ ${monthEnd}`
rangeDate.value = { from: `${monthStart}`, to: `${monthEnd}` }
}
//
const setCurrYear = () => {
var d = new Date(); //
var monthStart = date.formatDate(new Date(d.getFullYear(), 0, 1), 'YYYY-MM-DD'); //
var monthEnd = date.formatDate(new Date(d.getFullYear(), 12, 0), 'YYYY-MM-DD'); // 23:59:59
rangDateText.value = `${monthStart} ~ ${monthEnd}`
rangeDate.value = { from: `${monthStart}`, to: `${monthEnd}` }
}
//
const rangeDateUpdate = (value: any, reason: any, details) => {
if (reason === 'add-range') {
const start = value.from //
const end = value.to //
const diff = date.getDateDiff(new Date(end), new Date(start), 'days') //
// 365
if (diff >= 366) {
Notify.create({
position: 'top',
message: '日期范围不能大于365天',
icon: 'feedback',
color: 'negative',
})
rangDateText.value = ''
return
}
rangDateText.value = start + ' ~ ' + end
}
if (reason === 'add-day') {
Notify.create({
position: 'top',
message: '日期范围不能为同一天!',
icon: 'feedback',
color: 'negative',
})
rangDateText.value = ''
return
}
}
defineExpose({
clickForm
});

@ -1,90 +1,89 @@
<template>
<transition appear enter-active-class="animated fadeIn">
<q-card class="shadow-24">
<!-- 搜索条件 -->
<q-card-section :style="{ height: '100%' }">
<div class="row q-col-gutter-md">
<!-- 刷新 查询 -->
<div class="col-xl-2 col-lg-2 col-sm-3">
<q-btn-group push glossy>
<q-btn push label="刷新" icon="refresh" @click="reFresh()">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">清空所有条件并刷新数据</q-tooltip>
</q-btn>
<q-btn push label="查询" icon="search" @click="getPage()">
<!-- <transition appear enter-active-class="animated fadeIn"> -->
<q-card>
<!-- 搜索条件 -->
<q-card-section :style="{ height: '100%' }">
<div class="row q-col-gutter-md">
<!-- 刷新 查询 -->
<div class="col-xl-2 col-lg-2 col-sm-3">
<q-btn-group push glossy>
<q-btn push label="刷新" icon="refresh" @click="reFresh()">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">清空所有条件并刷新数据</q-tooltip>
</q-btn>
<q-btn push label="查询" icon="search" @click="getPage()">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">按条件查询数据</q-tooltip>
</q-btn>
</q-btn-group>
</div>
<!-- 搜索条件 -->
<div class="col-xl-2 col-lg-2 col-sm-3">
<q-input dense label="日期范围" ref="rangDateRef" readonly outlined v-model="rangDateText">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">按条件查询数据</q-tooltip>
</q-btn>
</q-btn-group>
</div>
<!-- 搜索条件 -->
<div class="col-xl-2 col-lg-2 col-sm-3">
<q-input dense label="日期范围" ref="rangDateRef" readonly outlined v-model="rangDateText">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-tooltip content-class="bg-amber text-black shadow-4" :offset="[10, 10]"
content-style="font-size: 12px">选择日期范围</q-tooltip>
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
<q-date v-model="rangeDate" years-in-month-view landscape range mask="YYYY-MM-DD"
@update:model-value="rangeDateUpdate">
<!-- <div class="row items-center justify-end">
content-style="font-size: 12px">选择日期范围</q-tooltip>
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
<q-date v-model="rangeDate" years-in-month-view landscape range mask="YYYY-MM-DD"
@update:model-value="rangeDateUpdate">
<!-- <div class="row items-center justify-end">
<q-btn v-close-popup label="关闭" color="primary" flat />
</div> -->
<div class="row">
<div class="col-3">
<q-btn v-close-popup label="本月" @click="setCurrMonth" color="orange"
flat />
</div>
<div class="col-3">
<q-btn v-close-popup label="本年" @click="setCurrYear" color="red" flat />
</div>
<div class="col-3"></div>
<div class="col-3">
<q-btn v-close-popup label="关闭" color="primary" flat />
</div>
<div class="row">
<div class="col-3">
<q-btn v-close-popup label="本月" @click="setCurrMonth" color="orange" flat />
</div>
<div class="col-3">
<q-btn v-close-popup label="本年" @click="setCurrYear" color="red" flat />
</div>
<div class="col-3"></div>
<div class="col-3">
<q-btn v-close-popup label="关闭" color="primary" flat />
</div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
</div>
</q-date>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
</q-card-section>
<q-card-section style="padding:0 10px 15px 10px;">
<div class="row q-col-gutter-md">
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-table class="my-sticky-header-column-table" :rows="list" row-key="id" separator="cell"
:loading="loading" :columns="columns" @request="onRequest"
:table-style="{ height: (Platform.is.android ? screenStore.CurrentAppFullscreen == true ? Number(Screen.height) + 350 + 'px' : Number(Screen.height) + 300 + 'px' : Number(Screen.height) - 190 + 'px') }"
flat bordered v-model:pagination="pagination" :rows-per-page-options="[20, 30, 40, 50, 100]">
<template v-slot:body="props">
<q-tr :props="props" class="tr_hover">
<q-td style="font-size: 16px;" key="index" :props="props">{{ props.rowIndex + 1
}}</q-td>
<q-td style="font-size: 16px;" key="equipmentCode" :props="props">{{
props.row.equipmentCode }}</q-td>
<q-td style="font-size: 16px;" key="equipmentName" :props="props">{{
props.row.equipmentName }}</q-td>
<q-td style="font-size: 16px;" key="equipmentType" :props="props">{{
props.row.equipmentType
}}</q-td>
<q-td style="font-size: 16px;" key="furnaceNum" :props="props">{{ props.row.furnaceNum
}}</q-td>
<q-td style="font-size: 16px;" key="totalRunningTime" :props="props">{{
props.row.totalRunningTime }}</q-td>
<q-td style="font-size: 16px;" key="totalAlarmTime" :props="props">{{
props.row.totalAlarmTime }}</q-td>
<q-td style="font-size: 16px;" key="totalStopTime" :props="props">{{
props.row.totalStopTime }}</q-td>
</q-tr>
</template>
</q-table>
</div>
</div>
</q-card-section>
<q-card-section style="padding:0 10px 15px 10px;">
<div class="row q-col-gutter-md">
<div class="col-xl-12 col-lg-12 col-sm-12">
<q-table class="my-sticky-header-column-table" :rows="list" row-key="id" separator="cell"
:loading="loading" :columns="columns" @request="onRequest"
:table-style="{ height: (Platform.is.android ? screenStore.CurrentAppFullscreen == true ? Number(Screen.height) + 350 + 'px' : Number(Screen.height) + 300 + 'px' : Number(Screen.height) - 190 + 'px') }"
flat bordered v-model:pagination="pagination" :rows-per-page-options="[20, 30, 40, 50, 100]">
<template v-slot:body="props">
<q-tr :props="props" class="tr_hover">
<q-td style="font-size: 16px;" key="index" :props="props">{{ props.rowIndex + 1
}}</q-td>
<q-td style="font-size: 16px;" key="equipmentCode" :props="props">{{
props.row.equipmentCode }}</q-td>
<q-td style="font-size: 16px;" key="equipmentName" :props="props">{{
props.row.equipmentName }}</q-td>
<q-td style="font-size: 16px;" key="equipmentType" :props="props">{{
props.row.equipmentType
}}</q-td>
<q-td style="font-size: 16px;" key="furnaceNum" :props="props">{{ props.row.furnaceNum
}}</q-td>
<q-td style="font-size: 16px;" key="totalRunningTime" :props="props">{{
props.row.totalRunningTime }}</q-td>
<q-td style="font-size: 16px;" key="totalAlarmTime" :props="props">{{
props.row.totalAlarmTime }}</q-td>
<q-td style="font-size: 16px;" key="totalStopTime" :props="props">{{
props.row.totalStopTime }}</q-td>
</q-tr>
</template>
</q-table>
</div>
</q-card-section>
</q-card>
</transition>
</div>
</q-card-section>
</q-card>
<!-- </transition> -->
</template>
<script setup lang="ts">

Loading…
Cancel
Save