修改 bug

This commit is contained in:
GGJ
2024-09-27 16:22:34 +08:00
parent a6ee1bd322
commit 80d0bb9d41
9 changed files with 146 additions and 122 deletions

View File

@@ -37,7 +37,7 @@
</el-select>
</el-form-item>
<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 label="角色" prop="role">
<el-select v-model="form.role" placeholder="请选择角色" multiple collapse-tags>
@@ -56,29 +56,30 @@
<el-form-item label="邮箱" prop="email">
<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 label="起始IP" prop="limitIpStart">
<el-input v-model="form.limitIpStart" placeholder="请输入描述" />
</el-form-item>
<el-form-item label="结束IP" prop="limitIpEnd">
<el-input v-model="form.limitIpEnd" placeholder="请输入描述" />
</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-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="1"></el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="邮件通知" prop="emailNotice">
<el-radio-group v-model="form.emailNotice">
<el-form-item label="邮件通知" prop="emailNotice" >
<el-radio-group v-model="form.emailNotice" style="width: 200px">
<el-radio-button :label="0"></el-radio-button>
<el-radio-button :label="1"></el-radio-button>
</el-radio-group>
</el-form-item>
<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-button :label="1"></el-radio-button>
<el-radio-button :label="0"></el-radio-button>
@@ -235,7 +236,7 @@ const open = (text: string, data?: anyObj) => {
form[key] = ''
}
form.casualUser = 1
form.limitTime = [0, 23]
form.limitTime = [0, 24]
form.role = []
form.smsNotice = 0
form.emailNotice = 0

View File

