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
29c4a617
Commit
29c4a617
authored
Aug 13, 2024
by
裴文涛
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
禅道所列已解决
parent
efa83de3
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
91 additions
and
58 deletions
+91
-58
AnnualParamPage.vue
src/views/SchedulingPage/AnnualParamPage.vue
+23
-16
PhenomenonPage.vue
src/views/SchedulingPage/PhenomenonPage.vue
+36
-15
WeatherManagePage.vue
src/views/SchedulingPage/WeatherManagePage.vue
+9
-6
WindManagePage.vue
src/views/SchedulingPage/WindManagePage.vue
+2
-2
AddWindow.vue
src/views/SchedulingPage/weatherManageSub/AddWindow.vue
+8
-4
BindWindow.vue
src/views/SchedulingPage/weatherManageSub/BindWindow.vue
+10
-12
ReviseWindow.vue
src/views/SchedulingPage/weatherManageSub/ReviseWindow.vue
+3
-3
No files found.
src/views/SchedulingPage/AnnualParamPage.vue
View file @
29c4a617
...
...
@@ -67,13 +67,13 @@ function handleDelete(val) {
})
}
else
{
ElMessage
({
message
:
'删除失败.'
,
message
:
res
.
message
,
type
:
'error'
,
})
}
}).
catch
(
err
=>
{
ElMessage
({
message
:
'删除失败.'
,
message
:
'
接口异常,
删除失败.'
,
type
:
'error'
,
})
})
...
...
@@ -82,6 +82,7 @@ function handleDelete(val) {
function
handleAdd
()
{
currentYear
.
value
=
new
Date
().
getFullYear
()
currentMonth
.
value
=
new
Date
().
getMonth
()
+
1
resetInput
()
addWindowOpen
.
value
=
true
}
// 处理新增
function
handleSearch
()
{
...
...
@@ -97,18 +98,18 @@ function onSubmit() {
getData
()
handleClose
()
ElMessage
({
message
:
'修改成功.'
,
message
:
res
.
message
,
type
:
'success'
,
})
}
else
{
ElMessage
({
message
:
'修改失败.'
,
message
:
res
.
message
,
type
:
'error'
,
})
}
}).
catch
(
err
=>
{
ElMessage
({
message
:
'修改失败.'
,
message
:
'
接口异常,
修改失败.'
,
type
:
'error'
,
})
})
...
...
@@ -120,23 +121,25 @@ function onAddSubmit() { // 提交新增
return
}
})
console
.
log
(
'>>>>>>>>=='
,
addForm
.
value
)
console
.
log
(
'========>>>>'
,
addForm
.
value
.
year
)
addAnnualParam
(
addForm
.
value
).
then
(
res
=>
{
if
(
res
.
success
)
{
getData
()
handleClose
()
ElMessage
({
message
:
'新增成功
.
'
,
message
:
'新增成功'
,
type
:
'success'
,
})
}
else
{
ElMessage
({
message
:
'新增失败.'
,
message
:
res
.
success
,
type
:
'error'
,
})
}
}).
catch
(
err
=>
{
ElMessage
({
message
:
'新增失败.'
,
message
:
'
接口异常,
新增失败.'
,
type
:
'error'
,
})
})
...
...
@@ -168,7 +171,10 @@ function resetInput() {
backWaterTemperature
:
''
}
}
function
resetSearch
(){
searchKey
.
value
=
''
getData
()
}
function
customSort
(
a
,
b
)
{
let
valA
;
let
valB
;
...
...
@@ -214,6 +220,7 @@ function customSort(a, b) {
</el-row>
<el-button
type=
"primary"
class=
"add-search-btn"
@
click=
"handleSearch"
>
查询
</el-button>
<el-button
type=
"primary"
class=
"add-search-btn"
@
click=
"handleAdd"
>
新增
</el-button>
<el-button
type=
"primary"
class=
"add-search-btn"
@
click=
"resetSearch"
>
重置
</el-button>
</div>
<div
class=
"table-wrapper"
>
<el-table
:data=
"data"
border
stripe
ref=
"elTableRef"
:default-sort=
"
{ prop: 'year', order: 'descending' }"
...
...
@@ -270,19 +277,19 @@ function customSort(a, b) {
<el-row>
<el-col
:span=
"8"
col-label
>
室内温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"reviseForm.indoorTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"reviseForm.indoorTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
室外温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"reviseForm.outdoorTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"reviseForm.outdoorTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
回水温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"reviseForm.backWaterTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"reviseForm.backWaterTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
</
template
>
...
...
@@ -306,7 +313,7 @@ function customSort(a, b) {
<el-row>
<el-col
:span=
"8"
col-label
>
年度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-select
placeholder=
""
size=
"small"
v-model=
"
selectYearValue
"
style=
"width: 370px"
>
<el-select
placeholder=
""
size=
"small"
v-model=
"
addForm.year
"
style=
"width: 370px"
>
<el-option
:value=
"selectYearValue"
:label=
"selectYearValue"
/>
</el-select>
</el-col>
...
...
@@ -326,19 +333,19 @@ function customSort(a, b) {
<el-row>
<el-col
:span=
"8"
col-label
>
室内温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"addForm.indoorTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"addForm.indoorTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
室外温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"addForm.outdoorTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"addForm.outdoorTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
回水温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"addForm.backWaterTemperature"
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"addForm.backWaterTemperature"
style=
"width: 370px"
/>
</el-col>
</el-row>
</
template
>
...
...
src/views/SchedulingPage/PhenomenonPage.vue
View file @
29c4a617
...
...
@@ -54,7 +54,7 @@ function omit(val){
})
}
else
{
ElMessage
({
message
:
'删除失败.'
,
message
:
res
.
message
,
type
:
'error'
,
})
}
...
...
@@ -72,6 +72,15 @@ function handleClose(){
resetInput
()
}
// 关闭弹窗
function
onReviseSubmit
(){
if
(
reviseForm
.
value
.
phenomenonName
===
'晴天'
){
reviseForm
.
value
.
phenomenonType
=
1
}
else
if
(
reviseForm
.
value
.
phenomenonName
===
'多云'
){
reviseForm
.
value
.
phenomenonType
=
2
}
else
{
reviseForm
.
value
.
phenomenonType
=
3
}
delete
reviseForm
.
value
.
updateNullFields
console
.
log
(
'=>>>>>>>>>>>'
,
reviseForm
.
value
)
alterPhenomenon
(
reviseForm
.
value
).
then
(
res
=>
{
if
(
res
.
success
){
getData
()
...
...
@@ -82,7 +91,7 @@ function onReviseSubmit(){
})
}
else
{
ElMessage
({
message
:
'修改失败.'
,
message
:
res
.
message
,
type
:
'error'
,
})
}
...
...
@@ -95,6 +104,13 @@ function onReviseSubmit(){
})
}
// 修改表单提交
function
onAddSubmit
(){
if
(
addForm
.
value
.
phenomenonName
===
'晴天'
){
addForm
.
value
.
phenomenonType
=
1
}
else
if
(
addForm
.
value
.
phenomenonName
===
'多云'
){
addForm
.
value
.
phenomenonType
=
2
}
else
{
addForm
.
value
.
phenomenonType
=
3
}
addPhenomenon
(
addForm
.
value
).
then
(
res
=>
{
if
(
res
.
success
){
handleClose
()
...
...
@@ -105,7 +121,7 @@ function onAddSubmit(){
})
}
else
{
ElMessage
({
message
:
'新增失败.'
,
message
:
res
.
message
,
type
:
'error'
,
})
}
...
...
@@ -124,6 +140,10 @@ function resetInput(){
phenomenonDesc
:
''
}
}
// 清空新增表单输入框
function
resetSearch
(){
searchKey
.
value
=
''
getData
()
}
onMounted
(()
=>
{
getData
()
...
...
@@ -150,6 +170,7 @@ function customSort(a,b){
</el-row>
<el-button
type=
"primary"
@
click=
"search"
class=
"add-search-btn"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"add"
class=
"add-search-btn"
>
新增
</el-button>
<el-button
type=
"primary"
@
click=
"resetSearch"
class=
"add-search-btn"
>
重置
</el-button>
</div>
<div
class=
"table-wrapper"
>
<el-table
...
...
@@ -189,23 +210,23 @@ function customSort(a,b){
<el-row>
<el-col
:span=
"8"
col-label
class=
"energy-type-class"
>
名称:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-select
placeholder=
""
size=
"small"
v-model=
"reviseForm.phenomenon
Typ
e"
style=
"width: 370px"
>
<el-option
:value=
"1
"
label=
"晴天"
/>
<el-option
:value=
"2
"
label=
"多云"
/>
<el-option
:value=
"3
"
label=
"阴天"
/>
<el-select
placeholder=
""
size=
"small"
v-model=
"reviseForm.phenomenon
Nam
e"
style=
"width: 370px"
>
<el-option
value=
"晴天
"
label=
"晴天"
/>
<el-option
value=
"多云
"
label=
"多云"
/>
<el-option
value=
"阴天
"
label=
"阴天"
/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
对应温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"reviseForm.phenomenonTemp"
placeholder=
""
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"reviseForm.phenomenonTemp"
placeholder=
""
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
描述:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-model=
"reviseForm.phenomenonDesc"
placeholder=
""
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"reviseForm.phenomenonDesc"
placeholder=
""
style=
"width: 370px"
/>
</el-col>
</el-row>
</
template
>
...
...
@@ -231,23 +252,23 @@ function customSort(a,b){
<el-row>
<el-col
:span=
"8"
col-label
class=
"energy-type-class"
>
名称:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-select
placeholder=
""
size=
"small"
v-model=
"addForm.phenomenon
Typ
e"
style=
"width: 370px"
>
<el-option
:value=
"1
"
label=
"晴天"
/>
<el-option
:value=
"2
"
label=
"多云"
/>
<el-option
:value=
"3
"
label=
"阴天"
/>
<el-select
placeholder=
""
size=
"small"
v-model=
"addForm.phenomenon
Nam
e"
style=
"width: 370px"
>
<el-option
value=
"晴天
"
label=
"晴天"
/>
<el-option
value=
"多云
"
label=
"多云"
/>
<el-option
value=
"阴天
"
label=
"阴天"
/>
</el-select>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
对应温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"addForm.phenomenonTemp"
placeholder=
""
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"addForm.phenomenonTemp"
placeholder=
""
style=
"width: 370px"
/>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
col-label
>
描述:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-model=
"addForm.phenomenonDesc"
placeholder=
""
style=
"width: 370px"
/>
<el-input
maxlength=
"11"
v-model=
"addForm.phenomenonDesc"
placeholder=
""
style=
"width: 370px"
/>
</el-col>
</el-row>
</
template
>
...
...
src/views/SchedulingPage/WeatherManagePage.vue
View file @
29c4a617
...
...
@@ -130,9 +130,6 @@ const onCancelBind = () => {
bindWindowOpen
.
value
=
false
getData
()
}
onMounted
(()
=>
{
})
onBeforeMount
(()
=>
{
getData
()
getOrganizationStructure
()
...
...
@@ -222,6 +219,11 @@ function getOrganizationStructure() {
ElMessage
.
error
(
'接口异常,获取数据失败.'
)
})
}
// 获取组织结构
function
resetSearch
(){
isAutoSearchKey
.
value
=
''
supplySearchKey
.
value
=
''
getData
()
}
</
script
>
<
template
>
...
...
@@ -230,19 +232,20 @@ function getOrganizationStructure() {
<el-col
:span=
"15"
left-col
>
<div
class=
"isAuto-search-area"
>
手自动模式:
<el-select
v-model=
"isAutoSearchKey"
style=
"width:
30
0px"
placeholder=
"请选择手自动模式"
clearable
>
<el-select
v-model=
"isAutoSearchKey"
style=
"width:
22
0px"
placeholder=
"请选择手自动模式"
clearable
>
<el-option
:label=
"手动模式"
value=
"手动模式"
/>
<el-option
:label=
"自动模式"
value=
"自动模式"
/>
</el-select>
</div>
<div
class=
"supplyName-search-area"
>
供热站名称:
<el-input
v-model=
"supplySearchKey"
placeholder=
"请输入供热站名称"
clearable
style=
"width:
30
0px"
/>
<el-input
v-model=
"supplySearchKey"
placeholder=
"请输入供热站名称"
clearable
style=
"width:
22
0px"
/>
</div>
</el-col>
<el-col
:span=
"
9
"
right-col
>
<el-col
:span=
"
7
"
right-col
>
<el-button
type=
"primary"
@
click=
"addWindowOpen = true"
class=
"add-btn"
>
新增
</el-button>
<el-button
type=
"primary"
@
click=
"search"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"resetSearch"
>
重置
</el-button>
</el-col>
</el-row>
<div
class=
"table-wrapper"
>
...
...
src/views/SchedulingPage/WindManagePage.vue
View file @
29c4a617
...
...
@@ -234,7 +234,6 @@ function customSort(a, b) {
<el-col
:span=
"8"
col-label
>
对应温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
v-model=
"reviseForm.windTemp"
maxlength=
"11"
placeholder=
""
...
...
@@ -246,6 +245,7 @@ function customSort(a, b) {
<el-col
:span=
"8"
col-label
>
描述:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
maxlength=
"11"
v-model=
"reviseForm.windDesc"
placeholder=
""
style=
"width: 370px"
...
...
@@ -292,7 +292,6 @@ function customSort(a, b) {
<el-col
:span=
"8"
col-label
>
对应温度:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
v-float-number
maxlength=
"11"
v-model=
"addForm.windTemp"
placeholder=
""
...
...
@@ -304,6 +303,7 @@ function customSort(a, b) {
<el-col
:span=
"8"
col-label
>
描述:
</el-col>
<el-col
:span=
"16"
col-value
>
<el-input
maxlength=
"11"
v-model=
"addForm.windDesc"
placeholder=
""
style=
"width: 370px"
...
...
src/views/SchedulingPage/weatherManageSub/AddWindow.vue
View file @
29c4a617
...
...
@@ -51,6 +51,9 @@ function getCurrentDateTime() {
return
`
${
year
}
-
${
month
}
-
${
day
}
${
hours
}
:
${
minutes
}
:
${
seconds
}
`
;
}
// 生成时间
function
onOpen
(){
resetInput
()
}
function
resetInput
(){
addData
.
value
=
{
transfers
:[],
// 换热站
...
...
@@ -77,13 +80,14 @@ function resetInput(){
v-model=
"props.open"
width=
"1000px"
title=
"新增"
@
close=
"emit('onCancel')"
>
@
close=
"emit('onCancel')"
@
open=
"onOpen"
>
<template
#
default
>
<div
class=
"dialog-content"
>
<el-row
style=
"border-top: #a6c3e9 1px solid"
>
<el-col
:span=
"8"
class=
"content-col-label"
>
自定义名称:
</el-col>
<el-col
:span=
"16"
class=
"content-col-value"
>
<el-input
:input-style=
"inputStyle"
v-model=
"addData.customizeName"
style=
"width: 510px"
/>
<el-input
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"addData.customizeName"
style=
"width: 510px"
/>
</el-col>
</el-row>
<el-row>
...
...
@@ -98,7 +102,7 @@ function resetInput(){
<el-row>
<el-col
:span=
"8"
class=
"content-col-label"
>
温度:
</el-col>
<el-col
:span=
"16"
class=
"content-col-value"
>
<el-input
v-float-number
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"addData.temperature"
style=
"width: 510px"
/>
<el-input
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"addData.temperature"
style=
"width: 510px"
/>
</el-col>
</el-row>
<el-row>
...
...
@@ -136,7 +140,7 @@ function resetInput(){
</el-col>
<el-col
:span=
"5"
class=
"content-col-label"
>
自动调节温度(℃):
</el-col>
<el-col
:span=
"7"
class=
"content-col-value"
>
<el-input
v-float-number
:input-style=
"inputStyle"
maxlength=
"11"
v-model=
"addData.tempRegulation"
style=
"width: 240px"
/>
<el-input
:input-style=
"inputStyle"
maxlength=
"11"
v-model=
"addData.tempRegulation"
style=
"width: 240px"
/>
</el-col>
</el-row>
</div>
...
...
src/views/SchedulingPage/weatherManageSub/BindWindow.vue
View file @
29c4a617
...
...
@@ -45,7 +45,8 @@ const supplyData = ref([]) // 供热站数据
let
loadingInstance
=
null
const
transferData
=
ref
([])
// 换热站结构数据,每个供热站和一定数量的换热站对应
const
weatherMagData
=
ref
([])
let
preSupplyName
=
bindData
.
value
.
supplyName
// 上一选中的供热站
let
supplyByIndex
=
0
// 监听供热站变化的索引
let
preSupplyName
=
''
// 上一选中的供热站
let
alreadyBindTransfer
=
ref
([])
// 已绑定的换热站数据(和供热站一一对应)
const
inputStyle
=
{
color
:
'black'
,
...
...
@@ -65,7 +66,7 @@ watchEffect(() => {
})
// 监听props的变化,传入依赖
watchEffect
(()
=>
{
if
(
bindData
.
value
.
supplyName
!==
preSupplyName
)
{
//
checkboxGroup.value.length = 0
checkboxGroup
.
value
.
length
=
0
preSupplyName
=
bindData
.
value
.
supplyName
}
})
...
...
@@ -73,7 +74,7 @@ watchEffect(() => {
// 监听绑定的bindData.supplyName的变换,返回对应的换热站数据
checkBoxTransferList
.
value
.
length
=
0
// 每次供热站的值变化后,清空当前展示的数据,重新赋值
transferData
.
value
.
forEach
(
item
=>
{
if
(
item
.
supplyName
===
bindData
.
value
.
supplyName
)
{
if
(
item
.
supplyName
===
bindData
.
value
.
supplyName
){
item
.
transferList
.
forEach
(
transferObj
=>
{
checkBoxTransferList
.
value
.
push
({
unitId
:
transferObj
.
unitId
,
...
...
@@ -119,9 +120,6 @@ function onOpen() {
loadingInstance
=
ElLoading
.
service
({
target
:
'.el-dialog'
})
getBindTransfer
()
getAlreadyBindTransfer
()
console
.
log
(
'--------------->>>'
,
alreadyBindTransfer
.
value
)
console
.
log
(
'++++++++++++++>>>>'
,
BindTransferData
.
value
)
}
function
checkBoxChange
(
val
)
{
...
...
src/views/SchedulingPage/weatherManageSub/ReviseWindow.vue
View file @
29c4a617
...
...
@@ -62,7 +62,7 @@ function onOpen(){
<el-row
style=
"border-top: #a6c3e9 1px solid"
>
<el-col
:span=
"8"
class=
"content-col-label"
>
自定义名称:
</el-col>
<el-col
:span=
"16"
class=
"content-col-value"
>
<el-input
:input-style=
"inputStyle"
v-model=
"reviseData.customizeName"
style=
"width: 510px"
/>
<el-input
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"reviseData.customizeName"
style=
"width: 510px"
/>
</el-col>
</el-row>
<el-row>
...
...
@@ -77,7 +77,7 @@ function onOpen(){
<el-row>
<el-col
:span=
"8"
class=
"content-col-label"
>
温度:
</el-col>
<el-col
:span=
"16"
class=
"content-col-value"
>
<el-input
v-float-number
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"reviseData.temperature"
style=
"width: 510px"
/>
<el-input
maxlength=
"11"
:input-style=
"inputStyle"
v-model=
"reviseData.temperature"
style=
"width: 510px"
/>
</el-col>
</el-row>
<el-row>
...
...
@@ -115,7 +115,7 @@ function onOpen(){
</el-col>
<el-col
:span=
"5"
class=
"content-col-label"
>
自动调节温度(℃):
</el-col>
<el-col
:span=
"7"
class=
"content-col-value"
>
<el-input
v-float-number
:input-style=
"inputStyle"
maxlength=
"11"
v-model=
"reviseData.tempRegulation"
style=
"width: 240px"
/>
<el-input
:input-style=
"inputStyle"
maxlength=
"11"
v-model=
"reviseData.tempRegulation"
style=
"width: 240px"
/>
</el-col>
</el-row>
</div>
...
...
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