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
da404ade
Commit
da404ade
authored
Aug 07, 2024
by
王亚晖
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改换热站寄存器远程控制界面
parent
609b1ac9
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1143 additions
and
224 deletions
+1143
-224
NightControl.vue
src/components/Remote/NightControl.vue
+843
-4
TransferRegControl.vue
src/components/Remote/TransferRegControl.vue
+258
-216
index.js
src/router/index.js
+4
-1
TransControlPage.vue
src/views/RemotePage/TransControlPage.vue
+38
-3
No files found.
src/components/Remote/NightControl.vue
View file @
da404ade
<
template
>
<
template
>
夜间降温参数组
<el-card
class=
"remoteTitle"
>
<el-table>
<div
class=
"card-content"
>
<div
class=
"demo-image"
>
<div
class=
"block"
>
<span
class=
"demonstration"
>
通讯异常
</span>
<el-icon><Connection
color=
"rgb(255,0,0)"
/></el-icon>
</div>
<div
class=
"block"
>
<span
class=
"demonstration"
>
读写失败
</span>
<el-icon><Failed
color=
"rgb(255,0,0)"
/></el-icon>
</div>
<div
class=
"block"
>
<span
class=
"demonstration"
>
读写成功
</span>
<el-icon><CircleCheckFilled
color=
"rgb(0,255,0)"
/></el-icon>
</div>
</div>
<div
class=
"demo-button"
>
<el-button
type=
"primary"
size=
"small"
:loading=
"isLoading"
@
click=
"ReadAllStatus"
>
读取全部
</el-button>
<el-button
type=
"primary"
size=
"small"
:loading=
"isLoading"
@
click=
"WriteAllStatus"
>
写入全部
</el-button>
</div>
</div>
</el-card>
<el-loading
:visible=
"isLoading"
text=
"加载中..."
></el-loading>
<el-table
ref=
"tableRef"
v-model:checked=
"selectedRows"
@
selection-change=
"handleSelectionChange"
width=
"100%"
show-header=
"true"
:height=
"tableHeight"
:cell-style=
"setCellStyle"
border
highlight-current-row
:header-cell-style=
"setHeaderCellStyle"
:data=
"visibleData"
v-loading=
"isLoading"
element-loading-text=
"数据加载中......"
:element-loading-spinner=
"svg"
element-loading-svg-view-box=
"-10, -10, 50, 50"
element-loading-background=
"rgba(122, 122, 122, 0.8)"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
prop=
"rowIndex"
label=
"序号"
width=
"45px"
fixed
/>
<el-table-column
prop=
"transferId"
label=
"机组编号"
v-if=
"false"
fixed
/>
<el-table-column
prop=
"transferName"
label=
"换热机组"
fixed
style=
"min-width: 100px;"
/>
<el-table-column
prop=
"nightCooling1"
label=
"夜间降温1"
width=
"100px"
>
<template
#
default=
"
{ row }">
<div
v-if=
"row.nightCooling1 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling1"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour1"
label=
"夜间降温起始(时)1"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour1 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour1"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin1"
label=
"夜间降温起始(分)1"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin1 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin1"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour1"
label=
"夜间降温终止(时)1"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour1 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour1"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin1"
label=
"夜间降温终止(分)1"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin1 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin1"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightCooling2"
label=
"夜间降温2"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightCooling2 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling2"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour2"
label=
"夜间降温起始(时)2"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour2 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour2"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin2"
label=
"夜间降温起始(分)2"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin2 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin2"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour2"
label=
"夜间降温终止(时)2"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour2 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour2"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin2"
label=
"夜间降温终止(分)2"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin2 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin2"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightCooling3"
label=
"夜间降温3"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightCooling3 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling3"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour3"
label=
"夜间降温起始(时)3"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour3 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour3"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin3"
label=
"夜间降温起始(分)3"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin3 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin3"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour3"
label=
"夜间降温终止(时)3"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour3 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour3"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin3"
label=
"夜间降温终止(分)3"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin3 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin3"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightCooling4"
label=
"夜间降温4"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightCooling4 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling4"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour4"
label=
"夜间降温起始(时)4"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour4 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour4"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin4"
label=
"夜间降温起始(分)4"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin4 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin4"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour4"
label=
"夜间降温终止(时)4"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour4 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour4"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin4"
label=
"夜间降温终止(分)4"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin4 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin4"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightCooling5"
label=
"夜间降温5"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightCooling5 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling5"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour5"
label=
"夜间降温起始(时)5"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour5 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour5"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin5"
label=
"夜间降温起始(分)5"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin5 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin5"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour5"
label=
"夜间降温终止(时)5"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour5 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour5"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin5"
label=
"夜间降温终止(分)5"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin5 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin5"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightCooling6"
label=
"夜间降温6"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightCooling6 === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.nightCooling6"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartHour6"
label=
"夜间降温起始(时)6"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartHour6 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartHour6"
placeholder=
"起始时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorStartMin6"
label=
"夜间降温起始(分)6"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorStartMin6 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorStartMin6"
placeholder=
"起始分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndHour6"
label=
"夜间降温终止(时)6"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndHour6 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndHour6"
placeholder=
"终止时"
size=
"small"
>
<el-option
v-for=
"item in hours"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"nightOutdoorEndMin6"
label=
"夜间降温终止(分)6"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.nightOutdoorEndMin6 === null"
></div>
<div
v-else
>
<el-select
v-model=
"row.nightOutdoorEndMin6"
placeholder=
"终止分"
size=
"small"
>
<el-option
v-for=
"item in mins"
:key=
"item"
:label=
"item"
:value=
"item"
/>
</el-select>
</div>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"状态"
width=
"50"
>
<
template
#
default=
"{ row }"
>
<el-icon
v-if=
"row.transferStatus === 0"
></el-icon>
<el-icon
v-if=
"row.transferStatus === 1"
><CircleCheckFilled
color=
"rgb(0,255,0)"
/></el-icon>
<el-icon
v-if=
"row.transferStatus === 2"
><Failed
color=
"rgb(255,0,0)"
/></el-icon>
<el-icon
v-if=
"row.transferStatus === 3"
><Connection
color=
"rgb(255,0,0)"
/></el-icon>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"100"
>
<
template
#
default=
"{ row }"
>
<el-button
link
type=
"primary"
:isLoading=
"isLoading"
size=
"small"
@
click=
"ReadStatus(row)"
>
读取
</el-button>
<el-button
link
type=
"primary"
:isLoading=
"isLoading"
:disabled=
"row.isDisabled"
size=
"small"
@
click=
"WriteStatus(row)"
>
写入
</el-button>
</
template
>
</el-table-column>
</el-table>
</el-table>
</
template
>
<el-card
style=
"height: 50px; padding: 0;"
>
\ No newline at end of file
<el-progress
:indeterminate=
"myIndeterminate"
:stroke-width=
"16"
:percentage=
"progress"
/>
</el-card>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
reactive
,
computed
,
onMounted
,
onUnmounted
,
watch
,
toRefs
}
from
'vue'
;
import
http
from
'../../api/http'
;
import
store
from
"../../store/index"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
vFloatNumber
}
from
"../../utils/directives.js"
;
const
enterpriseId
=
store
.
getters
.
getEnterpriseId
();
const
props
=
defineProps
([
'activeRadio'
]);
const
tableRef
=
ref
([]);
const
selectedRows
=
ref
([]);
const
isLoading
=
ref
(
true
);
const
visibleData
=
ref
([]);
const
tableHeight
=
ref
(
500
);
const
progress
=
ref
(
0
);
const
myIndeterminate
=
ref
(
false
);
const
hours
=
reactive
([]);
const
mins
=
reactive
([]);
onMounted
(()
=>
{
hours
.
length
=
0
;
mins
.
length
=
0
;
for
(
let
i
=
0
;
i
<=
60
;
i
++
){
mins
.
push
(
i
.
toString
().
padStart
(
2
,
'0'
));
}
for
(
let
i
=
0
;
i
<=
23
;
i
++
){
hours
.
push
(
i
.
toString
().
padStart
(
2
,
'0'
));
}
setContentHeight
();
window
.
addEventListener
(
'resize'
,
setContentHeight
);
})
onUnmounted
(()
=>
{
window
.
removeEventListener
(
'resize'
,
setContentHeight
);
})
//监听修改actionValue状态
watch
(()
=>
props
.
activeRadio
,
(
oldValue
,
newValue
)
=>
{
initData
();
},{
deep
:
true
});
function
setContentHeight
()
{
tableHeight
.
value
=
window
.
innerHeight
-
290
;
}
async
function
initData
(){
isLoading
.
value
=
true
;
var
type
=
0
;
if
(
enterpriseId
===
"9BCA54BC-8F27-4849-8D7D-50C5099E1949"
.
toLowerCase
()){
type
=
1
;
}
var
result
=
await
http
.
post
(
'/api/remote/GetNight'
,{
"SupplyType"
:
type
,
"DeviceId"
:
props
.
activeRadio
});
// console.log(result);
if
(
result
.
success
){
visibleData
.
value
=
result
.
data
;
}
else
{
ElMessage
.
error
(
result
.
message
);
}
isLoading
.
value
=
false
;
}
initData
();
async
function
ReadStatus
(
row
){
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
50
;
isLoading
.
value
=
true
;
await
ReadStation
(
row
);
isLoading
.
value
=
false
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
100
;
}
async
function
ReadAllStatus
(){
if
(
selectedRows
.
value
.
length
===
0
){
ElMessage
.
warning
(
"请勾选需要远程控制的换热站!"
);
return
;
}
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
1
;
isLoading
.
value
=
true
;
if
(
selectedRows
){
var
total
=
selectedRows
.
value
.
length
;
var
count
=
0
;
for
(
const
item
of
selectedRows
.
value
){
await
ReadStation
(
item
);
count
=
count
+
1
;
progress
.
value
=
(
count
/
total
*
100
).
toFixed
(
2
);
}
}
isLoading
.
value
=
false
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
100
;
}
async
function
WriteStatus
(
row
){
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
50
;
isLoading
.
value
=
true
;
await
WriteStation
(
row
);
isLoading
.
value
=
false
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
100
;
}
async
function
WriteAllStatus
(){
if
(
selectedRows
.
value
.
length
===
0
){
ElMessage
.
warning
(
"请勾选需要远程控制的换热站!"
);
return
;
}
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
1
;
isLoading
.
value
=
true
;
if
(
selectedRows
){
var
total
=
selectedRows
.
value
.
length
;
var
count
=
0
;
for
(
const
item
of
selectedRows
.
value
){
if
(
item
.
isDisabled
===
false
){
await
WriteStation
(
item
);
}
else
{
ElMessage
.
warning
(
item
.
transferName
+
" 写入失败,应先读取再写入"
);
item
.
transferStatus
=
2
;
}
count
=
count
+
1
;
progress
.
value
=
(
count
/
total
*
100
).
toFixed
(
2
);
}
}
isLoading
.
value
=
false
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
100
;
}
async
function
ReadStation
(
row
){
var
result
=
await
http
.
post
(
'/api/remote/ReadNight'
,
row
.
transferId
);
if
(
result
.
success
){
var
jobj
=
result
.
data
[
0
];
//console.log("Value:"+jobj);
if
(
jobj
&&
visibleData
){
for
(
const
element
of
visibleData
.
value
){
if
(
element
.
transferId
===
row
.
transferId
){
element
.
nightCooling1
=
jobj
.
nightCooling1
;
element
.
nightCooling2
=
jobj
.
nightCooling2
;
element
.
nightCooling3
=
jobj
.
nightCooling3
;
element
.
nightCooling4
=
jobj
.
nightCooling4
;
element
.
nightCooling5
=
jobj
.
nightCooling5
;
element
.
nightCooling6
=
jobj
.
nightCooling6
;
element
.
nightOutdoorStartHour1
=
jobj
.
nightOutdoorStartHour1
;
element
.
nightOutdoorStartHour2
=
jobj
.
nightOutdoorStartHour2
;
element
.
nightOutdoorStartHour3
=
jobj
.
nightOutdoorStartHour3
;
element
.
nightOutdoorStartHour4
=
jobj
.
nightOutdoorStartHour4
;
element
.
nightOutdoorStartHour5
=
jobj
.
nightOutdoorStartHour5
;
element
.
nightOutdoorStartHour6
=
jobj
.
nightOutdoorStartHour6
;
element
.
nightOutdoorStartMin1
=
jobj
.
nightOutdoorStartMin1
;
element
.
nightOutdoorStartMin2
=
jobj
.
nightOutdoorStartMin2
;
element
.
nightOutdoorStartMin3
=
jobj
.
nightOutdoorStartMin3
;
element
.
nightOutdoorStartMin4
=
jobj
.
nightOutdoorStartMin4
;
element
.
nightOutdoorStartMin5
=
jobj
.
nightOutdoorStartMin5
;
element
.
nightOutdoorStartMin6
=
jobj
.
nightOutdoorStartMin6
;
element
.
nightOutdoorEndHour1
=
jobj
.
nightOutdoorEndHour1
;
element
.
nightOutdoorEndHour2
=
jobj
.
nightOutdoorEndHour2
;
element
.
nightOutdoorEndHour3
=
jobj
.
nightOutdoorEndHour3
;
element
.
nightOutdoorEndHour4
=
jobj
.
nightOutdoorEndHour4
;
element
.
nightOutdoorEndHour5
=
jobj
.
nightOutdoorEndHour5
;
element
.
nightOutdoorEndHour6
=
jobj
.
nightOutdoorEndHour6
;
element
.
nightOutdoorEndMin1
=
jobj
.
nightOutdoorEndMin1
;
element
.
nightOutdoorEndMin2
=
jobj
.
nightOutdoorEndMin2
;
element
.
nightOutdoorEndMin3
=
jobj
.
nightOutdoorEndMin3
;
element
.
nightOutdoorEndMin4
=
jobj
.
nightOutdoorEndMin4
;
element
.
nightOutdoorEndMin5
=
jobj
.
nightOutdoorEndMin5
;
element
.
nightOutdoorEndMin6
=
jobj
.
nightOutdoorEndMin6
;
element
.
isDisabled
=
false
;
element
.
transferStatus
=
jobj
.
transferStatus
;
ElMessage
.
success
(
row
.
transferName
+
" 读取成功"
);
//console.log("gainMode:"+jobj.gainMode);
break
;
}
};
}
}
else
{
ElMessage
.
error
(
row
.
transferName
+
": "
+
result
.
message
);
row
.
transferStatus
=
3
;
}
}
async
function
WriteStation
(
element
){
try
{
console
.
log
(
"write row:"
+
element
);
var
writeValue
=
""
;
if
(
element
.
nightCooling1
!=
null
){
writeValue
+=
"NightCooling1:"
+
element
.
nightCooling1
+
";"
;
}
if
(
element
.
nightCooling2
!=
null
){
writeValue
+=
"NightCooling2:"
+
element
.
nightCooling2
+
";"
;
}
if
(
element
.
nightCooling3
!=
null
){
writeValue
+=
"NightCooling3:"
+
element
.
nightCooling3
+
";"
;
}
if
(
element
.
nightCooling4
!=
null
){
writeValue
+=
"NightCooling4:"
+
element
.
nightCooling4
+
";"
;
}
if
(
element
.
nightCooling5
!=
null
){
writeValue
+=
"NightCooling5:"
+
element
.
nightCooling5
+
";"
;
}
if
(
element
.
nightCooling6
!=
null
){
writeValue
+=
"NightCooling6:"
+
element
.
nightCooling6
+
";"
;
}
if
(
element
.
nightOutdoorStartHour1
!=
null
){
writeValue
+=
"NightOutdoorStartHour1:"
+
element
.
nightOutdoorStartHour1
+
";"
;
}
if
(
element
.
nightOutdoorStartHour2
!=
null
){
writeValue
+=
"NightOutdoorStartHour2:"
+
element
.
nightOutdoorStartHour2
+
";"
;
}
if
(
element
.
nightOutdoorStartHour3
!=
null
){
writeValue
+=
"NightOutdoorStartHour3:"
+
element
.
nightOutdoorStartHour3
+
";"
;
}
if
(
element
.
nightOutdoorStartHour4
!=
null
){
writeValue
+=
"NightOutdoorStartHour4:"
+
element
.
nightOutdoorStartHour4
+
";"
;
}
if
(
element
.
nightOutdoorStartHour5
!=
null
){
writeValue
+=
"NightOutdoorStartHour5:"
+
element
.
nightOutdoorStartHour5
+
";"
;
}
if
(
element
.
nightOutdoorStartHour6
!=
null
){
writeValue
+=
"NightOutdoorStartHour6:"
+
element
.
nightOutdoorStartHour6
+
";"
;
}
if
(
element
.
nightOutdoorStartMin1
!=
null
){
writeValue
+=
"NightOutdoorStartMin1:"
+
element
.
nightOutdoorStartMin1
+
";"
;
}
if
(
element
.
nightOutdoorStartMin2
!=
null
){
writeValue
+=
"NightOutdoorStartMin2:"
+
element
.
nightOutdoorStartMin2
+
";"
;
}
if
(
element
.
nightOutdoorStartMin3
!=
null
){
writeValue
+=
"NightOutdoorStartMin3:"
+
element
.
nightOutdoorStartMin3
+
";"
;
}
if
(
element
.
nightOutdoorStartMin4
!=
null
){
writeValue
+=
"NightOutdoorStartMin4:"
+
element
.
nightOutdoorStartMin4
+
";"
;
}
if
(
element
.
nightOutdoorStartMin5
!=
null
){
writeValue
+=
"NightOutdoorStartMin5:"
+
element
.
nightOutdoorStartMin5
+
";"
;
}
if
(
element
.
nightOutdoorStartMin6
!=
null
){
writeValue
+=
"NightOutdoorStartMin6:"
+
element
.
nightOutdoorStartMin6
+
";"
;
}
if
(
element
.
nightOutdoorEndHour1
!=
null
){
writeValue
+=
"NightOutdoorEndHour1:"
+
element
.
nightOutdoorEndHour1
+
";"
;
}
if
(
element
.
nightOutdoorEndHour2
!=
null
){
writeValue
+=
"NightOutdoorEndHour2:"
+
element
.
nightOutdoorEndHour2
+
";"
;
}
if
(
element
.
nightOutdoorEndHour3
!=
null
){
writeValue
+=
"NightOutdoorEndHour3:"
+
element
.
nightOutdoorEndHour3
+
";"
;
}
if
(
element
.
nightOutdoorEndHour4
!=
null
){
writeValue
+=
"NightOutdoorEndHour4:"
+
element
.
nightOutdoorEndHour4
+
";"
;
}
if
(
element
.
nightOutdoorEndHour5
!=
null
){
writeValue
+=
"NightOutdoorEndHour5:"
+
element
.
nightOutdoorEndHour5
+
";"
;
}
if
(
element
.
nightOutdoorEndHour6
!=
null
){
writeValue
+=
"NightOutdoorEndHour6:"
+
element
.
nightOutdoorEndHour6
+
";"
;
}
if
(
element
.
nightOutdoorEndMin1
!=
null
){
writeValue
+=
"NightOutdoorEndMin1:"
+
element
.
nightOutdoorEndMin1
+
";"
;
}
if
(
element
.
nightOutdoorEndMin2
!=
null
){
writeValue
+=
"NightOutdoorEndMin2:"
+
element
.
nightOutdoorEndMin2
+
";"
;
}
if
(
element
.
nightOutdoorEndMin3
!=
null
){
writeValue
+=
"NightOutdoorEndMin3:"
+
element
.
nightOutdoorEndMin3
+
";"
;
}
if
(
element
.
nightOutdoorEndMin4
!=
null
){
writeValue
+=
"NightOutdoorEndMin4:"
+
element
.
nightOutdoorEndMin4
+
";"
;
}
if
(
element
.
nightOutdoorEndMin5
!=
null
){
writeValue
+=
"NightOutdoorEndMin5:"
+
element
.
nightOutdoorEndMin5
+
";"
;
}
if
(
element
.
nightOutdoorEndMin6
!=
null
){
writeValue
+=
"NightOutdoorEndMin6:"
+
element
.
nightOutdoorEndMin6
+
";"
;
}
//console.log(element.secCriclePumpAutoOrManual);
var
result
=
await
http
.
post
(
'/api/remote/WriteTransfer'
,
{
"TransferId"
:
element
.
transferId
,
"WriteValues"
:
writeValue
,
"PanelType"
:
3
});
if
(
result
.
success
){
ElMessage
.
success
(
element
.
transferName
+
" "
+
result
.
data
);
element
.
transferStatus
=
1
;
}
else
{
ElMessage
.
error
(
element
.
transferName
+
" "
+
result
.
data
);
element
.
transferStatus
=
2
;
}
}
catch
(
error
){
ElMessage
.
error
(
element
.
transferName
+
" "
+
error
.
message
);
element
.
transferStatus
=
3
;
}
}
function
setCellStyle
({
row
,
column
,
rowIndex
,
columnIndex
})
{
let
css_color
=
{};
css_color
[
'padding-left'
]
=
'0px'
;
css_color
[
'padding-right'
]
=
'0px'
;
css_color
[
'borderColor'
]
=
'#97d5fd'
;
css_color
[
'padding'
]
=
'0px'
;
css_color
[
'textAlign'
]
=
'center'
;
return
css_color
;
}
function
setHeaderCellStyle
({
row
,
column
,
rowIndex
,
columnIndex
})
{
let
css_color
;
var
backcolor
=
'd9f1ff'
;
css_color
=
{
'background-color'
:
'#'
+
backcolor
,
'padding-left'
:
'0px'
,
'padding-right'
:
'0px'
,
'borderColor'
:
'#97d5fd'
,
'color'
:
'#000'
,
'text-align'
:
'center'
,
'vertical-align'
:
'top'
};
var
backcolor
=
'd9f1ff'
;
css_color
=
{
'background-color'
:
'#'
+
backcolor
,
'padding-left'
:
'0px'
,
'padding-right'
:
'0px'
,
'borderColor'
:
'#97d5fd'
,
'color'
:
'#000'
,
'text-align'
:
'center'
,
'vertical-align'
:
'top'
};
return
css_color
;
}
const
handleSelectionChange
=
(
selection
)
=>
{
selectedRows
.
value
=
selection
;
};
const
svg
=
`
<path class="path" d="
M 30 15
L 28 17
M 25.61 25.61
A 15 15, 0, 0, 1, 15 30
A 15 15, 0, 1, 1, 27.99 7.5
L 15 15
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>`
</
script
>
<
style
scoped
>
.remoteTitle
{
width
:
100%
;
}
.card-content
{
display
:
flex
;
justify-content
:
space-between
;
height
:
20px
;
}
.demo-button
{
display
:
right
;
width
:
20%
;
}
.demo-image
{
width
:
80%
;
display
:
left
;
flex
:
9
;
margin-top
:
-10px
;
}
.demo-image
.block
{
padding
:
1px
0
;
text-align
:
center
;
border-right
:
solid
1px
var
(
--el-border-color
);
display
:
inline-block
;
width
:
80px
;
box-sizing
:
border-box
;
vertical-align
:
top
;
}
.demo-image
.block
:last-child
{
border-right
:
none
;
}
.demo-image
.demonstration
{
display
:
block
;
color
:
var
(
--el-text-color-secondary
);
font-size
:
12px
;
margin-bottom
:
0px
;
}
</
style
>
\ No newline at end of file
src/components/Remote/TransferRegControl.vue
View file @
da404ade
...
@@ -22,11 +22,13 @@
...
@@ -22,11 +22,13 @@
</div>
</div>
</el-card>
</el-card>
<el-loading
:visible=
"isLoading"
text=
"加载中..."
></el-loading>
<el-loading
:visible=
"isLoading"
text=
"加载中..."
></el-loading>
<div
class=
"remoteContent"
>
<el-table
<el-table
ref=
"tableRef"
ref=
"tableRef"
v-model:checked=
"selectedRows"
v-model:checked=
"selectedRows"
@
selection-change=
"handleSelectionChange"
@
selection-change=
"handleSelectionChange"
width=
"100%"
@
row-click=
"handleRowClick"
width=
"500px"
show-header=
"true"
show-header=
"true"
:height=
"tableHeight"
:height=
"tableHeight"
:cell-style=
"setCellStyle"
:cell-style=
"setCellStyle"
...
@@ -35,112 +37,17 @@
...
@@ -35,112 +37,17 @@
:header-cell-style=
"setHeaderCellStyle"
:header-cell-style=
"setHeaderCellStyle"
:data=
"visibleData"
:data=
"visibleData"
v-loading=
"isLoading"
v-loading=
"isLoading"
:row-key=
"getRowId"
element-loading-text=
"数据加载中......"
element-loading-text=
"数据加载中......"
:element-loading-spinner=
"svg"
:element-loading-spinner=
"svg"
element-loading-svg-view-box=
"-10, -10, 50, 50"
element-loading-svg-view-box=
"-10, -10, 50, 50"
element-loading-background=
"rgba(122, 122, 122, 0.8)"
element-loading-background=
"rgba(122, 122, 122, 0.8)"
>
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"selection"
width=
"55px"
/>
<el-table-column
prop=
"rowIndex"
label=
"序号"
width=
"45px"
fixed
/>
<el-table-column
prop=
"rowIndex"
label=
"序号"
width=
"60px"
/>
<el-table-column
prop=
"transferId"
label=
"机组编号"
v-if=
"false"
fixed
/>
<el-table-column
prop=
"transferId"
label=
"机组编号"
v-if=
"false"
/>
<el-table-column
prop=
"transferName"
label=
"换热机组"
fixed
/>
<el-table-column
prop=
"transferName"
label=
"换热机组"
/>
<el-table-column
prop=
"ecv1OpeningSet"
label=
"1#电调阀给定"
width=
"100px"
>
<el-table-column
label=
"状态"
width=
"60px"
>
<template
#
default=
"
{ row }">
<div
v-if=
"row.ecv1OpeningSet === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.ecv1OpeningSet"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"ecv2OpeningSet"
label=
"2#电调阀给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.ecv2OpeningSet === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.ecv2OpeningSet"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"ecv3OpeningSet"
label=
"3#电调阀给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.ecv3OpeningSet === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.ecv3OpeningSet"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"ecv4OpeningSet"
label=
"4#电调阀给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.ecv4OpeningSet === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.ecv4OpeningSet"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"criclePump1FreqGiven"
label=
"1#循环泵频率给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.criclePump1FreqGiven === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.criclePump1FreqGiven"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"criclePump2FreqGiven"
label=
"2#循环泵频率给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.criclePump2FreqGiven === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.criclePump2FreqGiven"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"criclePump3FreqGiven"
label=
"3#循环泵频率给定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.criclePump3FreqGiven === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.criclePump3FreqGiven"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"tempGainValue"
label=
"温度增益值"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.tempGainValue === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.tempGainValue"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"pressureDiffSetting"
label=
"压差设定"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.pressureDiffSetting === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.pressureDiffSetting"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"waterBoxOpen"
label=
"水箱进水低液位开阀"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.waterBoxOpen === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.waterBoxOpen"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"waterBoxClose"
label=
"水箱进水高液位关阀"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.waterBoxClose === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.waterBoxClose"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"jdSecondInletTemp"
label=
"华为二次网供水温度设定值"
width=
"100px"
>
<
template
#
default=
"{ row }"
>
<div
v-if=
"row.jdSecondInletTemp === null"
></div>
<div
v-else
>
<el-input
v-model=
"row.jdSecondInletTemp"
v-float-number
/>
</div>
</
template
>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"状态"
width=
"50"
>
<template
#
default=
"
{ row }">
<template
#
default=
"
{ row }">
<el-icon
v-if=
"row.transferStatus === 0"
></el-icon>
<el-icon
v-if=
"row.transferStatus === 0"
></el-icon>
<el-icon
v-if=
"row.transferStatus === 1"
><CircleCheckFilled
color=
"rgb(0,255,0)"
/></el-icon>
<el-icon
v-if=
"row.transferStatus === 1"
><CircleCheckFilled
color=
"rgb(0,255,0)"
/></el-icon>
...
@@ -148,13 +55,63 @@
...
@@ -148,13 +55,63 @@
<el-icon
v-if=
"row.transferStatus === 3"
><Connection
color=
"rgb(255,0,0)"
/></el-icon>
<el-icon
v-if=
"row.transferStatus === 3"
><Connection
color=
"rgb(255,0,0)"
/></el-icon>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<
el-table-column
fixed=
"right"
label=
"操作"
width=
"100
"
>
<
!-- <el-table-column fixed="right" label="操作" width="100px
">
<template #default="{ row }">
<template #default="{ row }">
<el-button link type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(row)">读取</el-button>
<el-button link type="primary" :isLoading="isLoading" size="small" @click="ReadStatus(row)">读取</el-button>
<el-button link type="primary" :isLoading="isLoading" :disabled="row.isDisabled" size="small" @click="WriteStatus(row)">写入</el-button>
<el-button link type="primary" :isLoading="isLoading" :disabled="row.isDisabled" size="small" @click="WriteStatus(row)">写入</el-button>
</template>
</template>
</el-table-column>
</el-table-column>
-->
</el-table>
</el-table>
<div
:style=
"{ height: tableHeight + 'px', paddingTop: 10 + 'px' }"
style=
"width: 100%; margin: 0 5px; display:flex; flex-direction: column; align-items: center; vertical-align: top;"
>
<h3
>
{{ forms.transferName }}
</h3>
<el-form
:model=
"forms"
label-width=
"300px"
:style=
"{ height: (tableHeight-80) + 'px'}"
style=
"overflow-y: auto; width: 100%;"
>
<el-form-item
label=
"1#电调阀给定:"
v-if=
"forms.ecv1OpeningSet != null"
>
<el-input
v-model=
"forms.ecv1OpeningSet"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"2#电调阀给定:"
v-if=
"forms.ecv2OpeningSet != null"
>
<el-input
v-model=
"forms.ecv2OpeningSet"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"3#电调阀给定:"
v-if=
"forms.ecv3OpeningSet != null"
>
<el-input
v-model=
"forms.ecv3OpeningSet"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"4#电调阀给定:"
v-if=
"forms.ecv4OpeningSet != null"
>
<el-input
v-model=
"forms.ecv4OpeningSet"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"1#循环泵频率给定"
v-if=
"forms.criclePump1FreqGiven != null"
>
<el-input
v-model=
"forms.criclePump1FreqGiven"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"2#循环泵频率给定:"
v-if=
"forms.criclePump2FreqGiven != null"
>
<el-input
v-model=
"forms.criclePump2FreqGiven"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"3#循环泵频率给定:"
v-if=
"forms.criclePump3FreqGiven != null"
>
<el-input
v-model=
"forms.criclePump3FreqGiven"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"4#循环泵频率给定:"
v-if=
"forms.criclePump4FreqGiven != null"
>
<el-input
v-model=
"forms.criclePump4FreqGiven"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"温度增益值:"
v-if=
"forms.tempGainValue != null"
>
<el-input
v-model=
"forms.tempGainValue"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"压差设定:"
v-if=
"forms.pressureDiffSetting != null"
>
<el-input
v-model=
"forms.pressureDiffSetting"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"水箱进水低液位开阀:"
v-if=
"forms.waterBoxOpen != null"
>
<el-input
v-model=
"forms.waterBoxOpen"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"水箱进水高液位关阀:"
v-if=
"forms.waterBoxClose != null"
>
<el-input
v-model=
"forms.waterBoxClose"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
<el-form-item
label=
"华为二次网供水温度设定值:"
v-if=
"forms.jdSecondInletTemp != null"
>
<el-input
v-model=
"forms.jdSecondInletTemp"
style=
"width: 200px;"
v-float-number
/>
</el-form-item>
</el-form>
<div
style=
"height:30px; margin: 5px;"
>
<el-button
type=
"primary"
:isLoading=
"isLoading"
size=
"small"
@
click=
"ReadStatus(forms)"
>
读 取
</el-button>
<el-button
type=
"primary"
:isLoading=
"isLoading"
:disabled=
"forms.isDisabled"
size=
"small"
@
click=
"WriteStatus(forms)"
>
写 入
</el-button>
</div>
</div>
</div>
<el-card
style=
"height: 50px; padding: 0;"
>
<el-card
style=
"height: 50px; padding: 0;"
>
<el-progress
<el-progress
:indeterminate=
"myIndeterminate"
:indeterminate=
"myIndeterminate"
...
@@ -163,8 +120,8 @@
...
@@ -163,8 +120,8 @@
/>
/>
</el-card>
</el-card>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
setup
>
import
{
ref
,
reactive
,
computed
,
onMounted
,
onUnmounted
,
watch
,
toRefs
}
from
'vue'
;
import
{
ref
,
reactive
,
computed
,
onMounted
,
onUnmounted
,
watch
,
toRefs
,
nextTick
}
from
'vue'
;
import
http
from
'../../api/http'
;
import
http
from
'../../api/http'
;
import
store
from
"../../store/index"
;
import
store
from
"../../store/index"
;
import
{
ElMessage
}
from
"element-plus"
;
import
{
ElMessage
}
from
"element-plus"
;
...
@@ -179,6 +136,25 @@
...
@@ -179,6 +136,25 @@
const
tableHeight
=
ref
(
500
);
const
tableHeight
=
ref
(
500
);
const
progress
=
ref
(
0
);
const
progress
=
ref
(
0
);
const
myIndeterminate
=
ref
(
false
);
const
myIndeterminate
=
ref
(
false
);
const
forms
=
reactive
({
transferId
:
""
,
transferName
:
""
,
isDisabled
:
true
,
transferStatus
:
0
,
ecv1OpeningSet
:
null
,
ecv2OpeningSet
:
null
,
ecv3OpeningSet
:
null
,
ecv4OpeningSet
:
null
,
criclePump1FreqGiven
:
null
,
criclePump2FreqGiven
:
null
,
criclePump3FreqGiven
:
null
,
criclePump4FreqGiven
:
null
,
tempGainValue
:
null
,
pressureDiffSetting
:
null
,
waterBoxOpen
:
null
,
waterBoxClose
:
null
,
jdSecondInletTemp
:
null
});
onMounted
(()
=>
{
onMounted
(()
=>
{
setContentHeight
();
setContentHeight
();
...
@@ -189,13 +165,12 @@
...
@@ -189,13 +165,12 @@
window
.
removeEventListener
(
'resize'
,
setContentHeight
);
window
.
removeEventListener
(
'resize'
,
setContentHeight
);
})
})
//监听修改actionValue状态
watch
(()
=>
props
.
activeRadio
,
(
oldValue
,
newValue
)
=>
{
watch
(()
=>
props
.
activeRadio
,
(
oldValue
,
newValue
)
=>
{
initData
();
initData
();
},{
deep
:
true
});
},{
deep
:
true
});
function
setContentHeight
()
{
function
setContentHeight
()
{
tableHeight
.
value
=
window
.
innerHeight
-
29
0
;
tableHeight
.
value
=
window
.
innerHeight
-
30
0
;
}
}
async
function
initData
(){
async
function
initData
(){
...
@@ -208,6 +183,7 @@
...
@@ -208,6 +183,7 @@
// console.log(result);
// console.log(result);
if
(
result
.
success
){
if
(
result
.
success
){
visibleData
.
value
=
result
.
data
;
visibleData
.
value
=
result
.
data
;
handleRowClick
(
visibleData
.
value
[
0
]);
}
else
{
}
else
{
ElMessage
.
error
(
result
.
message
);
ElMessage
.
error
(
result
.
message
);
}
}
...
@@ -216,6 +192,8 @@
...
@@ -216,6 +192,8 @@
initData
();
initData
();
async
function
ReadStatus
(
row
){
async
function
ReadStatus
(
row
){
row
.
transferStatus
=
0
;
handleRowClick
(
row
);
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
50
;
progress
.
value
=
50
;
isLoading
.
value
=
true
;
isLoading
.
value
=
true
;
...
@@ -236,6 +214,9 @@
...
@@ -236,6 +214,9 @@
if
(
selectedRows
){
if
(
selectedRows
){
var
total
=
selectedRows
.
value
.
length
;
var
total
=
selectedRows
.
value
.
length
;
var
count
=
0
;
var
count
=
0
;
for
(
const
item
of
selectedRows
.
value
){
item
.
transferStatus
=
0
;
}
for
(
const
item
of
selectedRows
.
value
){
for
(
const
item
of
selectedRows
.
value
){
await
ReadStation
(
item
);
await
ReadStation
(
item
);
count
=
count
+
1
;
count
=
count
+
1
;
...
@@ -247,6 +228,7 @@
...
@@ -247,6 +228,7 @@
progress
.
value
=
100
;
progress
.
value
=
100
;
}
}
async
function
WriteStatus
(
row
){
async
function
WriteStatus
(
row
){
row
.
transferStatus
=
0
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
progress
.
value
=
50
;
progress
.
value
=
50
;
isLoading
.
value
=
true
;
isLoading
.
value
=
true
;
...
@@ -266,6 +248,9 @@
...
@@ -266,6 +248,9 @@
if
(
selectedRows
){
if
(
selectedRows
){
var
total
=
selectedRows
.
value
.
length
;
var
total
=
selectedRows
.
value
.
length
;
var
count
=
0
;
var
count
=
0
;
for
(
const
item
of
selectedRows
.
value
){
item
.
transferStatus
=
0
;
}
for
(
const
item
of
selectedRows
.
value
){
for
(
const
item
of
selectedRows
.
value
){
if
(
item
.
isDisabled
===
false
){
if
(
item
.
isDisabled
===
false
){
await
WriteStation
(
item
);
await
WriteStation
(
item
);
...
@@ -276,6 +261,7 @@
...
@@ -276,6 +261,7 @@
count
=
count
+
1
;
count
=
count
+
1
;
progress
.
value
=
(
count
/
total
*
100
).
toFixed
(
2
);
progress
.
value
=
(
count
/
total
*
100
).
toFixed
(
2
);
}
}
}
}
isLoading
.
value
=
false
;
isLoading
.
value
=
false
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
myIndeterminate
.
value
=
!
myIndeterminate
.
value
;
...
@@ -304,6 +290,7 @@
...
@@ -304,6 +290,7 @@
element
.
isDisabled
=
false
;
element
.
isDisabled
=
false
;
element
.
transferStatus
=
jobj
.
transferStatus
;
element
.
transferStatus
=
jobj
.
transferStatus
;
ElMessage
.
success
(
row
.
transferName
+
" 读取成功"
);
ElMessage
.
success
(
row
.
transferName
+
" 读取成功"
);
handleRowClick
(
element
);
//console.log("gainMode:"+jobj.gainMode);
//console.log("gainMode:"+jobj.gainMode);
break
;
break
;
}
}
...
@@ -316,54 +303,71 @@
...
@@ -316,54 +303,71 @@
}
}
async
function
WriteStation
(
element
){
async
function
WriteStation
(
element
){
try
{
try
{
console
.
log
(
"write row:"
+
element
);
//console.log("write row:"+element.transferName
);
var
writeValue
=
""
;
var
writeValue
=
""
;
if
(
element
.
ecv1OpeningSet
!=
null
){
if
(
forms
.
ecv1OpeningSet
!=
null
){
writeValue
+=
"Ecv1OpeningSet:"
+
element
.
ecv1OpeningSet
+
";"
;
element
.
ecv1OpeningSet
=
forms
.
ecv1OpeningSet
;
writeValue
+=
"Ecv1OpeningSet:"
+
forms
.
ecv1OpeningSet
+
";"
;
}
}
if
(
element
.
ecv2OpeningSet
!=
null
){
if
(
forms
.
ecv2OpeningSet
!=
null
){
writeValue
+=
"Ecv2OpeningSet:"
+
element
.
ecv2OpeningSet
+
";"
;
element
.
ecv2OpeningSet
=
forms
.
ecv2OpeningSet
;
writeValue
+=
"Ecv2OpeningSet:"
+
forms
.
ecv2OpeningSet
+
";"
;
}
}
if
(
element
.
ecv3OpeningSet
!=
null
){
if
(
forms
.
ecv3OpeningSet
!=
null
){
writeValue
+=
"Ecv3OpeningSet:"
+
element
.
ecv3OpeningSet
+
";"
;
element
.
ecv3OpeningSet
=
forms
.
ecv3OpeningSet
;
writeValue
+=
"Ecv3OpeningSet:"
+
forms
.
ecv3OpeningSet
+
";"
;
}
}
if
(
element
.
ecv4OpeningSet
!=
null
){
if
(
forms
.
ecv4OpeningSet
!=
null
){
writeValue
+=
"Ecv4OpeningSet:"
+
element
.
ecv4OpeningSet
+
";"
;
element
.
ecv4OpeningSet
=
forms
.
ecv4OpeningSet
;
writeValue
+=
"Ecv4OpeningSet:"
+
forms
.
ecv4OpeningSet
+
";"
;
}
}
if
(
element
.
criclePump1FreqGiven
!=
null
){
if
(
forms
.
criclePump1FreqGiven
!=
null
){
writeValue
+=
"CriclePump1FreqGiven:"
+
element
.
criclePump1FreqGiven
+
";"
;
element
.
criclePump1FreqGiven
=
forms
.
criclePump1FreqGiven
;
writeValue
+=
"CriclePump1FreqGiven:"
+
forms
.
criclePump1FreqGiven
+
";"
;
}
}
if
(
element
.
criclePump2FreqGiven
!=
null
){
if
(
forms
.
criclePump2FreqGiven
!=
null
){
writeValue
+=
"CriclePump2FreqGiven:"
+
element
.
criclePump2FreqGiven
+
";"
;
element
.
criclePump2FreqGiven
=
forms
.
criclePump2FreqGiven
;
writeValue
+=
"CriclePump2FreqGiven:"
+
forms
.
criclePump2FreqGiven
+
";"
;
}
}
if
(
element
.
criclePump3FreqGiven
!=
null
){
if
(
forms
.
criclePump3FreqGiven
!=
null
){
writeValue
+=
"CriclePump3FreqGiven:"
+
element
.
criclePump3FreqGiven
+
";"
;
element
.
criclePump3FreqGiven
=
forms
.
criclePump3FreqGiven
;
writeValue
+=
"CriclePump3FreqGiven:"
+
forms
.
criclePump3FreqGiven
+
";"
;
}
}
if
(
element
.
tempGainValue
!=
null
){
if
(
forms
.
tempGainValue
!=
null
){
writeValue
+=
"TempGainValue:"
+
element
.
tempGainValue
+
";"
;
element
.
tempGainValue
=
forms
.
tempGainValue
;
writeValue
+=
"TempGainValue:"
+
forms
.
tempGainValue
+
";"
;
}
}
if
(
element
.
pressureDiffSetting
!=
null
){
if
(
forms
.
pressureDiffSetting
!=
null
){
writeValue
+=
"PressureDiffSetting:"
+
element
.
pressureDiffSetting
+
";"
;
element
.
pressureDiffSetting
=
forms
.
pressureDiffSetting
;
writeValue
+=
"PressureDiffSetting:"
+
forms
.
pressureDiffSetting
+
";"
;
}
}
if
(
element
.
waterBoxOpen
!=
null
){
if
(
forms
.
waterBoxOpen
!=
null
){
writeValue
+=
"WaterBoxOpen:"
+
element
.
waterBoxOpen
+
";"
;
element
.
waterBoxOpen
=
forms
.
waterBoxOpen
;
writeValue
+=
"WaterBoxOpen:"
+
forms
.
waterBoxOpen
+
";"
;
}
}
if
(
element
.
waterBoxClose
!=
null
){
if
(
forms
.
waterBoxClose
!=
null
){
writeValue
+=
"WaterBoxClose:"
+
element
.
waterBoxClose
+
";"
;
element
.
waterBoxClose
=
forms
.
waterBoxClose
;
writeValue
+=
"WaterBoxClose:"
+
forms
.
waterBoxClose
+
";"
;
}
}
if
(
element
.
jdSecondInletTemp
!=
null
){
if
(
forms
.
jdSecondInletTemp
!=
null
){
writeValue
+=
"JDSecondInletTemp:"
+
element
.
jdSecondInletTemp
+
";"
;
element
.
jdSecondInletTemp
=
forms
.
jdSecondInletTemp
;
writeValue
+=
"JDSecondInletTemp:"
+
forms
.
jdSecondInletTemp
+
";"
;
}
}
// console.log(element.secCriclePumpAutoOrManual
);
//console.log(writeValue
);
var
result
=
await
http
.
post
(
'/api/remote/WriteTransfer'
,
{
"TransferId"
:
element
.
transferId
,
"WriteValues"
:
writeValue
,
"PanelType"
:
1
});
var
result
=
await
http
.
post
(
'/api/remote/WriteTransfer'
,
{
"TransferId"
:
element
.
transferId
,
"WriteValues"
:
writeValue
,
"PanelType"
:
1
});
if
(
result
.
success
){
if
(
result
.
success
){
ElMessage
.
success
(
element
.
transferName
+
" "
+
result
.
data
);
ElMessage
.
success
(
element
.
transferName
+
" "
+
result
.
data
);
element
.
transferStatus
=
1
;
element
.
transferStatus
=
1
;
handleRowClick
(
forms
);
}
else
{
ElMessage
.
error
(
element
.
transferName
+
" "
+
result
.
message
);
if
(
result
.
message
===
"连接异常"
){
element
.
transferStatus
=
3
;
}
else
{
}
else
{
ElMessage
.
error
(
element
.
transferName
+
" "
+
result
.
data
);
element
.
transferStatus
=
2
;
element
.
transferStatus
=
2
;
}
}
}
}
catch
(
error
){
}
catch
(
error
){
ElMessage
.
error
(
element
.
transferName
+
" "
+
error
.
message
);
ElMessage
.
error
(
element
.
transferName
+
" "
+
error
.
message
);
element
.
transferStatus
=
3
;
element
.
transferStatus
=
3
;
...
@@ -376,6 +380,12 @@
...
@@ -376,6 +380,12 @@
css_color
[
'borderColor'
]
=
'#97d5fd'
;
css_color
[
'borderColor'
]
=
'#97d5fd'
;
css_color
[
'padding'
]
=
'0px'
;
css_color
[
'padding'
]
=
'0px'
;
css_color
[
'textAlign'
]
=
'center'
;
css_color
[
'textAlign'
]
=
'center'
;
if
(
row
.
transferId
===
forms
.
transferId
){
css_color
[
'backgroundColor'
]
=
'#f0faff'
;
}
else
{
css_color
[
'backgroundColor'
]
=
'#fff'
;
}
return
css_color
;
return
css_color
;
}
}
...
@@ -394,6 +404,26 @@
...
@@ -394,6 +404,26 @@
selectedRows
.
value
=
selection
;
selectedRows
.
value
=
selection
;
};
};
const
handleRowClick
=
(
row
)
=>
{
// console.log(row);
forms
.
transferId
=
row
.
transferId
;
forms
.
transferName
=
row
.
transferName
;
forms
.
isDisabled
=
row
.
isDisabled
;
forms
.
transferStatus
=
row
.
transferStatus
;
forms
.
ecv1OpeningSet
=
row
.
ecv1OpeningSet
;
forms
.
ecv2OpeningSet
=
row
.
ecv2OpeningSet
;
forms
.
ecv3OpeningSet
=
row
.
ecv3OpeningSet
;
forms
.
ecv4OpeningSet
=
row
.
ecv4OpeningSet
;
forms
.
criclePump1FreqGiven
=
row
.
criclePump1FreqGiven
;
forms
.
criclePump2FreqGiven
=
row
.
criclePump2FreqGiven
;
forms
.
criclePump3FreqGiven
=
row
.
criclePump3FreqGiven
;
forms
.
tempGainValue
=
row
.
tempGainValue
;
forms
.
pressureDiffSetting
=
row
.
pressureDiffSetting
;
forms
.
waterBoxOpen
=
row
.
waterBoxOpen
;
forms
.
waterBoxClose
=
row
.
waterBoxClose
;
forms
.
jdSecondInletTemp
=
row
.
jdSecondInletTemp
;
}
const
svg
=
`
const
svg
=
`
<path class="path" d="
<path class="path" d="
M 30 15
M 30 15
...
@@ -412,9 +442,17 @@
...
@@ -412,9 +442,17 @@
}
}
.card-content
{
.card-content
{
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
space-between
;
height
:
20px
;
height
:
20px
;
}
.remoteContent
{
width
:
100%
;
height
:
100%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
}
.demo-button
{
.demo-button
{
...
@@ -430,22 +468,26 @@ height: 20px;
...
@@ -430,22 +468,26 @@ height: 20px;
}
}
.demo-image
.block
{
.demo-image
.block
{
padding
:
1px
0
;
padding
:
1px
0
;
text-align
:
center
;
text-align
:
center
;
border-right
:
solid
1px
var
(
--el-border-color
);
border-right
:
solid
1px
var
(
--el-border-color
);
display
:
inline-block
;
display
:
inline-block
;
width
:
80px
;
width
:
80px
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
vertical-align
:
top
;
vertical-align
:
top
;
}
}
.demo-image
.block
:last-child
{
.demo-image
.block
:last-child
{
border-right
:
none
;
border-right
:
none
;
}
}
.demo-image
.demonstration
{
.demo-image
.demonstration
{
display
:
block
;
display
:
block
;
color
:
var
(
--el-text-color-secondary
);
color
:
var
(
--el-text-color-secondary
);
font-size
:
12px
;
font-size
:
12px
;
margin-bottom
:
0px
;
margin-bottom
:
0px
;
}
/* 在你的样式文件中 */
.selected-row
{
background-color
:
#f0f0f0
;
/* 选中行的背景颜色 */
color
:
#333
;
/* 选中行的文字颜色 */
}
}
</
style
>
</
style
>
\ No newline at end of file
src/router/index.js
View file @
da404ade
...
@@ -7,6 +7,7 @@ import store from '@/store'
...
@@ -7,6 +7,7 @@ import store from '@/store'
//import nProgress from 'nprogress'
//import nProgress from 'nprogress'
import
screenDisplay
from
'@/views/Gis/screenDisplay.vue'
import
screenDisplay
from
'@/views/Gis/screenDisplay.vue'
import
iframe
from
'@/views/iframe.vue'
import
iframe
from
'@/views/iframe.vue'
//import remote from './remote'
// 定义路由规则
// 定义路由规则
const
routes
=
[
const
routes
=
[
...
@@ -31,7 +32,9 @@ const routes = [
...
@@ -31,7 +32,9 @@ const routes = [
path
:
'/Home'
,
path
:
'/Home'
,
name
:
"Home"
,
name
:
"Home"
,
component
:
HomePage
,
component
:
HomePage
,
children
:
[{
children
:
[
// ...remote,//远程控制
{
path
:
'/RealSupply'
,
path
:
'/RealSupply'
,
name
:
'RealSupplyPage'
,
name
:
'RealSupplyPage'
,
component
:
()
=>
import
(
'@/views/RealPage/RealSupplyPage.vue'
),
component
:
()
=>
import
(
'@/views/RealPage/RealSupplyPage.vue'
),
...
...
src/views/RemotePage/TransControlPage.vue
View file @
da404ade
<
template
>
<
template
>
<el-card
class=
"card-contianer"
>
<el-card
class=
"card-contianer"
>
<div>
</div>
<label>
{{
radioTitle
}}
:
</label>
<label>
{{
radioTitle
}}
:
</label>
<el-radio-group
v-model=
"activeRadio"
style=
"margin-left: 50px;"
>
<el-radio-group
v-model=
"activeRadio"
style=
"margin-left: 50px;"
>
<el-radio
<el-radio
...
@@ -53,12 +50,24 @@
...
@@ -53,12 +50,24 @@
<NightFrequency
:activeRadio=
"activeRadio"
/>
<NightFrequency
:activeRadio=
"activeRadio"
/>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
<!--
<el-tabs
v-model=
"activeTab"
@
tab-click=
"handleClick"
:tab-position=
"tabPosition"
style=
"height: 100%"
class=
"demo-tabs"
>
<el-tab-pane
v-for=
"item in editableTabs"
:key=
"item.name"
:label=
"item.title"
:name=
"item.name"
></el-tab-pane>
-->
<!--
<el-tab-pane
name=
"TransferStatusControl"
label=
"换热站状态"
v-if=
"isTransferStatus"
></el-tab-pane>
<el-tab-pane
name=
"TransferRegControl"
label=
"远程寄存器"
v-if=
"isTransferRegControl"
></el-tab-pane>
-->
<!--
</el-tabs>
-->
<!--
<router-view
/>
-->
</
template
>
</
template
>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
reactive
,
onMounted
,
onUnmounted
,
watch
}
from
'vue'
;
import
{
ref
,
reactive
,
onMounted
,
onUnmounted
,
watch
}
from
'vue'
;
import
http
from
'../../api/http'
;
import
http
from
'../../api/http'
;
import
store
from
"../../store/index"
;
import
store
from
"../../store/index"
;
import
{
useRoute
,
useRouter
}
from
'vue-router'
;
import
TransferStatusControl
from
'../../components/Remote/TransferStatusControl.vue'
;
import
TransferStatusControl
from
'../../components/Remote/TransferStatusControl.vue'
;
import
TransferRegControl
from
'../../components/Remote/TransferRegControl.vue'
;
import
TransferRegControl
from
'../../components/Remote/TransferRegControl.vue'
;
import
HolidayControl
from
'../../components/Remote/HolidayControl.vue'
;
import
HolidayControl
from
'../../components/Remote/HolidayControl.vue'
;
...
@@ -90,6 +99,32 @@
...
@@ -90,6 +99,32 @@
const
isOutdoorTempControl
=
ref
(
false
);
const
isOutdoorTempControl
=
ref
(
false
);
const
isNightFrequency
=
ref
(
false
);
const
isNightFrequency
=
ref
(
false
);
// const editableTabs = reactive([
// {
// title: '换热站状态',
// path: '../../components/Remote/TransferStatusControl.vue',
// name: 'TransferStatusControl',
// isActive: false,
// component: TransferStatusControl
// },
// {
// title: '远程寄存器值',
// path: '/Remote/RemoteTransferReg',
// name: 'TransferRegControl',
// isActive: false,
// component: TransferRegControl
// }
// ])
// function handleTabClick(tab) {
// activeTab.value = tab.name
// }
// const handleClick = (tab, event) => {
// console.log(tab.props.name);
// console.log(editableTabs.find(t => t.name === tab.props.name).path);
// router.push(editableTabs.find(t => t.name === tab.props.name).path);
// };
//初始化页面
//初始化页面
function
initPage
(){
function
initPage
(){
initRadioList
();
initRadioList
();
...
...
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