@@ -3,12 +3,7 @@
<el-dialog v-model="dialogVisible" title="解析列表" width="70%" draggable @closed="close">
<TableHeader date-picker></TableHeader>
<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>
</template>
<script lang="ts" setup>
@@ -20,7 +15,7 @@ import { ArrowLeft } from '@element-plus/icons-vue'
const emit = defineEmits(['back'])
const dialogVisible = ref(false)
const height = ref(0)
height.value = window.innerHeight < 1080 ? 180 : 400
height.value = window.innerHeight < 1080 ? 230 : 450
const tableStore: any = new TableStore({
url: '/cs-device-boot/portableOfflLog/queryPage',
@@ -71,14 +66,16 @@ const handleBack = () => {
}
const open = () => {
dialogVisible.value = true
setTimeout(() => {
tableStore.index()
},10)
}
const close = () => {
dialogVisible.value = false
}
const updateViewportHeight = async () => {
// height.value = window.innerHeight;
height.value = window.innerHeight < 1080 ? 180 : 400
height.value = window.innerHeight < 1080 ? 230 : 450
tableStore.table.publicHeight = height.value
// await tableStore.index()
}

View File

@@ -131,7 +131,7 @@
"
>
<!-- 循环渲染的card 最新数据/历史数据显示 -->
<div class="content">
<div class="content" v-loading="tableLoading">
<el-card class="box-card" v-for="(item, index) in tableData" :key="index">
<template #header>
<div class="clearfix">

View File

@@ -1,29 +1,22 @@
<!-- 谐波频谱 -->
<template>
<div class="harmonic">
<div class="harmonic" :style="heightTop">
<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-select
multiple
collapse-tags
collapse-tags-tooltip
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 multiple collapse-tags collapse-tags-tooltip 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-form-item>
</el-form>
<el-button type="primary" :loading="loading" @click="init">查询</el-button>
</el-form>
</div>
<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">
{{
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 MyEchart from '@/components/echarts/MyEchart.vue'
import { getDeviceHarmonicSpectrumData, getRealTimeTableList } from '@/api/cs-device-boot/EquipmentDelivery.ts'
import { mainHeight } from '@/utils/layout'
const searchForm: any = ref({})
searchForm.value = {
index: []
@@ -58,6 +52,8 @@ queryByCode('portable-harmonic').then(res => {
legendDictList.value = vv.data
})
})
const heightTop = mainHeight(275)
let height: any = mainHeight(275).height
//谐波频谱参数
const params: any = ref({})
const getHarmonicSpectrumParams = (val: any) => {
@@ -79,6 +75,7 @@ const init = () => {
})
//查询谐波频谱
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.map((item: any) => {
@@ -98,6 +95,8 @@ const init = () => {
return
})
//循环渲染图表
chartsList.value &&
chartsList.value.map((item: any, index: any) => {
@@ -112,12 +111,12 @@ const init = () => {
// text: item.showName
}
],
grid: {
top: '16%',
bottom: '15%', //也可设置left和right设置距离来控制图表的大小
left: '3%',
right: '4%'
},
// grid: {
// top: '16%',
// bottom: '15%', //也可设置left和right设置距离来控制图表的大小
// left: '3%',
// right: '4%'
// },
tooltip: {
trigger: 'axis',
axisPointer: {
@@ -225,37 +224,42 @@ watch(
immediate: true
}
)
onMounted(() => {})
onMounted(() => { })
defineExpose({ getHarmonicSpectrumParams })
</script>
<style lang="scss" scoped>
.harmonic {
width: 100%;
height: 100%;
// height: 100%;
display: flex;
flex-direction: column;
position: relative;
.harmonic_select {
width: 50%;
height: 30px;
display: flex;
position: absolute;
top: -30px;
top: -32px;
left: 0;
justify-content: flex-start;
.el-button {
margin-left: 10px;
}
}
.harmonic_body {
flex: 1;
overflow-y: auto;
padding-bottom: 200px;
// padding-bottom: 200px;
.harmonic_body_charts {
height: 200px;
margin: 15px 0;
// margin: 15px 0;
border: 1px solid #eee;
position: relative;
.charts_title {
position: absolute;
top: 10px;

View File

@@ -1,7 +1,6 @@
<!-- 实时数据 - 实时趋势 -->
<template>
<div class="realtrend">
qwww
<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">
<div v-loading="loading">
@@ -13,7 +12,7 @@
</li>
</ul>
</div>
<div class="table">
<div class="table" >
<ul v-for="(table, tableIndex) in newTableList" :key="tableIndex">
<span v-for="(key, keys) in table">
<li v-if="keys != 0">
@@ -151,6 +150,7 @@ const findRealTrendDataByGroupId = (obj: any) => {
item.unshift({ value: myColumns.value[index].title, count: '' })
})
newTableList.value = list
console.log("🚀 ~ getDeviceTrendData ~ newTableList.value:", newTableList.value)
loading.value = false
init()
})
@@ -209,19 +209,22 @@ const init = () => {
// backgroundColor: '#0f375f',
dataZoom: [
{
show: true,
type: 'inside',
height: 13,
start: 0,
bottom: '20px',
end: 20
},
{
type: 'inside',
start: 0,
height: 13,
bottom: '20px',
end: 20
}
],
grid: {
top: '14%',
bottom: '22%', //也可设置left和right设置距离来控制图表的大小
bottom: '70px', //也可设置left和right设置距离来控制图表的大小
left: '3%',
right: '5%'
},
@@ -327,19 +330,21 @@ const handleClick = (tab: any, event: any) => {
findRealTrendDataByGroupId(params.value)
init()
}
onMounted(() => {})
onMounted(() => { })
defineExpose({ open })
</script>
<style lang="scss" scoped>
.realtrend {
width: 100%;
height: 100%;
.realtrend_top {
width: 100%;
height: auto;
display: flex;
justify-content: space-between;
align-items: center;
.thead {
height: 100%;
overflow-y: hidden;
@@ -349,6 +354,7 @@ defineExpose({ open })
width: auto;
height: 40px;
display: flex;
li {
flex: none;
width: 100px;
@@ -357,18 +363,25 @@ defineExpose({ open })
text-align: center;
list-style: none;
}
li:nth-child(1) {
flex: none;
width: 200px;
}
}
ul:nth-child(1) {
li {
font-weight: 800;
background: #f4f6f9;
}
}
ul:nth-child(4) {
height: 48px;
}
}
.table {
flex: 1;
// min-height: 80px;
@@ -379,10 +392,12 @@ defineExpose({ open })
overflow-x: auto;
overflow-y: hidden;
position: relative;
ul {
width: auto;
height: 40px;
display: flex;
li {
flex: none;
width: 100px;
@@ -392,6 +407,7 @@ defineExpose({ open })
list-style: none;
}
}
ul:nth-child(1) {
li {
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 {
background-color: #f8f8f9;
}
::v-deep .vxe-table--render-wrapper {
height: 90px !important;
max-height: 90px !important;
overflow-x: auto !important;
min-height: 0 !important;
}
::v-deep .body--wrapper {
height: 90px !important;
max-height: 90px !important;
min-height: 0 !important;
}
.tab_info {
width: 100%;
height: calc(100vh - 450px);
// overflow: auto;
// padding-bottom: 20px;
.charts {
width: 100%;
margin-top: 10px;
height: calc(100vh - 550px);
height: calc(100vh - 600px);
}
}
</style>

View File

@@ -212,21 +212,21 @@ const initRadioCharts = () => {
},
data: [
{
value: 180,
value: 0,
name: 'A相',
itemStyle: {
color: '#FFCC00'
}
},
{
value: 90,
value: 0,
name: 'B相',
itemStyle: {
color: '#009900'
}
},
{
value: 30,
value: 0,
name: 'C相',
itemStyle: {
color: '#CC0000'
@@ -310,21 +310,21 @@ const initRadioCharts = () => {
},
data: [
{
value: 160,
value: 0,
name: 'A相',
itemStyle: {
color: '#FFCC00'
}
},
{
value: 70,
value: 0,
name: 'B相',
itemStyle: {
color: '#009900'
}
},
{
value: 40,
value: 0,
name: 'C相',
itemStyle: {
color: '#CC0000'
@@ -405,7 +405,7 @@ const init = () => {
},
data: [
{
value: 15,
value: 0,
name: 'A相'
}
]
@@ -466,7 +466,6 @@ const iRadioList: any = ref([]),
const getRealTimeData = async (val: any) => {
iRadioList.value = []
vRadioList.value = []
console.log(val, '999999999')
val.map((item: any) => {
//基波电流相角
if (item.statisticalName == 'Pq_FundIAng') {

View File

@@ -13,6 +13,7 @@
collapse-tags-tooltip
v-model="searchForm.index"
placeholder="请选择统计指标"
@change="onIndexChange($event)"
>
<el-option
v-for="item in indexOptions"
@@ -28,11 +29,13 @@
v-if="item.countOptions.length != 0"
label-width="180px"
>
<el-select
v-model="item.count"
multiple
collapse-tags
collapse-tags-tooltip
@change="onCountChange($event, index)"
placeholder="请选择谐波次数"
>
<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%', // 位置调整
top: 0,
bottom: 20,
width: 400,
width: 430,
height: 50
},
grid: {
left: '3%',
right: '5%',
bottom: '5%',
top: '8%',
containLabel: true
},
xAxis: [
{
type: 'category',
@@ -460,7 +457,7 @@ const handleExport = async () => {
if (deviceData.value.records && deviceData.value.records.length != 0) {
let csv = '',
obj = {}
obj:any = {}
obj = deviceData.value.records.find((item: any) => {
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(
() => searchForm.value.index,
(val: any, oldval: any) => {

View File

@@ -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>

View File

@@ -22,8 +22,8 @@
</div>
<div class="filter" v-if="activePathList.length != 0">
<el-input style="width: 200px; height: 32px" placeholder="请输入文件或文件夹名称" clearable
v-model="filterFileName"></el-input>
<el-input style="width: 200px; height: 32px;-webkit-text-security:disc;" placeholder="请输入文件或文件夹名称"
clearable v-model="filterFileName" type="text"></el-input>
<el-button type="primary" @click="handleSearch" :icon="Search">搜索</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) => {
@@ -117,8 +117,8 @@
<script setup lang="ts">
import DeviceTree from '@/components/tree/govern/deviceTree.vue'
import { mainHeight } from '@/utils/layout'
import { ref, reactive, watch, onMounted, onBeforeUnmount } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { ref, reactive, watch, onMounted, onBeforeUnmount, h } from 'vue'
import { ElMessage, ElMessageBox, ElInput } from 'element-plus'
import {
getDeviceRootPath,
getFileServiceFileOrDir,
@@ -207,6 +207,29 @@ const handleRefresh = () => {
dirList.value = currentDirList.value
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 handleRestartDevice = () => {
@@ -214,8 +237,10 @@ const handleRestartDevice = () => {
ElMessageBox.prompt('二次校验密码确认', '装置重启', {
confirmButtonText: '确认',
cancelButtonText: '取消',
customClass: 'custom-message-box',
inputType: 'text'
customClass: 'customInput',
inputType: 'text',
})
.then(({ value }) => {
@@ -686,4 +711,12 @@ onBeforeUnmount(() => {
:deep(.el-breadcrumb__separator) {
margin: 0px -10px 0px 0px;
}
</style>
<style lang="scss">
.customInput {
.el-input__inner {
-webkit-text-security: disc !important;
}
}
</style>