Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
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
罗超
confucius
Commits
ff1264a8
Commit
ff1264a8
authored
Jul 23, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
58f45c1c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
365 additions
and
355 deletions
+365
-355
extensions.json
.vscode/extensions.json
+0
-12
settings.json
.vscode/settings.json
+0
-7
orderCompleteStatistics.vue
src/pages/financial/orderCompleteStatistics.vue
+365
-336
No files found.
.vscode/extensions.json
deleted
100644 → 0
View file @
58f45c1c
{
"recommendations"
:
[
"dbaeumer.vscode-eslint"
,
"octref.vetur"
],
"unwantedRecommendations"
:
[
"hookyqr.beautify"
,
"dbaeumer.jshint"
,
"ms-vscode.vscode-typescript-tslint-plugin"
]
}
.vscode/settings.json
deleted
100644 → 0
View file @
58f45c1c
{
"vetur.validation.template"
:
false
,
"vetur.format.enable"
:
false
,
"eslint.validate"
:
[
"javascript"
,
"javascriptreact"
,
"typescript"
,
"vue"
],
"vetur.experimental.templateInterpolationService"
:
true
}
src/pages/financial/orderCompleteStatistics.vue
View file @
ff1264a8
<
style
>
@import
"css/cssReset.css"
;
@import
"css/cssReset.css"
;
.page_EasyReport_set
{
position
:
relative
;
padding
:
15px
}
.page_EasyReport_set
{
position
:
relative
;
padding
:
15px
;
}
.page_EasyReport_set
.page_EasyReport_export
{
position
:
absolute
;
right
:
0
;
top
:
15px
;
}
.page_EasyReport_set
.page_EasyReport_export
{
position
:
absolute
;
right
:
0
;
top
:
15px
;
}
.page_EasyReport_set
button
.page_EasyReport_search
{
position
:
absolute
;
bottom
:
27px
;
left
:
1020px
;
}
.page_EasyReport_set
button
.page_EasyReport_search
{
position
:
absolute
;
bottom
:
27px
;
left
:
1020px
;
}
.page_EasyReport_form
{
width
:
1000px
;
float
:
left
;
}
.page_EasyReport_form
{
width
:
1000px
;
float
:
left
;
}
.page_EasyReport_form
.el-date-editor.el-input
,
.page_EasyReport_form
.el-date-editor.el-input__inner
{
width
:
100%
!important
;
}
.page_EasyReport_form
.el-date-editor.el-input
,
.page_EasyReport_form
.el-date-editor.el-input__inner
{
width
:
100%
!important
;
}
.easyUpdateTime
{
position
:
absolute
;
top
:
55px
;
right
:
0
;
}
.easyUpdateTime
{
position
:
absolute
;
top
:
55px
;
right
:
0
;
}
.column-cell-class-name-test-lan-s
.v-table-body-cell
{
background-color
:
#9cf
;
}
.column-cell-class-name-test-lan-s
.v-table-body-cell
{
background-color
:
#9cf
;
}
.color-red
{
color
:
red
;
}
.color-red
{
color
:
red
;
}
.color-green
{
color
:
green
;
}
.color-green
{
color
:
green
;
}
.color-black
{
color
:
black
!important
;
}
.color-black
{
color
:
black
!important
;
}
.border-b
{
border-bottom
:
1px
solid
#999
;
}
.border-b
{
border-bottom
:
1px
solid
#999
;
}
td
.border-b
:last-child
{
border
:
none
;
}
.orderCompleteStatistics
td
{
color
:
#000
;
}
td
.border-b
:last-child
{
border
:
none
;
}
.orderCompleteStatistics
td
{
color
:
#000
;
}
</
style
>
<
template
>
<div
class=
"page_EasyReport My_table_tell page-body"
v-loading=
"AALloading"
>
...
...
@@ -413,346 +412,376 @@
</div>
</template>
<
script
>
import
{
getSchoolDropdown
,
//获取校区列表
}
from
'../../api/school/index'
;
import
{
queryEmployee
}
from
'../../api/users/user'
;
//获取业务员
import
{
getOrderCompleteStatisticsPageList
,
setContractAdjustPrice
}
from
"../../api/report/index"
import
Vue
from
"vue"
;
import
{
getSchoolDropdown
,
//获取校区列表
}
from
"../../api/school/index"
;
import
{
queryEmployee
}
from
"../../api/users/user"
;
//获取业务员
import
{
getOrderCompleteStatisticsPageList
,
setContractAdjustPrice
,
}
from
"../../api/report/index"
;
import
Vue
from
"vue"
;
import
{
getEasyReportList
,
outToExcelEasyReportList
}
from
'../../api/finance/index'
import
{
EduDownLoad
,
}
from
'../../api/common/common'
;
export
default
{
data
()
{
return
{
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
OrderId
:
0
,
// 订单编号
ContractNo
:
""
,
//合同编号
StudentName
:
""
,
//学生姓名
ClassName
:
""
,
//班级名称
CourseName
:
""
,
//课程名称
CreateBy
:
0
,
//业务员
FinanceId
:
0
,
//财务单据id
TradeWay
:
0
,
//交易方式
AccountId
:
0
,
//账号id
AccountType
:
0
,
//账户类型
StartTime
:
''
,
//下单时间
EndTime
:
''
,
XFStartTime
:
''
,
//消费课时时间
XFEndTime
:
''
,
},
datevalue
:
[],
datevalue2
:
[],
data
:
[],
DataList
:
[],
UpdateStaus
:
0
,
UpdateStartTime
:
''
,
UpdateEndTime
:
''
,
BranchList
:
[],
MonthIndex
:
0
,
loading
:
false
,
AALloading
:
false
,
userId
:
-
2
,
import
{
getEasyReportList
,
outToExcelEasyReportList
,
}
from
"../../api/finance/index"
;
import
{
EduDownLoad
}
from
"../../api/common/common"
;
export
default
{
data
()
{
return
{
total
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
OrderId
:
0
,
// 订单编号
ContractNo
:
""
,
//合同编号
StudentName
:
""
,
//学生姓名
ClassName
:
""
,
//班级名称
CourseName
:
""
,
//课程名称
CreateBy
:
0
,
//业务员
FinanceId
:
0
,
//财务单据id
TradeWay
:
0
,
//交易方式
AccountId
:
0
,
//账号id
AccountType
:
0
,
//账户类型
StartTime
:
""
,
//下单时间
EndTime
:
""
,
XFStartTime
:
""
,
//消费课时时间
XFEndTime
:
""
,
},
datevalue
:
[],
datevalue2
:
[],
data
:
[],
DataList
:
[],
UpdateStaus
:
0
,
UpdateStartTime
:
""
,
UpdateEndTime
:
""
,
BranchList
:
[],
MonthIndex
:
0
,
loading
:
false
,
AALloading
:
false
,
userId
:
-
2
,
EmployeeList
:
[],
//业务员列表
AccList
:
[],
//账户类型列表
BranchAccountList
:
[],
//交易方式列表
accountList
:
[],
//账号id列表
AdjustPriceMsg
:
{
ContractId
:
""
,
//合同id
AdjustPrice
:
""
,
//协调金额
},
from
:
1
,
//来源页
}
EmployeeList
:
[],
//业务员列表
AccList
:
[],
//账户类型列表
BranchAccountList
:
[],
//交易方式列表
accountList
:
[],
//账号id列表
AdjustPriceMsg
:
{
ContractId
:
""
,
//合同id
AdjustPrice
:
""
,
//协调金额
},
from
:
1
,
//来源页
};
},
created
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
userId
=
userInfo
.
EmployeeId
;
},
mounted
()
{
if
(
this
.
$route
.
query
.
from
)
{
this
.
from
=
this
.
$route
.
query
.
from
;
this
.
$forceUpdate
();
}
this
.
getData
();
this
.
getCompanyList
();
this
.
getEmployee
(
0
);
this
.
AccountType_post_GetList
();
this
.
Financial_post_GetBranchAccountList
();
},
methods
:
{
handleCurrentChange
:
function
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
getData
();
},
created
()
{
let
userInfo
=
this
.
getLocalStorage
();
this
.
userId
=
userInfo
.
EmployeeId
;
exportExcel
:
function
()
{
EduDownLoad
(
"/finance/OutToExcelOrderStudentClassHoursList"
,
this
.
msg
,
"订单完成统计.xls"
);
},
mounted
()
{
if
(
this
.
$route
.
query
.
from
)
{
this
.
from
=
this
.
$route
.
query
.
from
this
.
$forceUpdate
();
getData
()
{
if
(
this
.
datevalue
&&
this
.
datevalue
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
datevalue
[
0
];
this
.
msg
.
EndTime
=
this
.
datevalue
[
1
];
}
else
{
this
.
msg
.
StartTime
=
""
;
this
.
msg
.
EndTime
=
""
;
}
this
.
getData
();
this
.
getCompanyList
();
this
.
getEmployee
(
0
);
this
.
AccountType_post_GetList
();
this
.
Financial_post_GetBranchAccountList
();
if
(
this
.
datevalue2
&&
this
.
datevalue2
.
length
>
0
)
{
this
.
msg
.
XFStartTime
=
this
.
datevalue2
[
0
];
this
.
msg
.
XFEndTime
=
this
.
datevalue2
[
1
];
}
else
{
this
.
msg
.
XFStartTime
=
""
;
this
.
msg
.
XFEndTime
=
""
;
}
getOrderCompleteStatisticsPageList
(
this
.
msg
).
then
((
res
)
=>
{
res
.
Data
.
PageData
.
map
((
item
)
=>
{
item
.
Progress
=
item
.
Progress
+
"%"
;
});
this
.
DataList
=
res
.
Data
.
PageData
;
this
.
total
=
res
.
Data
.
Count
;
});
},
methods
:
{
handleCurrentChange
:
function
(
val
)
{
//翻页
this
.
msg
.
pageIndex
=
val
;
this
.
getData
();
},
exportExcel
:
function
()
{
EduDownLoad
(
"/finance/OutToExcelOrderStudentClassHoursList"
,
this
.
msg
,
"订单完成统计.xls"
)
},
getData
()
{
if
(
this
.
datevalue
&&
this
.
datevalue
.
length
>
0
)
{
this
.
msg
.
StartTime
=
this
.
datevalue
[
0
];
this
.
msg
.
EndTime
=
this
.
datevalue
[
1
];
}
else
{
this
.
msg
.
StartTime
=
''
;
this
.
msg
.
EndTime
=
''
;
}
if
(
this
.
datevalue2
&&
this
.
datevalue2
.
length
>
0
)
{
this
.
msg
.
XFStartTime
=
this
.
datevalue2
[
0
];
this
.
msg
.
XFEndTime
=
this
.
datevalue2
[
1
];
}
else
{
this
.
msg
.
XFStartTime
=
''
;
this
.
msg
.
XFEndTime
=
''
;
}
getOrderCompleteStatisticsPageList
(
this
.
msg
).
then
((
res
)
=>
{
res
.
Data
.
PageData
.
map
((
item
)
=>
{
item
.
Progress
=
item
.
Progress
+
"%"
})
this
.
DataList
=
res
.
Data
.
PageData
this
.
total
=
res
.
Data
.
Count
})
},
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
();
var
RB_Group_id
=
userInfo
.
RB_Group_id
;
let
msg
=
{
Status
:
0
,
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
};
getSchoolDropdown
({}).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
this
.
BranchList
=
tempArray
;
}
})
},
//获取业务员
getEmployee
(
id
)
{
var
qMsg
=
{
Dept_Id
:
0
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
();
var
RB_Group_id
=
userInfo
.
RB_Group_id
;
let
msg
=
{
Status
:
0
,
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
,
};
getSchoolDropdown
({}).
then
((
res
)
=>
{
if
(
res
.
Code
==
1
)
{
var
tempArray
=
res
.
Data
;
this
.
BranchList
=
tempArray
;
}
qMsg
.
Dept_Id
=
id
;
queryEmployee
(
qMsg
).
then
(
res
=>
{
});
},
//获取业务员
getEmployee
(
id
)
{
var
qMsg
=
{
Dept_Id
:
0
,
};
qMsg
.
Dept_Id
=
id
;
queryEmployee
(
qMsg
)
.
then
((
res
)
=>
{
if
(
res
.
Code
==
1
)
{
this
.
EmployeeList
=
res
.
Data
;
}
}).
catch
(()
=>
{
})
},
//获取账户类型下拉
AccountType_post_GetList
()
{
this
.
apipost
(
'AccountType_post_GetList'
,
this
.
queryAccMsg
,
res
=>
{
.
catch
(()
=>
{});
},
//获取账户类型下拉
AccountType_post_GetList
()
{
this
.
apipost
(
"AccountType_post_GetList"
,
this
.
queryAccMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
AccList
=
res
.
data
.
data
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
//获取交易方式列表
Financial_post_GetBranchAccountList
()
{
this
.
apipost
(
'Financial_post_GetBranchAccountList'
,
{},
res
=>
{
},
(
err
)
=>
{}
);
},
//获取交易方式列表
Financial_post_GetBranchAccountList
()
{
this
.
apipost
(
"Financial_post_GetBranchAccountList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
BranchAccountList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
//账户id
getAccountList
(
i
,
t
)
{
let
accountList
=
[];
if
(
t
==
1
)
{
// 银行
this
.
apipost
(
'bankaccount_post_GetList'
,
{
TypeId
:
i
},
res
=>
{
},
(
err
)
=>
{}
);
},
//账户id
getAccountList
(
i
,
t
)
{
let
accountList
=
[];
if
(
t
==
1
)
{
// 银行
this
.
apipost
(
"bankaccount_post_GetList"
,
{
TypeId
:
i
,
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
data
.
forEach
(
(
x
)
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
,
}
accountList
.
push
(
obj
)
})
}
;
accountList
.
push
(
obj
)
;
})
;
this
.
accountList
=
accountList
;
}
},
err
=>
{})
}
if
(
t
==
2
)
{
//平台账户
let
msg
=
{
BackId
:
0
,
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetPlatformList'
,
msg
,
res
=>
{
},
(
err
)
=>
{}
);
}
if
(
t
==
2
)
{
//平台账户
let
msg
=
{
BackId
:
0
,
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
""
,
};
this
.
apipost
(
"BankAccount_post_GetPlatformList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
data
.
forEach
(
(
x
)
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
x
.
PlatformNo
}
accountList
.
push
(
obj
)
})
Nom
:
x
.
PlatformNo
,
}
;
accountList
.
push
(
obj
)
;
})
;
this
.
accountList
=
accountList
;
}
},
err
=>
{})
}
if
(
t
==
3
)
{
//现金账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetCashAccountList'
,
msg
,
res
=>
{
},
(
err
)
=>
{}
);
}
if
(
t
==
3
)
{
//现金账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
""
,
};
this
.
apipost
(
"BankAccount_post_GetCashAccountList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
data
.
forEach
(
(
x
)
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
Nom
:
0
,
}
;
accountList
.
push
(
obj
)
;
})
;
this
.
accountList
=
accountList
;
}
},
err
=>
{})
}
if
(
t
==
4
)
{
//资金池账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
''
}
this
.
apipost
(
'BankAccount_post_GetCashPoolList'
,
msg
,
res
=>
{
},
(
err
)
=>
{}
);
}
if
(
t
==
4
)
{
//资金池账户
let
msg
=
{
TypeId
:
i
,
BranchId
:
-
1
,
Alias
:
""
,
};
this
.
apipost
(
"BankAccount_post_GetCashPoolList"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
data
.
forEach
(
x
=>
{
data
.
forEach
(
(
x
)
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
Alias
,
Nom
:
0
}
accountList
.
push
(
obj
)
})
this
.
accountList
=
accountList
Nom
:
0
,
}
;
accountList
.
push
(
obj
)
;
})
;
this
.
accountList
=
accountList
;
}
},
err
=>
{})
},
(
err
)
=>
{}
);
}
},
bodyCellSpan
({
row
,
column
,
rowIndex
})
{
if
(
rowIndex
===
1
)
{
if
(
column
.
field
===
"date"
)
{
return
{
rowspan
:
1
,
colspan
:
2
,
};
}
else
if
(
column
.
field
===
"hobby"
)
{
return
{
rowspan
:
0
,
colspan
:
0
,
};
}
}
},
//对话框
show
()
{
this
.
$refs
.
dialog
.
show
();
},
},
bodyCellSpan
({
row
,
column
,
rowIndex
})
{
if
(
rowIndex
===
1
)
{
if
(
column
.
field
===
"date"
)
{
return
{
rowspan
:
1
,
colspan
:
2
,
};
}
else
if
(
column
.
field
===
"hobby"
)
{
return
{
rowspan
:
0
,
colspan
:
0
,
};
}
}
},
//对话框
show
()
{
this
.
$refs
.
dialog
.
show
();
},
hide
()
{
this
.
$refs
.
dialog
.
hide
();
},
hide
()
{
this
.
$refs
.
dialog
.
hide
();
},
onDialogHide
()
{
// QDialog发出“hide”事件时
// 需要发出
this
.
$emit
(
"hide"
);
},
onDialogHide
()
{
// QDialog发出“hide”事件时
// 需要发出
this
.
$emit
(
"hide"
);
},
onCancelClick
()
{
// 我们只需要隐藏对话框
this
.
hide
();
},
onSubmit
()
{
this
.
$refs
.
money
.
validate
();
if
(
this
.
$refs
.
money
.
hasError
)
{
this
.
formHasError
=
true
;
}
else
{
this
.
AdjustPriceMsg
.
ContractId
=
this
.
AdjustPriceMsg
.
ContractId
.
toString
();
this
.
AdjustPriceMsg
.
AdjustPrice
=
this
.
AdjustPriceMsg
.
AdjustPrice
.
toString
();
onCancelClick
()
{
// 我们只需要隐藏对话框
this
.
hide
();
},
onSubmit
()
{
this
.
$refs
.
money
.
validate
();
if
(
this
.
$refs
.
money
.
hasError
)
{
this
.
formHasError
=
true
;
}
else
{
this
.
AdjustPriceMsg
.
ContractId
=
this
.
AdjustPriceMsg
.
ContractId
.
toString
();
this
.
AdjustPriceMsg
.
AdjustPrice
=
this
.
AdjustPriceMsg
.
AdjustPrice
.
toString
();
if
(
this
.
AdjustPriceMsg
.
AdjustPrice
==
""
)
{
this
.
AdjustPriceMsg
.
AdjustPrice
=
0
;
}
if
(
this
.
AdjustPriceMsg
.
AdjustPrice
==
''
)
{
this
.
AdjustPriceMsg
.
AdjustPrice
=
0
;
setContractAdjustPrice
(
this
.
AdjustPriceMsg
).
then
((
res
)
=>
{
this
.
$q
.
notify
({
type
:
"positive"
,
icon
:
"done"
,
position
:
"top"
,
color
:
"positive"
,
message
:
res
.
Message
,
});
if
(
res
.
Code
===
1
)
{
this
.
getData
();
}
setContractAdjustPrice
(
this
.
AdjustPriceMsg
).
then
((
res
)
=>
{
this
.
$q
.
notify
({
type
:
"positive"
,
icon
:
"done"
,
position
:
"top"
,
color
:
"positive"
,
message
:
res
.
Message
,
});
if
(
res
.
Code
===
1
)
{
this
.
getData
()
}
this
.
$refs
.
dialog
.
hide
();
})
}
},
goUrl
(
path
,
Names
)
{
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
Name
:
Name
,
});
},
goUrl2
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
this
.
$refs
.
dialog
.
hide
();
});
},
goUrl3
(
path
,
ID
)
{
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
ID
,
});
},
seeClassUseDetail
(
item
){
let
obj
=
{
StudentId
:
76
,
TeacherId
:
0
,
ClassId
:
16
}
console
.
log
(
752
,
item
)
// this.OpenNewUrl("/teacher/studentsClassSee",obj)
}
}
}
},
goUrl
(
path
,
Names
)
{
let
Name
=
encodeURI
(
Names
);
this
.
OpenNewUrl
(
path
,
{
Name
:
Name
,
});
},
goUrl2
(
path
,
Names
)
{
//班级
let
Name
=
encodeURI
(
Names
);
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
},
goUrl3
(
path
,
ID
)
{
//订单跳转
this
.
OpenNewUrl
(
path
,
{
OrderId
:
ID
,
});
},
seeClassUseDetail
(
item
)
{
let
obj
=
{
StudentId
:
item
.
GuestId
,
TeacherId
:
0
,
// ClassId: 16,
};
this
.
OpenNewUrl
(
"/teacher/studentsClassSee"
,
obj
);
},
},
};
</
script
>
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