2025年05月08日 1.0.5 1.治超模块中新增一列“超限率”,以千分比显示,并可以在查询条件中增加超限率选项

2.治超新增一个定时自动査询和展示的功能,自动查询、直接显示出入口超限车辆列表,并将超限率作为自动査询条件,如设置为>=50‰,则只自动査询超限率大于等于5%的货车
                                     3.治超增加超载车辆档案导出功能,需要有车牌号,入口站、入口站通行时间、出口站、出口站通行时间、重量、车型、轴数、超限率、照片
main
gaoshuguang 7 months ago
parent 0e47206dbf
commit 58e0e0054d

@ -2,6 +2,11 @@
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AlibabaVarargsParameter" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="58" name="Java" />
</Languages>
</inspection_tool>
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>

@ -128,6 +128,13 @@ public class EntranceQueryServiceImpl implements EntranceQueryService {
.le(WeightCheck::getOverweight, map.get("overWeightEnd"))
;
}
//增加超限率查询条件
if (ObjectUtils.isNotEmpty(map.get("overRate")) ) {
mpjLambdaWrapper
.ge(WeightCheck::getOverrate, map.get("overRate"))
;
}
mapIPage = weightCheckMapper.selectJoinPage(page, Map.class, mpjLambdaWrapper);
} catch (Exception e) {
log.error("[uuid:{}]-查询-入口治超数据失败,报错为:{}", uuid, e.getMessage(), e);

@ -129,6 +129,13 @@ public class ExportQueryServiceImpl implements ExportQueryService {
.le(OutWeight::getOverWeight, map.get("overWeightEnd"))
;
}
//增加超限率查询条件
if (ObjectUtils.isNotEmpty(map.get("overRate")) ) {
mpjLambdaWrapper
.ge(OutWeight::getOverRate, map.get("overRate"))
;
}
mapIPage = outWeightMapper.selectJoinPage(page, Map.class, mpjLambdaWrapper);
} catch (Exception e) {
log.error("[uuid:{}]-查询-出口治超数据失败,报错为:{}", uuid, e.getMessage(), e);

@ -143,7 +143,12 @@ public class OverLimitRatioServiceImpl implements OverLimitRatioService {
.ge("classDate", startDate)
.le("classDate", endDate);
}
outWraps.eq("exStationId", map.get("gbstationid"));
QueryWrapper<NameTable> queryWrap = new QueryWrapper<>();
queryWrap.eq("STANO", map.get("stano"));
NameTable nameTable = nameTableMapper.selectOne(queryWrap);
String gbstationid = nameTable.getGbstationid();
outWraps.eq("exStationId", gbstationid);
Long totalTrucks = outWeightMapper.selectCount(outWraps);
List<OutWeight> checkList = outWeightMapper.selectList(outWraps);
outWraps.gt("overWeight", 0);
@ -152,9 +157,6 @@ public class OverLimitRatioServiceImpl implements OverLimitRatioService {
if (checkList != null && checkList.size() > 0) {
stanName = checkList.get(0).getExStationName();
} else {
QueryWrapper<NameTable> queryWrap = new QueryWrapper<>();
queryWrap.eq("STANO", map.get("stano"));
NameTable nameTable = nameTableMapper.selectOne(queryWrap);
stanName = nameTable.getStaname();
}
SumOverLimitResult sum = new SumOverLimitResult();

@ -53,7 +53,8 @@ public class QueryImageServiceImpl implements QueryImageService {
return ImageUtil.convertImageToBase64Str("D:\\桌面\\123.jpg");
}
String port = PropertiesUtil.getValue("server.port");
String imageQueryUrl = Constant.HTTP_127_0_0_1 + port + Constant.IMAGE_INTERFACE_NAME;
//String imageQueryUrl = Constant.HTTP_127_0_0_1 + port + Constant.IMAGE_INTERFACE_NAME;
String imageQueryUrl = "http://10.15.149.194:9440" + Constant.IMAGE_INTERFACE_NAME;
//String imageQueryUrl = PropertiesUtil.getValue("VideoQueryUrl");
String result = null;
//10-图像查询
@ -88,7 +89,8 @@ public class QueryImageServiceImpl implements QueryImageService {
String uuid = UuidUtil.getUuid();
//String VideoQueryUrl = PropertiesUtil.getValue("VideoQueryUrl");
String port = PropertiesUtil.getValue("server.port");
String VideoQueryUrl = Constant.HTTP_127_0_0_1 + port + Constant.IMAGE_INTERFACE_NAME;
//String VideoQueryUrl = Constant.HTTP_127_0_0_1 + port + Constant.IMAGE_INTERFACE_NAME;
String VideoQueryUrl = "http://10.15.149.194:9440" + Constant.IMAGE_INTERFACE_NAME;
//视频资源存储信息
response.reset();
try {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -5,8 +5,8 @@
<meta charset="UTF-8"/>
<title></title>
<script type="module" crossorigin src="./assets/index.c85aae82.js"></script>
<link rel="stylesheet" href="./assets/index.f63ed527.css">
<script type="module" crossorigin src="./assets/index.789b0b87.js"></script>
<link rel="stylesheet" href="./assets/index.af5eb09b.css">
</head>
<body>
<div id="app">

@ -1,6 +0,0 @@
序号 日期 版本号 说明
1 2025年02月21日 1.0.0 初始版本号合并项目实时信息查询RealTimeInfoQuery、治超信息查询ZCDataQuery、导入导出ImportExport原名DemoUtil
2 2025年04月18日 1.0.1 兼容达梦数据库,页面增加版本号显示
3 2025年04月23日 1.0.2 治超页面显示视频问题修复
4 2025年04月25日 1.0.3 治超出口页面显示车侧身图片问题修复
5 2025年05月06日 1.0.4 治超入口、出口页面增加车道号查询条件

@ -0,0 +1,9 @@
序号 日期 版本号 说明
1 2025年02月21日 1.0.0 初始版本号合并项目实时信息查询RealTimeInfoQuery、治超信息查询ZCDataQuery、导入导出ImportExport原名DemoUtil
2 2025年04月18日 1.0.1 兼容达梦数据库,页面增加版本号显示
3 2025年04月23日 1.0.2 治超页面显示视频问题修复
4 2025年04月25日 1.0.3 治超出口页面显示车侧身图片问题修复
5 2025年04月29日 1.0.4 治超入口、出口页面增加车道号查询条件
6 2025年05月08日 1.0.5 1.治超模块中新增一列“超限率”,以千分比显示,并可以在查询条件中增加超限率选项
2.治超新增一个定时自动査询和展示的功能,自动查询、直接显示出入口超限车辆列表,并将超限率作为自动査询条件,如设置为>=50‰,则只自动査询超限率大于等于5%的货车
3.治超增加超载车辆档案导出功能,需要有车牌号,入口站、入口站通行时间、出口站、出口站通行时间、重量、车型、轴数、超限率、照片

@ -5,8 +5,8 @@
<meta charset="UTF-8"/>
<title></title>
<script type="module" crossorigin src="./assets/index.c85aae82.js"></script>
<link rel="stylesheet" href="./assets/index.f63ed527.css">
<script type="module" crossorigin src="./assets/index.789b0b87.js"></script>
<link rel="stylesheet" href="./assets/index.af5eb09b.css">
</head>
<body>
<div id="app">

@ -1,6 +0,0 @@
序号 日期 版本号 说明
1 2025年02月21日 1.0.0 初始版本号合并项目实时信息查询RealTimeInfoQuery、治超信息查询ZCDataQuery、导入导出ImportExport原名DemoUtil
2 2025年04月18日 1.0.1 兼容达梦数据库,页面增加版本号显示
3 2025年04月23日 1.0.2 治超页面显示视频问题修复
4 2025年04月25日 1.0.3 治超出口页面显示车侧身图片问题修复
5 2025年05月06日 1.0.4 治超入口、出口页面增加车道号查询条件

File diff suppressed because one or more lines are too long

@ -5,8 +5,8 @@
<meta charset="UTF-8"/>
<title></title>
<script type="module" crossorigin src="./assets/index.c85aae82.js"></script>
<link rel="stylesheet" href="./assets/index.f63ed527.css">
<script type="module" crossorigin src="./assets/index.789b0b87.js"></script>
<link rel="stylesheet" href="./assets/index.af5eb09b.css">
</head>
<body>
<div id="app">

@ -1,6 +0,0 @@
序号 日期 版本号 说明
1 2025年02月21日 1.0.0 初始版本号合并项目实时信息查询RealTimeInfoQuery、治超信息查询ZCDataQuery、导入导出ImportExport原名DemoUtil
2 2025年04月18日 1.0.1 兼容达梦数据库,页面增加版本号显示
3 2025年04月23日 1.0.2 治超页面显示视频问题修复
4 2025年04月25日 1.0.3 治超出口页面显示车侧身图片问题修复
5 2025年05月06日 1.0.4 治超入口、出口页面增加车道号查询条件

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -5,8 +5,8 @@
<meta charset="UTF-8"/>
<title></title>
<script type="module" crossorigin src="./assets/index.c85aae82.js"></script>
<link rel="stylesheet" href="./assets/index.f63ed527.css">
<script type="module" crossorigin src="./assets/index.789b0b87.js"></script>
<link rel="stylesheet" href="./assets/index.af5eb09b.css">
</head>
<body>
<div id="app">

@ -1,6 +1,6 @@
{
"hash": "a5eaf273",
"browserHash": "9fbca59b",
"browserHash": "57f094eb",
"optimized": {
"@element-plus/icons-vue": {
"src": "../../@element-plus/icons-vue/dist/index.js",
@ -301,9 +301,48 @@
"file": "element-plus_es_components_collapse-item_style_css.js",
"fileHash": "86417c72",
"needsInterop": false
},
"element-plus/es/components/switch/style/css": {
"src": "../../element-plus/es/components/switch/style/css.mjs",
"file": "element-plus_es_components_switch_style_css.js",
"fileHash": "19a0b944",
"needsInterop": false
},
"element-plus/es/components/input-number/style/css": {
"src": "../../element-plus/es/components/input-number/style/css.mjs",
"file": "element-plus_es_components_input-number_style_css.js",
"fileHash": "eb144a27",
"needsInterop": false
},
"element-plus/es/components/descriptions/style/css": {
"src": "../../element-plus/es/components/descriptions/style/css.mjs",
"file": "element-plus_es_components_descriptions_style_css.js",
"fileHash": "22aa80df",
"needsInterop": false
},
"element-plus/es/components/tag/style/css": {
"src": "../../element-plus/es/components/tag/style/css.mjs",
"file": "element-plus_es_components_tag_style_css.js",
"fileHash": "4eaf870d",
"needsInterop": false
},
"element-plus/es/components/descriptions-item/style/css": {
"src": "../../element-plus/es/components/descriptions-item/style/css.mjs",
"file": "element-plus_es_components_descriptions-item_style_css.js",
"fileHash": "14bb71f9",
"needsInterop": false
},
"element-plus/es/components/tooltip/style/css": {
"src": "../../element-plus/es/components/tooltip/style/css.mjs",
"file": "element-plus_es_components_tooltip_style_css.js",
"fileHash": "c33b36aa",
"needsInterop": false
}
},
"chunks": {
"chunk-FU2XPRBJ": {
"file": "chunk-FU2XPRBJ.js"
},
"chunk-DM34QLRC": {
"file": "chunk-DM34QLRC.js"
},

@ -31,16 +31,27 @@
<el-table-column prop="weight" label="车货总重(千克)" align="center"></el-table-column>
<el-table-column prop="limitWeight" label="超载重量(千克)" align="center"></el-table-column>
<el-table-column prop="overWeight" label="超限重量(千克)" align="center"></el-table-column>
<el-table-column prop="overRate" label="超限率(‰)" align="center"></el-table-column>
<el-table-column fixed="right" label="操作" width="150" align="center">
<el-table-column fixed="right" label="操作" width="140" align="center">
<template v-slot="scope">
<el-tooltip effect="dark" placement="top" content="查看详情">
<el-button
style="margin-top: 0%;"
@click="viewThis(scope.row)" type="success"
size="default"
:icon="View">查看详情
:icon="View">
</el-button>
</el-tooltip>
<el-tooltip effect="dark" placement="top" content="车辆档案">
<el-button
style="margin-top: 0%;"
@click="viewThis2(scope.row)" type="info"
size="default"
:icon="ZoomIn">
</el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
@ -280,7 +291,12 @@
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="超限率(‰):" :label-width="formLabelWidth" prop="overRate">
<el-input v-model="viewThisRow.overRate" autocomplete="off" :disabled="true"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
@ -350,7 +366,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="viewShow=false" type="primary"> 关闭</el-button>
<el-button @click="viewShow=false" type="warning"> 关闭</el-button>
</span>
</template>
</el-dialog>
@ -359,6 +375,24 @@
:close-on-click-modal="false">
<el-form :model="searchForm" size="medium" ref="searchForm">
<el-row>
<el-col :span="10">
<el-form-item label="超限率(‰):" :label-width="searchFormLabelWidth" prop="overRate">
<el-input-number v-model="searchForm.overRate" :step="10" :min="0" :max="1000"
:precision="0"/>
</el-form-item>
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="10">
<el-form-item label="是否开启自动查询:" :label-width="searchFormLabelWidth">
<el-switch
v-model="isAutomatic"
active-text="开启"
inactive-text="关闭"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="统计日期:" :label-width="searchFormLabelWidth" prop="dT">
<el-date-picker
@ -504,6 +538,209 @@
</span>
</template>
</el-dialog>
<el-dialog title="车辆档案" v-model="viewShow2" width="90%" top="0.5%" destroy-on-close
:close-on-click-modal="false">
<div id="printJS-form">
<el-descriptions
class="margin-top"
:column="3"
border
>
<el-descriptions-item
label-align="center" align="center"
label="入口站名:"
>
{{ viewThisRow2.enStationName }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="出口站名称:"
>
{{ viewThisRow2.exStationName }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车牌号码:"
>
{{ viewThisRow2.vehicleId }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车牌颜色:"
>
{{ viewThisRow2.colortext }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车型:"
>
{{ viewThisRow2.typetext }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="轴数:"
>
{{ viewThisRow2.alexCount }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="超载重量(千克):"
>
{{ viewThisRow2.limitWeight }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="超限重量(千克):"
>
{{ viewThisRow2.overWeight }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="超限率(‰):"
>
{{ viewThisRow2.overRate }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
:span="1.5"
label="入口站通行时间:"
>
{{ viewThisRow2.enTime }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
:span="1.5"
label="出口站通行时间:"
>
{{ viewThisRow2.checkTime }}
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车头照片:"
:span="1"
>
<div v-loading="carFrontPicLoad" element-loading-text="图像加载中...">
<el-image
style="min-width:100px;max-width: 370px; height: 270px"
:src="carFrontPic"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="carFrontPicList"
:initial-index="4"
fit="fill"
>
<template #error>
<div class="image-slot" style="min-width:100px;max-width: 370px; height: 270px">
图片不存在
</div>
</template>
</el-image>
</div>
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车尾照片:"
:span="1"
>
<div v-loading="carRearPicLoad" element-loading-text="图像加载中...">
<el-image
style="min-width:100px;max-width: 370px; height: 270px"
:src="carRearPic"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="carRearPicList"
:initial-index="4"
fit="fill"
>
<template #error>
<div class="image-slot" style="min-width:100px;max-width: 370px; height: 270px">
图片不存在
</div>
</template>
</el-image>
</div>
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车侧身照片:"
:span="1"
v-if="isDisplayed"
>
<div v-loading="platePicLoad" element-loading-text="图像加载中...">
<el-image
style="min-width:100px;max-width: 370px; height: 270px"
:src="platePic"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="platePicList"
:initial-index="4"
fit="fill"
>
<template #error>
<div class="image-slot" style="min-width:100px;max-width: 370px; height: 270px">
图片不存在
</div>
</template>
</el-image>
</div>
</el-descriptions-item>
<el-descriptions-item
label-align="center" align="center"
label="车牌照片:"
:span="1"
v-if="!isDisplayed"
>
<div v-loading="platePicLoad" element-loading-text="图像加载中...">
<el-image
style="min-width:100px;max-width: 370px; height: 270px"
:src="platePic"
:zoom-rate="1.2"
:max-scale="7"
:min-scale="0.2"
:preview-src-list="platePicList"
:initial-index="4"
fit="fill"
>
<template #error>
<div class="image-slot" style="min-width:100px;max-width: 370px; height: 270px">
图片不存在
</div>
</template>
</el-image>
</div>
</el-descriptions-item>
</el-descriptions>
</div>
<template #footer>
<span class="dialog-footer">
<el-button @click="printDetails()" type="primary" icon="Printer"> 打印 </el-button>
<el-button @click="viewShow2=false" type="warning"> 关闭</el-button>
</span>
</template>
</el-dialog>
</template>
<script>
@ -523,6 +760,7 @@ import Dark from '../../views/Dark.vue'
import moment from "moment";
import axios from "axios";
import {queryProgramVersion} from "../../util/api/realtimeinfoquery/api";
import printJS from "print-js";
export default {
name: "ExportQuery",
@ -530,6 +768,9 @@ export default {
data() {
return {
//
isAutomatic: true,
timer: null, //
version: '', //
fieldMapping: {
LISTNO: "listno",
@ -642,6 +883,7 @@ export default {
total: 0,
pageNum: 1,
pageSize: 10,
overRate: 50, // ()
dT: [moment(new Date().setTime(new Date().getTime())).format('YYYY-MM-DD'), moment(new Date()).format('YYYY-MM-DD')],
},
searchShow: false,
@ -657,9 +899,137 @@ export default {
tableLoading: false,
viewShow: false,
viewThisRow: {},
viewShow2: false,
viewThisRow2: {},
}
},
methods: {
//
startTimer() {
if (!this.timer) {
this.timer = setInterval(() => {
this.network(); // 15
}, 15000); // 15
}
},
//
stopTimer() {
if (this.timer) {
clearInterval(this.timer);
this.timer = null;
}
},
printDetails() {
this.dateFormat(); //
printJS({
printable: "printJS-form",
type: 'html',
scanStyle: true,
targetStyles: ['*', '.el-descriptions', '.el-image', '#page-break'],
header: `
<div class="titleDiv">
<h3 style='text-align: center;color:#000;width:100%' class="title">车辆档案</h3>
<div style='float: right' class="label">打印时间${this.nowTime}</div>
<div style="clear: both;"></div>
</div>
`,
style: `
@media print {
body {
font-size: 12px;
margin: 0;
padding: 0;
orientation: landscape !important;
}
.titleDiv {
margin-bottom: 20px;
}
.margin-top {
width: 100%;
margin: 0;
padding: 0;
}
/* el-descriptions 占满整行 */
.margin-top .el-descriptions {
width: 100% ;
display: block; /* 强制块级布局 */
page-break-inside: avoid; /* 避免内容被分割到两页 */
}
/* 清除默认边距和内边距 */
.margin-top .el-descriptions__body {
width: 100%;
margin: 0;
padding: 0;
}
/* 描述项独占一行 */
.margin-top .el-descriptions__item {
display: block;
width: 100%;
}
.el-descriptions {
display: flex;
flex-direction: column;
width: 100%;
}
.el-descriptions-item {
display: flex;
justify-content: space-between;
width: 100%;
margin-bottom: 10px;
}
.el-image {
max-width: 100%;
height: auto;
}
.image-slot {
min-width: 100px;
max-width: 370px;
height: 270px;
margin-bottom: 10px;
}
}
`
});
},
dateFormat() {
const date = new Date();
const year = date.getFullYear();
const month = (date.getMonth() + 1).toString().padStart(2, '0');
const day = date.getDate().toString().padStart(2, '0');
const hours = date.getHours().toString().padStart(2, '0');
const minutes = date.getMinutes().toString().padStart(2, '0');
const seconds = date.getSeconds().toString().padStart(2, '0');
this.nowTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
},
viewThis2(row) { //
// console.log(row)
this.viewThisRow2 = row
this.viewThisRow = row
this.viewShow2 = true
//
this.showCarFrontPic = false;
this.notCarFrontPic = false;
this.queryCarFrontPic();
//
this.showCarRearPic = false;
this.notCarRearPic = false;
this.queryCarRearPic();
//
this.showPlatePic = false;
this.notPlatePic = false;
this.queryPlatePic();
},
//
queryUserBasic() {
//id
@ -794,6 +1164,8 @@ export default {
},
queryPlatePic() {
this.platePicLoad = true;
this.platePic = ''
this.platePicList = []
let platepic ='';
let imgType ='';
if (this.isDisplayed){
@ -804,7 +1176,7 @@ export default {
imgType='15'
}
// const platepic = this.viewThisRow.sidePicId;
console.log(platepic)
// console.log(platepic)
if (platepic === null || platepic === '' || platepic === '0' || platepic === undefined || platepic === 'undefined') {
this.notPlatePic = true;
this.platePicLoad = false;
@ -838,6 +1210,8 @@ export default {
},
queryCarRearPic() {
this.carRearPicLoad = true;
this.carRearPic = ''
this.carRearPicList = []
const tailpic = this.viewThisRow.tailPicId;
if (tailpic === null || tailpic === '' ||tailpic === '0'|| tailpic === undefined || tailpic === 'undefined') {
this.notCarRearPic = true;
@ -871,6 +1245,8 @@ export default {
},
queryCarFrontPic() {
this.carFrontPicLoad = true;
this.carFrontPic = ''
this.carFrontPicList = []
const listno = this.viewThisRow.listno;
if (listno === null || listno === '' ||listno === '0'|| listno === undefined || listno === 'undefined') {
this.notCarFrontPic = true;
@ -929,6 +1305,7 @@ export default {
total: 0,
pageNum: 1,
pageSize: 10,
overRate: 50, // ()
dT: [moment(new Date().setTime(new Date().getTime())).format('YYYY-MM-DD'), moment(new Date()).format('YYYY-MM-DD')],
};
this.network()
@ -972,6 +1349,18 @@ export default {
})
},
},
watch: {
// isAutomatic
isAutomatic(newVal) {
if (newVal) {
// isAutomatic true
this.startTimer();
} else {
// isAutomatic false
this.stopTimer();
}
},
},
mounted() {
this.queryUserBasic();
this.queryJurisdictionexportStaList();
@ -987,7 +1376,12 @@ export default {
// document.documentElement.style.setProperty('--el-bg-color', '#2f39a4')
this.myHeight = (document.documentElement.clientHeight) * 0.86;
this.fetchVersion();
}
this.startTimer();
},
beforeDestroy() {
//
this.stopTimer();
},
}
</script>

Loading…
Cancel
Save