Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
W
web-project
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
海康威视
web-project
Commits
77ecd1bc
Commit
77ecd1bc
authored
Aug 13, 2024
by
裴文涛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.91isoft.com:90/hikvision/web-project
parents
29c4a617
cd57e9b3
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1094 additions
and
650 deletions
+1094
-650
dateTimePicker.vue
src/components/FormComponents/dateTimePicker.vue
+22
-0
index.js
src/components/FormComponents/index.js
+9
-0
input.vue
src/components/FormComponents/input.vue
+22
-0
select.vue
src/components/FormComponents/select.vue
+33
-0
PageData.vue
src/components/PageData.vue
+194
-0
index.js
src/router/index.js
+564
-540
mitter.js
src/utils/mitter.js
+5
-0
request.js
src/utils/request.js
+2
-2
AlarmStatusPage.vue
src/views/AlarmPage/AlarmStatusPage.vue
+102
-68
ConfigBoilerPage.vue
src/views/SchedulingPage/ConfigBoilerPage.vue
+27
-17
EnergyManagePage.vue
src/views/SchedulingPage/EnergyManagePage.vue
+20
-11
InstantHeatPage.vue
src/views/SchedulingPage/InstantHeatPage.vue
+16
-12
aedio.mp3
src/views/SchedulingPage/aedio.mp3
+0
-0
PipeTemperature.vue
src/views/SmartNumbers/PipeTemperature.vue
+22
-0
formSchems.js
src/views/SmartNumbers/formSchems.js
+56
-0
No files found.
src/components/FormComponents/dateTimePicker.vue
0 → 100644
View file @
77ecd1bc
<
script
setup
>
import
mitter
from
"@/utils/mitter"
;
import
{
ref
}
from
"vue"
;
const
props
=
defineProps
({
items
:
Object
,
prop
:
String
,
});
const
value
=
ref
(
""
);
const
input
=
()
=>
{
console
.
log
(
props
.
items
);
mitter
.
emit
(
"changeVal"
,
{
name
:
props
.
prop
,
value
:
value
.
value
});
};
</
script
>
<
template
>
<div>
<el-date-picker
v-bind=
"items"
v-model=
"value"
@
input=
"input"
/>
</div>
</
template
>
src/components/FormComponents/index.js
0 → 100644
View file @
77ecd1bc
import
select
from
"./select.vue"
;
import
input
from
"./input.vue"
;
import
dateTimePicker
from
"./dateTimePicker.vue"
;
export
default
{
select
,
input
,
dateTimePicker
};
src/components/FormComponents/input.vue
0 → 100644
View file @
77ecd1bc
<
script
setup
>
import
mitter
from
"@/utils/mitter"
;
import
{
ref
}
from
"vue"
;
const
props
=
defineProps
({
items
:
Object
,
prop
:
String
,
});
const
value
=
ref
(
""
);
const
input
=
()
=>
{
console
.
log
(
props
.
items
);
mitter
.
emit
(
"changeVal"
,
{
name
:
props
.
prop
,
value
:
value
.
value
});
};
</
script
>
<
template
>
<div>
<el-input
v-bind=
"items"
v-model=
"value"
@
input=
"input"
/>
</div>
</
template
>
src/components/FormComponents/select.vue
0 → 100644
View file @
77ecd1bc
<
script
setup
>
import
{
ref
}
from
"vue"
;
import
emitter
from
"@/utils/mitter"
;
const
porps
=
defineProps
({
items
:
Object
,
prop
:
String
,
});
const
value
=
ref
(
""
);
// 选择某一项之后触发changeVale事件
const
onChangeFirstValue
=
(
val
)
=>
{
emitter
.
emit
(
"changeVal"
,
{
name
:
porps
.
prop
,
value
:
value
.
value
});
};
</
script
>
<
template
>
<div>
<el-select
v-model=
"value"
:v-bind=
"items"
style=
"width: 240px"
@
change=
"onChangeFirstValue(value)"
>
<el-option
v-for=
"item in items.options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</div>
</
template
>
\ No newline at end of file
src/components/PageData.vue
0 → 100644
View file @
77ecd1bc
<
template
>
<div
class=
"annual-param-container"
>
<el-card>
<div
class=
"search-add-wrapper"
>
<el-form
ref=
"searchForm"
:inline=
"true"
label-suffix=
":"
>
<el-row
:gutter=
"10"
>
<el-col
v-for=
"(item, index) in props.schemas"
:key=
"index"
:span=
"20"
>
<el-form-item
:label=
"item.label"
:prop=
"item.prop"
>
<component
:is=
"components[item.type]"
:prop=
"item.prop"
:items=
"item.componentProps"
></component>
<!--
<el-input
v-model=
"queryPrarms"
placeholder=
"请选择"
/>
-->
</el-form-item>
</el-col>
</el-row>
</el-form>
<div>
<el-button
type=
"primary"
class=
"add-search-btn"
@
click=
"handleSearch"
>
查询
</el-button
>
<el-button
type=
"primary"
class=
"add-search-btn"
@
click=
"handleReset"
>
重置
</el-button
>
</div>
</div>
<div
class=
"table-wrapper"
>
<el-table
:data=
"data"
stripe
border
style=
"width: 100%"
:header-cell-class-name=
"tableHeaderClass"
:row-class-name=
"tableBodyClass"
>
<el-table-column
v-for=
"(column, key) in columns"
:key=
"key"
:v-bind=
"column"
></el-table-column>
</el-table>
</div>
</el-card>
</div>
</
template
>
<
script
setup
>
import
{
defineProps
,
reactive
,
watch
}
from
"vue"
;
import
mitter
from
"@/utils/mitter"
;
import
components
from
"@/components/FormComponents/index"
;
// 将所有组件引入
const
emit
=
defineEmits
([
"DataChange"
]);
const
props
=
defineProps
({
schemas
:
{
type
:
Array
,
default
:
[],
},
formData
:
{
type
:
Object
,
default
:
()
=>
{},
},
api
:
{
type
:
String
,
default
:
""
,
},
columns
:
{
type
:
Array
,
default
:
[],
},
});
const
data
=
reactive
([]);
const
searchForm
=
reactive
({});
const
handleSearch
=
()
=>
{
console
.
log
(
handleSearch
);
};
const
handleReset
=
()
=>
{
console
.
log
(
handleReset
);
};
// 监听chageVal
mitter
.
on
(
"changeVal"
,
(
data
)
=>
{
console
.
log
(
data
);
const
{
name
,
value
}
=
data
;
if
(
name
)
{
props
.
formData
[
name
]
=
value
;
}
});
watch
(
()
=>
props
.
formData
,
(
newVal
)
=>
{
emit
(
"DataChange"
,
newVal
);
},
{
deep
:
true
}
);
defineExpose
({
formData
:
props
.
formData
});
</
script
>
<
style
scoped
lang=
"less"
>
.annual-param-container {
width: 100%;
margin: 4px;
}
.search-add-wrapper {
width: 100%;
display: flex;
justify-content: start;
}
.search-add-wrapper .el-row {
border: none;
display: flex;
align-items: center;
margin: 5px 10px 5px 5px;
}
.add-search-btn {
margin: 5px 10px 5px 0;
}
:deep(.table-header-class) {
text-align: center;
font-size: 12px;
background-color: #c4d8f1 !important;
color: #124c6a;
}
:deep(.table-body-class) {
font-size: 12px;
color: black;
}
.table-operate-column {
display: flex;
justify-content: center;
align-items: center;
}
.table-operate-column .el-button {
font-size: 12px;
}
::v-deep .el-table__body tr:hover > td {
background: linear-gradient(
to top,
rgb(0, 198, 255),
rgb(255, 255, 255)
) !important;
}
.pagination-wrapper {
padding: 5px;
display: flex;
justify-content: space-between;
align-items: center;
}
.el-row[first] {
border-top: 1px solid #a6c3e9;
}
.el-row {
border-left: 1px solid #a6c3e9;
border-right: 1px solid #a6c3e9;
border-bottom: 1px solid #a6c3e9;
width: 100%;
height: 35px;
color: #124362;
}
.el-col[col-label] {
display: flex;
justify-content: end;
align-items: center;
border-right: 1px solid #a6c3e9;
background-color: #f2f6f8;
padding-right: 5px;
}
.el-col[col-value] {
display: flex;
justify-content: start;
align-items: center;
padding-left: 5px;
}
.el-input {
color: black;
height: 24px;
}
</
style
>
src/router/index.js
View file @
77ecd1bc
// 创建路由为历史
import
{
createRouter
,
createWebHistory
}
from
"vue-router"
;
import
LoginPage
from
'@/views/login/login.vue'
import
HomePage
from
'@/views/home.vue'
import
AboutPage
from
'@/components/About.vue'
import
store
from
'@/store'
import
{
createRouter
,
createWebHistory
}
from
"vue-router"
;
import
LoginPage
from
"@/views/login/login.vue"
;
import
HomePage
from
"@/views/home.vue"
;
import
AboutPage
from
"@/components/About.vue"
;
import
store
from
"@/store"
;
//import nProgress from 'nprogress'
import
screenDisplay
from
'@/views/Gis/screenDisplay.vue'
import
iframe
from
'@/views/iframe.vue'
import
screenDisplay
from
"@/views/Gis/screenDisplay.vue"
;
import
iframe
from
"@/views/iframe.vue"
;
// 定义路由规则
const
routes
=
[
{
path
:
'/'
,
component
:
HomePage
path
:
"/"
,
component
:
HomePage
,
},
{
path
:
"/screenDisplay"
,
component
:
screenDisplay
,
},
{
path
:
'/screenDisplay'
,
component
:
screenDisplay
},
{
path
:
'/iframe'
,
name
:
'iframe'
,
component
:
iframe
path
:
"/iframe"
,
name
:
"iframe"
,
component
:
iframe
,
},
{
path
:
'/Login'
,
path
:
"/Login"
,
name
:
"/Login"
,
component
:
LoginPage
component
:
LoginPage
,
},
{
path
:
'/Home'
,
path
:
"/Home"
,
name
:
"Home"
,
component
:
HomePage
,
children
:
[{
path
:
'/RealSupply'
,
name
:
'RealSupplyPage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealSupplyPage.vue'
),
meta
:
{
title
:
'首页-实时热源'
}
},
{
path
:
'/RealTransfer'
,
name
:
'/RealTransPage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealTransPage.vue'
),
children
:
[
{
path
:
"/RealSupply"
,
name
:
"RealSupplyPage"
,
component
:
()
=>
import
(
"@/views/RealPage/RealSupplyPage.vue"
),
meta
:
{
title
:
'实时换热站'
}
},
{
path
:
'/RealPipe'
,
name
:
'RealPipePage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealPipePage.vue'
),
title
:
"首页-实时热源"
,
},
},
{
path
:
"/RealTransfer"
,
name
:
"/RealTransPage"
,
component
:
()
=>
import
(
"@/views/RealPage/RealTransPage.vue"
),
meta
:
{
title
:
'实时总管'
}
},
{
path
:
'/RealBoiler'
,
name
:
'RealBoilerPage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealBoilerPage.vue'
),
title
:
"实时换热站"
,
},
},
{
path
:
"/RealPipe"
,
name
:
"RealPipePage"
,
component
:
()
=>
import
(
"@/views/RealPage/RealPipePage.vue"
),
meta
:
{
title
:
'实时锅炉'
}
},
{
path
:
'/RealEnergy'
,
name
:
'RealEnergyPage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealEnergyPage.vue'
),
title
:
"实时总管"
,
},
},
{
path
:
"/RealBoiler"
,
name
:
"RealBoilerPage"
,
component
:
()
=>
import
(
"@/views/RealPage/RealBoilerPage.vue"
),
meta
:
{
title
:
'实时能耗'
}
title
:
"实时锅炉"
,
},
},
// },{
// path: '/RealGas',
...
...
@@ -97,428 +96,454 @@ const routes = [
// }
// },
{
path
:
'/PipeStatus'
,
name
:
'PipeStatusPage'
,
component
:
()
=>
import
(
'@/views/StatusPage/PipeStatusPage.vue'
),
meta
:
{
title
:
'总管状态'
}
},
{
path
:
'/BoilerStatus'
,
name
:
'BoilerStatusPage'
,
component
:
()
=>
import
(
'@/views/StatusPage/BoilerStatusPage.vue'
),
path
:
"/PipeStatus"
,
name
:
"PipeStatusPage"
,
component
:
()
=>
import
(
"@/views/StatusPage/PipeStatusPage.vue"
),
meta
:
{
title
:
'锅炉状态'
}
},
{
path
:
'/TransferStatus'
,
name
:
'TransferStatusPage'
,
component
:
()
=>
import
(
'@/views/StatusPage/TransferStatusPage.vue'
),
title
:
"总管状态"
,
},
},
{
path
:
"/BoilerStatus"
,
name
:
"BoilerStatusPage"
,
component
:
()
=>
import
(
"@/views/StatusPage/BoilerStatusPage.vue"
),
meta
:
{
title
:
'换热站状态'
}
},
{
path
:
'/BoilerArtwork'
,
name
:
'BoilerArtworkPage'
,
component
:
()
=>
import
(
'@/views/ArtworkPage/BoilerArtworkPage.vue'
),
title
:
"锅炉状态"
,
},
},
{
path
:
"/TransferStatus"
,
name
:
"TransferStatusPage"
,
component
:
()
=>
import
(
"@/views/StatusPage/TransferStatusPage.vue"
),
meta
:
{
title
:
'锅炉工艺图'
}
},
{
path
:
'/MeasurementArtwork'
,
name
:
'MeasurementArtworkPage'
,
component
:
()
=>
import
(
'@/views/ArtworkPage/MeasurementArtworkPage.vue'
),
title
:
"换热站状态"
,
},
},
{
path
:
"/BoilerArtwork"
,
name
:
"BoilerArtworkPage"
,
component
:
()
=>
import
(
"@/views/ArtworkPage/BoilerArtworkPage.vue"
),
meta
:
{
title
:
'计量站工艺图'
}
},
{
path
:
'/AllBoilerArtwork'
,
name
:
'AllBoilerArtworkPage'
,
component
:
()
=>
import
(
'@/views/ArtworkPage/AllBoilerArtworkPage.vue'
),
title
:
"锅炉工艺图"
,
},
},
{
path
:
"/MeasurementArtwork"
,
name
:
"MeasurementArtworkPage"
,
component
:
()
=>
import
(
"@/views/ArtworkPage/MeasurementArtworkPage.vue"
),
meta
:
{
title
:
'全景工艺图'
}
},
{
path
:
'/TransferArtwork'
,
name
:
'TransferArtworkPage'
,
component
:
()
=>
import
(
'@/views/ArtworkPage/TransferArtworkPage.vue'
),
title
:
"计量站工艺图"
,
},
},
{
path
:
"/AllBoilerArtwork"
,
name
:
"AllBoilerArtworkPage"
,
component
:
()
=>
import
(
"@/views/ArtworkPage/AllBoilerArtworkPage.vue"
),
meta
:
{
title
:
'换热站工艺图'
}
},
{
path
:
'/AlarmStatus'
,
name
:
'AlarmStatusPage'
,
component
:
()
=>
import
(
'@/views/AlarmPage/AlarmStatusPage.vue'
),
title
:
"全景工艺图"
,
},
},
{
path
:
"/TransferArtwork"
,
name
:
"TransferArtworkPage"
,
component
:
()
=>
import
(
"@/views/ArtworkPage/TransferArtworkPage.vue"
),
meta
:
{
title
:
'报警状态'
}
},
{
path
:
'/Alarm'
,
name
:
'AlarmInfoPage'
,
component
:
()
=>
import
(
'@/views/AlarmPage/AlarmInfoPage.vue'
),
title
:
"换热站工艺图"
,
},
},
{
path
:
"/AlarmStatus"
,
name
:
"AlarmStatusPage"
,
component
:
()
=>
import
(
"@/views/AlarmPage/AlarmStatusPage.vue"
),
meta
:
{
title
:
'报警信息'
}
},
{
path
:
'/DataAnalysis'
,
name
:
'DataAnalysisPage'
,
component
:
()
=>
import
(
'@/views/HandlerPage/DataAnalysisPage.vue'
),
title
:
"报警状态"
,
},
},
{
path
:
"/Alarm"
,
name
:
"AlarmInfoPage"
,
component
:
()
=>
import
(
"@/views/AlarmPage/AlarmInfoPage.vue"
),
meta
:
{
title
:
'能耗分析'
}
},
{
path
:
'/EnergyConsumption'
,
name
:
'EnergyConsumptionPage'
,
component
:
()
=>
import
(
'@/views/HandlerPage/EnergyConsumptionPage.vue'
),
title
:
"报警信息"
,
},
},
{
path
:
"/DataAnalysis"
,
name
:
"DataAnalysisPage"
,
component
:
()
=>
import
(
"@/views/HandlerPage/DataAnalysisPage.vue"
),
meta
:
{
title
:
'能耗排名'
}
},
{
path
:
'/Handler/EnerpriseEnergyView'
,
name
:
'EnerpriseEnergyView'
,
component
:
()
=>
import
(
'@/views/HandlerPage/EnerpriseEnergyView.vue'
),
title
:
"能耗分析"
,
},
},
{
path
:
"/EnergyConsumption"
,
name
:
"EnergyConsumptionPage"
,
component
:
()
=>
import
(
"@/views/HandlerPage/EnergyConsumptionPage.vue"
),
meta
:
{
title
:
'企业趋势图'
}
},
{
path
:
'/Handler/TransferEnergyView'
,
name
:
'EnergyViewPage'
,
component
:
()
=>
import
(
'@/views/HandlerPage/TransferEnergyView.vue'
),
title
:
"能耗排名"
,
},
},
{
path
:
"/Handler/EnerpriseEnergyView"
,
name
:
"EnerpriseEnergyView"
,
component
:
()
=>
import
(
"@/views/HandlerPage/EnerpriseEnergyView.vue"
),
meta
:
{
title
:
'换热站趋势图'
}
},
{
path
:
'/Handler/QOQView'
,
name
:
'QOQView'
,
component
:
()
=>
import
(
'@/views/HandlerPage/QOQ.vue'
),
title
:
"企业趋势图"
,
},
},
{
path
:
"/Handler/TransferEnergyView"
,
name
:
"EnergyViewPage"
,
component
:
()
=>
import
(
"@/views/HandlerPage/TransferEnergyView.vue"
),
meta
:
{
title
:
'用量环比'
}
},
{
path
:
'/Handler/YOYView'
,
name
:
'YOYView'
,
component
:
()
=>
import
(
'@/views/HandlerPage/YOY.vue'
),
title
:
"换热站趋势图"
,
},
},
{
path
:
"/Handler/QOQView"
,
name
:
"QOQView"
,
component
:
()
=>
import
(
"@/views/HandlerPage/QOQ.vue"
),
meta
:
{
title
:
'用量同比'
}
},
{
path
:
'/HeatAnalysis'
,
name
:
'HeatAnalysisPage'
,
component
:
()
=>
import
(
'@/views/Report/HeatAnalysisPage.vue'
),
title
:
"用量环比"
,
},
},
{
path
:
"/Handler/YOYView"
,
name
:
"YOYView"
,
component
:
()
=>
import
(
"@/views/HandlerPage/YOY.vue"
),
meta
:
{
title
:
'热量分析'
}
},
{
path
:
'/Forecast'
,
name
:
'ForecastPage'
,
component
:
()
=>
import
(
'@/views/Report/ForecastPage.vue'
),
title
:
"用量同比"
,
},
},
{
path
:
"/HeatAnalysis"
,
name
:
"HeatAnalysisPage"
,
component
:
()
=>
import
(
"@/views/Report/HeatAnalysisPage.vue"
),
meta
:
{
title
:
'明日预测'
}
},
{
path
:
'/RealAnalysis'
,
name
:
'RealAnalysisPage'
,
component
:
()
=>
import
(
'@/views/Report/RealAnalysisPage.vue'
),
title
:
"热量分析"
,
},
},
{
path
:
"/Forecast"
,
name
:
"ForecastPage"
,
component
:
()
=>
import
(
"@/views/Report/ForecastPage.vue"
),
meta
:
{
title
:
'实时热量分析'
}
},
{
path
:
'/TransferEnergy'
,
name
:
'TransferEnergyPage'
,
component
:
()
=>
import
(
'@/views/Report/TransferEnergyPage.vue'
),
title
:
"明日预测"
,
},
},
{
path
:
"/RealAnalysis"
,
name
:
"RealAnalysisPage"
,
component
:
()
=>
import
(
"@/views/Report/RealAnalysisPage.vue"
),
meta
:
{
title
:
'换热站能耗'
}
},
{
path
:
'/AreaInfo'
,
name
:
'AreaInfoPage'
,
component
:
()
=>
import
(
'@/views/Report/AreaInfoPage.vue'
),
title
:
"实时热量分析"
,
},
},
{
path
:
"/TransferEnergy"
,
name
:
"TransferEnergyPage"
,
component
:
()
=>
import
(
"@/views/Report/TransferEnergyPage.vue"
),
meta
:
{
title
:
'面积统计'
}
},
{
path
:
'/TodayPatrol'
,
name
:
'PatrolPage'
,
component
:
()
=>
import
(
'@/views/PatrolPage/TodayPatrolPage.vue'
),
title
:
"换热站能耗"
,
},
},
{
path
:
"/AreaInfo"
,
name
:
"AreaInfoPage"
,
component
:
()
=>
import
(
"@/views/Report/AreaInfoPage.vue"
),
meta
:
{
title
:
'今日巡更'
}
},
{
path
:
'/HisPatrol'
,
name
:
'HisPatrolPage'
,
component
:
()
=>
import
(
'@/views/PatrolPage/HisPatrolPage.vue'
),
title
:
"面积统计"
,
},
},
{
path
:
"/TodayPatrol"
,
name
:
"PatrolPage"
,
component
:
()
=>
import
(
"@/views/PatrolPage/TodayPatrolPage.vue"
),
meta
:
{
title
:
'巡更历史'
}
},
{
path
:
'/HeatUser'
,
name
:
'HeatUserPage'
,
component
:
()
=>
import
(
'@/views/HeatUserPage/HeatUserPage.vue'
),
title
:
"今日巡更"
,
},
},
{
path
:
"/HisPatrol"
,
name
:
"HisPatrolPage"
,
component
:
()
=>
import
(
"@/views/PatrolPage/HisPatrolPage.vue"
),
meta
:
{
title
:
'热用户'
}
},
{
path
:
'/HeatUser/Tap'
,
name
:
'TapPage'
,
component
:
()
=>
import
(
'@/views/HeatUserPage/TapPage.vue'
),
title
:
"巡更历史"
,
},
},
{
path
:
"/HeatUser"
,
name
:
"HeatUserPage"
,
component
:
()
=>
import
(
"@/views/HeatUserPage/HeatUserPage.vue"
),
meta
:
{
title
:
'阀门'
}
},
{
path
:
'/History/Pipe'
,
name
:
'HisPipe'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisPipePage.vue'
),
title
:
"热用户"
,
},
},
{
path
:
"/HeatUser/Tap"
,
name
:
"TapPage"
,
component
:
()
=>
import
(
"@/views/HeatUserPage/TapPage.vue"
),
meta
:
{
title
:
'总管历史数据'
}
},
{
path
:
'/History/Boiler'
,
name
:
'HisBoiler'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisBoilerPage.vue'
),
title
:
"阀门"
,
},
},
{
path
:
"/History/Pipe"
,
name
:
"HisPipe"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisPipePage.vue"
),
meta
:
{
title
:
'锅炉历史数据'
}
},
{
path
:
'/History/Transfer'
,
name
:
'HisTransfer'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisTransPage.vue'
),
title
:
"总管历史数据"
,
},
},
{
path
:
"/History/Boiler"
,
name
:
"HisBoiler"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisBoilerPage.vue"
),
meta
:
{
title
:
'换热站历史数据'
}
},
{
path
:
'/History/Gas'
,
name
:
'HisGas'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisGasPage.vue'
),
title
:
"锅炉历史数据"
,
},
},
{
path
:
"/History/Transfer"
,
name
:
"HisTransfer"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisTransPage.vue"
),
meta
:
{
title
:
'燃气历史数据'
}
},
{
path
:
'/History/Water'
,
name
:
'HisWater'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisWaterPage.vue'
),
title
:
"换热站历史数据"
,
},
},
{
path
:
"/History/Gas"
,
name
:
"HisGas"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisGasPage.vue"
),
meta
:
{
title
:
'水表历史数据'
}
},
{
path
:
'/History/Heat'
,
name
:
'HisHeat'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisHeatPage.vue'
),
title
:
"燃气历史数据"
,
},
},
{
path
:
"/History/Water"
,
name
:
"HisWater"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisWaterPage.vue"
),
meta
:
{
title
:
'热表历史数据'
}
},
{
path
:
'/History/Electric'
,
name
:
'HisElectric'
,
component
:
()
=>
import
(
'@/views/HistoryPage/HisElecPage.vue'
),
title
:
"水表历史数据"
,
},
},
{
path
:
"/History/Heat"
,
name
:
"HisHeat"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisHeatPage.vue"
),
meta
:
{
title
:
'电表历史数据'
}
},
{
path
:
'/Handler/Overview'
,
name
:
'Overview'
,
component
:
()
=>
import
(
'@/views/HandlerPage/OverviewPage.vue'
),
title
:
"热表历史数据"
,
},
},
{
path
:
"/History/Electric"
,
name
:
"HisElectric"
,
component
:
()
=>
import
(
"@/views/HistoryPage/HisElecPage.vue"
),
meta
:
{
title
:
'数据总览'
}
},
{
path
:
'/Handler/EnergyView'
,
name
:
'EnergyView'
,
component
:
()
=>
import
(
'@/views/HandlerPage/QOQ.vue'
),
//EnergyViewPage
title
:
"电表历史数据"
,
},
},
{
path
:
"/Handler/Overview"
,
name
:
"Overview"
,
component
:
()
=>
import
(
"@/views/HandlerPage/OverviewPage.vue"
),
meta
:
{
title
:
'趋势图'
}
},
{
path
:
'/Remote/Boiler'
,
name
:
'BoilerRemotePage'
,
component
:
()
=>
import
(
'@/views/RemotePage/BoilerControlPage.vue'
),
title
:
"数据总览"
,
},
},
{
path
:
"/Handler/EnergyView"
,
name
:
"EnergyView"
,
component
:
()
=>
import
(
"@/views/HandlerPage/QOQ.vue"
),
//EnergyViewPage
meta
:
{
title
:
'锅炉远程控制'
}
title
:
"趋势图"
,
},
},
{
path
:
'/Remote/ZdlmSelfTest'
,
name
:
'ZdlmSelfTestPage'
,
component
:
()
=>
import
(
'@/views/RemotePage/ZdlmSelfTest.vue'
),
path
:
"/Remote/Boiler"
,
name
:
"BoilerRemotePage"
,
component
:
()
=>
import
(
"@/views/RemotePage/BoilerControlPage.vue"
),
meta
:
{
title
:
'电动阀自检'
}
title
:
"锅炉远程控制"
,
},
},
{
path
:
'/Remote/Transfer'
,
name
:
'TransferRemotePage'
,
component
:
()
=>
import
(
'@/views/RemotePage/TransControlPage.vue'
),
path
:
"/Remote/ZdlmSelfTest"
,
name
:
"ZdlmSelfTestPage"
,
component
:
()
=>
import
(
"@/views/RemotePage/ZdlmSelfTest.vue"
),
meta
:
{
title
:
'换热站远程控制'
}
},
{
path
:
'/Remote/TransferPump'
,
name
:
'TransferPumpPage'
,
component
:
()
=>
import
(
'@/views/RemotePage/TransferPumpPage.vue'
),
title
:
"电动阀自检"
,
},
},
{
path
:
"/Remote/Transfer"
,
name
:
"TransferRemotePage"
,
component
:
()
=>
import
(
"@/views/RemotePage/TransControlPage.vue"
),
meta
:
{
title
:
'循环泵压差控制'
}
},
{
path
:
'/Video'
,
name
:
'VideoPage'
,
component
:
()
=>
import
(
'@/views/Video/VideoViewPage.vue'
),
title
:
"换热站远程控制"
,
},
},
{
path
:
"/Remote/TransferPump"
,
name
:
"TransferPumpPage"
,
component
:
()
=>
import
(
"@/views/RemotePage/TransferPumpPage.vue"
),
meta
:
{
title
:
'视频监控'
}
title
:
"循环泵压差控制"
,
},
},
{
path
:
'/Scheduling/EnergyManage'
,
name
:
'EnergyManagePage'
,
component
:
()
=>
import
(
'@/views/SchedulingPage/EnergyManagePage.vue'
),
path
:
"/Video"
,
name
:
"VideoPage"
,
component
:
()
=>
import
(
"@/views/Video/VideoViewPage.vue"
),
meta
:
{
title
:
'能源消耗'
}
title
:
"视频监控"
,
},
},
{
path
:
'/Scheduling/WeatherManage'
,
name
:
'WeatherManagePage'
,
component
:
()
=>
import
(
'@/views/SchedulingPage/WeatherManagePage.vue'
),
path
:
"/Scheduling/EnergyManage"
,
name
:
"EnergyManagePage"
,
// component: () => import("@/views/SmartNumbers/PipeTemperature.vue"),
component
:
()
=>
import
(
"@/views/SchedulingPage/EnergyManagePage.vue"
),
meta
:
{
title
:
'气象干预'
}
title
:
"能源消耗"
,
},
},
{
path
:
'/Scheduling/AnnualParam'
,
name
:
'AnnualParamPage'
,
component
:
()
=>
import
(
'@/views/SchedulingPage/AnnualParamPage.vue'
),
path
:
"/Scheduling/WeatherManage"
,
name
:
"WeatherManagePage"
,
component
:
()
=>
import
(
"@/views/SchedulingPage/WeatherManagePage.vue"
),
meta
:
{
title
:
'年度参数'
}
title
:
"气象干预"
,
},
},
{
path
:
'/Scheduling/ConfigBoiler'
,
name
:
'ConfigBoiler'
,
component
:
()
=>
import
(
'../views/SchedulingPage/ConfigBoilerPage.vue'
),
path
:
"/Scheduling/AnnualParam"
,
name
:
"AnnualParamPage"
,
component
:
()
=>
import
(
"@/views/SchedulingPage/AnnualParamPage.vue"
),
meta
:
{
title
:
'参数配置'
}
title
:
"年度参数"
,
},
},
{
path
:
'/Scheduling/WindManage'
,
name
:
'WindManage'
,
component
:
()
=>
import
(
'../views/SchedulingPage/WindManagePage.vue'
),
path
:
"/Scheduling/ConfigBoiler"
,
name
:
"ConfigBoiler"
,
component
:
()
=>
import
(
"../views/SchedulingPage/ConfigBoilerPage.vue"
),
meta
:
{
title
:
'风力配置管理'
}
title
:
"参数配置"
,
},
},
{
path
:
'/Scheduling/Phenomenon'
,
name
:
'Phenomenon'
,
component
:
()
=>
import
(
'../views/SchedulingPage/PhenomenonPage.vue'
),
path
:
"/Scheduling/WindManage"
,
name
:
"WindManage"
,
component
:
()
=>
import
(
"../views/SchedulingPage/WindManagePage.vue"
),
meta
:
{
title
:
'天气工况管理'
}
title
:
"风力配置管理"
,
},
},
{
path
:
"/Scheduling/Phenomenon"
,
name
:
"Phenomenon"
,
},
{
path
:
'/Scheduling/InstantHeat'
,
name
:
'InstantHeatPage'
,
component
:
()
=>
import
(
'@/views/SchedulingPage/InstantHeatPage.vue'
),
component
:
()
=>
import
(
"../views/SchedulingPage/PhenomenonPage.vue"
),
meta
:
{
title
:
'瞬时热量对比配置'
}
}
]
title
:
"天气工况管理"
,
},
},
{
path
:
'/About'
,
name
:
"/About"
,
component
:
AboutPage
}
,
{
path
:
'/GisHome'
,
name
:
'/GisHome'
,
component
:
()
=>
import
(
'@/views/Gis/screenDisplay.vue'
),
meta
:
{
title
:
'地图'
}
}
,
//捕获404路由
{
path
:
'/:pathMatch(.*)*'
,
name
:
'NotFound'
,
component
:
()
=>
import
(
'@/views/404.vue'
)
}
,
path
:
"/Scheduling/InstantHeat"
,
name
:
"InstantHeatPage"
,
component
:
()
=>
import
(
"@/views/SchedulingPage/InstantHeatPage.vue"
),
meta
:
{
title
:
"瞬时热量对比配置"
,
},
},
{
path
:
'/TransferArt'
,
name
:
'/TransferArt'
,
component
:
()
=>
import
(
'@/components/art/TransferArt.vue'
),
meta
:
path
:
"/SmartNumbers"
,
name
:
"SmartNumbers"
,
component
:
()
=>
import
(
"@/views/SmartNumbers/PipeTemperature.vue"
),
meta
:
{
title
:
"智数换热站"
,
},
},
{
title
:
'换热站工艺图'
}
}
,
path
:
"/SmartNumbers/PipeTemperature"
,
name
:
"PipeTemperature"
,
component
:
()
=>
import
(
"@/views/SmartNumbers/PipeTemperature.vue"
),
meta
:
{
title
:
"实时总管"
,
},
},
],
},
{
path
:
'/BoilerArt'
,
name
:
'/BoilerArt'
,
component
:
()
=>
import
(
'@/components/art/BoilerArt.vue'
),
meta
:
path
:
"/About"
,
name
:
"/About"
,
component
:
AboutPage
,
},
{
title
:
'锅炉工艺图'
}
}
,
path
:
"/GisHome"
,
name
:
"/GisHome"
,
component
:
()
=>
import
(
"@/views/Gis/screenDisplay.vue"
),
meta
:
{
title
:
"地图"
,
},
},
//捕获404路由
{
path
:
'/AllBoilerArt'
,
name
:
'AllBoilerArt'
,
component
:
()
=>
import
(
'@/components/art/AllBoilerArt.vue'
),
meta
:
path
:
"/:pathMatch(.*)*"
,
name
:
"NotFound"
,
component
:
()
=>
import
(
"@/views/404.vue"
),
},
{
title
:
'锅炉全景工艺图'
}
}
,
path
:
"/TransferArt"
,
name
:
"/TransferArt"
,
component
:
()
=>
import
(
"@/components/art/TransferArt.vue"
),
meta
:
{
title
:
"换热站工艺图"
,
},
},
{
path
:
'/MeasurementArt'
,
name
:
'MeasurementArt'
,
component
:
()
=>
import
(
'@/components/art/MeasurementArt.vue'
),
meta
:
path
:
"/BoilerArt"
,
name
:
"/BoilerArt"
,
component
:
()
=>
import
(
"@/components/art/BoilerArt.vue"
),
meta
:
{
title
:
"锅炉工艺图"
,
},
},
{
title
:
'计量站全景工艺图'
}
}
,
path
:
"/AllBoilerArt"
,
name
:
"AllBoilerArt"
,
component
:
()
=>
import
(
"@/components/art/AllBoilerArt.vue"
),
meta
:
{
title
:
"锅炉全景工艺图"
,
},
},
{
path
:
'/Visualizations'
,
name
:
'Visualizations'
,
component
:
()
=>
import
(
'@/views/Visualizations/index.vue'
),
meta
:
path
:
"/MeasurementArt"
,
name
:
"MeasurementArt"
,
component
:
()
=>
import
(
"@/components/art/MeasurementArt.vue"
),
meta
:
{
title
:
"计量站全景工艺图"
,
},
},
{
title
:
'可视化'
}
}
]
path
:
"/Visualizations"
,
name
:
"Visualizations"
,
component
:
()
=>
import
(
"@/views/Visualizations/index.vue"
),
meta
:
{
title
:
"可视化"
,
},
},
];
//创建路由实例对象
const
router
=
createRouter
({
routes
,
history
:
createWebHistory
(
import
.
meta
.
env
.
BASE_URL
)
})
history
:
createWebHistory
(
import
.
meta
.
env
.
BASE_URL
),
})
;
// // 使用路由守卫来判断是否已经加载了Home页面
// let homeLoaded = false
...
...
@@ -534,8 +559,7 @@ const router = createRouter({
// }
// })
let
isgetOrg
=
false
let
isgetOrg
=
false
;
//全局前置路由守卫
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
//store.dispatch("onLoading", true);
...
...
@@ -546,33 +570,33 @@ router.beforeEach(async (to, from, next) => {
const
token
=
store
.
getters
.
getToken
();
//console.log(token);
//如果未登录跳转到登录页面
if
(
!
userInfo
&&
to
.
path
!==
'/login'
)
return
next
(
'/login'
)
if
(
!
userInfo
&&
to
.
path
!==
"/login"
)
return
next
(
"/login"
);
//如果已登录避免重复登录
if
(
userInfo
&&
to
.
path
==
'/login'
)
{
return
next
({
path
:
from
.
path
?
from
.
path
:
'/'
})
if
(
userInfo
&&
to
.
path
==
"/login"
)
{
return
next
({
path
:
from
.
path
?
from
.
path
:
"/"
});
}
let
hasNewRoutes
=
false
let
hasNewRoutes
=
false
;
//如果用户登录成功,调用Vuex方法,存储用户信息
if
(
userInfo
&&
!
isgetOrg
)
{
try
{
const
res
=
await
store
.
dispatch
(
'getOrg'
)
isgetOrg
=
true
const
res
=
await
store
.
dispatch
(
"getOrg"
);
isgetOrg
=
true
;
}
catch
(
error
)
{
store
.
commit
(
"clearUserInfo"
,
""
);
return
next
(
'/login'
)
return
next
(
"/login"
);
}
}
//手动指定路由
//如果确实有新路由加入手动指定路由,否则直接放行
hasNewRoutes
?
next
(
to
.
fullPath
)
:
next
()
hasNewRoutes
?
next
(
to
.
fullPath
)
:
next
();
//next()
})
})
;
// router.afterEach((to, from) => {
// store.dispatch("onLoading", false);
// })
// 共享路由实例对象
export
default
router
\ No newline at end of file
export
default
router
;
src/utils/mitter.js
0 → 100644
View file @
77ecd1bc
import
mitt
from
"mitt"
;
const
emitter
=
mitt
();
export
default
emitter
;
\ No newline at end of file
src/utils/request.js
View file @
77ecd1bc
...
...
@@ -3,5 +3,5 @@ const port='8001';
//export const SERVEICE='http://218.69.97.198:8001'
//'http://218.69.97.198:8001'
//export const TEST_SERVEICE='http://
localhost:5013
'
export
const
SERVEICE
=
'http://
localhost:5013
'
//export const TEST_SERVEICE='http://
192.168.1.2:5013/
'
export
const
SERVEICE
=
'http://
192.168.1.2:5013/
'
src/views/AlarmPage/AlarmStatusPage.vue
View file @
77ecd1bc
...
...
@@ -81,7 +81,7 @@
</el-form-item>
</el-form>
</div>
<el-row>
<el-row
v-show=
"dialog_content"
>
<el-col
:span=
"6"
>
<div
class=
"left"
>
<el-table
:data=
"cnNames_before"
class=
"scroll-table"
:row-style=
"{ height: '16px' }"
...
...
@@ -97,7 +97,7 @@
<el-col
:span=
"12"
>
<div
class=
"middle"
>
<el-form
ref=
"formRef"
:model=
"addParams"
:rules=
"rules"
label-width=
"auto"
>
<el-form
ref=
"formRef"
:model=
"addParams"
:rules=
"rules"
label-width=
"auto"
:disabled=
"form_control"
>
<table
cellpadding=
"0"
cellspacing=
"1"
border=
"1"
class=
"big_table"
>
<tr>
<th
style=
"width: 25%"
>
报警名称:
</th>
...
...
@@ -187,7 +187,10 @@
<table
cellpadding=
"0"
cellspacing=
"0"
>
<tr>
<td
style=
"text-align: left"
>
<el-input
style=
"width: 80%"
type=
"textarea"
rows=
"6"
v-model=
"addParams.alarmPlan"
></el-input>
<el-form-item
prop=
"alarmPlan"
>
<el-input
style=
"width: 80%"
type=
"textarea"
rows=
"6"
v-model=
"addParams.alarmPlan"
></el-input>
</el-form-item>
</td>
</tr>
</table>
...
...
@@ -574,35 +577,33 @@ let param = ref({
//表单校验规则
const
formRef
=
ref
()
addParams
.
value
=
{}
const
rules
=
reactive
({
topMost
:
[
{
required
:
true
,
message
:
"上上限值是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"上上限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'上上限值必须是 1-10位的数字'
,
trigger
:
'blur'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"上上限值是 1-10位实数"
,
trigger
:
"blur"
}
],
upper
:
[
{
required
:
true
,
message
:
"上限值是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"上限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'上限值必须是 1-10位的数字'
,
trigger
:
'blur'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"上限值是 1-10位实数"
,
trigger
:
"blur"
}
],
lower
:
[
{
required
:
true
,
message
:
"下限值是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"下限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'下限值必须是 1-10位的数字'
,
trigger
:
'blur'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"下限值是 1-10位实数"
,
trigger
:
"blur"
}
],
downMost
:
[
{
required
:
true
,
message
:
"下下限值是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"下下限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'下下限值必须是 1-10位的数字'
,
trigger
:
'blur'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"下下限值是 1-10位实数"
,
trigger
:
"blur"
}
],
alarmPlan
:
[
{
pattern
:
/^.
{1,50}
$/
,
"message"
:
"报警预案是 1-50位字符"
,
trigger
:
"blur"
}
]
});
let
newType
=
ref
(
0
)
watchEffect
(()
=>
{
console
.
log
(
"监听::::"
,
type
.
value
);
//
console.log("监听::::", type.value);
if
(
type
.
value
===
"GetPipeAlarmStatusData"
)
{
newType
.
value
=
1
param
.
value
.
baseId
=
"pipeParaBaseId"
...
...
@@ -628,9 +629,17 @@ const getCnNames = () => {
});
}
// 表单编辑控制
const
dialog_content
=
ref
(
false
)
const
form_control
=
ref
(
true
)
// 点击确定查询数据
const
paramsSetting
=
()
=>
{
dialog_content
.
value
=
true
getCnNames
()
ElMessage
.
info
(
"请选择参数后进行编辑..."
)
}
// newRow接收param.value.baseId,添加需要使用
...
...
@@ -659,6 +668,7 @@ const selectBeforeParams = (row) => {
// console.log("查看baseId --- dataaaaa:", data);
data
.
then
(
function
()
{
param
.
value
.
cnName
=
row
.
cnName
form_control
.
value
=
false
});
}
else
{
ElMessage
.
info
(
"该参数暂不需要修改..."
)
...
...
@@ -692,6 +702,7 @@ const selectAfterParams = (row) => {
// 数据回显
addParams
.
value
=
{
...
val
.
data
}
param
.
value
.
cnName
=
row
.
cnName
form_control
.
value
=
false
if
(
type
.
value
===
1
)
{
delId
.
value
=
val
.
data
.
pipeAlarmParaId
}
else
if
(
type
.
value
===
2
)
{
...
...
@@ -711,6 +722,9 @@ const selectAfterParams = (row) => {
const
onAdd
=
()
=>
{
// console.log("!!!!!!!", addParams.value);
// 提交添加或修改-以上至少有一个选项有值
if
(
addParams
.
value
.
topMost
||
addParams
.
value
.
upper
||
addParams
.
value
.
lower
||
addParams
.
value
.
downMost
)
{
// 执行添加或修改
addParams
.
value
.
updateNullFields
=
""
if
(
newType
.
value
===
1
)
{
addParams
.
value
.
pipeId
=
dept
.
value
...
...
@@ -720,6 +734,7 @@ const onAdd = () => {
}
else
{
addParams
.
value
.
gatherType
=
1
}
http
.
post
(
"api/alarm/para/pipesave"
,
{
...
addParams
.
value
},
false
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
(
res
.
message
)
...
...
@@ -729,6 +744,7 @@ const onAdd = () => {
delete
addParams
.
value
.
voicePath
reset
()
param
.
value
.
cnName
=
""
form_control
.
value
=
true
getCnNames
()
}
else
{
ElMessage
.
error
(
"操作失败"
)
...
...
@@ -744,6 +760,7 @@ const onAdd = () => {
delete
addParams
.
value
.
boilerId
reset
()
param
.
value
.
cnName
=
""
form_control
.
value
=
true
getCnNames
()
}
else
{
ElMessage
.
error
(
"操作失败"
)
...
...
@@ -760,12 +777,18 @@ const onAdd = () => {
delete
addParams
.
value
.
unitId
reset
()
param
.
value
.
cnName
=
""
form_control
.
value
=
true
getCnNames
()
}
else
{
ElMessage
.
error
(
"操作失败"
)
}
})
}
}
else
{
ElMessage
.
error
(
"请至少输入一个报警上下限数值"
)
}
}
// 按钮
...
...
@@ -785,6 +808,8 @@ const onDel = () => {
http
.
post
(
"api/alarm/para/pipedelete"
,
{
id
:
delId
.
value
},
false
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
(
res
.
message
)
param
.
value
.
cnName
=
""
form_control
.
value
=
true
reset
()
}
else
{
ElMessage
.
error
(
"删除失败!!"
)
...
...
@@ -794,6 +819,8 @@ const onDel = () => {
http
.
post
(
"api/alarm/para/boilerdelete"
,
{
id
:
delId
.
value
},
false
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
(
res
.
message
)
param
.
value
.
cnName
=
""
form_control
.
value
=
true
reset
()
}
else
{
ElMessage
.
error
(
"删除失败"
)
...
...
@@ -803,6 +830,8 @@ const onDel = () => {
http
.
post
(
"api/alarm/para/transdelete"
,
{
id
:
delId
.
value
},
false
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
ElMessage
.
success
(
res
.
message
)
param
.
value
.
cnName
=
""
form_control
.
value
=
true
reset
()
}
else
{
ElMessage
.
error
(
"删除失败"
)
...
...
@@ -815,7 +844,6 @@ const onDel = () => {
}).
finally
(()
=>
{
getCnNames
()
})
}
// 关闭dialog右上× 清空数据
...
...
@@ -828,6 +856,12 @@ const onClose = () => {
param
.
value
.
cnName
=
""
}
// watchEffect(() => {
// if (param.value.cnName) {
// form_control.value = false
// }
// })
onMounted
(()
=>
{
getuser
()
setContentHeight
();
...
...
src/views/SchedulingPage/ConfigBoilerPage.vue
View file @
77ecd1bc
...
...
@@ -40,7 +40,7 @@
<tr>
<td
style=
"text-align: left"
>
<el-form-item
prop=
"boilerOutletWaterTemperature"
>
<el-input
v-float-number
style=
"width: 80%"
v-model=
"formDatas.boilerOutletWaterTemperature"
>
<el-input
style=
"width: 80%"
v-model=
"formDatas.boilerOutletWaterTemperature"
>
<
template
#
append
>
<div
style=
"width: 40px"
>
℃
</div>
</
template
>
...
...
@@ -112,7 +112,7 @@
<tr>
<td
style=
"text-align: left"
>
<el-form-item
prop=
"maxTargetTemperature"
>
<el-input
v-float-number
style=
"width: 80%"
v-model=
"formDatas.maxTargetTemperature"
>
<el-input
style=
"width: 80%"
v-model=
"formDatas.maxTargetTemperature"
>
<
template
#
append
>
<div
style=
"width: 40px"
>
℃
</div>
</
template
>
...
...
@@ -166,11 +166,12 @@ import { ElMessage } from "element-plus";
const
options
=
reactive
([]);
import
store
from
"../../store/index"
;
import
{
vFloatNumber
}
from
"@/utils/directives.js"
;
import
{
nextTick
}
from
"vue"
;
const
loading
=
ref
(
false
)
const
form
=
ref
({
types
:
[],
});
cons
t
formRef
=
ref
()
le
t
formRef
=
ref
()
const
formDatas
=
ref
([
{
...
...
@@ -189,34 +190,33 @@ const formDatas = ref([
//表单校验规则
// 正则 /^(-?[0-9]+(\.[0-9]+)?){1,10}$/ ==> {1-10}不起作用,下面又一遍
// 正则 /^(-?\d{1,5})(\.[0-9]{1,4})?$/
// 正负可选
// 整数位至多5位
// 小数可选,小数部分之多4位
const
rules
=
reactive
({
openingOfElectricValve
:
[
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"电动调节阀开度输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'电动调节阀开度必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
([
0-9
]\d{0,1}
|100$
)(\.\d{1,4})?
$/
,
"message"
:
"请输入正确的百分比格式"
,
trigger
:
"blur"
}
],
boilerOutletWaterTemperature
:
[
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"锅炉出水温度输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'锅炉出水温度必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(
-
?\d{1,5})(\.[
0-9
]{1,4})?
$/
,
message
:
"请输入正确的锅炉出水温度"
,
trigger
:
"blur"
}
],
upperLlimitMainFlow
:
[
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"锅炉房供水总管流量上限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'锅炉房供水总管流量上限值必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"请输入正确的锅炉房供水总管流量上限值"
,
trigger
:
"blur"
}
],
lowerLlimitMainFlow
:
[
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"锅炉房供水总管流量下限值输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'锅炉房供水总管流量下限值必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"请输入正确的锅炉房供水总管流量下限值"
,
trigger
:
"blur"
}
],
maxTargetTemperature
:
[
{
pattern
:
/^
(
-
?
[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"目标温度最大值输入不合法
"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'目标温度最大值必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(
-
?
\d{1,5})(\.[
0-9
]{1,4})?
$/
,
message
:
"请输入正确的目标温度最大值
"
,
trigger
:
"blur"
},
],
bestHoldingTime
:
[
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"持续时间输入不合法"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'持续时间必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"请输入正确的持续时间"
,
trigger
:
"blur"
}
],
holdingTime
:
[
{
pattern
:
/^
[
0-9
]\d{1,10}
$/
,
"message"
:
"保持时间必须是 1-10位的数字"
,
trigger
:
'change'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"请输入正确的保持时间"
,
trigger
:
"blur"
}
]
});
...
...
@@ -278,9 +278,19 @@ function getSupplys() {
}
// console.log("遍历的options===========>:", options);
}
const
clearFormValidation
=
()
=>
{
nextTick
(()
=>
{
formRef
.
value
?.
clearValidate
()
})
}
onMounted
(()
=>
{
getListData
();
getSupplys
();
clearFormValidation
()
});
</
script
>
<
style
lang=
"less"
scoped
>
...
...
src/views/SchedulingPage/EnergyManagePage.vue
View file @
77ecd1bc
...
...
@@ -2,12 +2,11 @@
import
{
ref
,
onMounted
,
getCurrentInstance
,
reactive
,
nextTick
}
from
"vue"
;
import
{
ElMessageBox
,
ElMessage
}
from
"element-plus"
;
import
axios
from
"axios"
;
import
{
Search
,
Document
}
from
"@element-plus/icons-vue"
;
import
{
Search
,
Minus
,
Document
}
from
"@element-plus/icons-vue"
;
import
{
getOrganizationStructureInterface
}
from
"@/api/scheduling"
;
import
http
from
"../../api/http"
;
import
loading
from
"element-plus"
;
import
store
from
"../../store"
;
import
{
vFloatNumber
}
from
"@/utils/directives.js"
;
const
{
proxy
}
=
getCurrentInstance
();
...
...
@@ -32,12 +31,14 @@ const reset = () => {
"energyName"
:
''
}
}
const
loading
=
ref
(
false
)
const
energyForm
=
ref
()
const
dialogVisible
=
ref
(
false
)
const
getEnergyData
=
()
=>
{
loading
.
value
=
true
http
.
post
(
"/api/energy/getData"
,
config
.
supplyType
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
loading
.
value
=
false
tableData
.
value
=
res
.
data
;
ElMessage
.
success
(
res
.
message
);
}
else
{
...
...
@@ -87,11 +88,16 @@ const config = reactive({
const
handleSearch
=
()
=>
{
config
.
supplyType
=
formInline
.
keyWord
;
config
.
supplyType
=
[
`
${
config
.
supplyType
}
`
];
getEnergyData
(),
(
formEnergy
.
value
.
energyType
=
""
),
ElMessage
.
success
(
"获取数据成功"
);
getEnergyData
()
};
// 重置按钮
const
handleReset
=
()
=>
{
formInline
.
keyWord
=
""
config
.
supplyType
=
[
"0"
,
"1"
,
"2"
,
"3"
,
"4"
]
getEnergyData
()
}
const
timeFormat
=
(
time
)
=>
{
var
time
=
new
Date
(
time
);
var
year
=
time
.
getFullYear
();
...
...
@@ -100,7 +106,7 @@ const timeFormat = (time) => {
function
add
(
m
)
{
return
m
<
10
?
"0"
+
m
:
m
;
}
return
year
+
'/'
+
add
(
month
)
+
'/'
+
add
(
date
)
+
' 0:00:00'
return
year
+
'/'
+
add
(
month
)
+
'/'
+
add
(
date
)
}
//表单校验规则
...
...
@@ -111,9 +117,7 @@ const rules = reactive({
],
record
:
[
{
required
:
true
,
message
:
"能源用度是必选项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
message
:
"能源用度必须输入1-10位数字"
,
trigger
:
"blur"
},
{
min
:
1
,
max
:
10
,
message
:
'能源用度必须是 1-10位的数字'
,
trigger
:
'blur'
}
{
pattern
:
/^
(\d{1,10})
$/
,
"message"
:
"能源用度是 1-10位正整数"
,
trigger
:
"blur"
}
],
recordDate
:
[{
required
:
true
,
message
:
"日期是必选项"
}],
});
...
...
@@ -256,6 +260,7 @@ function getOrganizationStructure() {
onMounted
(()
=>
{
getOrganizationStructure
()
getEnergyData
()
})
</
script
>
...
...
@@ -288,6 +293,10 @@ onMounted(() => {
<Search
style=
"width: 1em; height: 1em; margin-right: 8px"
/>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"handleReset"
>
<Minus
style=
"width: 1em; height: 1em; margin-right: 8px"
/>
重置
</el-button>
<el-button
type=
"primary"
@
click=
"handleAdd"
>
<Document
style=
"width: 1em; height: 1em; margin-right: 8px"
/>
新增
...
...
@@ -297,7 +306,7 @@ onMounted(() => {
</table>
<el-table
:data=
"tableData"
style=
"width: 100%;font-size: 12px;color: #181818;"
<el-table
v-loading=
"loading"
:data=
"tableData"
style=
"width: 100%;font-size: 12px;color: #181818;"
:header-cell-style=
"
{ color: '#225475', backgroundColor: '#B8CFEE', 'text-align': 'center', height: '40px', padding: '0px', border: '1px solid #99bbe8' }"
:cell-style="{ 'text-align': 'center', padding: '0px' }" :row-style="{ height: '30px', padding: '0px' }" border
stripe max-height="633">
...
...
src/views/SchedulingPage/InstantHeatPage.vue
View file @
77ecd1bc
...
...
@@ -13,7 +13,9 @@
<table
cellpadding=
"0"
cellspacing=
"0"
>
<tr>
<td
style=
"text-align: left"
>
<el-form-item
prop=
"planName"
style=
"padding: 0;margin: 0;"
>
<el-input
style=
"width: 80%"
v-model=
"List.planName"
></el-input>
</el-form-item>
</td>
</tr>
</table>
...
...
@@ -54,7 +56,7 @@
<tr>
<td
style=
"text-align: left"
>
<el-form-item
prop=
"tempRegulation"
style=
"padding: 0;margin: 0;"
>
<el-input
v-float-number
style=
"width: 80%"
v-model=
"List.tempRegulation"
></el-input>
<el-input
style=
"width: 80%"
v-model=
"List.tempRegulation"
></el-input>
</el-form-item>
</td>
</tr>
...
...
@@ -67,7 +69,9 @@
<table
cellpadding=
"0"
cellspacing=
"0"
>
<tr>
<td
style=
"text-align: left"
>
<el-form-item
prop=
"description"
style=
"padding: 0;margin: 0;"
>
<el-input
style=
"width: 80%"
type=
"textarea"
rows=
"6"
v-model=
"List.description"
></el-input>
</el-form-item>
</td>
</tr>
</table>
...
...
@@ -106,20 +110,20 @@ const List = ref(
)
//校验规则
const
rules
=
reactive
({
planName
:
[
{
pattern
:
/^.
{1,20}
$/
,
"message"
:
"计划名称必须是1-20位字符"
,
trigger
:
"blur"
}
],
diffPercentage
:
[
{
required
:
true
,
message
:
"偏差百分比是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?){1,10}
$/
,
"message"
:
"偏差百分比输入不合法"
,
trigger
:
'blur'
},
{
min
:
1
,
max
:
10
,
message
:
'偏差百分比必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
([
0-9
]\d{0,1}
|100$
)(\.\d{1,4})?
$/
,
"message"
:
"请输入正确的百分比格式"
,
trigger
:
"blur"
}
],
timeoutMin
:
[
{
required
:
true
,
message
:
"判断时间是必填项"
,
trigger
:
"blur"
},
{
pattern
:
/^
[
0-9
]\d{1,10}
$/
,
"message"
:
"判断时间必须是 1-10位的数字"
,
trigger
:
'change'
}
{
pattern
:
/^
(\d{1,5})(\.[
0-9
]{1,4})?
$/
,
"message"
:
"判断时间必须是1-10位实数"
,
trigger
:
"blur"
}
],
tempRegulation
:
[
{
required
:
true
,
message
:
"调节温度是必选项"
,
trigger
:
"blur"
},
{
pattern
:
/^
(
-
?[
0-9
]
+
(\.[
0-9
]
+
)?)
$/
,
"message"
:
"调节温度输入不合法"
,
trigger
:
'blur'
}
,
{
min
:
1
,
max
:
10
,
message
:
'调节温度必须是 1-10位的数字'
,
trigger
:
'change'
}
{
pattern
:
/^
(
-
?\d{1,5})(\.[
0-9
]{1,4})?
$/
,
message
:
"请输入正确的调节温度最大值"
,
trigger
:
"blur"
}
]
,
description
:
[
{
pattern
:
/^.
{1,50}
$/
,
"message"
:
"备注必须是1-50位字符"
,
trigger
:
"blur"
}
]
});
...
...
src/views/SchedulingPage/aedio.mp3
0 → 100644
View file @
77ecd1bc
File added
src/views/SmartNumbers/PipeTemperature.vue
0 → 100644
View file @
77ecd1bc
<
template
>
<PageData
api=
"/api/Scheduling/WeatherCondition/Get"
:schemas=
"schemas"
:columns=
"columns"
:formData=
"formData"
@
DataChange=
"formDataChange"
></PageData>
</
template
>
<
script
setup
>
import
{
computed
,
onMounted
,
reactive
,
ref
}
from
"vue"
;
import
PageData
from
"@/components/PageData.vue"
;
import
{
columns
,
schemas
}
from
"./formSchems"
;
const
formData
=
ref
({
name
:
""
,
code
:
""
,
date
:
""
,
});
const
formDataChange
=
(
val
)
=>
{
formData
.
value
=
val
;
};
</
script
>
src/views/SmartNumbers/formSchems.js
0 → 100644
View file @
77ecd1bc
import
{
ref
}
from
"vue"
;
export
const
columns
=
ref
([
{
label
:
"设备名称"
,
prop
:
"name"
,
align
:
"center"
,
with
:
200
,
},
{
label
:
"设备名称"
,
prop
:
"name"
,
align
:
"center"
,
with
:
200
,
},
{
label
:
"设备名称"
,
prop
:
"name"
,
align
:
"center"
,
with
:
200
,
},
]);
export
const
schemas
=
ref
([
{
label
:
"设备名称"
,
prop
:
"name"
,
type
:
"input"
,
componentProps
:
{
placeholder
:
"请输入设备名称"
,
},
},
{
label
:
"设备编号"
,
prop
:
"code"
,
type
:
"select"
,
componentProps
:
{
options
:
[
{
label
:
"11111"
,
value
:
1
},
{
label
:
"22222"
,
value
:
2
},
],
placeholder
:
"请输入设备编号"
,
},
},
{
label
:
"设备名称"
,
prop
:
"date"
,
type
:
"dateTimePicker"
,
componentProps
:
{
type
:
"datetimerange"
,
startPlaceholder
:
"开始日起"
,
endPlaceholder
:
"结束日期"
,
format
:
"YYYY-MM-DD HH:mm:ss"
,
datFormat
:
"YYYY/MM/DD"
,
timeFormat
:
"HH:mm:ss"
,
},
},
]);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment