全局添加输入框空格校验

This commit is contained in:
GGJ
2024-12-25 10:53:07 +08:00
parent 90efcc4ad2
commit aed771578a
98 changed files with 703 additions and 904 deletions

View File

@@ -1,6 +1,7 @@
<!-- 补召日志 -->
<template>
<el-dialog modal-class="analysisList" v-model="dialogVisible" title="补召日志" width="70%" draggable @closed="close">
<el-dialog modal-class="analysisList" v-model.trim="dialogVisible" title="补召日志" width="70%" draggable
@closed="close">
<TableHeader date-picker :showReset="false">
<template #operation>
<el-button type="primary" icon="el-icon-Connection" @click="handleImport">
@@ -140,10 +141,10 @@ const handleaddDevice = () => {
push({
path: '/supplementaryRecruitment',
query: {
activeName: '0',
activeName: '0',
id: lineId.value,
ndid: deviceData.value?.ndid,
}
})
}
@@ -154,10 +155,10 @@ const handleImport = () => {
push({
path: '/supplementaryRecruitment',
query: {
activeName: '1',
activeName: '1',
lineId: lineId.value,
deviceId: deviceId.value,
}
})
}

View File

@@ -1,6 +1,6 @@
<!-- 解析列表 -->
<template>
<el-dialog v-model="dialogVisible" title="详情" width="70%" draggable @closed="close">
<el-dialog v-model.trim="dialogVisible" title="详情" width="70%" draggable @closed="close">
<div :style="tableHeight">
<vxe-table border auto-resize height="auto" :data="tableData" v-bind="defaultAttribute">
<vxe-column field="name" align="center" title="文件名称"></vxe-column>
@@ -36,9 +36,11 @@ const tableStore: any = new TableStore({
showPage: false,
column: [
{ width: '60', type: 'checkbox', fixed: 'left' },
{ title: '序号', width: 80,formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} },
{
title: '序号', width: 80, formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ field: 'name', title: '文件名称', minWidth: 170 },
{ field: 'createTime', title: '导入时间', minWidth: 170 },
{ field: 'allCount', title: '数据总数(条)', minWidth: 170 },

View File

@@ -6,13 +6,13 @@
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="值类型">
<el-select v-model="form.dataLevel" :disabled="props.dataLevel == 'Primary'">
<el-select v-model.trim="form.dataLevel" :disabled="props.dataLevel == 'Primary'">
<el-option value="Primary" label="一次值"></el-option>
<el-option value="Secondary" label="二次值"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据类型" label-width="80px">
<el-select v-model="form.statMethod" placeholder="请选择数据类型">
<el-select v-model.trim="form.statMethod" placeholder="请选择数据类型">
<el-option v-for="item in typeOptions" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>

View File

@@ -31,7 +31,7 @@
</el-descriptions-item>
<el-descriptions-item label="接线方式" width="160">
{{ devData.conType == 0 ? '星型接线' : devData.conType == 1 ? '角型接线' : devData.conType == 2 ? 'V型接线' :
'/' }}
'/' }}
</el-descriptions-item>
<!-- <el-descriptions-item label="安装位置" width="160">
@@ -66,7 +66,7 @@
{{ devData.time ? devData.time : '/' }}
</el-descriptions-item> -->
</el-descriptions>
<el-tabs v-model="dataSet" type="border-card" class="device-control-box-card" @tab-click="handleClick">
<el-tabs v-model.trim="dataSet" type="border-card" class="device-control-box-card" @tab-click="handleClick">
<el-tab-pane lazy :label="item.name" :name="item.id" v-for="(item, index) in deviceData.dataSetList"
:key="index">
<template #label>
@@ -110,19 +110,19 @@
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="数据类型" v-if="!dataSet.includes('_')">
<el-select v-model="formInline.targetType" @change="handleTargetTypeChange">
<el-select v-model.trim="formInline.targetType" @change="handleTargetTypeChange">
<el-option v-for="item in queryList" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item v-if="!dataSet.includes('_items')">
<!-- <el-select style="min-width: 120px !important" v-model="formInline.dataLevel"
<!-- <el-select style="min-width: 120px !important" v-model.trim="formInline.dataLevel"
:disabled="dataLevel == 'Primary' && deviceType == '0'">
<el-option value="Primary" label="一次值"></el-option>
<el-option value="Secondary" label="二次值"></el-option>
</el-select> -->
<el-radio-group v-model="formInline.dataLevel" @change="handleClick">
<el-radio-group v-model.trim="formInline.dataLevel" @change="handleClick">
<el-radio-button label="一次值" value="Primary" />
<el-radio-button label="二次值" value="Secondary" />
@@ -130,21 +130,21 @@
</el-form-item>
<el-form-item label="谐波次数" v-show="oddAndEvenFlag && !dataSet.includes('_')">
<el-select v-model="oddAndEven" style="min-width: 120px !important">
<el-select v-model.trim="oddAndEven" style="min-width: 120px !important">
<el-option v-for="item in oddAndEvenList" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="数据来源" v-if="dataSet.includes('_items')">
<el-select v-model="formInline.dataSource" placeholder="请选择数据来源" clearable>
<el-select v-model.trim="formInline.dataSource" placeholder="请选择数据来源" clearable>
<el-option v-for="item in dataSourceList" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="关键字" v-if="!dataSet.includes('_')">
<el-input maxlength="32" show-word-limit v-model="searchValue" autocomplete="off" clearable
@input="handleSearch" placeholder="请输入关键词"></el-input>
<el-form-item label="关键字" v-if="!dataSet.includes('_')" >
<el-input maxlength="32" show-word-limit v-model.trim="searchValue" autocomplete="off"
clearable @input="handleSearch" placeholder="请输入关键词" style="width: 180px !important"></el-input>
</el-form-item>
</template>
<template #operation>

