修改 bug
This commit is contained in:
@@ -37,7 +37,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属部门" prop="deptId">
|
<el-form-item label="所属部门" prop="deptId">
|
||||||
<Area style="width: 100%" v-model="form.deptId" />
|
<Area style="width: 200px" v-model="form.deptId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色" prop="role">
|
<el-form-item label="角色" prop="role">
|
||||||
<el-select v-model="form.role" placeholder="请选择角色" multiple collapse-tags>
|
<el-select v-model="form.role" placeholder="请选择角色" multiple collapse-tags>
|
||||||
@@ -54,7 +54,10 @@
|
|||||||
<el-input v-model="form.phone" placeholder="请输入手机号" />
|
<el-input v-model="form.phone" placeholder="请输入手机号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="邮箱" prop="email">
|
<el-form-item label="邮箱" prop="email">
|
||||||
<el-input v-model="form.email" placeholder="请输入描述" />
|
<el-input v-model="form.email" placeholder="请输入描述" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="时间段" prop="limitTime">
|
||||||
|
<el-slider v-model="form.limitTime" style="width: 200px" range show-stops :max="24" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="起始IP" prop="limitIpStart">
|
<el-form-item label="起始IP" prop="limitIpStart">
|
||||||
<el-input v-model="form.limitIpStart" placeholder="请输入描述" />
|
<el-input v-model="form.limitIpStart" placeholder="请输入描述" />
|
||||||
@@ -62,23 +65,21 @@
|
|||||||
<el-form-item label="结束IP" prop="limitIpEnd">
|
<el-form-item label="结束IP" prop="limitIpEnd">
|
||||||
<el-input v-model="form.limitIpEnd" placeholder="请输入描述" />
|
<el-input v-model="form.limitIpEnd" placeholder="请输入描述" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="时间段" prop="limitTime">
|
|
||||||
<el-slider v-model="form.limitTime" range show-stops :max="24" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="短信通知" prop="smsNotice">
|
<el-form-item label="短信通知" prop="smsNotice">
|
||||||
<el-radio-group v-model="form.smsNotice">
|
<el-radio-group v-model="form.smsNotice" style="width: 200px">
|
||||||
<el-radio-button :label="0">是</el-radio-button>
|
<el-radio-button :label="0">是</el-radio-button>
|
||||||
<el-radio-button :label="1">否</el-radio-button>
|
<el-radio-button :label="1">否</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="邮件通知" prop="emailNotice">
|
<el-form-item label="邮件通知" prop="emailNotice" >
|
||||||
<el-radio-group v-model="form.emailNotice">
|
<el-radio-group v-model="form.emailNotice" style="width: 200px">
|
||||||
<el-radio-button :label="0">是</el-radio-button>
|
<el-radio-button :label="0">是</el-radio-button>
|
||||||
<el-radio-button :label="1">否</el-radio-button>
|
<el-radio-button :label="1">否</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户ID">
|
<el-form-item label="用户ID">
|
||||||
<div style="display: flex; width: 100%">
|
<div style="display: flex; width: 100%" >
|
||||||
<el-radio-group v-model="useId">
|
<el-radio-group v-model="useId">
|
||||||
<el-radio-button :label="1">是</el-radio-button>
|
<el-radio-button :label="1">是</el-radio-button>
|
||||||
<el-radio-button :label="0">否</el-radio-button>
|
<el-radio-button :label="0">否</el-radio-button>
|
||||||
@@ -235,7 +236,7 @@ const open = (text: string, data?: anyObj) => {
|
|||||||
form[key] = ''
|
form[key] = ''
|
||||||
}
|
}
|
||||||
form.casualUser = 1
|
form.casualUser = 1
|
||||||
form.limitTime = [0, 23]
|
form.limitTime = [0, 24]
|
||||||
form.role = []
|
form.role = []
|
||||||
form.smsNotice = 0
|
form.smsNotice = 0
|
||||||
form.emailNotice = 0
|
form.emailNotice = 0
|
||||||
|
|||||||
@@ -3,12 +3,7 @@
|
|||||||
<el-dialog v-model="dialogVisible" title="解析列表" width="70%" draggable @closed="close">
|
<el-dialog v-model="dialogVisible" title="解析列表" width="70%" draggable @closed="close">
|
||||||
<TableHeader date-picker></TableHeader>
|
<TableHeader date-picker></TableHeader>
|
||||||
<Table ref="tableRef" />
|
<Table ref="tableRef" />
|
||||||
<template #footer>
|
|
||||||
<div class="dialog-footer">
|
|
||||||
<el-button @click="close">取消</el-button>
|
|
||||||
<!-- <el-button type="primary" @click="close">提交</el-button> -->
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
@@ -20,7 +15,7 @@ import { ArrowLeft } from '@element-plus/icons-vue'
|
|||||||
const emit = defineEmits(['back'])
|
const emit = defineEmits(['back'])
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const height = ref(0)
|
const height = ref(0)
|
||||||
height.value = window.innerHeight < 1080 ? 180 : 400
|
height.value = window.innerHeight < 1080 ? 230 : 450
|
||||||
|
|
||||||
const tableStore: any = new TableStore({
|
const tableStore: any = new TableStore({
|
||||||
url: '/cs-device-boot/portableOfflLog/queryPage',
|
url: '/cs-device-boot/portableOfflLog/queryPage',
|
||||||
@@ -71,14 +66,16 @@ const handleBack = () => {
|
|||||||
}
|
}
|
||||||
const open = () => {
|
const open = () => {
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
|
setTimeout(() => {
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
|
},10)
|
||||||
}
|
}
|
||||||
const close = () => {
|
const close = () => {
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
}
|
}
|
||||||
const updateViewportHeight = async () => {
|
const updateViewportHeight = async () => {
|
||||||
// height.value = window.innerHeight;
|
// height.value = window.innerHeight;
|
||||||
height.value = window.innerHeight < 1080 ? 180 : 400
|
height.value = window.innerHeight < 1080 ? 230 : 450
|
||||||
tableStore.table.publicHeight = height.value
|
tableStore.table.publicHeight = height.value
|
||||||
// await tableStore.index()
|
// await tableStore.index()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<!-- 循环渲染的card 最新数据/历史数据显示 -->
|
<!-- 循环渲染的card 最新数据/历史数据显示 -->
|
||||||
<div class="content">
|
<div class="content" v-loading="tableLoading">
|
||||||
<el-card class="box-card" v-for="(item, index) in tableData" :key="index">
|
<el-card class="box-card" v-for="(item, index) in tableData" :key="index">
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
|
|||||||
@@ -1,29 +1,22 @@
|
|||||||
<!-- 谐波频谱 -->
|
<!-- 谐波频谱 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="harmonic">
|
<div class="harmonic" :style="heightTop">
|
||||||
<div class="harmonic_select">
|
<div class="harmonic_select">
|
||||||
<el-form :model="searchForm" class="history_select" id="history_select">
|
<el-form :model="searchForm" id="history_select">
|
||||||
<el-form-item label="稳态指标">
|
<el-form-item label="稳态指标">
|
||||||
<el-select
|
<el-select multiple collapse-tags collapse-tags-tooltip v-model="searchForm.index"
|
||||||
multiple
|
placeholder="请选择统计指标">
|
||||||
collapse-tags
|
<el-option v-for="item in indexOptions" :key="item.id" :label="item.name"
|
||||||
collapse-tags-tooltip
|
:value="item.id"></el-option>
|
||||||
v-model="searchForm.index"
|
|
||||||
placeholder="请选择统计指标"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in indexOptions"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.name"
|
|
||||||
:value="item.id"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-button type="primary" :loading="loading" @click="init">查询</el-button>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-button type="primary" :loading="loading" @click="init">查询</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="harmonic_body" v-loading="loading">
|
<div class="harmonic_body" v-loading="loading">
|
||||||
<div class="harmonic_body_charts" v-for="(item, index) in chartsList" :key="index">
|
<div class="harmonic_body_charts" :style="{ height: height }" v-for="(item, index) in chartsList"
|
||||||
|
:key="index">
|
||||||
<p class="charts_title">
|
<p class="charts_title">
|
||||||
{{
|
{{
|
||||||
indexOptions.find((item: any) => {
|
indexOptions.find((item: any) => {
|
||||||
@@ -42,6 +35,7 @@ import { queryByCode, queryByid, queryCsDictTree } from '@/api/system-boot/dictT
|
|||||||
import { queryStatistical } from '@/api/system-boot/csstatisticalset'
|
import { queryStatistical } from '@/api/system-boot/csstatisticalset'
|
||||||
import MyEchart from '@/components/echarts/MyEchart.vue'
|
import MyEchart from '@/components/echarts/MyEchart.vue'
|
||||||
import { getDeviceHarmonicSpectrumData, getRealTimeTableList } from '@/api/cs-device-boot/EquipmentDelivery.ts'
|
import { getDeviceHarmonicSpectrumData, getRealTimeTableList } from '@/api/cs-device-boot/EquipmentDelivery.ts'
|
||||||
|
import { mainHeight } from '@/utils/layout'
|
||||||
const searchForm: any = ref({})
|
const searchForm: any = ref({})
|
||||||
searchForm.value = {
|
searchForm.value = {
|
||||||
index: []
|
index: []
|
||||||
@@ -58,6 +52,8 @@ queryByCode('portable-harmonic').then(res => {
|
|||||||
legendDictList.value = vv.data
|
legendDictList.value = vv.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
const heightTop = mainHeight(275)
|
||||||
|
let height: any = mainHeight(275).height
|
||||||
//谐波频谱参数
|
//谐波频谱参数
|
||||||
const params: any = ref({})
|
const params: any = ref({})
|
||||||
const getHarmonicSpectrumParams = (val: any) => {
|
const getHarmonicSpectrumParams = (val: any) => {
|
||||||
@@ -79,6 +75,7 @@ const init = () => {
|
|||||||
})
|
})
|
||||||
//查询谐波频谱
|
//查询谐波频谱
|
||||||
getDeviceHarmonicSpectrumData(params.value).then(res => {
|
getDeviceHarmonicSpectrumData(params.value).then(res => {
|
||||||
|
res.data.length > 3 ? height = mainHeight(275, 3 ).height : height = mainHeight(275, res.data.length ).height
|
||||||
chartsList.value = res.data
|
chartsList.value = res.data
|
||||||
//数据根据相别组装成新数组
|
//数据根据相别组装成新数组
|
||||||
chartsList.value.map((item: any) => {
|
chartsList.value.map((item: any) => {
|
||||||
@@ -98,6 +95,8 @@ const init = () => {
|
|||||||
return
|
return
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//循环渲染图表
|
//循环渲染图表
|
||||||
chartsList.value &&
|
chartsList.value &&
|
||||||
chartsList.value.map((item: any, index: any) => {
|
chartsList.value.map((item: any, index: any) => {
|
||||||
@@ -112,12 +111,12 @@ const init = () => {
|
|||||||
// text: item.showName
|
// text: item.showName
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
grid: {
|
// grid: {
|
||||||
top: '16%',
|
// top: '16%',
|
||||||
bottom: '15%', //也可设置left和right设置距离来控制图表的大小
|
// bottom: '15%', //也可设置left和right设置距离来控制图表的大小
|
||||||
left: '3%',
|
// left: '3%',
|
||||||
right: '4%'
|
// right: '4%'
|
||||||
},
|
// },
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
axisPointer: {
|
axisPointer: {
|
||||||
@@ -225,37 +224,42 @@ watch(
|
|||||||
immediate: true
|
immediate: true
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
onMounted(() => {})
|
onMounted(() => { })
|
||||||
defineExpose({ getHarmonicSpectrumParams })
|
defineExpose({ getHarmonicSpectrumParams })
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.harmonic {
|
.harmonic {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
// height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.harmonic_select {
|
.harmonic_select {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: -30px;
|
top: -32px;
|
||||||
left: 0;
|
left: 0;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
|
|
||||||
.el-button {
|
.el-button {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.harmonic_body {
|
.harmonic_body {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding-bottom: 200px;
|
|
||||||
|
// padding-bottom: 200px;
|
||||||
.harmonic_body_charts {
|
.harmonic_body_charts {
|
||||||
height: 200px;
|
|
||||||
margin: 15px 0;
|
// margin: 15px 0;
|
||||||
border: 1px solid #eee;
|
border: 1px solid #eee;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.charts_title {
|
.charts_title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<!-- 实时数据 - 实时趋势 -->
|
<!-- 实时数据 - 实时趋势 -->
|
||||||
<template>
|
<template>
|
||||||
<div class="realtrend">
|
<div class="realtrend">
|
||||||
qwww
|
|
||||||
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
|
<el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
|
||||||
<el-tab-pane v-for="(item, index) in tabsList" :label="item.groupName" :name="index" :key="index">
|
<el-tab-pane v-for="(item, index) in tabsList" :label="item.groupName" :name="index" :key="index">
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
@@ -13,7 +12,7 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="table">
|
<div class="table" >
|
||||||
<ul v-for="(table, tableIndex) in newTableList" :key="tableIndex">
|
<ul v-for="(table, tableIndex) in newTableList" :key="tableIndex">
|
||||||
<span v-for="(key, keys) in table">
|
<span v-for="(key, keys) in table">
|
||||||
<li v-if="keys != 0">
|
<li v-if="keys != 0">
|
||||||
@@ -151,6 +150,7 @@ const findRealTrendDataByGroupId = (obj: any) => {
|
|||||||
item.unshift({ value: myColumns.value[index].title, count: '' })
|
item.unshift({ value: myColumns.value[index].title, count: '' })
|
||||||
})
|
})
|
||||||
newTableList.value = list
|
newTableList.value = list
|
||||||
|
console.log("🚀 ~ getDeviceTrendData ~ newTableList.value:", newTableList.value)
|
||||||
loading.value = false
|
loading.value = false
|
||||||
init()
|
init()
|
||||||
})
|
})
|
||||||
@@ -209,19 +209,22 @@ const init = () => {
|
|||||||
// backgroundColor: '#0f375f',
|
// backgroundColor: '#0f375f',
|
||||||
dataZoom: [
|
dataZoom: [
|
||||||
{
|
{
|
||||||
show: true,
|
type: 'inside',
|
||||||
|
height: 13,
|
||||||
start: 0,
|
start: 0,
|
||||||
|
bottom: '20px',
|
||||||
end: 20
|
end: 20
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'inside',
|
|
||||||
start: 0,
|
start: 0,
|
||||||
|
height: 13,
|
||||||
|
bottom: '20px',
|
||||||
end: 20
|
end: 20
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
grid: {
|
grid: {
|
||||||
top: '14%',
|
top: '14%',
|
||||||
bottom: '22%', //也可设置left和right设置距离来控制图表的大小
|
bottom: '70px', //也可设置left和right设置距离来控制图表的大小
|
||||||
left: '3%',
|
left: '3%',
|
||||||
right: '5%'
|
right: '5%'
|
||||||
},
|
},
|
||||||
@@ -327,19 +330,21 @@ const handleClick = (tab: any, event: any) => {
|
|||||||
findRealTrendDataByGroupId(params.value)
|
findRealTrendDataByGroupId(params.value)
|
||||||
init()
|
init()
|
||||||
}
|
}
|
||||||
onMounted(() => {})
|
onMounted(() => { })
|
||||||
defineExpose({ open })
|
defineExpose({ open })
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.realtrend {
|
.realtrend {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.realtrend_top {
|
.realtrend_top {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.thead {
|
.thead {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
@@ -349,6 +354,7 @@ defineExpose({ open })
|
|||||||
width: auto;
|
width: auto;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
flex: none;
|
flex: none;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
@@ -357,18 +363,25 @@ defineExpose({ open })
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
li:nth-child(1) {
|
li:nth-child(1) {
|
||||||
flex: none;
|
flex: none;
|
||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ul:nth-child(1) {
|
ul:nth-child(1) {
|
||||||
li {
|
li {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
background: #f4f6f9;
|
background: #f4f6f9;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ul:nth-child(4) {
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.table {
|
.table {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
// min-height: 80px;
|
// min-height: 80px;
|
||||||
@@ -379,10 +392,12 @@ defineExpose({ open })
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
width: auto;
|
width: auto;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
flex: none;
|
flex: none;
|
||||||
width: 100px;
|
width: 100px;
|
||||||
@@ -392,6 +407,7 @@ defineExpose({ open })
|
|||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ul:nth-child(1) {
|
ul:nth-child(1) {
|
||||||
li {
|
li {
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
@@ -399,35 +415,40 @@ defineExpose({ open })
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.table::-webkit-scrollbar {
|
|
||||||
display: none;
|
// .table::-webkit-scrollbar {
|
||||||
}
|
// display: none;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.reverse-table .vxe-body--row .vxe-body--column:first-child {
|
.reverse-table .vxe-body--row .vxe-body--column:first-child {
|
||||||
background-color: #f8f8f9;
|
background-color: #f8f8f9;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .vxe-table--render-wrapper {
|
::v-deep .vxe-table--render-wrapper {
|
||||||
height: 90px !important;
|
height: 90px !important;
|
||||||
max-height: 90px !important;
|
max-height: 90px !important;
|
||||||
overflow-x: auto !important;
|
overflow-x: auto !important;
|
||||||
min-height: 0 !important;
|
min-height: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .body--wrapper {
|
::v-deep .body--wrapper {
|
||||||
height: 90px !important;
|
height: 90px !important;
|
||||||
max-height: 90px !important;
|
max-height: 90px !important;
|
||||||
min-height: 0 !important;
|
min-height: 0 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tab_info {
|
.tab_info {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100vh - 450px);
|
height: calc(100vh - 450px);
|
||||||
|
|
||||||
// overflow: auto;
|
// overflow: auto;
|
||||||
// padding-bottom: 20px;
|
// padding-bottom: 20px;
|
||||||
.charts {
|
.charts {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
height: calc(100vh - 550px);
|
height: calc(100vh - 600px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -212,21 +212,21 @@ const initRadioCharts = () => {
|
|||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
value: 180,
|
value: 0,
|
||||||
name: 'A相',
|
name: 'A相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#FFCC00'
|
color: '#FFCC00'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 90,
|
value: 0,
|
||||||
name: 'B相',
|
name: 'B相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#009900'
|
color: '#009900'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 30,
|
value: 0,
|
||||||
name: 'C相',
|
name: 'C相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#CC0000'
|
color: '#CC0000'
|
||||||
@@ -310,21 +310,21 @@ const initRadioCharts = () => {
|
|||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
value: 160,
|
value: 0,
|
||||||
name: 'A相',
|
name: 'A相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#FFCC00'
|
color: '#FFCC00'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 70,
|
value: 0,
|
||||||
name: 'B相',
|
name: 'B相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#009900'
|
color: '#009900'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
value: 40,
|
value: 0,
|
||||||
name: 'C相',
|
name: 'C相',
|
||||||
itemStyle: {
|
itemStyle: {
|
||||||
color: '#CC0000'
|
color: '#CC0000'
|
||||||
@@ -405,7 +405,7 @@ const init = () => {
|
|||||||
},
|
},
|
||||||
data: [
|
data: [
|
||||||
{
|
{
|
||||||
value: 15,
|
value: 0,
|
||||||
name: 'A相'
|
name: 'A相'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -466,7 +466,6 @@ const iRadioList: any = ref([]),
|
|||||||
const getRealTimeData = async (val: any) => {
|
const getRealTimeData = async (val: any) => {
|
||||||
iRadioList.value = []
|
iRadioList.value = []
|
||||||
vRadioList.value = []
|
vRadioList.value = []
|
||||||
console.log(val, '999999999')
|
|
||||||
val.map((item: any) => {
|
val.map((item: any) => {
|
||||||
//基波电流相角
|
//基波电流相角
|
||||||
if (item.statisticalName == 'Pq_FundIAng') {
|
if (item.statisticalName == 'Pq_FundIAng') {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
collapse-tags-tooltip
|
collapse-tags-tooltip
|
||||||
v-model="searchForm.index"
|
v-model="searchForm.index"
|
||||||
placeholder="请选择统计指标"
|
placeholder="请选择统计指标"
|
||||||
|
@change="onIndexChange($event)"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in indexOptions"
|
v-for="item in indexOptions"
|
||||||
@@ -28,11 +29,13 @@
|
|||||||
v-if="item.countOptions.length != 0"
|
v-if="item.countOptions.length != 0"
|
||||||
label-width="180px"
|
label-width="180px"
|
||||||
>
|
>
|
||||||
|
|
||||||
<el-select
|
<el-select
|
||||||
v-model="item.count"
|
v-model="item.count"
|
||||||
multiple
|
multiple
|
||||||
collapse-tags
|
collapse-tags
|
||||||
collapse-tags-tooltip
|
collapse-tags-tooltip
|
||||||
|
@change="onCountChange($event, index)"
|
||||||
placeholder="请选择谐波次数"
|
placeholder="请选择谐波次数"
|
||||||
>
|
>
|
||||||
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv" :value="vv"></el-option>
|
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv" :value="vv"></el-option>
|
||||||
@@ -274,16 +277,10 @@ const init = async () => {
|
|||||||
right: '3%', // 位置调整
|
right: '3%', // 位置调整
|
||||||
top: 0,
|
top: 0,
|
||||||
bottom: 20,
|
bottom: 20,
|
||||||
width: 400,
|
width: 430,
|
||||||
height: 50
|
height: 50
|
||||||
},
|
},
|
||||||
grid: {
|
|
||||||
left: '3%',
|
|
||||||
right: '5%',
|
|
||||||
bottom: '5%',
|
|
||||||
top: '8%',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
@@ -460,7 +457,7 @@ const handleExport = async () => {
|
|||||||
|
|
||||||
if (deviceData.value.records && deviceData.value.records.length != 0) {
|
if (deviceData.value.records && deviceData.value.records.length != 0) {
|
||||||
let csv = '',
|
let csv = '',
|
||||||
obj = {}
|
obj:any = {}
|
||||||
obj = deviceData.value.records.find((item: any) => {
|
obj = deviceData.value.records.find((item: any) => {
|
||||||
return item.id == activeName.value
|
return item.id == activeName.value
|
||||||
})
|
})
|
||||||
@@ -613,6 +610,17 @@ const initSearchFormIndexAndCount = (list: any) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 判断下拉框是否存在
|
||||||
|
const onCountChange = (val: any, index: any) => {
|
||||||
|
if(val.length==0){
|
||||||
|
countData.value[index].count=[countData.value[index].countOptions[0]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const onIndexChange = (val: any, ) => {
|
||||||
|
if(val.length==0){
|
||||||
|
searchForm.value.index=[indexOptions.value[0].id]
|
||||||
|
}
|
||||||
|
}
|
||||||
watch(
|
watch(
|
||||||
() => searchForm.value.index,
|
() => searchForm.value.index,
|
||||||
(val: any, oldval: any) => {
|
(val: any, oldval: any) => {
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
<!-- CustomInputRenderer.vue -->
|
|
||||||
<template>
|
|
||||||
<el-input
|
|
||||||
ref="inputRef"
|
|
||||||
v-model="inputValue"
|
|
||||||
type="password"
|
|
||||||
placeholder="请输入密码"
|
|
||||||
autocomplete="new-password"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
import { ref, onMounted } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps({
|
|
||||||
value: {
|
|
||||||
type: String,
|
|
||||||
default: ''
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const emit = defineEmits(['update:value']);
|
|
||||||
|
|
||||||
const inputValue = ref(props.value);
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
emit('update:value', inputValue.value);
|
|
||||||
});
|
|
||||||
|
|
||||||
const inputRef = ref(null);
|
|
||||||
|
|
||||||
function getInputValue() {
|
|
||||||
return inputValue.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
defineExpose({
|
|
||||||
getInputValue
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
@@ -22,8 +22,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="filter" v-if="activePathList.length != 0">
|
<div class="filter" v-if="activePathList.length != 0">
|
||||||
<el-input style="width: 200px; height: 32px" placeholder="请输入文件或文件夹名称" clearable
|
<el-input style="width: 200px; height: 32px;-webkit-text-security:disc;" placeholder="请输入文件或文件夹名称"
|
||||||
v-model="filterFileName"></el-input>
|
clearable v-model="filterFileName" type="text"></el-input>
|
||||||
<el-button type="primary" @click="handleSearch" :icon="Search">搜索</el-button>
|
<el-button type="primary" @click="handleSearch" :icon="Search">搜索</el-button>
|
||||||
<el-button @click="handleRefresh" :icon="Refresh">重置</el-button>
|
<el-button @click="handleRefresh" :icon="Refresh">重置</el-button>
|
||||||
<el-upload v-if="activePath != '/'" action="" :auto-upload="false" :show-file-list="false" :on-change="(file: any, fileList: any) => {
|
<el-upload v-if="activePath != '/'" action="" :auto-upload="false" :show-file-list="false" :on-change="(file: any, fileList: any) => {
|
||||||
@@ -117,8 +117,8 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import DeviceTree from '@/components/tree/govern/deviceTree.vue'
|
import DeviceTree from '@/components/tree/govern/deviceTree.vue'
|
||||||
import { mainHeight } from '@/utils/layout'
|
import { mainHeight } from '@/utils/layout'
|
||||||
import { ref, reactive, watch, onMounted, onBeforeUnmount } from 'vue'
|
import { ref, reactive, watch, onMounted, onBeforeUnmount, h } from 'vue'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage, ElMessageBox, ElInput } from 'element-plus'
|
||||||
import {
|
import {
|
||||||
getDeviceRootPath,
|
getDeviceRootPath,
|
||||||
getFileServiceFileOrDir,
|
getFileServiceFileOrDir,
|
||||||
@@ -207,6 +207,29 @@ const handleRefresh = () => {
|
|||||||
dirList.value = currentDirList.value
|
dirList.value = currentDirList.value
|
||||||
reloadCurrentMenu('')
|
reloadCurrentMenu('')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const reboot: any = ref('')
|
||||||
|
const vNode = () => {
|
||||||
|
return h('div', {}, [
|
||||||
|
|
||||||
|
|
||||||
|
h(ElInput, {
|
||||||
|
modelValue: reboot.value,
|
||||||
|
'onUpdate:modelValue': ($event: any) => {
|
||||||
|
reboot.value = $event;
|
||||||
|
},
|
||||||
|
placeholder: '请输入姓名',
|
||||||
|
type: 'password',
|
||||||
|
autocomplete: "off",
|
||||||
|
class: 'displayPass'
|
||||||
|
}),
|
||||||
|
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//装置重启
|
//装置重启
|
||||||
const deviceRestartLoading = ref<boolean>(false)
|
const deviceRestartLoading = ref<boolean>(false)
|
||||||
const handleRestartDevice = () => {
|
const handleRestartDevice = () => {
|
||||||
@@ -214,8 +237,10 @@ const handleRestartDevice = () => {
|
|||||||
ElMessageBox.prompt('二次校验密码确认', '装置重启', {
|
ElMessageBox.prompt('二次校验密码确认', '装置重启', {
|
||||||
confirmButtonText: '确认',
|
confirmButtonText: '确认',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
customClass: 'custom-message-box',
|
customClass: 'customInput',
|
||||||
inputType: 'text'
|
inputType: 'text',
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
.then(({ value }) => {
|
.then(({ value }) => {
|
||||||
@@ -686,4 +711,12 @@ onBeforeUnmount(() => {
|
|||||||
:deep(.el-breadcrumb__separator) {
|
:deep(.el-breadcrumb__separator) {
|
||||||
margin: 0px -10px 0px 0px;
|
margin: 0px -10px 0px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
.customInput {
|
||||||
|
.el-input__inner {
|
||||||
|
-webkit-text-security: disc !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
Reference in New Issue
Block a user