全局添加输入框空格校验

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,43 +1,29 @@
<template>
<div class="flex" style="margin: 15px 0">
<span style="width: 100px; margin-top: 3px">电压等级:</span>
<el-checkbox
:indeterminate="isIndeterminate"
v-model="checkAll"
@change="handleCheckAllChange"
style="margin-right: 28px"
>
<el-checkbox :indeterminate="isIndeterminate" v-model.trim="checkAll" @change="handleCheckAllChange"
style="margin-right: 28px">
全选
</el-checkbox>
<el-checkbox-group
v-model="checkedVoltage"
@change="handleCheckedVoltageChange"
style="height: 72px; overflow-y: auto"
>
<el-checkbox-group v-model.trim="checkedVoltage" @change="handleCheckedVoltageChange"
style="height: 72px; overflow-y: auto">
<el-checkbox v-for="(item, index) in grade" :label="item" :key="index">{{ item.name }}</el-checkbox>
</el-checkbox-group>
</div>
<div class="flex" style="margin: 15px 0">
<span style="width: 100px; margin-top: 3px">干扰源类型:</span>
<el-checkbox
:indeterminate="isIndeterminate1"
v-model="checkAll1"
@change="handleCheckAllChange1"
style="margin-right: 28px"
>
<el-checkbox :indeterminate="isIndeterminate1" v-model.trim="checkAll1" @change="handleCheckAllChange1"
style="margin-right: 28px">
全选
</el-checkbox>
<el-checkbox-group
v-model="checkedSource"
@change="handleCheckedSourceChange"
style="height: 72px; overflow-y: auto"
>
<el-checkbox-group v-model.trim="checkedSource" @change="handleCheckedSourceChange"
style="height: 72px; overflow-y: auto">
<el-checkbox v-for="(item, index) in type" :label="item" :key="index">{{ item.name }}</el-checkbox>
</el-checkbox-group>
</div>
<div class="flex" style="margin: 15px 0">
<span style="width: 100px; line-height: 32px">兼容曲线:</span>
<el-radio-group v-model="radio" @change="radioChange">
<el-radio-group v-model.trim="radio" @change="radioChange">
<el-radio label="ITIC">ITIC</el-radio>
<el-radio label="F47">F47</el-radio>
</el-radio-group>
@@ -470,9 +456,11 @@ const layout = mainHeight(390) as any
.flex {
display: flex;
}
.bars_w {
height: calc(v-bind('layout.height'));
}
.dw {
position: absolute;
top: 210px;

View File

@@ -3,15 +3,11 @@
<TableHeader area ref="header">
<template v-slot:select>
<!-- <el-form-item label="区域">
<Area ref="area" v-model="tableStore.table.params.deptIndex" />
<Area ref="area" v-model.trim="tableStore.table.params.deptIndex" />
</el-form-item> -->
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
value-key="id"
placeholder="请选择统计类型"
size="large"
>
<el-select v-model.trim="tableStore.table.params.statisticalType" value-key="id"
placeholder="请选择统计类型" size="large">
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item" />
</el-select>
</el-form-item>
@@ -20,34 +16,24 @@
<div v-loading="tableStore.table.loading" class="pr10">
<el-row>
<el-col :span="12">
<MyEchartMap
ref="EchartMap"
:options="echartMapList"
class="map"
@eliminate="eliminate"
@getRegionByRegion="getRegionByRegion"
/>
<MyEchartMap ref="EchartMap" :options="echartMapList" class="map" @eliminate="eliminate"
@getRegionByRegion="getRegionByRegion" />
</el-col>
<el-col :span="12">
<my-echart class="tall" :options="echartList" />
<div class="tall">
<vxe-table height="auto" auto-resize :data="distributionData" v-bind="defaultAttribute">
>
<vxe-column
field="qy"
:title="
titleA == '电压等级'
? '电压等级'
: titleA == '终端厂家'
<vxe-column field="qy" :title="titleA == '电压等级'
? '电压等级'
: titleA == '终端厂家'
? '终端厂家'
: titleA == '干扰源类型'
? '干扰源类型'
: titleA == '电网拓扑'
? '区域'
: ''
"
show-overflow-tooltip
></vxe-column>
? '干扰源类型'
: titleA == '电网拓扑'
? '区域'
: ''
" show-overflow-tooltip></vxe-column>
<vxe-column field="jcd" title="监测点数(个数)"></vxe-column>
<vxe-column field="zc" title="通讯正常(个数)" sortable></vxe-column>
<vxe-column field="zd" title="通讯中断(个数)" sortable></vxe-column>
@@ -74,7 +60,7 @@ defineOptions({
const EchartMap = ref()
const dictData = useDictData()
const options = dictData.getBasicData('Statistical_Type', ['Report_Type'])
const echartMapList:any = ref({})
const echartMapList: any = ref({})
const echartList = ref({})
const titleA = ref('')
const header = ref()
@@ -153,7 +139,7 @@ const map = (res: any) => {
series: []
}
}
let mapList:any = [[], [], []]
let mapList: any = [[], [], []]
if (res.substationDetailVOList != null) {
res.substationDetailVOList.forEach((item: any) => {
if (item.color == 'green') {
@@ -163,7 +149,7 @@ const map = (res: any) => {
}
})
}
mapList.forEach((item:any, ind:number) => {
mapList.forEach((item: any, ind: number) => {
echartMapList.value.options.series.push({
type: 'scatter',
mapName: 'china',
@@ -238,12 +224,12 @@ const histogram = (res: any) => {
titleA.value == '电压等级'
? '电压等级'
: titleA.value == '终端厂家'
? '终端厂家'
: titleA.value == '干扰源类型'
? '干扰源类型'
: titleA.value == '电网拓扑'
? header.value.areaRef.areaName
: '' // 给X轴加单位
? '终端厂家'
: titleA.value == '干扰源类型'
? '干扰源类型'
: titleA.value == '电网拓扑'
? header.value.areaRef.areaName
: '' // 给X轴加单位
},
tooltip: {
formatter: function (params: any) {
@@ -262,12 +248,12 @@ const histogram = (res: any) => {
titleA.value == '电压等级'
? '(电压\n等级)'
: titleA.value == '终端厂家'
? '(终端\n厂家)'
: titleA.value == '干扰源类型'
? '(干扰\n源类型)'
: titleA.value == '电网拓扑'
? '(区域)'
: '', // 给X轴加单位
? '(终端\n厂家)'
: titleA.value == '干扰源类型'
? '(干扰\n源类型)'
: titleA.value == '电网拓扑'
? '(区域)'
: '', // 给X轴加单位
data: distributionData.value.map((item: any) => item.qy)
},
yAxis: {
@@ -310,6 +296,7 @@ const layout1 = mainHeight(93) as any
.map {
height: v-bind('layout.height');
}
.tall {
height: calc(v-bind('layout1.height') / 2);
}

View File

@@ -1,13 +1,15 @@
<template>
<div class="default-main">
<TableHeader date-picker area>
</TableHeader>
<el-tabs v-model="activeName" type="border-card" v-loading="tableStore.table.loading">
<el-tabs v-model.trim="activeName" type="border-card" v-loading="tableStore.table.loading">
<el-tab-pane label="图形" name="1">
<Echart :list="list" ref="echarts" />
</el-tab-pane>
<el-tab-pane label="表格" name="2"><Tableabove ref="table" /></el-tab-pane>
<el-tab-pane label="表格" name="2">
<Tableabove ref="table" />
</el-tab-pane>
</el-tabs>
</div>
</template>
@@ -61,6 +63,7 @@ const layout = mainHeight(123) as any
width: 100%;
height: 500px;
}
::v-deep(.el-tabs__content) {
height: v-bind('layout.height');
overflow-y: auto;

View File

@@ -3,7 +3,8 @@
<TableHeader date-picker area>
<template v-slot:select></template>
</TableHeader>
<el-tabs v-model="activeName" type="border-card" @tab-click="handleClick" v-loading="tableStore.table.loading">
<el-tabs v-model.trim="activeName" type="border-card" @tab-click="handleClick"
v-loading="tableStore.table.loading">
<el-tab-pane label="暂降原因及类型统计" name="1">
<TypeStatistics ref="Statistics" />
</el-tab-pane>
@@ -72,6 +73,7 @@ const layout = mainHeight(123) as any
width: 100%;
height: 500px;
}
::v-deep(.el-tabs__content) {
height: v-bind('layout.height');
overflow-y: auto;

View File

@@ -3,12 +3,12 @@
<TableHeader date-picker>
<template v-slot:select>
<!-- <el-form-item label="用户名">
<el-select v-model="value" class="m-2" placeholder="Select" size="large">
<el-select v-model.trim="value" class="m-2" placeholder="Select" size="large">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="操作类型">
<el-input maxlength="32" show-word-limit v-model="tableStore.table.params.loginName" placeholder="Please input" />
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.loginName" placeholder="Please input" />
</el-form-item> -->
</template>
<template v-slot:operation>

View File

@@ -4,7 +4,7 @@
<template v-slot:select>
<el-form-item label="终端状态">
<el-select multiple clearable collapse-tags v-model="tableStore.table.params.runFlag"
<el-select multiple clearable collapse-tags v-model.trim="tableStore.table.params.runFlag"
placeholder="请选择">
<el-option label="投运" value="0" />
<el-option label="热备用" value="1" />
@@ -12,20 +12,20 @@
</el-select>
</el-form-item>
<el-form-item label="通讯状态">
<el-select multiple clearable collapse-tags v-model="tableStore.table.params.comFlag"
<el-select multiple clearable collapse-tags v-model.trim="tableStore.table.params.comFlag"
placeholder="请选择">
<el-option label="正常" value="1" />
<el-option label="中断" value="0" />
</el-select>
</el-form-item>
<el-form-item label="厂家">
<el-select multiple clearable collapse-tags v-model="manufacturerForm" placeholder="请选择"
<el-select multiple clearable collapse-tags v-model.trim="manufacturerForm" placeholder="请选择"
@change="onManufacturerChange">
<el-option v-for="item in manufacturer" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="筛选数据">
<el-input maxlength="32" show-word-limit v-model="tableStore.table.params.searchValue"
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
placeholder="根据变电站,终端编号,型号或网络参数查询" />
</el-form-item>
</template>

View File

@@ -3,27 +3,27 @@
<TableHeader date-picker area>
<template v-slot:select>
<el-form-item label="干扰源类型">
<el-select multiple clearable collapse-tags v-model="interferenceSourceForm" placeholder="请选择"
<el-select multiple clearable collapse-tags v-model.trim="interferenceSourceForm" placeholder="请选择"
@change="onLoadTypeChange">
<el-option v-for="item in interferenceSource" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="电压等级">
<el-select multiple clearable collapse-tags v-model="scaleForm" placeholder="请选择"
<el-select multiple clearable collapse-tags v-model.trim="scaleForm" placeholder="请选择"
@change="onScaleChange">
<el-option v-for="item in level" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="通讯状态">
<el-select multiple clearable collapse-tags v-model="tableStore.table.params.comFlag"
<el-select multiple clearable collapse-tags v-model.trim="tableStore.table.params.comFlag"
placeholder="请选择">
<el-option label="正常" value="1" />
<el-option label="中断" value="0" />
</el-select>
</el-form-item>
<el-form-item label="筛选数据">
<el-input maxlength="32" show-word-limit v-model="tableStore.table.params.searchValue"
<el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue"
placeholder="根据变电站,终端编号,型号或网络参数查询" />
</el-form-item>
</template>

View File

@@ -1,9 +1,9 @@
<template>
<div class="default-main">
<TableHeader date-picker >
<TableHeader date-picker>
<template v-slot:select>
<el-form-item label="区域">
<Area v-model="tableStore.table.params.deptIndex" />
<Area v-model.trim="tableStore.table.params.deptIndex" />
</el-form-item>
</template>
</TableHeader>
@@ -32,13 +32,11 @@
</span>
<span style="color: #daa520">
<span class="smallBlock" style="background: #daa520"></span>
{{ '60 %≤在线率 < 90 %' }}
</span>
<span style="color: #cc0000">
<span class="smallBlock" style="background: #cc0000"></span>
{{ '在线率 < 60 %' }}
</span>
</span>
{{ '60 %≤在线率 < 90 %' }} </span>
<span style="color: #cc0000">
<span class="smallBlock" style="background: #cc0000"></span>
{{ '在线率 < 60 %' }} </span>
</span>
</div>
<div class="statistics-main" v-loading="tableStore.table.loading">
<template v-if="!tableStore.table.loading">
@@ -46,12 +44,8 @@
<my-echart :options="areaStatistics" />
</div>
<div>
<vxe-table
height="auto"
auto-resize
:data="tableStore.table.data.area.areaInfo"
v-bind="defaultAttribute"
>
<vxe-table height="auto" auto-resize :data="tableStore.table.data.area.areaInfo"
v-bind="defaultAttribute">
<vxe-column field="areaName" title="区域"></vxe-column>
<vxe-column field="numberOfTerminals" title="终端个数" width="80"></vxe-column>
<vxe-column field="normal" title="投运" width="80"></vxe-column>
@@ -68,12 +62,8 @@
<my-echart :options="factoryStatistics" />
</div>
<div>
<vxe-table
height="auto"
auto-resize
:data="tableStore.table.data.factory.areaInfo"
v-bind="defaultAttribute"
>
<vxe-table height="auto" auto-resize :data="tableStore.table.data.factory.areaInfo"
v-bind="defaultAttribute">
<vxe-column field="areaName" title="厂家"></vxe-column>
<vxe-column field="numberOfTerminals" title="终端个数" width="80"></vxe-column>
<vxe-column field="normal" title="投运" width="80"></vxe-column>
@@ -125,7 +115,7 @@ const tableStore = new TableStore({
)
},
tooltip: {
formatter: function (params:any) {
formatter: function (params: any) {
var tips = ''
tips += params[0].name + '</br/>'
for (var i = 0; i < params.length; i++) {
@@ -411,6 +401,6 @@ const layout = mainHeight(104) as any
grid-template-columns: 1fr 600px;
grid-template-rows: 1fr 1fr;
grid-gap: 10px;
}
</style>