View File

@@ -1,6 +1,6 @@
<!-- 离线数据导入 -->
<template>
<!-- <el-dialog v-model="dialogVisible" title="文件列表" width="70%" :destroy-on-close="true" draggable @closed="close"> -->
<!-- <el-dialog v-model.trim="dialogVisible" title="文件列表" width="70%" :destroy-on-close="true" draggable @closed="close"> -->
<!-- 上传文件列表 -->
<div class=" ">
<!-- <div class="offline_data_btn">
@@ -78,7 +78,7 @@ import { ref } from 'vue'
import TableHeader from '@/components/table/header/index.vue'
import { uploadOffLineDataFile } from '@/api/cs-device-boot/EquipmentDelivery.ts'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import {Back} from '@element-plus/icons-vue'
import { Back } from '@element-plus/icons-vue'
import { mainHeight } from '@/utils/layout'
import { useRouter, useRoute } from 'vue-router'
const { go } = useRouter() // 路由

View File

@@ -5,7 +5,7 @@
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item>
<el-checkbox-group style="width: 150px" v-model="checkList">
<el-checkbox-group style="width: 150px" v-model.trim="checkList">
<el-checkbox label="稳态" :value="0" />
<el-checkbox label="暂态" :value="1" />
</el-checkbox-group>
@@ -36,7 +36,7 @@
<div class="finish" v-if="row.status == 100">
<SuccessFilled style="width: 16px;" /><span class="ml5">补召完成</span>
</div>
<el-progress v-model="row.status" v-else :class="row.status == 100 ? 'progress' : ''"
<el-progress v-model.trim="row.status" v-else :class="row.status == 100 ? 'progress' : ''"
:format="format" :stroke-width="10" striped :percentage="row.status" :duration="30"
striped-flow />

View File

@@ -4,27 +4,28 @@
<TableHeader>
<template v-slot:select>
<el-form-item label="设备类型">
<!-- <el-input maxlength="32" show-word-limit v-model="tableStore.table.params.searchValue" placeholder="请输入设备类型" /> -->
<el-select v-model="tableStore.table.params.devType" clearable @change="devTypeChange"
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备类型" /> -->
<el-select v-model.trim="tableStore.table.params.devType" clearable @change="devTypeChange"
placeholder="请选择设备类型">
<el-option v-for="item in devTypeOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="设备型号">
<el-select v-model="tableStore.table.params.devModel" filterable clearable placeholder="请选择设备型号">
<el-select v-model.trim="tableStore.table.params.devModel" filterable clearable
placeholder="请选择设备型号">
<el-option v-for="item in devModelOptionsFilter" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="通讯协议">
<el-select v-model="tableStore.table.params.devAccessMethod" clearable placeholder="请选择通讯协议">
<el-select v-model.trim="tableStore.table.params.devAccessMethod" clearable placeholder="请选择通讯协议">
<el-option label="MQTT" value="mqtt"></el-option>
<el-option label="CLD" value="cloud"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="tableStore.table.params.status" clearable placeholder="请选择状态">
<el-select v-model.trim="tableStore.table.params.status" clearable placeholder="请选择状态">
<el-option label="未注册" :value="1"></el-option>
<el-option label="注册" :value="2"></el-option>
<el-option label="接入" :value="3"></el-option>
@@ -44,38 +45,38 @@
</TableHeader>
<Table ref="tableRef"></Table>
<el-dialog :title="dialogTitle" v-model="dialogFormVisible" :close-on-click-modal="false"
<el-dialog :title="dialogTitle" v-model.trim="dialogFormVisible" :close-on-click-modal="false"
:before-close="resetForm" draggable width="40%">
<el-form :model="form" label-width="120px" :rules="rules" ref="ruleFormRef">
<el-form-item label="设备名称:" prop="name">
<el-input maxlength="32" show-word-limit v-model="form.name" autocomplete="off" clearable
<el-input maxlength="32" show-word-limit v-model.trim="form.name" autocomplete="off" clearable
placeholder="请输入(项目名称+设备名称)"></el-input>
</el-form-item>
<el-form-item label="网络设备ID:" prop="ndid" class="top">
<el-input maxlength="32" show-word-limit v-model="form.ndid" autocomplete="off"
<el-input maxlength="32" show-word-limit v-model.trim="form.ndid" autocomplete="off"
placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备类型:" prop="devType" class="top">
<el-select v-model="form.devType" placeholder="请选择" @change="formDevTypeChange" clearable>
<el-select v-model.trim="form.devType" placeholder="请选择" @change="formDevTypeChange" clearable>
<el-option v-for="item in devTypeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="设备型号:" prop="devModel" class="top">
<el-select v-model="form.devModel" filterable placeholder="请选择" clearable>
<el-select v-model.trim="form.devModel" filterable placeholder="请选择" clearable>
<el-option v-for="item in formDevModelOptionsFilter" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="通讯协议:" prop="devAccessMethod" class="top">
<el-select v-model="form.devAccessMethod" placeholder="请选择" clearable>
<el-select v-model.trim="form.devAccessMethod" placeholder="请选择" clearable>
<el-option label="MQTT" value="MQTT"></el-option>
<el-option label="CLD" value="cloud"></el-option>
</el-select>
</el-form-item>
<el-form-item label="合同号:" prop="cntractNo" class="top">
<el-input maxlength="32" show-word-limit v-model="form.cntractNo" autocomplete="off"
<el-input maxlength="32" show-word-limit v-model.trim="form.cntractNo" autocomplete="off"
placeholder="请输入"></el-input>
</el-form-item>
</el-form>

