Commit 67c9c961 authored by 罗超's avatar 罗超

2

parent c84feae8
...@@ -2,155 +2,57 @@ ...@@ -2,155 +2,57 @@
<div class="page-body"> <div class="page-body">
<div class="col row wrap q-mr-lg q-col-gutter-md searchBox"> <div class="col row wrap q-mr-lg q-col-gutter-md searchBox">
<div class="col-2"> <div class="col-2">
<q-select <q-select filled dense v-model="msg.TeacherId" option-value="TId" option-label="TeacherName"
filled :options="TeacherList" emit-value map-options label="老师" @input="getData" />
dense
v-model="msg.TeacherId"
option-value="TId"
option-label="TeacherName"
:options="TeacherList"
emit-value
map-options
label="老师"
@input="getData"
/>
</div> </div>
<div class="col-2"> <div class="col-2">
<q-select <q-select filled dense v-model="msg.ClassRoomId" option-value="RoomId" option-label="RoomName"
filled :options="classroomList" emit-value map-options label="教室" @input="getData" />
dense
v-model="msg.ClassRoomId"
option-value="RoomId"
option-label="RoomName"
:options="classroomList"
emit-value
map-options
label="教室"
@input="getData"
/>
</div> </div>
<div class="col-2"> <div class="col-2">
<q-select <q-select filled dense v-model="msg.ClassType" option-value="Id" option-label="label" :options="ClassTypeList"
filled emit-value map-options label="课程类型" @input="getData" />
dense
v-model="msg.ClassType"
option-value="Id"
option-label="label"
:options="ClassTypeList"
emit-value
map-options
label="课程类型"
@input="getData"
/>
</div> </div>
<div class="col-2"> <div class="col-2">
<q-select <q-select filled dense v-model="msg.AppointState" option-value="Id" option-label="label"
filled :options="AppointStateList" emit-value map-options label="约课状态" @input="getData" />
dense
v-model="msg.AppointState"
option-value="Id"
option-label="label"
:options="AppointStateList"
emit-value
map-options
label="约课状态"
@input="getData"
/>
</div> </div>
<div class="col-2"> <div class="col-2">
<q-field filled dense label="选择日期" stack-label> <q-field filled dense label="选择日期" stack-label>
<template v-slot:control> <template v-slot:control>
<el-date-picker <el-date-picker v-model="selectedDate" type="date" size="mini" placeholder="开始日期" format="yyyy-MM-dd"
v-model="selectedDate" value-format="yyyy-MM-dd" :clearable="false" @change="changeDate">
type="date"
size="mini"
placeholder="开始日期"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:clearable="false"
@change="changeDate"
>
</el-date-picker> </el-date-picker>
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="col-2"> <div class="col-2">
<q-select <q-select filled dense v-model="viewType" option-value="value" option-label="name" :options="viewTypeList"
filled emit-value map-options label="显示模式" @input="changeDate" />
dense
v-model="viewType"
option-value="value"
option-label="name"
:options="viewTypeList"
emit-value
map-options
label="显示模式"
@input="changeDate"
/>
</div> </div>
</div> </div>
<div class="row justify-center items-center q-mt-sm"> <div class="row justify-center items-center q-mt-sm">
<q-btn <q-btn dense text-color="primary" flat unelevated :label="viewType == 'day' ? '上一天' : '上一周'"
dense @click="calendarPrev" />
text-color="primary"
flat
unelevated
:label="viewType == 'day' ? '上一天' : '上一周'"
@click="calendarPrev"
/>
<q-separator vertical /> <q-separator vertical />
<q-btn <q-btn dense text-color="primary" flat unelevated :label="viewType == 'day' ? '下一天' : '下一周'"
dense @click="calendarNext" />
text-color="primary"
flat
unelevated
:label="viewType == 'day' ? '下一天' : '下一周'"
@click="calendarNext"
/>
</div> </div>
<div class="viewbox"> <div class="viewbox">
<q-calendar <q-calendar v-model="selectedDate" :view="viewType" ref="calendar" locale="zh-CN" class="calendar-container "
v-model="selectedDate" bordered no-scroll hour24-format :interval-start="8" :interval-count="15" :interval-height="60" animated
:view="viewType" transition-prev="slide-right" transition-next="slide-left" :weekdays="[1, 2, 3, 4, 5, 6, 0]"
ref="calendar" @input="onModelChanged" @click:date2="onClickDate2" @click:day:header2="onClickDayHeader2"
locale="zh-CN" @click:interval2="onClickInterval2" @click:time2="onClickTime2"
class="calendar-container " @click:interval:header2="onClickIntervalHeader2">
bordered
no-scroll
hour24-format
:interval-start="8"
:interval-count="15"
:interval-height="60"
animated
transition-prev="slide-right"
transition-next="slide-left"
:weekdays="[1, 2, 3, 4, 5, 6, 0]"
@input="onModelChanged"
@click:date2="onClickDate2"
@click:day:header2="onClickDayHeader2"
@click:interval2="onClickInterval2"
@click:time2="onClickTime2"
@click:interval:header2="onClickIntervalHeader2"
>
<template #day-header="{ timestamp }"> <template #day-header="{ timestamp }">
<div v-if="viewType == 'week'"> <div v-if="viewType == 'week'">
<q-badge <q-badge :color="item.bg" :label="item.TeacherName" v-for="(item, index) in legendList" :key="index"
:color="item.bg" class="q-mr-xs" />
:label="item.TeacherName"
v-for="(item, index) in legendList"
:key="index"
class="q-mr-xs"
/>
</div> </div>
<div class="flex no-wrap" v-if="viewType == 'day'"> <div class="flex no-wrap" v-if="viewType == 'day'">
<q-badge <q-badge :color="item.bg" :label="item.TeacherName" v-for="(item, index) in legendList" :key="index"
:color="item.bg" style="height:20px" :style="{ width: `${(1 / legendList.length) * 100}%` }" />
:label="item.TeacherName"
v-for="(item, index) in legendList"
:key="index"
style="height:20px"
:style="{ width: `${(1 / legendList.length) * 100}%` }"
/>
</div> </div>
</template> </template>
...@@ -158,13 +60,10 @@ ...@@ -158,13 +60,10 @@
<div v-for="(item, index) in events" :key="index"> <div v-for="(item, index) in events" :key="index">
<div v-if="item.ClassDate == timestamp.date"> <div v-if="item.ClassDate == timestamp.date">
<div v-for="(_item, _index) in item.RList" :key="_index"> <div v-for="(_item, _index) in item.RList" :key="_index">
<div <div v-for="(__item, __index) in _item.SubList" :key="__index"
v-for="(__item, __index) in _item.SubList"
:key="__index"
class="my-event justify-center ellipsis courseItem" class="my-event justify-center ellipsis courseItem"
:class="badgeClasses(__item, 'body', _item.TeacherId)" :class="badgeClasses(__item, 'body', _item.TeacherId)"
style="overflow:hidden;box-shadow: 0px 10px 10px 0 rgba(36, 36, 36, 0.2);" style="overflow:hidden;box-shadow: 0px 10px 10px 0 rgba(36, 36, 36, 0.2);" :style="
:style="
badgeStyles( badgeStyles(
__item, __item,
'body', 'body',
...@@ -173,86 +72,48 @@ ...@@ -173,86 +72,48 @@
_index, _index,
item.RList.length item.RList.length
) )
" " @click.stop="
@click.stop="
showDetail(__item, item.ClassDate, _item.TeacherId) showDetail(__item, item.ClassDate, _item.TeacherId)
" ">
>
<el-popover placement="top-start" width="200" trigger="hover"> <el-popover placement="top-start" width="200" trigger="hover">
<div slot="reference" style="height:80vh;position:relative"> <div slot="reference" style="height:80vh;position:relative">
<q-badge <q-badge rounded color="red" label="未成班" style="position:absolute;top:0;right:0" v-if="
rounded
color="red"
label="未成班"
style="position:absolute;top:0;right:0"
v-if="
viewType == 'day' && viewType == 'day' &&
isShowTag( isShowTag(__item.GuestList, __item.ScrollMinNum)
__item.GuestList, " />
__item.ScrollMinNum <q-icon name="lock_open" color="dark" style="position:absolute;top:0;right:0" v-if="
)
"
/>
<q-icon
name="lock_open"
color="dark"
style="position:absolute;top:0;right:0"
v-if="
viewType == 'week' && viewType == 'week' &&
isShowTag( isShowTag(__item.GuestList, __item.ScrollMinNum)
__item.GuestList, " />
__item.ScrollMinNum <div v-if="viewType == 'day' || item.RList.length == 1" class="q-pa-xs">
)
"
/>
<div
v-if="viewType == 'day' || item.RList.length == 1"
class="q-pa-xs"
>
<!-- <div class="flex"> <!-- <div class="flex">
<span class="detailLabel">老师:</span <span class="detailLabel">老师:</span
><span>{{ _item.TeacherName }}</span> ><span>{{ _item.TeacherName }}</span>
</div> --> </div> -->
<div class="flex"> <div class="flex">
<span class="detailLabel">教室:</span <span class="detailLabel">教室:</span>{{ __item.RoomName }}
>{{ __item.RoomName }}
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType !== 2"> <div class="flex no-wrap" v-if="__item.ClassType !== 2">
<span class="detailLabel">进度:</span <span class="detailLabel">进度:</span><span>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span>
><span
>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span
>
</div> </div>
<div class="row flex no-wrap"> <div class="row flex no-wrap">
<span class="detailLabel">课程:</span> <span class="detailLabel">课程:</span>
<div class="detailValue">{{ __item.CourseName }}</div> <div class="detailValue">{{ __item.CourseName }}</div>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel">班级:</span <span class="detailLabel">班级:</span><span>{{ __item.ClassName }}</span>
><span>{{ __item.ClassName }}</span>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel">时间:</span <span class="detailLabel">时间:</span><span>{{ __item.StartTime }}-{{ __item.EndTime }}</span>
><span
>{{ __item.StartTime }}-{{ __item.EndTime }}</span
>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel"> <span class="detailLabel">
类型:<span></span 类型:<span></span><span v-if="__item.ClassType == 1">跟班</span><span
><span v-if="__item.ClassType == 1">跟班</span v-if="__item.ClassType == 2">试听课</span><span v-if="__item.ClassType == 3">约课</span></span>
><span v-if="__item.ClassType == 2">试听课</span
><span v-if="__item.ClassType == 3"
>约课</span
></span
>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType !== 2"> <div class="flex no-wrap" v-if="__item.ClassType !== 2">
<span class="detailLabel">进度:</span <span class="detailLabel">进度:</span><span>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span>
><span
>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span
>
<span class="q-ml-sm">{{ <span class="q-ml-sm">{{
__item.CourseGradeName __item.CourseGradeName
}}</span> }}</span>
...@@ -260,51 +121,35 @@ ...@@ -260,51 +121,35 @@
<div class="flex no-wrap" v-if="__item.ClassType !== 2"> <div class="flex no-wrap" v-if="__item.ClassType !== 2">
<span class="detailLabel">学员:</span> <span class="detailLabel">学员:</span>
<div> <div>
<span <span v-for="(x, y) in __item.GuestList" :key="y"
v-for="(x, y) in __item.GuestList" style="white-space:nowrap;display:inline-block" class="q-mr-xs">
:key="y"
style="white-space:nowrap;"
>
{{ x.GuestName }} {{ x.GuestName }}
<span v-if="x.AppointType == 2">(补)</span> <span v-if="x.AppointType == 2">(补)</span>
<span v-if="x.AppointType == 3">(重)</span>, <span v-if="x.AppointType == 3">(重)</span>
</span> </span>
</div> </div>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType == 3"> <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="detailLabel"> <span class="detailLabel">状态:</span>
状态:<span <div>
v-if="__item.AppointState == 1" <span v-if="__item.AppointState == 1" style="color:#ef5350">待确认</span>
style="color:#ef5350" <span v-if="__item.AppointState == 2" style="color:#21ba45">已确认</span>
>待确认</span <q-btn color="accent" size="xs" label="确认" v-if="
><span
v-if="__item.AppointState == 2"
style="color:#21ba45"
>已确认</span
>
<q-btn
color="accent"
size="xs"
label="确认"
v-if="
__item.AppointState == 1 && __item.AppointState == 1 &&
__item.GuestList.length >= __item.GuestList.length >=
__item.ScrollMinNum && __item.ScrollMinNum &&
auth.IsEdit auth.IsEdit
" " @click="
@click="
confirmSub( confirmSub(
item.ClassDate, item.ClassDate,
_item.TeacherId, _item.TeacherId,
__item __item
) )
" " />
/> </div>
</span>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType == 3"> <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="">最小成班人数:</span <span class="">最小成班人数:</span><span>{{ __item.ScrollMinNum }}</span>
><span>{{ __item.ScrollMinNum }}</span>
</div> </div>
<!-- <div class="flex no-wrap" v-if="__item.ClassType == 3"> <!-- <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="">最大成班人数:</span <span class="">最大成班人数:</span
...@@ -313,108 +158,69 @@ ...@@ -313,108 +158,69 @@
</div> </div>
</div> </div>
<div style="position:relative"> <div style="position:relative">
<q-badge <q-badge rounded color="red" label="未成班" style="position:absolute;top:0;right:0"
rounded v-if="isShowTag(__item.GuestList, __item.ScrollMinNum)" />
color="red"
label="未成班"
style="position:absolute;top:0;right:0"
v-if="
isShowTag(
__item.GuestList,
__item.ScrollMinNum
)
"
/>
<div class="flex"> <div class="flex">
<span class="detailLabel">老师:</span <span class="detailLabel">老师:</span><span>{{ _item.TeacherName }}</span>
><span>{{ _item.TeacherName }}</span>
</div> </div>
<div class="flex"> <div class="flex">
<span class="detailLabel">教室:</span <span class="detailLabel">教室:</span>{{ __item.RoomName }}
>{{ __item.RoomName }}
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel">课程:</span <span class="detailLabel">课程:</span><span>{{ __item.CourseName }}</span>
><span>{{ __item.CourseName }}</span>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel">班级:</span <span class="detailLabel">班级:</span><span>{{ __item.ClassName }}</span>
><span>{{ __item.ClassName }}</span>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel">时间:</span <span class="detailLabel">时间:</span><span>{{ __item.StartTime }}-{{ __item.EndTime }}</span>
><span
>{{ __item.StartTime }}-{{ __item.EndTime }}</span
>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType !== 2"> <div class="flex no-wrap" v-if="__item.ClassType !== 2">
<span class="detailLabel">进度:</span <span class="detailLabel">进度:</span><span>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span>
><span
>{{ __item.Ranks }}/{{ __item.TotalPlanNum }}</span
>
<span class="q-ml-sm">{{ <span class="q-ml-sm">{{
__item.CourseGradeName __item.CourseGradeName
}}</span> }}</span>
</div> </div>
<div class="flex no-wrap"> <div class="flex no-wrap">
<span class="detailLabel"> 类型:</span <span class="detailLabel"> 类型:</span><span v-if="__item.ClassType == 1">跟班</span><span
><span v-if="__item.ClassType == 1">跟班</span v-if="__item.ClassType == 2">试听课</span><span v-if="__item.ClassType == 3">约课</span>
><span v-if="__item.ClassType == 2">试听课</span
><span v-if="__item.ClassType == 3">约课</span>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType !== 2"> <div class="flex no-wrap" v-if="__item.ClassType !== 2">
<span class="detailLabel">学员:</span> <span class="detailLabel">学员:</span>
<div> <div>
<span <div v-for="(x, y) in __item.GuestList" :key="y"
v-for="(x, y) in __item.GuestList" style="white-space:nowrap;display:inline-block" class="q-mr-sm">
:key="y"
style="white-space:nowrap"
>
{{ x.GuestName }} {{ x.GuestName }}
<span v-if="x.AppointType == 2">(补)</span> <span v-if="x.AppointType == 2">(补)</span>
<span v-if="x.AppointType == 3">(重)</span>, <span v-if="x.AppointType == 3">(重)</span>
</span> </div>
</div> </div>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType == 3"> <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="detailLabel"> <span class="detailLabel">状态:</span>
状态:<span <div>
v-if="__item.AppointState == 1" <span v-if="__item.AppointState == 1" style="color:#ef5350">待确认</span>
style="color:#ef5350" <span v-if="__item.AppointState == 2" style="color:#21ba45">已确认</span>
>待确认</span <q-btn color="accent" size="xs" label="确认" v-if="
><span
v-if="__item.AppointState == 2"
style="color:#21ba45"
>已确认</span
>
<q-btn
color="accent"
size="xs"
label="确认"
v-if="
__item.AppointState == 1 && __item.AppointState == 1 &&
__item.GuestList.length >= __item.GuestList.length >=
__item.ScrollMinNum && __item.ScrollMinNum &&
auth.IsEdit auth.IsEdit
" " @click="
@click="
confirmSub( confirmSub(
item.ClassDate, item.ClassDate,
_item.TeacherId, _item.TeacherId,
__item __item
) )
" " />
/> </div>
</span>
</div> </div>
<div class="flex no-wrap" v-if="__item.ClassType == 3"> <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="">最小成班人数:</span <span class="">最小成班人数:</span><span>{{ __item.ScrollMinNum }}</span>
><span>{{ __item.ScrollMinNum }}</span>
</div> </div>
<!-- <div class="flex no-wrap" v-if="__item.ClassType == 3"> <!-- <div class="flex no-wrap" v-if="__item.ClassType == 3">
<span class="">最大成班人数:</span <span class="">最大成班人数:</span><span>{{ __item.ScrollMaxNum }}</span>
><span>{{ __item.ScrollMaxNum }}</span>
</div> --> </div> -->
</div> </div>
</el-popover> </el-popover>
...@@ -425,33 +231,28 @@ ...@@ -425,33 +231,28 @@
</template> </template>
</q-calendar> </q-calendar>
</div> </div>
<SubscribeForm <SubscribeForm v-model="showForm" :editType="editType" :dateObj="dateObj" :saveObj="saveObj" :auth="auth"
v-model="showForm" :teacherList="TeacherList2" @success="successHandle" />
:editType="editType"
:dateObj="dateObj"
:saveObj="saveObj"
:auth="auth"
:teacherList="TeacherList2"
@success="successHandle"
/>
</div> </div>
</template> </template>
<script> <script>
import { import {
GetAppointmentPlanStat, GetAppointmentPlanStat,
SetSureAppointment, SetSureAppointment,
GetAppointmentConfig GetAppointmentConfig
} from "../../api/studyabroad/subscribe.js"; } from "../../api/studyabroad/subscribe.js";
import { date } from "quasar"; import {
import { date
} from "quasar";
import {
getTeacherDropDownList, getTeacherDropDownList,
queryClassRoomList queryClassRoomList
} from "../../api/school/index"; } from "../../api/school/index";
import SubscribeForm from "../../components/stuMan/subscribe/subscribeForm"; import SubscribeForm from "../../components/stuMan/subscribe/subscribeForm";
import QCalendar from "@quasar/quasar-ui-qcalendar"; import QCalendar from "@quasar/quasar-ui-qcalendar";
export default { export default {
data() { data() {
return { return {
config: { config: {
...@@ -468,8 +269,7 @@ export default { ...@@ -468,8 +269,7 @@ export default {
} }
}, },
viewType: "week", viewType: "week",
viewTypeList: [ viewTypeList: [{
{
name: "天视图", name: "天视图",
value: "day" value: "day"
}, },
...@@ -491,8 +291,7 @@ export default { ...@@ -491,8 +291,7 @@ export default {
}, },
TeacherList: [], TeacherList: [],
classroomList: [], classroomList: [],
ClassTypeList: [ ClassTypeList: [{
{
label: "全部", label: "全部",
Id: 0 Id: 0
}, },
...@@ -509,8 +308,7 @@ export default { ...@@ -509,8 +308,7 @@ export default {
Id: 3 Id: 3
} }
], ],
AppointStateList: [ AppointStateList: [{
{
label: "全部", label: "全部",
Id: 0 Id: 0
}, },
...@@ -603,7 +401,9 @@ export default { ...@@ -603,7 +401,9 @@ export default {
getHeight(event, timeDurationHeight) { getHeight(event, timeDurationHeight) {
let gap = this.calcGap(event.StartTime, event.EndTime); let gap = this.calcGap(event.StartTime, event.EndTime);
let height = timeDurationHeight(gap) + "px"; let height = timeDurationHeight(gap) + "px";
return { height: height + "px" }; return {
height: height + "px"
};
}, },
calendarNext() { calendarNext() {
this.$refs.calendar.next(); this.$refs.calendar.next();
...@@ -622,7 +422,10 @@ export default { ...@@ -622,7 +422,10 @@ export default {
}, 100); }, 100);
}, },
getTeacherList() { getTeacherList() {
getTeacherDropDownList({ LeaveStatus: 1, IsShow: 1 }).then(res => { getTeacherDropDownList({
LeaveStatus: 1,
IsShow: 1
}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.TeacherList = JSON.parse(JSON.stringify(res.Data)); this.TeacherList = JSON.parse(JSON.stringify(res.Data));
var obj = { var obj = {
...@@ -746,12 +549,12 @@ export default { ...@@ -746,12 +549,12 @@ export default {
this.getData(); this.getData();
}, },
isShowTag(arr, min) { isShowTag(arr, min) {
let n=0 let n = 0;
arr.map((e)=>{ arr.map(e => {
if(e.AppointType!==3){ if (e.AppointType !== 3) {
n+=1 n += 1;
} }
}) });
if (n < min) { if (n < min) {
return true; return true;
} else { } else {
...@@ -771,46 +574,49 @@ export default { ...@@ -771,46 +574,49 @@ export default {
} }
} }
} }
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.viewbox { .viewbox {
// width:1500px;
overflow-x: auto; overflow-x: auto;
box-sizing: border-box; box-sizing: border-box;
} }
.calendar-container {
.calendar-container {
position: relative; position: relative;
// height: calc(100% - 32px);
// width: 200%;
overflow: auto; overflow: auto;
} }
.my-event {
.my-event {
position: absolute; position: absolute;
font-size: 12px; font-size: 12px;
} }
.searchBox .el-input__inner {
.searchBox .el-input__inner {
border: none; border: none;
background-color: transparent; background-color: transparent;
} }
.searchBox .el-input .el-input__inner, .searchBox .el-input .el-input__inner,
.el-select .el-input { .el-select .el-input {
border-radius: 0; border-radius: 0;
height: 25px; height: 25px;
} }
.courseItem {
// overflow: auto; .courseItem {
// padding: 3px;
height: 100%; height: 100%;
} }
.detailLabel {
.detailLabel {
width: 35px; width: 35px;
white-space: nowrap; white-space: nowrap;
} }
.detailValue {
.detailValue {
width: 100%; width: 100%;
display: inline-block; display: inline-block;
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment