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
9fe07281
Commit
9fe07281
authored
Jan 22, 2021
by
zhengke
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
a002094c
6eee41f0
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
121 additions
and
69 deletions
+121
-69
question.js
src/api/question/question.js
+10
-0
question-form.vue
src/components/question/question-form.vue
+23
-4
question-upload.vue
src/components/question/question-upload.vue
+45
-37
orderlist.vue
src/components/sale/orderlist.vue
+7
-7
achievements.vue
src/pages/course/achievements.vue
+1
-1
classHourReward.vue
src/pages/course/classHourReward.vue
+1
-1
lessonPreparation.vue
src/pages/course/lessonPreparation.vue
+1
-1
prepareclassDetails.vue
src/pages/course/prepareclassDetails.vue
+1
-1
rewardDetailed.vue
src/pages/course/rewardDetailed.vue
+4
-4
teacherLesson.vue
src/pages/course/teacherLesson.vue
+24
-9
japaneseTrain.vue
src/pages/sale/japaneseTrain.vue
+4
-4
No files found.
src/api/question/question.js
View file @
9fe07281
...
...
@@ -134,3 +134,13 @@ export function saveQuestionBeatch(data) {
data
})
}
/**
* 获取问题大类
*/
export
function
queryQuestionCategory
()
{
return
request
({
url
:
'/Question/GetQuestionCategory'
,
method
:
'post'
,
})
}
src/components/question/question-form.vue
View file @
9fe07281
...
...
@@ -189,6 +189,16 @@
</
template
>
</select>
</div>
<div
class=
"col-12"
>
<br
/>
<span
class=
"difficulty_Degree"
>
所属大类
</span>
<select
v-model=
"objOption.Category"
class=
"selectBox blue-border"
>
<
template
v-for=
"(cItem,cIndex) in questionCategoryList"
>
<option
:key=
"cIndex"
:label=
"cItem.Name"
:value=
"cItem.Id"
>
</option>
</
template
>
</select>
</div>
<div
class=
"col-12"
style=
"margin-top:16px;"
>
<span
class=
"difficulty_Degree"
>
知识点:
</span>
<a
class=
"addKnowledge"
@
click=
"isShowPoint=true"
>
...
...
@@ -220,7 +230,8 @@
queryQuestionTypeList
,
queryDifficultyType
,
saveQuestion
,
queryQuestionInfo
queryQuestionInfo
,
queryQuestionCategory
}
from
'../../api/question/question'
import
{
CreateQuestion
,
//生成问题
...
...
@@ -286,7 +297,7 @@
SortNum
:
0
,
//排序
Answer
:
""
,
//问题JSON
IsMutex
:
0
,
//填空题(答案顺序打乱也判正确)
Category
:
0
,
//大类
Category
:
0
,
//大类
},
AnswerList
:
[],
optionTitle
:
""
,
...
...
@@ -297,6 +308,7 @@
saveCourseLoading
:
false
,
isShowPoint
:
false
,
//是否显示知识点弹窗
choosePointArray
:
[],
//知识点列表
questionCategoryList
:
[],
//问题大类
}
},
computed
:
{
...
...
@@ -319,11 +331,18 @@
created
()
{
this
.
getQuestionType
();
this
.
getDifficultyType
();
this
.
getQuestionCategory
();
},
mounted
()
{
this
.
initObj
()
},
methods
:
{
//获取问题大类
getQuestionCategory
()
{
queryQuestionCategory
().
then
(
res
=>
{
this
.
questionCategoryList
=
res
.
Data
;
})
},
//移除知识点
removePointTag
(
index
)
{
this
.
choosePointArray
.
splice
(
index
,
1
);
...
...
@@ -400,7 +419,7 @@
this
.
objOption
.
IsMutex
=
res
.
Data
.
IsMutex
;
this
.
questionObj
.
Key
=
res
.
Data
.
QuestionTypeKey
;
this
.
questionObj
.
QId
=
res
.
Data
.
QuestionTypeId
;
this
.
objOption
.
Category
=
res
.
Data
.
Category
;
this
.
objOption
.
Category
=
res
.
Data
.
Category
;
if
(
res
.
Data
.
QuestionContentObj
)
{
this
.
AnswerList
=
res
.
Data
.
QuestionContentObj
;
this
.
objOption
.
QuestionContent
=
JSON
.
stringify
(
res
.
Data
.
QuestionContentObj
);
...
...
@@ -425,7 +444,7 @@
this
.
objOption
.
SortNum
=
0
;
this
.
objOption
.
Answer
=
''
;
this
.
objOption
.
IsMutex
=
0
;
this
.
objOption
.
Category
=
0
;
this
.
objOption
.
Category
=
0
;
}
},
//关闭弹窗
...
...
src/components/question/question-upload.vue
View file @
9fe07281
...
...
@@ -2,30 +2,21 @@
</
style
>
<
template
>
<q-dialog
v-model=
"persistent"
persistent
content-class=
"bg-grey-1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"width: 1400px;min-height:100px;"
>
<q-dialog
style=
"min-width:800px;max-width:1000px;min-height:100px;"
v-model=
"persistent"
persistent
content-class=
"bg-grey-1"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-card
style=
"min-width:800px;max-width:1000px;min-height:100px;"
>
<q-card-section>
<div
class=
"text-h6"
>
{{
importType
==
1
?
'模板导入(EXCEL)'
:
'智能导入(WORD)'
}}
<el-upload
class=
"upload-demo"
action=
""
style=
"display:inline-block;margin-left:80px;"
:accept=
"accept"
:show-file-list=
"false"
:http-request=
"UploadAttachment"
>
<el-upload
class=
"upload-demo"
action=
""
style=
"display:inline-block;margin-left:80px;"
:accept=
"accept"
:
show-file-list=
"false"
:
http-request=
"UploadAttachment"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
<a
style=
"color:blue;font-size:14px;cursor:pointer;float:right;margin-right:5px;text-decoration:none;"
:href=
"downLoadUrl"
:download=
"downLoadName"
>
下载模板文件
</a>
<a
style=
"color:blue;font-size:14px;cursor:pointer;float:right;margin-right:5px;text-decoration:none;"
:
href=
"downLoadUrl"
:
download=
"downLoadName"
>
下载模板文件
</a>
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<table>
<!--
<thead>
<tr>
<td>
<el-upload
class=
"upload-demo"
action=
""
:accept=
"accept"
:show-file-list=
"false"
:http-request=
"UploadAttachment"
>
<el-button
size=
"small"
type=
"primary"
>
点击上传
</el-button>
</el-upload>
</td>
</tr>
</thead>
-->
<tr>
<td>
<template
v-for=
"(item,index) in questionData"
>
...
...
@@ -37,12 +28,11 @@
<
template
v-else
>
<span
v-html=
"item.Title"
></span>
</
template
>
<a
style=
"cursor:pointer;color:red;"
@
click=
"DeleteQuestion(index)"
>
删除
</a>
</span><br
/>
<!--选择题-->
<
template
v-if=
"item.QuestionTypeKey=='single'||item.QuestionTypeKey=='multiple'||item.QuestionTypeKey=='single-number'"
<
template
v-if=
"item.QuestionTypeKey=='single'||item.QuestionTypeKey=='multiple'||item.QuestionTypeKey=='single-number'"
v-for=
"subItem in item.QuestionContentObj"
>
<span>
{{
subItem
.
Name
}}
.
{{
subItem
.
Content
}}
</span><br
/>
</
template
>
...
...
@@ -57,7 +47,8 @@
<!--阅读理解-->
<
template
v-if=
"item.QuestionTypeKey=='reading-comprehensio'"
>
<template
v-for=
"(subItem,subIndex) in item.QuestionContentObj"
>
<div>
<br
/>
<span>
<template>
<span>
第
{{
subIndex
+
1
}}
小题
{{
subItem
.
SubTitle
}}
</span><br
/>
</
template
>
...
...
@@ -65,10 +56,11 @@
v-for=
"childItem in subItem.SubAnwser"
>
<span>
{{
childItem
.
Name
}}
.
{{
childItem
.
Content
}}
</span><br
/>
</
template
>
</
div
>
</
span
>
<
template
v-if=
"subItem.QuestionKey=='single'||subItem.QuestionKey=='multiple'"
>
<template
v-for=
"childItem in subItem.SubAnwser"
>
<span
v-if=
"childItem.IsAnswer"
>
答案:
{{
childItem
.
Name
}}
</span><br
/>
<span
v-if=
"childItem.IsAnswer"
>
答案:
{{
childItem
.
Name
}}
</span>
<br
v-if=
"childItem.IsAnswer"
/>
</
template
>
</template>
</template>
...
...
@@ -95,7 +87,6 @@
</q-card-actions>
</q-card>
</q-dialog>
</template>
<
script
>
...
...
@@ -213,7 +204,18 @@
},
//删除问题
DeleteQuestion
(
index
)
{
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否要删除此问题?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
this
.
questionData
.
splice
(
index
,
1
);
}).
onCancel
(()
=>
{
});
},
//上传文件
UploadAttachment
(
files
)
{
...
...
@@ -245,22 +247,28 @@
this
.
questionData
.
forEach
(
item
=>
{
item
.
CourseId
=
this
.
CourseId
})
}
this
.
saveCourseLoading
=
true
;
saveQuestionBeatch
(
this
.
questionData
).
then
(
res
=>
{
this
.
saveCourseLoading
=
false
this
.
saveCourseLoading
=
true
;
saveQuestionBeatch
(
this
.
questionData
).
then
(
res
=>
{
this
.
saveCourseLoading
=
false
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
$emit
(
"success"
)
this
.
closeCourseForm
()
})
}
else
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
type
:
'negative'
,
position
:
"top"
,
message
:
`请先上传文件!`
})
this
.
$emit
(
"success"
)
this
.
closeCourseForm
()
})
}
},
}
},
}
}
</
script
>
src/components/sale/orderlist.vue
View file @
9fe07281
...
...
@@ -43,12 +43,12 @@
</td>
<td
style=
"border:none"
>
{{item.GuestNum}}人
</td>
<td
style=
"border:none"
>
{{item.Class_Price.toFixed(2)}}
</td>
<td
:style=
"{color:item.Class_Price!=item.Unit_Price?'
#f5576c
':'','border':'none'}"
>
<td
:style=
"{color:item.Class_Price!=item.Unit_Price?'
var(--q-color-negative)
':'','border':'none'}"
>
{{item.Unit_Price.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.PreferPrice.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.Income.toFixed(2)}}
</td>
<td
style=
"color:
#f5576c
;border:none"
>
{{item.DiscountMoney.toFixed(2)}}
</td>
<td
style=
"color:
var(--q-color-negative)
;border:none"
>
{{item.DiscountMoney.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.Refund.toFixed(2)}}
</td>
<td
style=
"color:#2961FE;border:none"
>
{{item.DueInMoney.toFixed(2)}}
</td>
<td
style=
"border:none"
>
...
...
@@ -137,7 +137,7 @@
<div
class=
"row"
v-if=
" item.GuestList.length>0&&getTkshow(item.GuestList)"
>
退课名单:
<span
v-for=
"(x,j) in item.GuestList"
:index=
"j"
v-if=
"x.GuestState==2"
style=
"color:
#f5576c
;margin-right: 5px"
>
{{x.GuestName}}
</span>
style=
"color:
var(--q-color-negative)
;margin-right: 5px"
>
{{x.GuestName}}
</span>
</div>
<span
v-if=
"item.GuestList.length==0"
>
暂无
</span>
</td>
...
...
@@ -299,12 +299,12 @@
</td>
<td
style=
"border:none"
>
{{item.GuestNum}}人
</td>
<td
style=
"border:none"
>
{{item.Class_Price.toFixed(2)}}
</td>
<td
:style=
"{color:item.Class_Price!=item.Unit_Price?'
#f5576c
':'','border':'none'}"
>
<td
:style=
"{color:item.Class_Price!=item.Unit_Price?'
var(--q-color-negative)
':'','border':'none'}"
>
{{item.Unit_Price.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.PreferPrice.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.Income.toFixed(2)}}
</td>
<td
style=
"color:
#f5576c
;border:none"
>
{{item.DiscountMoney.toFixed(2)}}
</td>
<td
style=
"color:
var(--q-color-negative)
;border:none"
>
{{item.DiscountMoney.toFixed(2)}}
</td>
<td
style=
"border:none"
>
{{item.Refund.toFixed(2)}}
</td>
<td
style=
"color:#2961FE;border:none"
>
{{item.DueInMoney.toFixed(2)}}
</td>
<td
style=
"border:none"
>
...
...
@@ -336,7 +336,7 @@
<div
class=
"row"
v-if=
" item.GuestList.length>0&&getTkshow(item.GuestList)"
>
退课名单:
<span
v-for=
"(x,j) in item.GuestList"
:index=
"j"
v-if=
"x.GuestState==2"
style=
"color:
#f5576c
;margin-right: 5px"
>
{{x.GuestName}}
</span>
style=
"color:
var(--q-color-negative)
;margin-right: 5px"
>
{{x.GuestName}}
</span>
</div>
<span
v-if=
"item.GuestList.length==0"
>
暂无
</span>
</td>
...
...
@@ -724,7 +724,7 @@
let
that
=
this
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'<span style="color:
#f5576c
">是否取消此订单</span>'
,
message
:
'<span style="color:
var(--q-color-negative)
">是否取消此订单</span>'
,
cancel
:
true
,
persistent
:
true
,
html
:
true
,
...
...
src/pages/course/achievements.vue
View file @
9fe07281
...
...
@@ -649,7 +649,7 @@
}
.achievements
li
.d3
.d3-s
{
color
:
#f5576c
;
color
:
var
(
--q-color-negative
)
;
font-weight
:
bold
;
font-family
:
perfectFont
}
...
...
src/pages/course/classHourReward.vue
View file @
9fe07281
...
...
@@ -67,7 +67,7 @@
</
template
>
<
template
v-slot:body-cell-Money=
"props"
>
<q-td
:props=
"props"
>
<span
style=
"color:
#f5576c
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
<span
style=
"color:
var(--q-color-negative)
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-FrIdList=
"props"
>
...
...
src/pages/course/lessonPreparation.vue
View file @
9fe07281
...
...
@@ -306,6 +306,6 @@
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
;
@import
url('~assets/css/table.sass')
</
style
>
src/pages/course/prepareclassDetails.vue
View file @
9fe07281
...
...
@@ -149,7 +149,7 @@
<div
class=
"text12-n width70"
>
{{
item
.
CourseName
}}
:
</div>
<div
class=
"text12-o"
style=
"flex:1"
>
<div
class=
"column"
v-for=
"(x,y) in item.LessonPlanDetailsList"
:key=
"y"
>
<div
class=
"text14-l"
>
{{
x
.
Duration
}}
分
</div>
<div
class=
"text14-l"
>
{{
x
.
Duration
}}
分
钟-
{{
x
.
DurationEndTime
}}
</div>
<div
class=
"text12-o"
>
{{
x
.
ProjectContent
}}
</div>
<div
style=
"width: 100%;background: #F0F5FB;border-radius: 5px;margin: 10px 0"
>
...
...
src/pages/course/rewardDetailed.vue
View file @
9fe07281
...
...
@@ -24,12 +24,12 @@
</
template
>
<
template
v-slot:body-cell-UnitPrice=
"props"
>
<q-td
:props=
"props"
color=
"negative"
>
<span
style=
"color:
#f5576c
"
>
¥
{{
props
.
row
.
UnitPrice
.
toFixed
(
2
)
}}
</span>
<span
style=
"color:
var(--q-color-negative)
"
>
¥
{{
props
.
row
.
UnitPrice
.
toFixed
(
2
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-Money=
"props"
>
<q-td
:props=
"props"
color=
"negative"
>
<span
style=
"color:
#f5576c
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
<span
style=
"color:
var(--q-color-negative)
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-Type=
"props"
>
...
...
@@ -48,12 +48,12 @@
</
template
>
<
template
v-slot:body-cell-UnitPrice=
"props"
>
<q-td
:props=
"props"
color=
"negative"
>
<span
style=
"color:
#f5576c
"
>
¥
{{
props
.
row
.
UnitPrice
.
toFixed
(
2
)
}}
</span>
<span
style=
"color:
var(--q-color-negative)
"
>
¥
{{
props
.
row
.
UnitPrice
.
toFixed
(
2
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-Money=
"props"
>
<q-td
:props=
"props"
color=
"negative"
>
<span
style=
"color:
#f5576c
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
<span
style=
"color:
var(--q-color-negative)
"
>
¥
{{
props
.
row
.
Money
.
toFixed
(
2
)
}}
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-Type=
"props"
>
...
...
src/pages/course/teacherLesson.vue
View file @
9fe07281
...
...
@@ -184,9 +184,18 @@
background-color
:
#2961FE
!important
;
color
:
#fff
!important
;
}
.checkedPlan
.beikeStatus
{
background-color
:
#fff
;
color
:
#2961FE
!important
;
/*.checkedPlan .beikeStatus{*/
/* background-color: #fff;*/
/* color:#2961FE!important;*/
/*}*/
.Cal_Content
.beike1
{
background
:
var
(
--q-color-negative
);
}
.Cal_Content
.beike2
{
background
:
var
(
--q-color-warning
);
}
.Cal_Content
.beike3
{
background
:
var
(
--q-color-dark
);
}
</
style
>
<
template
>
...
...
@@ -201,20 +210,26 @@
<div
class=
"Cal_List"
>
<div
class=
"Cal_Qiehuan"
@
click=
"getBeforeMonth()"
>
<div
class=
"Cal_Icon"
>
<
<
</div>
<div>
上个月
<
i
class=
"el-icon-arrow-left"
></i>
</div>
<div>
上个月
</div>
</div>
<div
class=
"Cal_Content"
>
<div
class=
"Cal_Inner"
v-for=
"(item,index) in dataNum"
:class=
"
{'checkedPlan':ckedIndex==item}" @click="getItem(item)">
{{
item
}}
<div
class=
"beikeStatus"
>
<span>
{{
getLessonStatus
(
item
)
}}
</span>
</div>
<div
class=
"beikeStatus beike1"
v-if=
"getLessonStatus(item)=='未备课'"
>
<span>
{{
getLessonStatus
(
item
)
}}
</span>
</div>
<div
class=
"beikeStatus beike2"
v-if=
"getLessonStatus(item)=='部分'"
>
<span>
{{
getLessonStatus
(
item
)
}}
</span>
</div>
<div
class=
"beikeStatus beike3"
v-if=
"getLessonStatus(item)=='已备课'"
>
<span>
{{
getLessonStatus
(
item
)
}}
</span>
</div>
</div>
</div>
<div
class=
"Cal_Qiehuan"
@
click=
"getNextMonth()"
>
<div
class=
"Cal_Icon"
>
>
>
</div>
<i
class=
"el-icon-arrow-right"
></i
></div>
<div>
下个月
</div>
</div>
...
...
@@ -400,6 +415,6 @@
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
;
@import
url('~assets/css/table.sass')
</
style
>
src/pages/sale/japaneseTrain.vue
View file @
9fe07281
...
...
@@ -139,7 +139,7 @@
<div
style=
"margin: 0"
>
价格信息
</div>
<div><span
class=
"d2-n"
>
原价
</span><span>
{{item.OriginalPrice.toFixed(2)}}
</span></div>
<div><span
class=
"d2-n"
>
售价
</span><span
style=
"color:
#f5576c
;font-weight: bold"
>
{{item.SellPrice.toFixed(2)}}
</span></div>
style=
"color:
var(--q-color-negative)
;font-weight: bold"
>
{{item.SellPrice.toFixed(2)}}
</span></div>
<div
v-if=
"item.IsStepPrice==1 && item.ClassStepPriceList.length>0"
style=
"cursor: pointer"
>
更多优惠价格
<span
class=
"iconfont icon-xiangxia"
style=
"color: #2961FE;font-size: 10px"
></span>
<q-popup-proxy>
...
...
@@ -159,7 +159,7 @@
<div
style=
"margin: 0"
>
名额信息
</div>
<div><span
class=
"d2-n"
>
计划招生人数
</span><span>
{{item.ClassPersion}}人
</span></div>
<div><span
class=
"d2-n"
>
剩余招生名额
</span><span
style=
"color:
#f5576c
;font-weight: bold"
>
{{item.SurplusNum}}人
</span></div>
style=
"color:
var(--q-color-negative)
;font-weight: bold"
>
{{item.SurplusNum}}人
</span></div>
</div>
<div
class=
"d7"
>
<q-btn
color=
"primary"
label=
"立即下单"
v-if=
"item.IsCanApply==1"
@
click=
"placeAnorder(item)"
/>
...
...
@@ -172,7 +172,7 @@
</div>
</div>
<div
class=
"d6 row"
>
<p
style=
"color:
#f5576c
;font-weight: bold"
><span
style=
"color:#2D2D2D;"
>
OP备注:
</span>
{{item.OutRemark}}
</p>
<p
style=
"color:
var(--q-color-negative)
;font-weight: bold"
><span
style=
"color:#2D2D2D;"
>
OP备注:
</span>
{{item.OutRemark}}
</p>
<div
class=
"progress"
>
<q-linear-progress
size=
"5px"
color=
"#3FC4FF"
:value=
"(item.OrderStudentCount/item.ClassPersion)"
rounded
/>
...
...
@@ -613,7 +613,7 @@
}
.japaneseTrain
li
.d3
.d3-s
{
color
:
#f5576c
;
color
:
var
(
--q-color-negative
)
;
font-weight
:
bold
}
...
...
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