View File

@@ -4,7 +4,7 @@
<div class="harmonic_select" v-if="!loading">
<el-form :model="searchForm" id="history_select">
<el-form-item label="稳态指标">
<el-select multiple collapse-tags collapse-tags-tooltip v-model="searchForm.index"
<el-select multiple collapse-tags collapse-tags-tooltip v-model.trim="searchForm.index"
placeholder="请选择统计指标" :multiple-limit="3" value-key="id">
<el-option v-for="(item, index) in indexOptions" :label="item.name" :key="index"
:value="item"></el-option>

View File

@@ -3,11 +3,11 @@
<div class="realtrend" v-loading="loading">
<div class="select" v-if="!loading">
<div class="mr10">谐波次数 </div>
<el-select v-model="selectValue" style="width: 100px" @change="selectChange">
<el-select v-model.trim="selectValue" style="width: 100px" @change="selectChange">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<el-tabs type="border-card" v-if="tabsList.length != 0" v-model="activeName" @tab-click="handleClick">
<el-tabs type="border-card" v-if="tabsList.length != 0" v-model.trim="activeName" @tab-click="handleClick">
<el-tab-pane v-for="(item, index) in tabsList" :label="item.groupName" :name="index" :key="index">
<div>
<div class="realtrend_top">
@@ -31,7 +31,7 @@
<div class="thead_left">
<p style=" font-weight: 700; background-color: #F3F6F9;">次数()</p>
<p>{{ item.groupName }}{{ item.unit ? '(' + item.unit + ')' : '' }}</p>
<p>国标限值{{ item.unit ? '(' + item.unit + ')' : '' }}</p>
<!-- <p>国标限值{{ item.unit ? '(' + item.unit + ')' : '' }}</p> -->
</div>
<div class="thead_right">
<div class="right_cell" v-for="(value, key, index) in tableData" :key="index">
@@ -50,7 +50,7 @@
{{ value }}
</span>
</p>
<p>
<!-- <p>
<span v-if="
String(key).includes('data') &&
String(key) != 'dataLevel' &&
@@ -58,7 +58,7 @@
">
{{ gbData[index]?.value || '/' }}
</span>
</p>
</p> -->
</div>
</div>
@@ -223,12 +223,13 @@ const init = () => {
trendData.map((item: any) => {
return item.value
}),
gbData.value.map((item: any) => {
return item.value
}),
// gbData.value.map((item: any) => {
// return item.value
// }),
]
let legendList = [tabsList.value[activeName.value]?.groupName, '国标限值',]
let legendList = [tabsList.value[activeName.value]?.groupName, ]
// let legendList = [tabsList.value[activeName.value]?.groupName, '国标限值',]
// echartsData.value.legend.data = legendList
list.map((item: any, index: any) => {
echartsData.value.series.push({
@@ -312,8 +313,8 @@ const setRealTrendData = (val: any) => {
emit('changeTrendType', activeName.value)
}
}
const selectChange=(val:any)=>{
loading.value=true
const selectChange = (val: any) => {
loading.value = true
// setTimeout(() => {
// loading.value=false
// },3000)
@@ -417,7 +418,8 @@ defineExpose({ open, setRealTrendData, setOverLimitData })
display: flex;
border: 2px solid #eee;
cursor: pointer;
font-size: 13px;
font-size: 13px;
.thead_left {
width: 150px;
height: 100%;
@@ -426,7 +428,7 @@ font-size: 13px;
justify-content: space-between;
align-items: center;
line-height: 50px;
padding-bottom: 5px;
p {
@@ -497,7 +499,7 @@ font-size: 13px;
.charts {
width: 100%;
margin-top: 10px;
height: calc(100vh - 560px);
height: calc(100vh - 535px);
}
}

View File

@@ -3,7 +3,7 @@
<div class="home">
<div class="home_header">
<!-- <el-form-item label="值类型选择">
<el-select @change="changeView" v-model="value" placeholder="请选择值类型">
<el-select @change="changeView" v-model.trim="value" placeholder="请选择值类型">
<el-option
v-for="(item, index) in options"
:key="index"
@@ -12,16 +12,18 @@
></el-option>
</el-select>
</el-form-item> -->
<el-radio-group v-model="value" @change="changeView">
<el-radio-group v-model.trim="theTypeOfValue" @change="changeView">
<el-radio-button label="一次值" :value="1" />
<el-radio-button label="二次值" :value="2" />
</el-radio-group>
<el-form-item label="">
<el-button @click="handleBack" :icon="Back">返回</el-button>
</el-form-item>
<el-button @click="handleBack" :icon="Back">返回</el-button>
</div>
<el-tabs class="home_body" type="border-card" v-model="activeName" @tab-click="handleClick">
<el-tabs class="home_body" type="border-card" v-model.trim="activeName1" @tab-click="handleClick"
v-loading="loading">
<el-tab-pane label="瞬时波形" name="ssbx" :style="'height:' + bxecharts + ';overflow-y: scroll;'">
<shushiboxi v-if="isWp && wp && activeName == 'ssbx' && showBoxi" :value="value" :boxoList="boxoList"
@@ -51,6 +53,7 @@ const searchForm = ref({
})
const emit = defineEmits(['handleHideCharts'])
const parentHeight = ref(0)
const loading = ref(false)
const tableList: any = ref([])
for (let i = 0; i < 300; i++) {
tableList.value.push({
@@ -87,19 +90,12 @@ const echartsData1: any = ref([]),
const view = ref(true)
const view2 = ref(false)
const showBoxi = ref(true)
const activeName1 = ref('ssbx')
const activeName = ref('ssbx')
const wp = ref({})
const theTypeOfValue = ref(1)
const value = ref(1)
const options = ref([
{
value: 1,
label: '一次值'
},
{
value: 2,
label: '二次值'
}
])
const isWp = ref(false)
const boxoList: any = ref([])
@@ -112,29 +108,35 @@ const getWpData = (val: any, list: any) => {
}
const changeView = () => {
showBoxi.value = false
loading.value = true
setTimeout(() => {
value.value = theTypeOfValue.value
showBoxi.value = true
}, 0)
}, 500)
setTimeout(() => {
loading.value = false
}, 1500)
}
const bxecharts: any = ref(mainHeight(190).height as any)
const handleClick = (tab: any, event: any) => {
// activeName.value = tab.index
if (tab.name == 'ssbx') {
activeName.value = 'ssbx'
} else if (tab.name == 'rmsbx') {
activeName.value = 'rmsbx'
}
loading.value = true
setTimeout(() => {
activeName.value = tab.paneName
}, 500)
setTimeout(() => {
loading.value = false
}, 1500)
}
const handleBack = () => {
emit('handleHideCharts')
}
const setHeight = (h: any,vh: any) => {
const setHeight = (h: any, vh: any) => {
parentHeight.value = h
setTimeout(() => {
bxecharts.value = mainHeight(vh).height
},100)
setTimeout(() => {
bxecharts.value = mainHeight(vh).height
}, 100)
}
onMounted(() => { })
defineExpose({ getWpData, setHeight })

View File

@@ -1,6 +1,6 @@
<template>
<div class="view" v-loading="loading">
<el-collapse v-model="activeNames">
<el-collapse v-model.trim="activeNames">
<el-collapse-item title="基础数据" name="1">
<div class="view_top">
<!-- 左侧仪表盘 -->
@@ -784,10 +784,12 @@ onMounted(() => {
.vxe-table--render-default .vxe-header--column:not(.col--ellipsis) {
padding: 5px !important;
}
.vxe-table--body-wrapper{
.vxe-table--body-wrapper {
min-height: 32px !important;
}
}
::v-deep .el-collapse-item__header {
font-size: 16px !important;
font-weight: 800 !important;

View File

@@ -15,10 +15,6 @@
</el-select>
</el-form-item>
<el-form-item>
<!-- <el-select style="min-width: 120px !important" v-model="searchForm.dataLevel">
<el-option value="Primary" label="一次值"></el-option>
<el-option value="Secondary" label="二次值"></el-option>
</el-select> -->
<el-radio-group v-model="searchForm.dataLevel" @change="init()">
<el-radio-button label="一次值" value="Primary" />
<el-radio-button label="二次值" value="Secondary" />
@@ -33,14 +29,16 @@
<el-option value="cp95" label="cp95"></el-option>
</el-select>
</el-form-item>
<el-form-item class="history_count" v-for="(item, index) in countData" :key="index"
:label="item.name.includes('次数') ? item.name : item.name + '谐波次数'"
v-show="item.countOptions.length != 0">
<el-select v-model="item.count" @change="onCountChange($event, index)" placeholder="请选择谐波次数"
style="width: 100px">
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv" :value="vv"></el-option>
</el-select>
<el-form-item>
<div class="history_count" v-for="(item, index) in countData" :key="index"
v-show="item.countOptions.length != 0">
<span class="mr12">{{item.name.includes('次数') ? item.name : item.name + '谐波次数'}}</span>
<el-select v-model="item.count" @change="onCountChange($event, index)" placeholder="请选择谐波次数"
style="width: 100px" class="mr20">
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv"
:value="vv"></el-option>
</el-select>
</div>
</el-form-item>
</template>
<template #operation>
@@ -344,7 +342,6 @@ const init = async () => {
color: ['#FFCC00', '#009900', '#CC0000', ...color],
xAxis: {
type: 'time',
name:'时间',
axisLabel: {
formatter: {
day: '{MM}-{dd}',

View File

@@ -29,8 +29,8 @@
</vxe-table>
</div>
</div>
<el-dialog v-model="dialogVisible" title="添加工程" class="cn-operate-dialog" :close-on-click-modal="false">
<el-input maxlength="32" show-word-limit v-model="filterText" icon="el-icon-Search" placeholder="请输入内容"
<el-dialog v-model.trim="dialogVisible" title="添加工程" class="cn-operate-dialog" :close-on-click-modal="false">
<el-input maxlength="32" show-word-limit v-model.trim="filterText" icon="el-icon-Search" placeholder="请输入内容"
clearable style="margin-bottom: 10px">
<template #prefix>
<Icon name="el-icon-Search" style="font-size: 16px" />

View File

@@ -21,7 +21,7 @@
<div class="filter" v-if="activePathList.length != 0">
<el-input maxlength="32" show-word-limit style="width: 200px; height: 32px" placeholder="请输入文件或文件夹名称"
clearable v-model="filterText" type="text"></el-input>
clearable v-model.trim="filterText" 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) => {
@@ -126,7 +126,7 @@
<!-- <el-empty v-if="dirList.length === 0" /> -->
</div>
<popup ref="fileRef"></popup>
<el-dialog v-model="addDeviceDirOpen" :destroy-on-close="true" title="新建文件夹目录" width="500" @closed="close">
<el-dialog v-model.trim="addDeviceDirOpen" :destroy-on-close="true" title="新建文件夹目录" width="500" @closed="close">
<el-form ref="formRef" :model="form"
:rules="{ path: [{ required: true, message: '请输入文件夹名称', trigger: 'blur' }] }">
<el-form-item label="文件夹名称" prop="path">

View File

@@ -1,7 +1,7 @@
<!-- 设备文件下载 -->
<template>
<div :class="downLoading ? 'all_disabled' : ''">
<el-dialog v-model="dialogVisible" title="文件信息" width="50%" @closed="handleClose">
<el-dialog v-model.trim="dialogVisible" title="文件信息" width="50%" @closed="handleClose">
<div v-loading="loading">
<div class="download_progress"
v-if="mqttFileName.includes(fileNameInfoMation) && status != 0 && status != 100">

View File

@@ -47,7 +47,7 @@
{{ deviceData.appCheck }}
</el-descriptions-item>
</el-descriptions>
<el-tabs v-model="dataSet" type="border-card" class="device-manage-box-card" @tab-click="handleClick">
<el-tabs v-model.trim="dataSet" type="border-card" class="device-manage-box-card" @tab-click="handleClick">
<el-tab-pane lazy :label="item.name" :name="item.id" v-for="(item, index) in deviceData.dataSetList"
:key="index"></el-tab-pane>
<div :style="{ height: tableHeight }" v-loading="tableLoading">
@@ -207,19 +207,19 @@ const handleRestartDevice = () => {
inputType: 'text',
beforeClose: (action, instance, done) => {
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
if (action === 'confirm') {
if (instance.inputValue == null) {
return ElMessage.warning('请输入密码')
} else if (instance.inputValue?.length > 32) {
return ElMessage.warning('密码长度不能超过32位,当前密码长度为' + instance.inputValue.length)
} else {
done();
}
} else {
done();
}
}
} else {
done();
}
}
})
.then(({ value }) => {
if (!value) {

View File

@@ -1,5 +1,5 @@
<template>
<el-dialog class="cn-operate-dialog device-manage-popup" v-model="dialogVisible" title="设备模版分组">
<el-dialog class="cn-operate-dialog device-manage-popup" v-model.trim="dialogVisible" title="设备模版分组">
<el-descriptions class="mb10" :column="3" border>
<el-descriptions-item label="名称">
{{ popupData.deviceData.name }}
@@ -11,7 +11,7 @@
<el-descriptions :title="'数据集名称: ' + popupData.dataSetName" size="small" :column="2" border>
<template #extra>
<div v-if="newGroupVisible" style="display: flex; align-items: center">
<el-input maxlength="32" show-word-limit v-model="groupName" autocomplete="off" clearable
<el-input maxlength="32" show-word-limit v-model.trim="groupName" autocomplete="off" clearable
placeholder="请输入分组名称"></el-input>
<el-button class="ml10" ctype="primary" size="small" @click="newGroupVisible = false">取消</el-button>
<el-button class="ml10" type="primary" size="small" @click="addNewGroup">完成</el-button>
@@ -35,7 +35,7 @@
<Icon name="el-icon-Delete"></Icon>
</template>
</el-popconfirm>
<el-checkbox v-model="data.isShow" @click.stop.native="" class="ml5"></el-checkbox>
<el-checkbox v-model.trim="data.isShow" @click.stop.native="" class="ml5"></el-checkbox>
</div>
</div>
</template>

View File

@@ -1,47 +1,47 @@
<template>
<el-dialog v-model="dialogVisible" :title="title" draggable
<el-dialog v-model.trim="dialogVisible" :title="title" draggable
:style="{ width: popupType == 0 || popupType == 1 ? '500px' : '1100px' }">
<!-- 新增方案数据 -->
<el-form :model="form" scroll-to-error label-width="140px" :rules="rules1" ref="ruleFormRef1" class="form-one"
v-if="popupType == 0 || popupType == 1">
<el-form-item label="方案名称:" prop="itemName">
<el-input maxlength="32" show-word-limit v-model="form.itemName" placeholder="请输入方案名称" />
<el-input maxlength="32" show-word-limit v-model.trim="form.itemName" placeholder="请输入方案名称" />
</el-form-item>
<el-form-item label="方案描述:" prop="describe">
<el-input maxlength="300" show-word-limit type="textarea" v-model="form.describe"
<el-input maxlength="300" show-word-limit type="textarea" v-model.trim="form.describe"
placeholder="请输入方案描述" />
</el-form-item>
</el-form>
<!-- 测试项信息&数据绑定页面 -->
<el-tabs type="border-card" v-model="activeName" v-if="popupType != 0 && popupType != 1">
<el-tabs type="border-card" v-model.trim="activeName" v-if="popupType != 0 && popupType != 1">
<el-tab-pane label="测试项信息" :name="0" v-if="openType == 'tree'">
<el-form :model="form1" ref="ruleFormRef2" scroll-to-error class="form-two" label-width="140px"
:rules="rules2">
<el-form-item label="测试项名称:" prop="itemName">
<el-input maxlength="32" show-word-limit v-model="form1.itemName" placeholder="请输入测试项名称" />
<el-input maxlength="32" show-word-limit v-model.trim="form1.itemName" placeholder="请输入测试项名称" />
</el-form-item>
<el-form-item label="测量间隔:" prop="statisticalInterval">
<el-select v-model="form1.statisticalInterval" placeholder="请选择测量间隔" clearable
<el-select v-model.trim="form1.statisticalInterval" placeholder="请选择测量间隔" clearable
style="width: 100%">
<el-option v-for="(item, index) in statisticalIntervalList" :key="index" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:" prop="voltageLevel">
<el-select v-model="form1.voltageLevel" placeholder="请选择电压等级" clearable style="width: 100%"
<el-select v-model.trim="form1.voltageLevel" placeholder="请选择电压等级" clearable style="width: 100%"
@change="changeVoltageLevel">
<el-option v-for="(item, index) in voltageLevelList" :key="index" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="接线方式:" prop="volConType">
<el-select v-model="form1.volConType" placeholder="请选择接线方式" clearable style="width: 100%">
<el-select v-model.trim="form1.volConType" placeholder="请选择接线方式" clearable style="width: 100%">
<el-option v-for="(item, index) in volConTypeList" :key="index" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="最小短路容量:" prop="capacitySscmin">
<el-input maxlength="32" show-word-limit v-model="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请选择最小短路容量">
<template #append>MVA</template>
@@ -49,7 +49,8 @@
</el-form-item>
<el-form-item label="用户协议容量:" prop="capacitySi">
<el-input maxlength="32" show-word-limit v-model="form1.capacitySi" autocomplete="off" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySi" autocomplete="off"
oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入用户协议容量">
<template #append>MVA</template>
@@ -57,7 +58,7 @@
</el-form-item>
<el-form-item label="基准短路容量:" prop="capacitySscb">
<el-input maxlength="32" show-word-limit v-model="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入基准短路容量">
<template #append>MVA</template>
@@ -65,26 +66,26 @@
</el-form-item>
<el-form-item label="供电设备容量:" prop="capacitySt">
<el-input maxlength="32" show-word-limit v-model="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model.trim="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入供电设备容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item label="PT变比" prop="pt">
<el-input maxlength="32" show-word-limit style="width: 48%" v-model="form1.pt"
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.trim="form1.pt"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
<el-input maxlength="32" show-word-limit style="width: 48%" v-model="form1.pt1"
<el-input maxlength="32" show-word-limit style="width: 48%" v-model.trim="form1.pt1"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
</el-form-item>
<el-form-item label="CT变比" prop="ct">
<el-input maxlength="32" show-word-limit v-model="form1.ct" style="width: 48%"
<el-input maxlength="32" show-word-limit v-model.trim="form1.ct" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
<el-input maxlength="32" show-word-limit v-model="form1.ct1" style="width: 48%"
<el-input maxlength="32" show-word-limit v-model.trim="form1.ct1" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
</el-form-item>
<el-form-item label="监测位置:" prop="location" style="width: 100%">
<el-input maxlength="300" show-word-limit type="textarea" v-model="form1.location"
<el-input maxlength="300" show-word-limit type="textarea" v-model.trim="form1.location"
placeholder="请输入监测位置" />
</el-form-item>
</el-form>

View File

@@ -1,13 +1,12 @@
<template>
<div>
<div :style="{ width: menuCollapse ? '40px' : '280px' }"
style=" overflow: hidden; height: 100%">
<div :style="{ width: menuCollapse ? '40px' : '280px' }" style=" overflow: hidden; height: 100%">
<Icon v-show="menuCollapse" @click="onMenuCollapse" :name="menuCollapse ? 'el-icon-Expand' : 'el-icon-Fold'"
:class="menuCollapse ? 'unfold' : ''" size="18" class="fold ml10 mt20 menu-collapse"
style="cursor: pointer" />
<div class="cn-tree" :style="{ opacity: menuCollapse ? 0 : 1, display: menuCollapse ? 'none' : '' }">
<div style="display: flex; align-items: center" class="mb10">
<el-input maxlength="32" show-word-limit v-model="filterText" placeholder="请输入内容" clearable>
<el-input maxlength="32" show-word-limit v-model.trim="filterText" placeholder="请输入内容" clearable>
<template #prefix>
<Icon name="el-icon-Search" style="font-size: 16px" />
</template>
@@ -271,10 +270,10 @@ const edit = async (node: Node, data: any) => {
.catch(e => { })
}
/** 删除树节点 */
const del =async (node: Node, data: any) => {
const del = async (node: Node, data: any) => {
let titleList = ''
planId.value = data.id
await getDeviceList({
await getDeviceList({
id: data.id,
isTrueFlag: 1
}).then(res => {

View File

@@ -4,8 +4,8 @@
<div class="SelectBox">
<div class="boxTitle" @click="clickAllSelect">未绑定数据</div>
<div class="boxCenter">
<el-input maxlength="32" show-word-limit v-model="filterText" :suffix-icon="Search" style="width: 100%"
placeholder="请输入搜索内容" clearable></el-input>
<el-input maxlength="32" show-word-limit v-model.trim="filterText" :suffix-icon="Search"
style="width: 100%" placeholder="请输入搜索内容" clearable></el-input>
<el-tree ref="leftTree" default-expand-all :data="leftData" :props="defaultProps" show-checkbox
node-key="id" :filter-node-method="filterNode">
<template #default="{ node, data }">
@@ -36,8 +36,8 @@
<div class="SelectBox">
<div class="boxTitle" @click="clickCancelAllSelect">已绑定数据</div>
<div class="boxCenter">
<el-input maxlength="32" show-word-limit v-model="filterText1" :suffix-icon="Search" style="width: 100%"
placeholder="请输入搜索内容" clearable></el-input>
<el-input maxlength="32" show-word-limit v-model.trim="filterText1" :suffix-icon="Search"
style="width: 100%" placeholder="请输入搜索内容" clearable></el-input>
<el-tree ref="rightTree" default-expand-all :data="rightData" :props="defaultProps" show-checkbox
node-key="id" :filter-node-method="filterNode">
<template #default="{ node, data }">
@@ -198,8 +198,8 @@ export default {
}
},
// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配则返回该节点以及其下的所有子节点如果参数是子节点则返回该节点的父节点。name是中文字符enName是英文字符.
chooseNode(value, data, node) {
// 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配则返回该节点以及其下的所有子节点如果参数是子节点则返回该节点的父节点。name是中文字符enName是英文字符.
chooseNode(value, data, node) {
if (data.name.indexOf(value) !== -1) {
return true

View File

@@ -16,13 +16,13 @@
{{ deviceData.describe ? deviceData.describe : '/' }}
</el-descriptions-item>
</el-descriptions>
<el-collapse v-model="activeColName" @change="handleChange" accordion>
<el-collapse v-model.trim="activeColName" @change="handleChange" accordion>
<el-collapse-item title="测试项信息" name="0">
<div class="monitor_info" v-if="deviceData.records && deviceData.records.length != 0">
<!-- <div class="history_title">
<p>测试项信息</p>
</div> -->
<el-tabs v-model="activeName" type="border-card" @tab-change="handleClickTabs">
<el-tabs v-model.trim="activeName" type="border-card" @tab-change="handleClickTabs">
<el-tab-pane v-for="(item, index) in deviceData?.records" :label="item.itemName"
:name="item.id" :key="index">
<template #label>
@@ -102,7 +102,7 @@
<div v-if="JSON.stringify(echartsData) != '{}' && deviceData?.records?.length != 0">
<!-- <h3 class="mt10 mb10">历史趋势</h3> -->
<el-tabs v-model="childTab" type="border-card" class="mt10">
<el-tabs v-model.trim="childTab" type="border-card" class="mt10">
<el-tab-pane label="历史趋势" name="0">
<div class="history_trend" v-if="titleList != '(未绑定数据)'">
<div class="history_header" ref="headerRef">
@@ -111,43 +111,43 @@
<template v-slot:select :key="num">
<el-form-item for="-" label="统计指标">
<el-select style="min-width: 200px" collapse-tags collapse-tags-tooltip
v-model="searchForm.index" placeholder="请选择统计指标"
v-model.trim="searchForm.index" placeholder="请选择统计指标"
@change="onIndexChange($event)" multiple :multiple-limit="3">
<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-item>
<!-- <el-select style="width: 12px !important" v-model="searchForm.dataLevel">
<!-- <el-select style="width: 12px !important" v-model.trim="searchForm.dataLevel">
<el-option value="Primary" label="一次值"></el-option>
<el-option value="Secondary" label="二次值"></el-option>
</el-select> -->
<el-radio-group v-model="searchForm.dataLevel" @change="init(true)">
<el-radio-group v-model.trim="searchForm.dataLevel" @change="init(true)">
<el-radio-button label="一次值" value="Primary" />
<el-radio-button label="二次值" value="Secondary" />
</el-radio-group>
</el-form-item>
<el-form-item for="-" label="统计类型" label-width="80px">
<el-select style="width: 120px" v-model="searchForm.type"
<el-select style="width: 120px" v-model.trim="searchForm.type"
placeholder="请选择值类型">
<el-option v-for="item in typeOptions" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item for="-" v-for="(item, index) in countData" :key="index"
:label="item.name.includes('次数') ? item.name : item.name.includes('幅值') ? item.name.slice(0, -2) + '次数' : item.name + '谐波次数'"
v-show="item.countOptions.length != 0">
<el-select v-model="item.count" collapse-tags collapse-tags-tooltip
placeholder="请选择谐波次数" style="width: 120px">
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv"
:value="vv"></el-option>
</el-select>
<el-form-item>
<div for="-" v-for="(item, index) in countData" :key="index"
v-show="item.countOptions.length != 0">
<span class="mr12">{{item.name.includes('次数') ? item.name : item.name.includes('幅值') ? item.name.slice(0, -2) + '次数' : item.name + '谐波次数'}}</span>
<el-select v-model.trim="item.count" class="mr20" collapse-tags collapse-tags-tooltip
placeholder="请选择谐波次数" style="width: 120px">
<el-option v-for="vv in item.countOptions" :key="vv" :label="vv"
:value="vv"></el-option>
</el-select>
</div>
</el-form-item>
</template>
<template v-slot:operation>
<!-- <el-button type="primary" icon="el-icon-Download" @click="handleExport">
@@ -170,7 +170,7 @@
<el-empty :style="EcharHeight" v-else description="未绑定数据" />
</el-tab-pane>
<el-tab-pane label="暂态数据" name="1">
<transient :activeName='activeName' ref="transientRef" :activeColName="activeColName"/>
<transient :activeName='activeName' ref="transientRef" :activeColName="activeColName" />
</el-tab-pane>
</el-tabs>