Merge branch 'master-dev' into feature-Beta-dev-renpy

# Conflicts:
#	src/views/stationOperation/components/MapMarker.vue
#	src/views/stationOperation/components/MapPane.vue
#	src/views/stationOperation/index.vue
This commit is contained in:
任珮宇 2024-01-30 16:07:05 +08:00
commit a1ba381170
19 changed files with 1000 additions and 987 deletions

View File

@ -28,6 +28,23 @@ export function postAction(url, parameter) {
headers: signHeader headers: signHeader
}) })
} }
//post
export function postActionWithTimeOut(url, parameter, timeout) {
let sign = signMd5Utils.getSign(url, parameter);
//将签名和时间戳,添加在请求接口 Header
// update-begin--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
let signHeader = { "X-Sign": sign, "X-TIMESTAMP": signMd5Utils.getTimestamp() };
// update-end--author:taoyan---date:20220421--for: VUEN-410【签名改造】 X-TIMESTAMP牵扯
return axios({
url: url,
method: 'post',
data: parameter,
headers: signHeader,
timeout
})
}
export function postFileAction(url, parameter) { export function postFileAction(url, parameter) {
let sign = signMd5Utils.getSign(url, parameter); let sign = signMd5Utils.getSign(url, parameter);
//将签名和时间戳,添加在请求接口 Header //将签名和时间戳,添加在请求接口 Header

View File

@ -87,7 +87,7 @@ export const zipFile = async (fileList, zipName) => {
result.forEach(res => { result.forEach(res => {
zip.file(res.fileName, res.data) zip.file(res.fileName, res.data)
}) })
const content = await zip.generateAsync({ type: 'blob' }) const content = await zip.generateAsync({ type: 'blob', compression: 'DEFLATE' })
return new File([content], zipName, { type: content.type }) return new File([content], zipName, { type: content.type })
} }

View File

@ -1,6 +1,7 @@
<template> <template>
<div style="height: 100%"> <div style="height: 100%">
<SearchBar type="alarmAnalysis" @search="handleSearch"></SearchBar> <SearchBar type="alarmAnalysis" @search="handleSearch"></SearchBar>
<a-spin :spinning="spinning">
<div class="chart-layout" id="analysisChartBar"></div> <div class="chart-layout" id="analysisChartBar"></div>
<div class="chart-box"> <div class="chart-box">
<div class="chart-box-left"> <div class="chart-box-left">
@ -12,6 +13,7 @@
<div class="chart-box-right-pie" id="chartRight"></div> <div class="chart-box-right-pie" id="chartRight"></div>
</div> </div>
</div> </div>
</a-spin>
</div> </div>
</template> </template>
@ -29,6 +31,7 @@ export default {
}, },
data() { data() {
return { return {
spinning: false,
xData: [], xData: [],
yData: [], yData: [],
xData_left: [], xData_left: [],
@ -50,6 +53,7 @@ export default {
endDate, endDate,
types, types,
} }
this.spinning = true
this.getAnalysisLogBar({ startDate, endDate }) this.getAnalysisLogBar({ startDate, endDate })
this.getStationNum({ startDate, endDate }) this.getStationNum({ startDate, endDate })
this.getAnalysisSource({ startDate, endDate }) this.getAnalysisSource({ startDate, endDate })
@ -59,7 +63,9 @@ export default {
startDate: obj.startDate, startDate: obj.startDate,
endDate: obj.endDate, endDate: obj.endDate,
} }
getAction('/alarmAnalysisLog/byTime', params).then((res) => { getAction('/alarmAnalysisLog/byTime', params)
.then((res) => {
this.spinning = false
if (res.success) { if (res.success) {
this.xData = res.result.xData this.xData = res.result.xData
this.yData = res.result.yData this.yData = res.result.yData
@ -68,13 +74,18 @@ export default {
this.$message.warning('This operation fails. Contact your system administrator') this.$message.warning('This operation fails. Contact your system administrator')
} }
}) })
.finally(() => {
this.spinning = false
})
}, },
getStationNum(obj) { getStationNum(obj) {
let params = { let params = {
startDate: obj.startDate, startDate: obj.startDate,
endDate: obj.endDate, endDate: obj.endDate,
} }
getAction('/alarmAnalysisLog/byStatoin', params).then((res) => { getAction('/alarmAnalysisLog/byStatoin', params)
.then((res) => {
this.spinning = false
if (res.success) { if (res.success) {
this.xData_left = res.result.xData this.xData_left = res.result.xData
this.yData_left = res.result.yData this.yData_left = res.result.yData
@ -83,13 +94,18 @@ export default {
this.$message.warning('This operation fails. Contact your system administrator') this.$message.warning('This operation fails. Contact your system administrator')
} }
}) })
.finally(() => {
this.spinning = false
})
}, },
getAnalysisSource(obj) { getAnalysisSource(obj) {
let params = { let params = {
startDate: obj.startDate, startDate: obj.startDate,
endDate: obj.endDate, endDate: obj.endDate,
} }
getAction('/alarmAnalysisLog/bySource', params).then((res) => { getAction('/alarmAnalysisLog/bySource', params)
.then((res) => {
this.spinning = false
if (res.success) { if (res.success) {
this.pieData = res.result.pieData this.pieData = res.result.pieData
this.pieTotal = res.result.pieTotal this.pieTotal = res.result.pieTotal
@ -98,6 +114,9 @@ export default {
this.$message.warning('This operation fails. Contact your system administrator') this.$message.warning('This operation fails. Contact your system administrator')
} }
}) })
.finally(() => {
this.spinning = false
})
}, },
drawAnalysis_bar() { drawAnalysis_bar() {
let myChart = echarts.init(document.getElementById('analysisChartBar')) let myChart = echarts.init(document.getElementById('analysisChartBar'))

View File

@ -2,6 +2,7 @@
<div style="height: 100%"> <div style="height: 100%">
<ConditionBox :value="queryParams" @change="getData" @refresh="getData"></ConditionBox> <ConditionBox :value="queryParams" @change="getData" @refresh="getData"></ConditionBox>
<div class="monitor-content"> <div class="monitor-content">
<a-spin :spinning="spinning">
<a-row :gutter="10" style="height: 100%"> <a-row :gutter="10" style="height: 100%">
<a-col :span="12" style="height: 33.3333%" v-for="(el, i) in chartData" :key="i"> <a-col :span="12" style="height: 33.3333%" v-for="(el, i) in chartData" :key="i">
<div class="monitor-content-item"> <div class="monitor-content-item">
@ -17,6 +18,7 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
</a-spin>
<!-- <div style="height: auto; margin-top: 15px; padding-right: 10px"> <!-- <div style="height: auto; margin-top: 15px; padding-right: 10px">
<BoxTitle title="Connect List"></BoxTitle> <BoxTitle title="Connect List"></BoxTitle>
<a-row :gutter="20" style="height: auto; margin-top: 15px"> <a-row :gutter="20" style="height: auto; margin-top: 15px">
@ -60,6 +62,7 @@ export default {
}, },
data() { data() {
return { return {
spinning: false,
queryParams: { queryParams: {
hostId: '', hostId: '',
start: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'), start: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'),
@ -360,7 +363,8 @@ export default {
methods: { methods: {
// //
async getData() { async getData() {
const hide = this.$message.loading('loading...', 0) // const hide = this.$message.loading('loading...', 0)
this.spinning = true
try { try {
const { success, result, message } = await getAction('/systemMonitor/dbDetail', this.queryParams) const { success, result, message } = await getAction('/systemMonitor/dbDetail', this.queryParams)
if (success) { if (success) {
@ -383,8 +387,10 @@ export default {
} }
} catch (error) { } catch (error) {
console.error(error) console.error(error)
this.spinning = false
} finally { } finally {
hide() // hide()
this.spinning = false
} }
}, },
// //
@ -455,6 +461,14 @@ export default {
margin-top: 10px; margin-top: 10px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
/deep/.ant-spin-nested-loading {
width: 100%;
height: 100%;
}
/deep/.ant-spin-container {
width: 100%;
height: 100%;
}
&-item { &-item {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -193,11 +193,11 @@ const columns = [
ellipsis: true, ellipsis: true,
width: 300, width: 300,
}, },
{ // {
title: 'SLOW QUERY', // title: 'SLOW QUERY',
align: 'center', // align: 'center',
dataIndex: 'slowQuery', // dataIndex: 'slowQuery',
}, // },
{ {
title: 'ALARMS', title: 'ALARMS',
align: 'center', align: 'center',

View File

@ -271,18 +271,18 @@ export default {
}, },
onEmailChange(val) { onEmailChange(val) {
this.spinning = true this.spinning = true
this.guageStore.clear() if (this.guageStore) this.guageStore.clear()
this.emailId = val this.emailId = val
}, },
onDateChange(val) { onDateChange(val) {
this.spinning = true this.spinning = true
this.areaMailLine.clear() if (this.areaMailLine) this.areaMailLine.clear()
this.startDate = this.getBeforeDate(val - 1) this.startDate = this.getBeforeDate(val - 1)
this.getEmailStatistics() this.getEmailStatistics()
}, },
onRangeDateChange(date, dateString) { onRangeDateChange(date, dateString) {
this.spinning = true this.spinning = true
this.areaMailLine.clear() if (this.areaMailLine) this.areaMailLine.clear()
this.startDate = dateString[0] this.startDate = dateString[0]
this.endDate = dateString[1] this.endDate = dateString[1]
this.getEmailStatistics() this.getEmailStatistics()
@ -315,7 +315,7 @@ export default {
s = s.substring(0, s.length - 1) s = s.substring(0, s.length - 1)
res.result.usage = s res.result.usage = s
this.emailSpace = res.result this.emailSpace = res.result
this.drawGuageStore() // this.drawGuageStore()
} else { } else {
this.$message.warning('This operation fails. Contact your system administrator') this.$message.warning('This operation fails. Contact your system administrator')
} }

View File

@ -49,6 +49,7 @@
</div> </div>
</div> </div>
<div class="cpu-content"> <div class="cpu-content">
<a-spin :spinning="spinning">
<a-row :gutter="[20, 15]" style="height: 100%"> <a-row :gutter="[20, 15]" style="height: 100%">
<a-col :span="12" style="height: calc(50% + 10px)"> <a-col :span="12" style="height: calc(50% + 10px)">
<div class="cpu-content-item"> <div class="cpu-content-item">
@ -155,6 +156,7 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
</a-spin>
</div> </div>
<a-modal :title="modalTitle" :width="1200" v-model="visible" :maskClosable="false" @cancel="onCancel"> <a-modal :title="modalTitle" :width="1200" v-model="visible" :maskClosable="false" @cancel="onCancel">
<div class="modal-content" id="common_cpu"></div> <div class="modal-content" id="common_cpu"></div>
@ -176,7 +178,7 @@ import * as echarts from 'echarts'
import dateFormat from '@/components/jeecg/JEasyCron/format-date' import dateFormat from '@/components/jeecg/JEasyCron/format-date'
import BoxTitle from '../../components/boxTitle.vue' import BoxTitle from '../../components/boxTitle.vue'
import CreateRules from './createRules.vue' import CreateRules from './createRules.vue'
import { getAction, postAction, httpAction, deleteAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
export default { export default {
components: { components: {
BoxTitle, BoxTitle,
@ -184,6 +186,7 @@ export default {
}, },
data() { data() {
return { return {
spinning: false,
currId: '', currId: '',
visible_rule: false, visible_rule: false,
currLabel: '', currLabel: '',
@ -251,7 +254,9 @@ export default {
start: this.queryParams.startDate, start: this.queryParams.startDate,
end: this.queryParams.endDate, end: this.queryParams.endDate,
} }
getAction('/systemMonitor/queryHostDetails', params).then((res) => { this.spinning = true
getAction('/systemMonitor/queryHostDetails', params)
.then((res) => {
const data = res.result const data = res.result
//CPU utilizatior //CPU utilizatior
this.cpuUtilization = data.find((item) => item.name === 'cpuUtilization') this.cpuUtilization = data.find((item) => item.name === 'cpuUtilization')
@ -303,6 +308,9 @@ export default {
this.drawChart3() this.drawChart3()
this.drawChart4() this.drawChart4()
}) })
.finally(() => {
this.spinning = false
})
}, },
getBeforeHours(num) { getBeforeHours(num) {
let currentTime = moment() let currentTime = moment()
@ -828,6 +836,14 @@ export default {
height: calc(100% - 60px); height: calc(100% - 60px);
margin-top: 10px; margin-top: 10px;
overflow: hidden; overflow: hidden;
/deep/.ant-spin-nested-loading {
width: 100%;
height: 100%;
}
/deep/.ant-spin-container {
width: 100%;
height: 100%;
}
&-item { &-item {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -1,5 +1,6 @@
<template> <template>
<div style="height: 100%"> <div style="height: 100%">
<a-spin :spinning="spinning">
<div class="content-top"> <div class="content-top">
<div style="width: calc(100% - 562px)"> <div style="width: calc(100% - 562px)">
<BoxTitle title="Basic lnformation"></BoxTitle> <BoxTitle title="Basic lnformation"></BoxTitle>
@ -297,12 +298,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <div class="Timeline">
<p>事件时间线</p>
<div>
<div id="timeL" style="width: 100%; height: 140px"></div>
</div>
</div> -->
<div class="content-center"> <div class="content-center">
<BoxTitle title="Event Timelinen"> <BoxTitle title="Event Timelinen">
<template slot="right"> <template slot="right">
@ -359,6 +354,7 @@
<div class="bar-disk" id="disk"></div> <div class="bar-disk" id="disk"></div>
</div> </div>
</div> </div>
</a-spin>
</div> </div>
</template> </template>
@ -417,6 +413,7 @@ export default {
}, },
data() { data() {
return { return {
spinning: false,
types, types,
dataSource: [], dataSource: [],
loading: false, loading: false,
@ -496,120 +493,12 @@ export default {
// }) // })
}, },
methods: { methods: {
// Echarts (线)
// EchartsTimeline() {
// const params = {
// itemId: '37550',
// itemType: 0,
// start: '2023-09-21 00:00:00',
// end: '2023-09-21 18:54:00',
// }
// getAction('/systemMonitor/queryItemHistoryData', params).then((res) => {
// let data = res.result
// const percentage = 100 / data.length
// let indexArr = [[0, 0]]
// for (let i = 1; i < data.length; i++) {
// const num = i + 1
// if (i === data.length - 1) {
// indexArr[0][1] = data.length
// }
// if (data[i - 1].value != data[i].value) {
// indexArr[0][1] = i
// indexArr.unshift([i, num])
// }
// }
// let objArr = [],
// echartData = []
// indexArr.map((item) => {
// objArr.push(data.slice(item[0], item[1]))
// })
// const statusConversion = (val) => {
// if (val == 1) {
// return ''
// } else if (val == 2) {
// return ''
// } else {
// return '线'
// }
// }
// objArr.map((item, index) => {
// let obj = null
// if (index === 0) {
// const arr = objArr[index + 1]
// let timeInterval
// if (arr) {
// timeInterval = [item[0].date, arr[arr.length - 1].date]
// } else {
// timeInterval = [item[0].date, item[item.length - 1].date]
// }
// obj = {
// type: 'Cpu',
// value: statusConversion(item[0].value),
// valueInterval: [0, item.length * percentage],
// timeInterval: timeInterval, //
// }
// } else if (index === objArr.length - 1) {
// const arr = echartData[echartData.length - 1]
// obj = {
// type: 'Cpu',
// value: statusConversion(item[0].value),
// valueInterval: [arr.valueInterval[1], 100],
// timeInterval: [arr.timeInterval[1], item[0].date], //
// }
// } else {
// const arr = echartData[echartData.length - 1],
// arr1 = objArr[index + 1],
// num = arr.valueInterval[1],
// length = item.length * percentage
// obj = {
// type: 'Cpu',
// value: statusConversion(item[0].value),
// valueInterval: [num, length + num],
// timeInterval: [arr.timeInterval[1], arr1[arr1.length - 1].date], //
// }
// }
// echartData.push(obj)
// })
// if (this.barPlot) {
// this.barPlot.changeData(echartData)
// return
// }
// const timeDateHours = (val) => {
// return moment(val).format('HH:mm')
// }
// this.barPlot = new Bar('timeL', {
// data: echartData.reverse(),
// xField: 'valueInterval',
// yField: 'type',
// isRange: true,
// seriesField: 'value',
// padding: 20,
// yAxis: {
// label: null,
// },
// xAxis: {
// label: {
// formatter: (params) => {
// const percentage = params / 100,
// index = parseInt((data.length - 1) * percentage)
// return timeDateHours(data[index].date)
// },
// },
// },
// legend: {
// position: "top-left'",
// },
// tooltip: false,
// })
// this.barPlot.render()
// })
// },
moment, moment,
// Basic lnformation // Basic lnformation
getBasiclnfo(sourceId) { getBasiclnfo(sourceId) {
let params = { hostId: sourceId } let params = { hostId: sourceId }
getAction('/sysServer/detailsBasicInfo', params).then((res) => { getAction('/sysServer/detailsBasicInfo', params).then((res) => {
this.spinning = false
if (res.success) { if (res.success) {
this.detailInfo = res.result this.detailInfo = res.result
this.drawGuageCpu() this.drawGuageCpu()
@ -630,6 +519,7 @@ export default {
end: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'), end: dateFormat(new Date(), 'yyyy-MM-dd hh:mm:ss'),
} }
getAction('/systemMonitor/queryItemHistoryData', params).then((res) => { getAction('/systemMonitor/queryItemHistoryData', params).then((res) => {
this.spinning = false
const arr = res.result.map((x) => x.value) const arr = res.result.map((x) => x.value)
this.cpuData.max = Math.max(...arr).toFixed(2) this.cpuData.max = Math.max(...arr).toFixed(2)
this.cpuData.min = Math.min(...arr).toFixed(2) this.cpuData.min = Math.min(...arr).toFixed(2)
@ -654,6 +544,7 @@ export default {
end: `${dateFormat(new Date(), 'yyyy-MM-dd')} 23:59:59`, end: `${dateFormat(new Date(), 'yyyy-MM-dd')} 23:59:59`,
} }
getAction('/systemMonitor/queryItemHistoryData', params).then((res) => { getAction('/systemMonitor/queryItemHistoryData', params).then((res) => {
this.spinning = false
let data = res.result let data = res.result
startTime = data[0].clock * 1000 startTime = data[0].clock * 1000
let indexArr = [[0, 0]] let indexArr = [[0, 0]]
@ -727,6 +618,7 @@ export default {
} }
}, },
handleBasicItem(i, item) { handleBasicItem(i, item) {
this.spinning = true
this.currIndex = i this.currIndex = i
this.currItemId = item.cpuUsedItemId this.currItemId = item.cpuUsedItemId
this.currSourceId = item.sourceId this.currSourceId = item.sourceId

View File

@ -1,6 +1,6 @@
<template> <template>
<div style="height: 100%;"> <div style="height: 100%">
<a-card :bordered="false" style="height:100%;margin-left: 20px;"> <a-card :bordered="false" style="height: 100%; margin-left: 20px">
<a-tabs default-active-key="detais" @change="handleTabChange"> <a-tabs default-active-key="detais" @change="handleTabChange">
<a-tab-pane key="detais" tab="DETAILS"> <a-tab-pane key="detais" tab="DETAILS">
<Details></Details> <Details></Details>
@ -14,22 +14,22 @@
<a-tab-pane key="cpu" tab="CPU"> <a-tab-pane key="cpu" tab="CPU">
<Cpu></Cpu> <Cpu></Cpu>
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="memory" tab="MEMORY"> <!-- <a-tab-pane key="memory" tab="MEMORY">
MEMORY MEMORY
</a-tab-pane> </a-tab-pane>
<a-tab-pane key="disk" tab="DISK"> <a-tab-pane key="disk" tab="DISK">
DISK DISK
</a-tab-pane> </a-tab-pane> -->
</a-tabs> </a-tabs>
</a-card> </a-card>
</div> </div>
</template> </template>
<script> <script>
import Details from './details.vue'; import Details from './details.vue'
import ServiceProcess from './serviceProcess.vue'; import ServiceProcess from './serviceProcess.vue'
import Monitor from './monitor.vue'; import Monitor from './monitor.vue'
import Cpu from './cpu.vue'; import Cpu from './cpu.vue'
export default { export default {
components: { components: {
Details, Details,
@ -39,13 +39,12 @@ export default {
}, },
methods: { methods: {
handleTabChange(key) { handleTabChange(key) {
console.log(key); console.log(key)
}, },
}, },
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@import "~@/assets/less/TabMenu.less"; @import '~@/assets/less/TabMenu.less';
</style> </style>

View File

@ -49,6 +49,7 @@
</div> </div>
</div> </div>
<div class="monitor-content"> <div class="monitor-content">
<a-spin :spinning="spinning">
<a-row :gutter="[20, 15]" style="height: 100%"> <a-row :gutter="[20, 15]" style="height: 100%">
<a-col v-for="(item, index) in chartDatas" :key="item.title" :span="8" style="height: 34%"> <a-col v-for="(item, index) in chartDatas" :key="item.title" :span="8" style="height: 34%">
<div class="monitor-content-item"> <div class="monitor-content-item">
@ -65,6 +66,7 @@
</div> </div>
</a-col> </a-col>
</a-row> </a-row>
</a-spin>
</div> </div>
<a-modal :title="modalTitle" :width="1200" v-model="visible" :maskClosable="false" @cancel="onCancel"> <a-modal :title="modalTitle" :width="1200" v-model="visible" :maskClosable="false" @cancel="onCancel">
<div class="modal-content" id="common"></div> <div class="modal-content" id="common"></div>
@ -85,7 +87,7 @@ import moment from 'moment'
import * as echarts from 'echarts' import * as echarts from 'echarts'
import dateFormat from '@/components/jeecg/JEasyCron/format-date' import dateFormat from '@/components/jeecg/JEasyCron/format-date'
import BoxTitle from '../../components/boxTitle.vue' import BoxTitle from '../../components/boxTitle.vue'
import { getAction, postAction, httpAction, deleteAction } from '@/api/manage' import { getAction, postAction } from '@/api/manage'
import LineChart from './lineChart.vue' import LineChart from './lineChart.vue'
import CreateRules from './createRules.vue' import CreateRules from './createRules.vue'
export default { export default {
@ -100,11 +102,11 @@ export default {
if (units === 'Kb') { if (units === 'Kb') {
number = number * 1024 number = number * 1024
} }
if (number < 1024 ) return "B" if (number < 1024) return 'B'
number = number / 1024 number = number / 1024
if (number < 1024) return "KB" if (number < 1024) return 'KB'
number = number / 1024 number = number / 1024
if (number < 1024) return "MB" if (number < 1024) return 'MB'
number = number / 1024 number = number / 1024
console.log('TB', number) console.log('TB', number)
if (number < 1024) return 'GB' if (number < 1024) return 'GB'
@ -129,10 +131,11 @@ export default {
// console.log(obj[units],number / obj[units]) // console.log(obj[units],number / obj[units])
return (number / obj[units]).toFixed(2) return (number / obj[units]).toFixed(2)
} }
} },
}, },
data() { data() {
return { return {
spinning: false,
currId: '', currId: '',
visible_rule: false, visible_rule: false,
currLabel: '', currLabel: '',
@ -176,10 +179,11 @@ export default {
sourceType: 'Server', sourceType: 'Server',
sourceId: this.currId, sourceId: this.currId,
} }
this.spinning = true
getAction('/alarmRule/getItems', params).then((res) => { getAction('/alarmRule/getItems', params).then((res) => {
if (res.success) { if (res.success) {
this.MonitorItem = res.result this.MonitorItem = res.result
this.chartDatas = this.MonitorItem.map(f=>({ this.chartDatas = this.MonitorItem.map((f) => ({
title: f.name, title: f.name,
value: f.itemId, value: f.itemId,
type: f.valueType, type: f.valueType,
@ -207,7 +211,8 @@ export default {
} }
try { try {
const res = await this.getMonitorItemData(params) const res = await this.getMonitorItemData(params)
console.log("getMonitorItemData>",res); this.spinning = false
console.log('getMonitorItemData>', res)
item.xData = res.xData item.xData = res.xData
item.data = [ item.data = [
{ {
@ -219,6 +224,7 @@ export default {
item.newUnits = res.newUnits item.newUnits = res.newUnits
} catch (error) { } catch (error) {
console.error(error) console.error(error)
this.spinning = false
} }
}) })
}, },
@ -234,19 +240,19 @@ export default {
return dateFormat(new Date(item.date * 1000), 'hh:mm') return dateFormat(new Date(item.date * 1000), 'hh:mm')
}) })
let item = res.result; let item = res.result
if (item.units === 'B' || item.units === 'Kb') { if (item.units === 'B' || item.units === 'Kb') {
item.newUnits = this.unitConversion(item.min, item.units) item.newUnits = this.unitConversion(item.min, item.units)
newUnits = item.newUnits newUnits = item.newUnits
item.list.map(val =>{ item.list.map((val) => {
let number = val.value let number = val.value
if(item.units ==="Kb"){ if (item.units === 'Kb') {
number = val.value * 1024 number = val.value * 1024
} }
val.value = Number(this.dataConversion(number, item.newUnits)) val.value = Number(this.dataConversion(number, item.newUnits))
data.push({ data.push({
value: Number(val.value), value: Number(val.value),
Date: moment(val.date * 1000).format('hh:mm') Date: moment(val.date * 1000).format('hh:mm'),
}) })
}) })
console.log(item) console.log(item)
@ -260,7 +266,7 @@ export default {
xData, xData,
data, data,
units, units,
newUnits newUnits,
} }
} }
}, },
@ -402,6 +408,14 @@ export default {
height: calc(100% - 60px); height: calc(100% - 60px);
margin-top: 10px; margin-top: 10px;
overflow: hidden; overflow: hidden;
/deep/.ant-spin-nested-loading {
width: 100%;
height: 100%;
}
/deep/.ant-spin-container {
width: 100%;
height: 100%;
}
&-item { &-item {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -57,6 +57,7 @@
</div> </div>
</div> </div>
<div class="service-content"> <div class="service-content">
<a-spin :spinning="spinning">
<div class="service-content-ranked"> <div class="service-content-ranked">
<BoxTitle title="Top-ranked processes in the last hour"> <BoxTitle title="Top-ranked processes in the last hour">
<template slot="right"> <template slot="right">
@ -131,6 +132,7 @@
/> --> /> -->
</div> </div>
</div> </div>
</a-spin>
</div> </div>
</div> </div>
</template> </template>
@ -140,7 +142,7 @@ import moment from 'moment'
import BoxTitle from '../../components/boxTitle.vue' import BoxTitle from '../../components/boxTitle.vue'
import TableList from '../../components/tableList.vue' import TableList from '../../components/tableList.vue'
import dateFormat from '@/components/jeecg/JEasyCron/format-date' import dateFormat from '@/components/jeecg/JEasyCron/format-date'
import { getAction, postAction, httpAction, deleteAction } from '@/api/manage' import { getAction } from '@/api/manage'
import * as echarts from 'echarts' import * as echarts from 'echarts'
// const columns = [ // const columns = [
// { // {
@ -193,27 +195,33 @@ import * as echarts from 'echarts'
// }, // },
// ] // ]
const columns = [{ const columns = [
{
title: 'Name', title: 'Name',
dataIndex: 'name', dataIndex: 'name',
width: '20%' width: '20%',
}, { },
{
title: 'Min(%)', title: 'Min(%)',
dataIndex: 'min', dataIndex: 'min',
width: '20%' width: '20%',
}, { },
{
title: 'Max(%)', title: 'Max(%)',
dataIndex: 'max', dataIndex: 'max',
width: '20%' width: '20%',
}, { },
{
title: 'Avg(%)', title: 'Avg(%)',
dataIndex: 'avg', dataIndex: 'avg',
width: '20%' width: '20%',
}, { },
{
title: 'Now(%)', title: 'Now(%)',
dataIndex: 'now', dataIndex: 'now',
width: '20%' width: '20%',
}] },
]
export default { export default {
components: { components: {
BoxTitle, BoxTitle,
@ -221,6 +229,7 @@ export default {
}, },
data() { data() {
return { return {
spinning: false,
type: 'cpu', type: 'cpu',
queryParams: { queryParams: {
server: undefined, server: undefined,
@ -312,8 +321,10 @@ export default {
start: this.queryParams.startDate, start: this.queryParams.startDate,
end: this.queryParams.endDate, end: this.queryParams.endDate,
} }
const hide = this.$message.loading('loading...', 0) // const hide = this.$message.loading('loading...', 0)
getAction('/systemMonitor/queryHostDetails', params).then((res) => { this.spinning = true
getAction('/systemMonitor/queryHostDetails', params)
.then((res) => {
this.list = res.result this.list = res.result
this.listData = { this.listData = {
list: this.num === 0 ? this.list.cpu : this.list.memory, list: this.num === 0 ? this.list.cpu : this.list.memory,
@ -374,8 +385,10 @@ export default {
this.drawRanked() this.drawRanked()
this.drawProcesCpu() this.drawProcesCpu()
this.drawProcesMenbry() this.drawProcesMenbry()
}).finally(() => { })
hide() .finally(() => {
// hide()
this.spinning = false
}) })
}, },
getBeforeHours(num) { getBeforeHours(num) {

View File

@ -7,16 +7,16 @@
:dataSource="list" :dataSource="list"
:list-style="{ :list-style="{
width: '200px', width: '200px',
height: '400px' height: '400px',
}" }"
:target-keys="targetKeys" :target-keys="targetKeys"
:render="item => item.title" :render="(item) => item.title"
:showSearch="true" :showSearch="true"
:showSelectAll="false" :showSelectAll="false"
@change="handleChange" @change="handleChange"
></a-transfer> ></a-transfer>
<div class="config-user-library-btns"> <!--<div class="config-user-library-btns">
<div> <div>
<a-button type="primary" @click="handleDefault">Default</a-button> <a-button type="primary" @click="handleDefault">Default</a-button>
<a-button type="primary">Load</a-button> <a-button type="primary">Load</a-button>
@ -25,6 +25,10 @@
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button> <a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
<a-button type="primary">Apply</a-button> <a-button type="primary">Apply</a-button>
</div> </div>
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
</div>-->
<div style="margin-top: 20px; display: flex; justify-content: end">
<a-button type="primary" :loading="isSaving" @click="handleSave">Save</a-button>
</div> </div>
</div> </div>
</a-spin> </a-spin>
@ -43,7 +47,7 @@ export default {
return { return {
list: [], list: [],
targetKeys: [], targetKeys: [],
isSaving: false isSaving: false,
} }
}, },
methods: { methods: {
@ -58,17 +62,17 @@ export default {
const { sampleId, inputFileName: fileName } = this.sampleData const { sampleId, inputFileName: fileName } = this.sampleData
const { success, result, message } = await getAction('/gamma/configUserLibrary', { const { success, result, message } = await getAction('/gamma/configUserLibrary', {
sampleId, sampleId,
fileName fileName,
}) })
if (success) { if (success) {
this.isLoading = false this.isLoading = false
const { AllNuclides, UserNuclides } = result const { AllNuclides, UserNuclides } = result
this.list = AllNuclides.map(item => ({ this.list = AllNuclides.map((item) => ({
key: item, key: item,
title: item title: item,
})) }))
this.targetKeys = UserNuclides.map(item => item) this.targetKeys = UserNuclides.map((item) => item)
this.initialTargetKeys = cloneDeep(this.targetKeys) this.initialTargetKeys = cloneDeep(this.targetKeys)
} else { } else {
@ -95,7 +99,7 @@ export default {
const { inputFileName: fileName } = this.sampleData const { inputFileName: fileName } = this.sampleData
const { success, result, message } = await postAction('/gamma/saveUserLibrary', { const { success, result, message } = await postAction('/gamma/saveUserLibrary', {
fileName, fileName,
userLibraryName: this.targetKeys userLibraryName: this.targetKeys,
}) })
if (success) { if (success) {
this.$message.success('Save Success') this.$message.success('Save Success')
@ -107,8 +111,8 @@ export default {
} finally { } finally {
this.isSaving = false this.isSaving = false
} }
} },
} },
} }
</script> </script>

View File

@ -162,6 +162,11 @@ export default {
}, },
methods: { methods: {
loadData(arg) { loadData(arg) {
debugger
// 1
if (arg === 1) {
this.ipagination.current = 1
}
const params = this.getQueryParams() // const params = this.getQueryParams() //
const { startDate, endDate, menuTypes } = params const { startDate, endDate, menuTypes } = params
if (!menuTypes) { if (!menuTypes) {
@ -179,11 +184,6 @@ export default {
return return
} }
// 1
if (arg === 1) {
this.ipagination.current = 1
}
params.AllUsers = this.allUsersValue params.AllUsers = this.allUsersValue
params.CollectStopB = this.collectStopValue params.CollectStopB = this.collectStopValue
params.AcqStartB = this.acqStartValue params.AcqStartB = this.acqStartValue

View File

@ -202,7 +202,7 @@
</template> </template>
<script> <script>
import { getAction, postAction } from '../../../../api/manage' import { getAction, postActionWithTimeOut } from '../../../../api/manage'
import { FilePicker } from '@/utils/FilePicker' import { FilePicker } from '@/utils/FilePicker'
import { readFile, zipFile } from '@/utils/file' import { readFile, zipFile } from '@/utils/file'
import { isSample, PHDParser, PHD_DATA_TYPE } from '@/utils/phdHelper' import { isSample, PHDParser, PHD_DATA_TYPE } from '@/utils/phdHelper'
@ -657,7 +657,7 @@ export default {
async uploadZipFile(file) { async uploadZipFile(file) {
const formData = new FormData() const formData = new FormData()
formData.append('file', file) formData.append('file', file)
const res = await postAction('/spectrumFile/upload', formData) const res = await postActionWithTimeOut('/spectrumFile/upload', formData, 0)
return res return res
}, },

View File

@ -217,7 +217,11 @@ export default {
// //
async _getStationInfo(stationInfo) { async _getStationInfo(stationInfo) {
try { try {
<<<<<<< HEAD
const { success, result, message } = await getAction('/stationOperation/findInfo', { const { success, result, message } = await getAction('/stationOperation/findInfo', {
=======
const { success, result, message } = await getAction('/armd-station-operation/stationOperation/findInfo', {
>>>>>>> master-dev
stationId: stationInfo.stationId, stationId: stationInfo.stationId,
type: stationInfo.stationType, type: stationInfo.stationType,
}) })

View File

@ -695,13 +695,10 @@ export default {
try { try {
const stationIds = this.dataStatusCheckedKeys.filter((key) => -1 == key.toString().indexOf('root_')) const stationIds = this.dataStatusCheckedKeys.filter((key) => -1 == key.toString().indexOf('root_'))
this.isSavingDataRecieveSettings = true this.isSavingDataRecieveSettings = true
const { success, message } = await postAction( const { success, message } = await postAction('/sysUserFocusStation/saveUserFocusByUserId', {
'/sysUserFocusStation/saveUserFocusByUserId',
{
stationIds, stationIds,
...this.dataRecieveStatusModel, ...this.dataRecieveStatusModel,
} })
)
if (success) { if (success) {
this.$message.success('Save Success') this.$message.success('Save Success')
await this.getDataRecieveSettings() await this.getDataRecieveSettings()
@ -738,12 +735,9 @@ export default {
// //
async getDataRecieveSettings() { async getDataRecieveSettings() {
try { try {
const { success, result, message } = await getAction( const { success, result, message } = await getAction('/sysUserFocusStation/findUserFocusByUserId', {
'/sysUserFocusStation/findUserFocusByUserId',
{
userId: this.$store.getters.userInfo.id, userId: this.$store.getters.userInfo.id,
} })
)
if (success) { if (success) {
this.initialDataRecieveSettings = result this.initialDataRecieveSettings = result
} else { } else {
@ -774,13 +768,10 @@ export default {
this.spinLoading = true this.spinLoading = true
try { try {
this.isGettingStatusList = true this.isGettingStatusList = true
const { success, result, message } = await getAction( const { success, result, message } = await getAction('/stationOperation/getDataReceivingStatus', {
'/stationOperation/getDataReceivingStatus',
{
userId: this.$store.getters.userInfo.id, userId: this.$store.getters.userInfo.id,
oneStationId: (this.stationInfo && this.stationInfo.stationId) || '', oneStationId: (this.stationInfo && this.stationInfo.stationId) || '',
} })
)
this.maskVisi = false this.maskVisi = false
this.spinLoading = false this.spinLoading = false
if (success) { if (success) {

View File

@ -71,7 +71,11 @@ const legendList = [
const initialOption = { const initialOption = {
tooltip: { tooltip: {
formatter: (params) => { formatter: (params) => {
return `${params.marker}${params.name}: ${(params.value[3] / 1000 / 60).toFixed()}min` return `
<div>${params.marker}${params.name}</div>
<div>START${dayjs(new Date(params.value[1])).format('YYYY-MM-DD HH:mm:ss')}</div>
<div>END${dayjs(new Date(params.value[2])).format('YYYY-MM-DD HH:mm:ss')}</div>
`
}, },
}, },
grid: [], grid: [],

View File

@ -253,7 +253,11 @@ export default {
async getStationList() { async getStationList() {
try { try {
this.isGettingDataList = true this.isGettingDataList = true
<<<<<<< HEAD
const res = await getAction('/stationOperation/findList') const res = await getAction('/stationOperation/findList')
=======
const res = await getAction('/armd-station-operation/stationOperation/findList')
>>>>>>> master-dev
res.forEach((item) => { res.forEach((item) => {
const { stationId, stationName, stationType } = item const { stationId, stationName, stationType } = item
item._stationId = `${stationId}${stationName}${stationType}` item._stationId = `${stationId}${stationName}${stationType}`
@ -364,7 +368,11 @@ export default {
async getFollowedStationList() { async getFollowedStationList() {
try { try {
this.isGettingFollowedDataList = true this.isGettingFollowedDataList = true
<<<<<<< HEAD
const res = await getAction('/sysUserFocusStation/findList') const res = await getAction('/sysUserFocusStation/findList')
=======
const res = await getAction('/armd-station-operation/sysUserFocusStation/findList')
>>>>>>> master-dev
this.followedDataList = res this.followedDataList = res
const scrollContainer2Ref = this.$refs.scrollContainer2Ref const scrollContainer2Ref = this.$refs.scrollContainer2Ref
@ -383,7 +391,11 @@ export default {
// //
async getStationTypeList() { async getStationTypeList() {
try { try {
<<<<<<< HEAD
const res = await getAction('/stationOperation/findStationType') const res = await getAction('/stationOperation/findStationType')
=======
const res = await getAction('/armd-station-operation/stationOperation/findStationType')
>>>>>>> master-dev
this.stationTypeList = res.filter((item) => item).map((item) => ({ label: item, value: item })) this.stationTypeList = res.filter((item) => item).map((item) => ({ label: item, value: item }))
} catch (error) { } catch (error) {
console.error(error) console.error(error)

View File

@ -1,5 +1,6 @@
<template> <template>
<div class="scheduling"> <div class="scheduling">
<a-spin :spinning="spinningMain">
<!-- 左侧日程列表 --> <!-- 左侧日程列表 -->
<a-card class="scheduling-list"> <a-card class="scheduling-list">
<!-- 标题 --> <!-- 标题 -->
@ -80,7 +81,7 @@
Download Template Download Template
</a-button> </a-button>
<a-upload :custom-request="onImport" accept=".xlsx, .xls" :show-upload-list="false"> <a-upload :custom-request="onImport" accept=".xlsx, .xls" :show-upload-list="false">
<a-button type="primary"> <a-button :loading="isImport" type="primary">
<img src="@/assets/images/global/import.png" alt="" /> <img src="@/assets/images/global/import.png" alt="" />
Import Import
</a-button> </a-button>
@ -109,6 +110,7 @@
</a-calendar> </a-calendar>
<!-- 日历结束 --> <!-- 日历结束 -->
</div> </div>
</a-spin>
<!-- 增加/编辑排班弹窗 --> <!-- 增加/编辑排班弹窗 -->
<custom-modal :title="isAdd ? 'Add' : 'Edit'" :width="845" v-model="visible" :okHandler="submit" destroy-on-close> <custom-modal :title="isAdd ? 'Add' : 'Edit'" :width="845" v-model="visible" :okHandler="submit" destroy-on-close>
@ -217,6 +219,8 @@ export default {
data() { data() {
this.dateFormat = dateFormat this.dateFormat = dateFormat
return { return {
isImport: false,
spinningMain: false,
currentMonth: moment(), // currentMonth: moment(), //
currentDate: moment(), // currentDate: moment(), //
@ -255,6 +259,7 @@ export default {
methods: { methods: {
// //
async getList() { async getList() {
this.spinningMain = true
try { try {
this.isGettingList = true this.isGettingList = true
const { result } = await getAction(`/sysTask/findList?yearMonth=${this.currentMonth.format('YYYY-MM')}`) const { result } = await getAction(`/sysTask/findList?yearMonth=${this.currentMonth.format('YYYY-MM')}`)
@ -262,8 +267,10 @@ export default {
this.schedulingInfo = this.scheduleList[this.currentDate.format(dateFormat)] this.schedulingInfo = this.scheduleList[this.currentDate.format(dateFormat)]
} catch (error) { } catch (error) {
console.error(error) console.error(error)
this.spinningMain = false
} finally { } finally {
this.isGettingList = false this.isGettingList = false
this.spinningMain = false
} }
}, },
@ -407,14 +414,17 @@ export default {
}, },
async onImport({ file }) { async onImport({ file }) {
this.isImport = true
try { try {
const formData = new FormData() const formData = new FormData()
formData.append('file', file) formData.append('file', file)
const { success, failure } = await postAction('/sysTask/importExcel', formData) const { success, failure } = await postAction('/sysTask/importExcel', formData)
this.$message.success(`${success} Success, ${failure} Fail`) this.$message.success(`${success} Success, ${failure} Fail`)
this.isImport = false
this.getList() this.getList()
} catch (error) { } catch (error) {
console.error(error) console.error(error)
this.isImport = false
} }
}, },
@ -645,7 +655,11 @@ export default {
.scheduling { .scheduling {
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
//display: flex;
/deep/.ant-spin-container {
height: 100%;
display: flex; display: flex;
}
&-list { &-list {
flex-shrink: 0; flex-shrink: 0;
width: 350px; width: 350px;