Commit 7c63fbad authored by 黄奎's avatar 黄奎

页面修改

parent fe54bdd9
<style> <style>
.common_Style { .common_Style {
display: inline-block; display: inline-block;
width: 30px; width: 30px;
height: 30px; height: 30px;
border-radius: 50%; border-radius: 50%;
text-align: center; text-align: center;
line-height: 30px; line-height: 30px;
} }
.classForm_monday { .classForm_monday {
background-color: #ced9f8; background-color: #ced9f8;
color: #2961fe; color: #2961fe;
} }
.classForm_tuesday { .classForm_tuesday {
background-color: #d9f3ff; background-color: #d9f3ff;
color: #3fc4ff; color: #3fc4ff;
} }
.classForm_wednesday { .classForm_wednesday {
background-color: #f6e2cb; background-color: #f6e2cb;
color: #f28c1d; color: #f28c1d;
} }
.classForm_thursday { .classForm_thursday {
background-color: #ccf3eb; background-color: #ccf3eb;
color: #02c499; color: #02c499;
} }
.classForm_friday { .classForm_friday {
background-color: #f7cfd6; background-color: #f7cfd6;
color: #f72e52; color: #f72e52;
} }
.classForm_saturday { .classForm_saturday {
background-color: #fff5cc; background-color: #fff5cc;
color: #ffcc00; color: #ffcc00;
} }
.classForm_sunday { .classForm_sunday {
background-color: #e6e3fe; background-color: #e6e3fe;
color: #8175fb; color: #8175fb;
} }
.planTimeLi tbody::before { .planTimeLi tbody::before {
content: ""; content: "";
display: table-row; display: table-row;
height: 20px; height: 20px;
} }
._font_size12 {
._font_size12 {
font-size: 12px !important; font-size: 12px !important;
} }
._addUpload_box { ._addUpload_box {
display: block; display: block;
margin-top: 15px; margin-top: 15px;
} }
._addUpload_box img { ._addUpload_box img {
width: 100%; width: 100%;
} }
._addUpload_box > div { ._addUpload_box>div {
float: left; float: left;
width: 138px; width: 138px;
height: 92px; height: 92px;
...@@ -72,21 +73,21 @@ ...@@ -72,21 +73,21 @@
padding: 5px; padding: 5px;
margin-right: 10px; margin-right: 10px;
position: relative; position: relative;
} }
._addUpload_box > div:hover { ._addUpload_box>div:hover {
background-color: #f5f5f5; background-color: #f5f5f5;
} }
._addFile_name { ._addFile_name {
padding-left: 15px; padding-left: 15px;
max-width: 450px; max-width: 450px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
._addUpload_box .icon-guanbi1 { ._addUpload_box .icon-guanbi1 {
font-size: 12px; font-size: 12px;
color: white; color: white;
display: inline-block; display: inline-block;
...@@ -100,29 +101,31 @@ ...@@ -100,29 +101,31 @@
width: 20px; width: 20px;
text-align: center; text-align: center;
line-height: 20px; line-height: 20px;
} }
._addUpload_box .icon-guanbi1:hover { ._addUpload_box .icon-guanbi1:hover {
font-size: 12px; font-size: 12px;
color: #c94052; color: #c94052;
} }
._addUpload_box .icon-excel, ._addUpload_box .icon-excel,
._addUpload_box .icon-pdf, ._addUpload_box .icon-pdf,
._addUpload_box .icon-txt, ._addUpload_box .icon-txt,
._addUpload_box .icon-wenjian, ._addUpload_box .icon-wenjian,
._addUpload_box .icon-yasuobao, ._addUpload_box .icon-yasuobao,
._addUpload_box .icon-shipin, ._addUpload_box .icon-shipin,
._addUpload_box .icon-word { ._addUpload_box .icon-word {
text-align: center; text-align: center;
font-size: 38px; font-size: 38px;
color: green; color: green;
line-height: 75px; line-height: 75px;
} }
._addUpload_box .icon-yasuobao {
._addUpload_box .icon-yasuobao {
color: gray; color: gray;
} }
._show_img_box {
._show_img_box {
position: fixed; position: fixed;
background: rgba(0, 0, 0, 0.6); background: rgba(0, 0, 0, 0.6);
left: 0; left: 0;
...@@ -131,104 +134,58 @@ ...@@ -131,104 +134,58 @@
height: 100vh; height: 100vh;
z-index: 999; z-index: 999;
text-align: center; text-align: center;
} }
._addUpload_tips { ._addUpload_tips {
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
} }
._jump_page { ._jump_page {
cursor: pointer; cursor: pointer;
text-decoration: underline; text-decoration: underline;
} }
._jump_page:hover { ._jump_page:hover {
color: #c94052; color: #c94052;
} }
.stop .el-upload-dragger {
.stop .el-upload-dragger {
font-size: 28px; font-size: 28px;
color: #8c939d; color: #8c939d;
width: 126px; width: 126px;
height: 80px; height: 80px;
line-height: 41px; line-height: 41px;
text-align: center; text-align: center;
} }
</style> </style>
<template> <template>
<q-dialog <q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
v-model="persistent"
content-class="bg-grey-1"
persistent
transition-show="scale"
transition-hide="scale"
>
<q-card style="width: 800px; max-width: 900px" class="stop"> <q-card style="width: 800px; max-width: 900px" class="stop">
<q-card-section> <q-card-section>
<div class="text-h6">创建调课申请单</div> <div class="text-h6">创建调课申请单</div>
</q-card-section> </q-card-section>
<q-card-section class="q-pt-none" style="height: 70vh"> <q-card-section class="q-pt-none" style="height: 70vh">
<q-scroll-area <q-scroll-area :thumb-style="thumbStyle" :content-style="contentStyle"
:thumb-style="thumbStyle" :content-active-style="contentActiveStyle" class="full-width full-height">
:content-style="contentStyle"
:content-active-style="contentActiveStyle"
class="full-width full-height"
>
<div class="text-caption q-mb-lg q-px-md text-grey-6">基本资料</div> <div class="text-caption q-mb-lg q-px-md text-grey-6">基本资料</div>
<div class="row q-col-gutter-lg"> <div class="row q-col-gutter-lg">
<!--<q-select filled stack-label option-value="SId" option-label="SName" v-model="msg.classId" ref="School_Id" :options="schoolList" label="所属校区" :dense="false" class="col-6" emit-value map-options @input="schoolChagne" />--> <q-select filled stack-label option-value="SId" option-label="SName" v-model="msg.SchoolId" ref="School_Id"
<q-select :options="schoolList" label="校区" :dense="false" class="col-6" emit-value map-options
filled @input="changeSchool" />
stack-label <q-select filled stack-label option-value="CourseId" option-label="CourseName" v-model="msg.CouseId"
option-value="SId" ref="CouseId" :options="courseList" label="关联课程" :dense="false" class="col-6" emit-value map-options
option-label="SName" @input="changeCourse" />
v-model="msg.SchoolId" <q-select filled stack-label option-value="ClassId" option-label="ClassName" v-model="msg.ClassId"
ref="School_Id" :options="classList" @input="changeClass" emit-value map-options label="班级" class="col-6">
:options="schoolList" <template v-slot:option="{
label="校区"
:dense="false"
class="col-6"
emit-value
map-options
@input="changeSchool"
/>
<q-select
filled
stack-label
option-value="CourseId"
option-label="CourseName"
v-model="msg.CouseId"
ref="CouseId"
:options="courseList"
label="关联课程"
:dense="false"
class="col-6"
emit-value
map-options
@input="changeCourse"
/>
<q-select
filled
stack-label
option-value="ClassId"
option-label="ClassName"
v-model="msg.ClassId"
:options="classList"
@input="changeClass"
emit-value
map-options
label="班级"
class="col-6"
>
<template
v-slot:option="{
itemProps, itemProps,
itemEvents, itemEvents,
opt, opt,
selected, selected,
toggleOption, toggleOption,
}" }">
>
<q-item v-bind="itemProps" v-on="itemEvents"> <q-item v-bind="itemProps" v-on="itemEvents">
<q-item-section> <q-item-section>
<q-item-label v-html="opt.ClassName"></q-item-label> <q-item-label v-html="opt.ClassName"></q-item-label>
...@@ -239,20 +196,9 @@ ...@@ -239,20 +196,9 @@
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
<q-select <q-select filled stack-label option-value="Id" option-label="Name" v-model="msg.ChangeType"
filled :options="changeType" label="变更类型" :dense="false" class="col-6" emit-value map-options
stack-label @input="changeTypeResult" />
option-value="Id"
option-label="Name"
v-model="msg.ChangeType"
:options="changeType"
label="变更类型"
:dense="false"
class="col-6"
emit-value
map-options
@input="changeTypeResult"
/>
</div> </div>
<div class="row items-center"> <div class="row items-center">
<div class="text-caption q-my-lg q-px-md text-grey-6 col"> <div class="text-caption q-my-lg q-px-md text-grey-6 col">
...@@ -260,33 +206,17 @@ ...@@ -260,33 +206,17 @@
</div> </div>
<div class="row items-center"> <div class="row items-center">
<div class="text-grey-6">变更范围:</div> <div class="text-grey-6">变更范围:</div>
<q-radio <q-radio size="xs" v-model="msg.MoveType" val="1" label="单个或多个" />
size="xs"
v-model="msg.MoveType"
val="1"
label="单个或多个"
/>
<q-radio size="xs" v-model="msg.MoveType" val="2" label="全局" /> <q-radio size="xs" v-model="msg.MoveType" val="2" label="全局" />
</div> </div>
</div> </div>
<div v-if="msg.MoveType == '1'" class="row items-center"> <div v-if="msg.MoveType == '1'" class="row items-center">
<div class="col"> <div class="col">
<q-table <q-table no-data-label="暂无相关数据" flat style="max-height: 300px" :pagination="pages" class="
no-data-label="暂无相关数据"
flat
style="max-height: 300px"
:pagination="pages"
class="
sticky-column-table sticky-header-column-table sticky-column-table sticky-header-column-table
no-bottom-table no-bottom-table
" " separator="none" :data="currentClass" :columns="msg.ChangeType == 1 ? columns : columns2"
separator="none" row-key="ClassPlanId" selection="multiple" :selected.sync="selected">
:data="currentClass"
:columns="msg.ChangeType == 1 ? columns : columns2"
row-key="ClassPlanId"
selection="multiple"
:selected.sync="selected"
>
<template v-slot:body-cell-ClassDate="props"> <template v-slot:body-cell-ClassDate="props">
<q-td :props="props"> <q-td :props="props">
<div>{{ props.row.ClassDate }}</div> <div>{{ props.row.ClassDate }}</div>
...@@ -295,10 +225,7 @@ ...@@ -295,10 +225,7 @@
</template> </template>
<template v-slot:body-cell-TimeList="props"> <template v-slot:body-cell-TimeList="props">
<q-td auto-width :props="props"> <q-td auto-width :props="props">
<div <div v-for="(item, index) in props.row.TimeList" class="lessForm_Class">
v-for="(item, index) in props.row.TimeList"
class="lessForm_Class"
>
{{ index + 1 }}节课 {{ item.StartTime }}-{{ {{ index + 1 }}节课 {{ item.StartTime }}-{{
item.EndTime item.EndTime
}} }}
...@@ -306,107 +233,51 @@ ...@@ -306,107 +233,51 @@
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-TargetClassDate="props"> <template v-slot:body-cell-TargetClassDate="props">
<q-td <q-td auto-width :props="props" style="border-left: 1xp solid #000">
auto-width
:props="props"
style="border-left: 1xp solid #000"
>
{{ props.row.NewPlan.ClassDate }} {{ props.row.NewPlan.ClassDate }}
<q-popup-edit <q-popup-edit v-model="props.row.NewPlan.ClassDate" title="变更日期" persistent buttons label-set="确认"
v-model="props.row.NewPlan.ClassDate" label-cancel="取消">
title="变更日期" <el-date-picker v-model="props.row.NewPlan.ClassDate" type="date" :picker-options="pickerOptions"
persistent :clearable="false" value-format="yyyy-MM-dd" placeholder="选择日期">
buttons
label-set="确认"
label-cancel="取消"
>
<el-date-picker
v-model="props.row.NewPlan.ClassDate"
type="date"
:picker-options="pickerOptions"
:clearable="false"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker> </el-date-picker>
</q-popup-edit> </q-popup-edit>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-TargetTimeList="props"> <template v-slot:body-cell-TargetTimeList="props">
<q-td auto-width :props="props"> <q-td auto-width :props="props">
<div <div v-for="(item, index) in props.row.NewPlan.TimeList" class="lessForm_Class">
v-for="(item, index) in props.row.NewPlan.TimeList"
class="lessForm_Class"
>
{{ index + 1 }}节课 {{ item.StartTime }}-{{ {{ index + 1 }}节课 {{ item.StartTime }}-{{
item.EndTime item.EndTime
}} }}
</div> </div>
<q-popup-edit <q-popup-edit :validate="proteinRangeValidation" persistent v-model="props.row.NewPlan.TimeList"
:validate="proteinRangeValidation" title="变更时间" buttons label-set="确认" label-cancel="取消">
persistent <div v-for="(item, index) in props.row.NewPlan.TimeList" class="q-mb-md row items-center"
v-model="props.row.NewPlan.TimeList" style="width: 430px">
title="变更时间"
buttons
label-set="确认"
label-cancel="取消"
>
<div
v-for="(item, index) in props.row.NewPlan.TimeList"
class="q-mb-md row items-center"
style="width: 430px"
>
<div class="lessForm_Class col"> <div class="lessForm_Class col">
{{ index + 1 }}节课 {{ index + 1 }}节课
</div> </div>
<div class="row items-center"> <div class="row items-center">
<el-time-select <el-time-select placeholder="起始时间" v-model="item.StartTime" style="width: 100px"
placeholder="起始时间" :picker-options="pickers">
v-model="item.StartTime"
style="width: 100px"
:picker-options="pickers"
>
</el-time-select> </el-time-select>
<el-time-select <el-time-select placeholder="结束时间" v-model="item.EndTime"
placeholder="结束时间" style="width: 100px; margin-left: 12px" :picker-options="{
v-model="item.EndTime"
style="width: 100px; margin-left: 12px"
:picker-options="{
start: '09:00', start: '09:00',
step: '00:15', step: '00:15',
end: '22:30', end: '22:30',
minTime: item.StartTime, minTime: item.StartTime,
}" }">
>
</el-time-select> </el-time-select>
<q-input <q-input filled v-model="item.TimeHour" size="xs" mask="#.#" fill-mask="0.0" label="有效课时"
filled suffix="课时" style="width: 100px; margin-left: 12px" />
v-model="item.TimeHour" <q-btn v-if="props.row.NewPlan.TimeList.length > 1" round color="negative" class="q-ml-md"
size="xs" size="xs" icon="iconfont icon-guanbi1" @click="removeTime(props.row.NewPlan, index)">
mask="#.#" </q-btn>
fill-mask="0.0"
label="有效课时"
suffix="课时"
style="width: 100px; margin-left: 12px"
/>
<q-btn
v-if="props.row.NewPlan.TimeList.length > 1"
round
color="negative"
class="q-ml-md"
size="xs"
icon="iconfont icon-guanbi1"
@click="removeTime(props.row.NewPlan, index)"
></q-btn>
</div> </div>
</div> </div>
<q-btn <q-btn round color="primary" size="xs" icon="iconfont icon-img_haha"
round @click="addTime(props.row.NewPlan)"></q-btn>
color="primary"
size="xs"
icon="iconfont icon-img_haha"
@click="addTime(props.row.NewPlan)"
></q-btn>
</q-popup-edit> </q-popup-edit>
</q-td> </q-td>
</template> </template>
...@@ -416,118 +287,49 @@ ...@@ -416,118 +287,49 @@
</div> </div>
<div v-if="msg.ChangeType == 1 && msg.MoveType == 2"> <div v-if="msg.ChangeType == 1 && msg.MoveType == 2">
<div class="row"> <div class="row">
<q-input <q-input filled v-model="msg.AllChangePlanItem.OpenTimeStr" class="col-6 q-pr-lg q-pb-lg" mask="date"
filled label="开班时间">
v-model="msg.AllChangePlanItem.OpenTimeStr"
class="col-6 q-pr-lg q-pb-lg"
mask="date"
label="开班时间"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
ref="qDateProxy1" <q-date v-model="msg.AllChangePlanItem.OpenTimeStr" :options="optionsFn"
transition-show="scale" @input="() => $refs.qDateProxy1.hide()" />
transition-hide="scale"
>
<q-date
v-model="msg.AllChangePlanItem.OpenTimeStr"
:options="optionsFn"
@input="() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
<q-select <q-select filled stack-label option-value="Id" option-label="Name"
filled v-model="msg.AllChangePlanItem.ClassStyle" ref="ClassStyle" :options="classSetList" label="排课安排"
stack-label :dense="false" class="col-6 q-pr-lg q-pb-lg" emit-value map-options
option-value="Id" @input="changeClassStyle(msg.AllChangePlanItem.ClassStyle)" />
option-label="Name"
v-model="msg.AllChangePlanItem.ClassStyle"
ref="ClassStyle"
:options="classSetList"
label="排课安排"
:dense="false"
class="col-6 q-pr-lg q-pb-lg"
emit-value
map-options
@input="changeClassStyle(msg.AllChangePlanItem.ClassStyle)"
/>
</div> </div>
<div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 1"> <div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 1">
<div class="col-6"> <div class="col-6">
<q-select <q-select filled stack-label multiple option-value="value" option-label="label" v-model="checkedDays"
filled ref="ClassStyle" :options="weekList" label="选择周几" :dense="false" class="col-6 q-pr-lg" emit-value
stack-label map-options>
multiple <template v-slot:option="{
option-value="value"
option-label="label"
v-model="checkedDays"
ref="ClassStyle"
:options="weekList"
label="选择周几"
:dense="false"
class="col-6 q-pr-lg"
emit-value
map-options
>
<template
v-slot:option="{
itemProps, itemProps,
itemEvents, itemEvents,
opt, opt,
selected, selected,
toggleOption, toggleOption,
}" }">
>
<q-item v-bind="itemProps" v-on="itemEvents"> <q-item v-bind="itemProps" v-on="itemEvents">
<q-item-section avatar> <q-item-section avatar>
<span <span v-if="opt.icon == 1" class="common_Style classForm_monday"></span>
v-if="opt.icon == 1" <span v-if="opt.icon == 2" class="common_Style classForm_tuesday"></span>
class="common_Style classForm_monday" <span v-if="opt.icon == 3" class="common_Style classForm_wednesday"></span>
></span <span v-if="opt.icon == 4" class="common_Style classForm_thursday"></span>
> <span v-if="opt.icon == 5" class="common_Style classForm_friday"></span>
<span <span v-if="opt.icon == 6" class="common_Style classForm_saturday"></span>
v-if="opt.icon == 2" <span v-if="opt.icon == 7" class="common_Style classForm_sunday"></span>
class="common_Style classForm_tuesday"
></span
>
<span
v-if="opt.icon == 3"
class="common_Style classForm_wednesday"
></span
>
<span
v-if="opt.icon == 4"
class="common_Style classForm_thursday"
></span
>
<span
v-if="opt.icon == 5"
class="common_Style classForm_friday"
></span
>
<span
v-if="opt.icon == 6"
class="common_Style classForm_saturday"
></span
>
<span
v-if="opt.icon == 7"
class="common_Style classForm_sunday"
></span
>
</q-item-section> </q-item-section>
<q-item-section> <q-item-section>
<q-item-label v-html="opt.label" /> <q-item-label v-html="opt.label" />
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
<i <i style="color: #2961fe" v-if="selected" class="iconfont icon-chenggong"></i>
style="color: #2961fe"
v-if="selected"
class="iconfont icon-chenggong"
></i>
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
...@@ -535,53 +337,25 @@ ...@@ -535,53 +337,25 @@
</div> </div>
</div> </div>
<div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 2"> <div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 2">
<q-select <q-select filled stack-label multiple option-value="value" option-label="label" v-model="checkedDays"
filled ref="ClassStyle" :options="dayList" label="选择日期" :dense="false" class="col-6 q-pr-lg q-pr-lg" emit-value
stack-label map-options>
multiple
option-value="value"
option-label="label"
v-model="checkedDays"
ref="ClassStyle"
:options="dayList"
label="选择日期"
:dense="false"
class="col-6 q-pr-lg q-pr-lg"
emit-value
map-options
>
</q-select> </q-select>
</div> </div>
<div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 3"> <div class="row wrap" v-if="msg.AllChangePlanItem.ClassStyle == 3">
<div class="col-12"> <div class="col-12">
<q-date <q-date v-model="checkedDays" minimal multiple style="width: 100%" />
v-model="checkedDays"
minimal
multiple
style="width: 100%"
/>
</div> </div>
</div> </div>
<div class="row wrap" style="margin: 20px 0"> <div class="row wrap" style="margin: 20px 0">
<div class="col-6"> <div class="col-6">
学习时段 学习时段
<q-btn <q-btn style="margin-left: 30px" size="10px" @click="addPlan()" round color="primary"
style="margin-left: 30px" icon="iconfont icon-img_haha" />
size="10px"
@click="addPlan()"
round
color="primary"
icon="iconfont icon-img_haha"
/>
</div> </div>
</div> </div>
<template <template v-if="DefaultPlanTimeList && DefaultPlanTimeList.length > 0">
v-if="DefaultPlanTimeList && DefaultPlanTimeList.length > 0" <table style="width: 100%; border-collapse: collapse" class="planTimeLi">
>
<table
style="width: 100%; border-collapse: collapse"
class="planTimeLi"
>
<thead> <thead>
<tr> <tr>
<th>日期/周</th> <th>日期/周</th>
...@@ -590,64 +364,26 @@ ...@@ -590,64 +364,26 @@
<th>操作</th> <th>操作</th>
</tr> </tr>
</thead> </thead>
<tbody <tbody v-for="(nItem, nIndex) in DefaultPlanTimeList" :key="nIndex + 10000">
v-for="(nItem, nIndex) in DefaultPlanTimeList"
:key="nIndex + 10000"
>
<tr v-for="(sItem, sIndex) in nItem.TimeList"> <tr v-for="(sItem, sIndex) in nItem.TimeList">
<td <td :rowspan="nItem.TimeList.length" v-if="sIndex == 0" style="position: relative">
:rowspan="nItem.TimeList.length" <q-select filled style="width: 220px" stack-label multiple v-model="nItem.DateList" ref="DateList"
v-if="sIndex == 0" :options="checkedDays" :label="
style="position: relative"
>
<q-select
filled
style="width: 220px"
stack-label
multiple
v-model="nItem.DateList"
ref="DateList"
:options="checkedDays"
:label="
msg.AllChangePlanItem.ClassStyle == 1 msg.AllChangePlanItem.ClassStyle == 1
? '选择周几' ? '选择周几'
: '选择日期' : '选择日期'
" " :dense="false" class="col-6" emit-value map-options clearable>
:dense="false"
class="col-6"
emit-value
map-options
clearable
>
</q-select> </q-select>
<a <a @click="deletePlan(nIndex)" style="color: blue; cursor: pointer; position: absolute">删除</a>
@click="deletePlan(nIndex)"
style="color: blue; cursor: pointer; position: absolute"
>删除</a
>
</td> </td>
<td> <td>
<q-input <q-input filled v-model="sItem.StartTime" class="col-6 q-pl-lg" placeholder="开始时间" mask="time">
filled
v-model="sItem.StartTime"
class="col-6 q-pl-lg"
placeholder="开始时间"
mask="time"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="access_time" class="cursor-pointer"> <q-icon name="access_time" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy transition-show="scale" transition-hide="scale">
transition-show="scale"
transition-hide="scale"
>
<q-time v-model="sItem.StartTime"> <q-time v-model="sItem.StartTime">
<div class="row items-center justify-end"> <div class="row items-center justify-end">
<q-btn <q-btn v-close-popup label="确定" color="primary" flat />
v-close-popup
label="确定"
color="primary"
flat
/>
</div> </div>
</q-time> </q-time>
</q-popup-proxy> </q-popup-proxy>
...@@ -656,27 +392,13 @@ ...@@ -656,27 +392,13 @@
</q-input> </q-input>
</td> </td>
<td> <td>
<q-input <q-input filled v-model="sItem.EndTime" class="col-6 q-pr-lg" placeholder="结束时间" mask="time">
filled
v-model="sItem.EndTime"
class="col-6 q-pr-lg"
placeholder="结束时间"
mask="time"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="access_time" class="cursor-pointer"> <q-icon name="access_time" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy transition-show="scale" transition-hide="scale">
transition-show="scale"
transition-hide="scale"
>
<q-time v-model="sItem.EndTime"> <q-time v-model="sItem.EndTime">
<div class="row items-center justify-end"> <div class="row items-center justify-end">
<q-btn <q-btn v-close-popup label="确定" color="primary" flat />
v-close-popup
label="确定"
color="primary"
flat
/>
</div> </div>
</q-time> </q-time>
</q-popup-proxy> </q-popup-proxy>
...@@ -685,34 +407,15 @@ ...@@ -685,34 +407,15 @@
</q-input> </q-input>
</td> </td>
<td> <td>
<q-input <q-input filled stack-label maxlength="20" v-model="sItem.TimeHour"
filled @keyup.native="checkPrice(sItem, 'TimeHour')" :dense="false" class="col-6 q-pr-lg"
stack-label label="消耗课时" />
maxlength="20"
v-model="sItem.TimeHour"
@keyup.native="checkPrice(sItem, 'TimeHour')"
:dense="false"
class="col-6 q-pr-lg"
label="消耗课时"
/>
</td> </td>
<td> <td>
<q-btn <q-btn size="10px" v-if="sIndex == 0" @click="addPlanTime(nItem)" round color="primary"
size="10px" icon="iconfont icon-img_haha" />
v-if="sIndex == 0" <q-btn v-if="sIndex > 0" size="10px" @click="deletePlanTime(nItem, sIndex)" round color="red"
@click="addPlanTime(nItem)" icon="iconfont icon-guanbi1" />
round
color="primary"
icon="iconfont icon-img_haha"
/>
<q-btn
v-if="sIndex > 0"
size="10px"
@click="deletePlanTime(nItem, sIndex)"
round
color="red"
icon="iconfont icon-guanbi1"
/>
</td> </td>
</tr> </tr>
</tbody> </tbody>
...@@ -720,65 +423,33 @@ ...@@ -720,65 +423,33 @@
</template> </template>
<div class="row wrap" style="margin-top: 30px; display: none"> <div class="row wrap" style="margin-top: 30px; display: none">
<div class="col-6"> <div class="col-6">
<q-input <q-input filled stack-label maxlength="6" v-model="msg.AllChangePlanItem.ClassHours" :dense="false"
filled class="col-6 q-pr-lg q-pb-lg" label="学习课时" @keyup.native="
stack-label
maxlength="6"
v-model="msg.AllChangePlanItem.ClassHours"
:dense="false"
class="col-6 q-pr-lg q-pb-lg"
label="学习课时"
@keyup.native="
checkInteger(msg.AllChangePlanItem, 'ClassHours') checkInteger(msg.AllChangePlanItem, 'ClassHours')
" " />
/>
</div> </div>
<div class="col-6"> <div class="col-6">
<q-select <q-select label="课时分钟数" filled stack-label v-model="msg.AllChangePlanItem.ClassHourMinute"
label="课时分钟数" :options="ClassHourMinuteArray" option-value="Id" option-label="Name" :dense="false"
filled class="col-6 q-pr-lg q-pb-lg" emit-value map-options>
stack-label
v-model="msg.AllChangePlanItem.ClassHourMinute"
:options="ClassHourMinuteArray"
option-value="Id"
option-label="Name"
:dense="false"
class="col-6 q-pr-lg q-pb-lg"
emit-value
map-options
>
</q-select> </q-select>
</div> </div>
</div> </div>
</div> </div>
<div v-if="msg.ChangeType == 3"> <div v-if="msg.ChangeType == 3">
<div <div class="text-caption q-mb-lg q-px-md text-grey-6 col" style="margin-top: 20px">
class="text-caption q-mb-lg q-px-md text-grey-6 col"
style="margin-top: 20px"
>
目标教室 目标教室
</div> </div>
<div class="row"> <div class="row">
<q-select <q-select filled option-value="RoomId" option-label="RoomName" v-model="msg.ClassRoomId"
filled :options="roomList" emit-value map-options label="教室" class="col-6 q-pr-lg">
option-value="RoomId" <template v-slot:option="{
option-label="RoomName"
v-model="msg.ClassRoomId"
:options="roomList"
emit-value
map-options
label="教室"
class="col-6 q-pr-lg"
>
<template
v-slot:option="{
itemProps, itemProps,
itemEvents, itemEvents,
opt, opt,
selected, selected,
toggleOption, toggleOption,
}" }">
>
<q-item v-bind="itemProps" v-on="itemEvents"> <q-item v-bind="itemProps" v-on="itemEvents">
<q-item-section> <q-item-section>
<q-item-label v-html="opt.RoomName"></q-item-label> <q-item-label v-html="opt.RoomName"></q-item-label>
...@@ -789,26 +460,13 @@ ...@@ -789,26 +460,13 @@
</q-item> </q-item>
</template> </template>
</q-select> </q-select>
<q-input <q-input v-if="msg.MoveType == '2'" filled v-model="msg.TakeEffectTime" class="col-6" mask="date"
v-if="msg.MoveType == '2'" label="生效时间">
filled
v-model="msg.TakeEffectTime"
class="col-6"
mask="date"
label="生效时间"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
ref="qDateProxy1" <q-date v-model="msg.TakeEffectTime" :options="optionsFn"
transition-show="scale" @input="() => $refs.qDateProxy1.hide()" />
transition-hide="scale"
>
<q-date
v-model="msg.TakeEffectTime"
:options="optionsFn"
@input="() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
...@@ -816,45 +474,20 @@ ...@@ -816,45 +474,20 @@
</div> </div>
</div> </div>
<div v-if="msg.ChangeType == 2"> <div v-if="msg.ChangeType == 2">
<div <div class="text-caption q-mb-lg q-px-md text-grey-6 col" style="margin-top: 20px">
class="text-caption q-mb-lg q-px-md text-grey-6 col"
style="margin-top: 20px"
>
目标老师 目标老师
</div> </div>
<div class="row"> <div class="row">
<q-select <q-select filled option-value="TId" option-label="TeacherName" v-model="msg.TeacherId"
filled :options="TeacherList" emit-value map-options label="老师" class="col-6 q-pr-lg">
option-value="TId"
option-label="TeacherName"
v-model="msg.TeacherId"
:options="TeacherList"
emit-value
map-options
label="老师"
class="col-6 q-pr-lg"
>
</q-select> </q-select>
<q-input <q-input filled v-if="msg.MoveType == '2'" v-model="msg.TakeEffectTime" class="col-6" mask="date"
filled label="生效时间">
v-if="msg.MoveType == '2'"
v-model="msg.TakeEffectTime"
class="col-6"
mask="date"
label="生效时间"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
ref="qDateProxy1" <q-date v-model="msg.TakeEffectTime" :options="optionsFn"
transition-show="scale" @input="() => $refs.qDateProxy1.hide()" />
transition-hide="scale"
>
<q-date
v-model="msg.TakeEffectTime"
:options="optionsFn"
@input="() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
...@@ -862,70 +495,33 @@ ...@@ -862,70 +495,33 @@
</div> </div>
</div> </div>
<div v-if="msg.ChangeType == 4 && msg.MoveType == '2'" class="row"> <div v-if="msg.ChangeType == 4 && msg.MoveType == '2'" class="row">
<q-input <q-input filled v-model="msg.TakeEffectTime" class="col-6" mask="date" label="生效时间">
filled
v-model="msg.TakeEffectTime"
class="col-6"
mask="date"
label="生效时间"
>
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy <q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
ref="qDateProxy1" <q-date v-model="msg.TakeEffectTime" :options="optionsFn" @input="() => $refs.qDateProxy1.hide()" />
transition-show="scale"
transition-hide="scale"
>
<q-date
v-model="msg.TakeEffectTime"
:options="optionsFn"
@input="() => $refs.qDateProxy1.hide()"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
</div> </div>
<q-input <q-input filled type="textarea" :rows="3" style="margin-top: 20px" stack-label maxlength="2000"
filled v-model="msg.Remarks" :dense="false" class="col-12 q-pb-lg" label="备注" />
type="textarea"
:rows="3"
style="margin-top: 20px"
stack-label
maxlength="2000"
v-model="msg.Remarks"
:dense="false"
class="col-12 q-pb-lg"
label="备注"
/>
<div class="row"> <div class="row">
<div class="col-12 q-mt-md text-grey-6"> <div class="col-12 q-mt-md text-grey-6">
上传附件:<span 上传附件:<span class="fj-tip" style="font-size: 10px; color: #f00">*单文件限制5M内</span>
class="fj-tip"
style="font-size: 10px; color: #f00"
>*单文件限制5M内</span
>
</div> </div>
<div> <div>
<!-- <p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p> -->
<div class="_addUpload_box clearfix"> <div class="_addUpload_box clearfix">
<template v-for="(file, fIndex) in saveMsg"> <template v-for="(file, fIndex) in saveMsg">
<div v-if="file.Type == 3"> <div v-if="file.Type == 3">
<div style="width: 100%; height: 100%; overflow: hidden"> <div style="width: 100%; height: 100%; overflow: hidden">
<img <img :src="file.Url ? file.Url : file.Content" @click="showUpLoadFile(file)" />
:src="file.Url ? file.Url : file.Content"
@click="showUpLoadFile(file)"
/>
</div> </div>
<span <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
</div> </div>
<div v-if="file.Type == 1"> <div v-if="file.Type == 1">
<div <div class="iconfont" :class="
class="iconfont"
:class="
file.Content.substring( file.Content.substring(
file.Content.lastIndexOf('.') + 1, file.Content.lastIndexOf('.') + 1,
file.Content.length file.Content.length
...@@ -946,53 +542,24 @@ ...@@ -946,53 +542,24 @@
).toUpperCase() == 'DOC' ).toUpperCase() == 'DOC'
? 'icon-word' ? 'icon-word'
: 'icon-excel' : 'icon-excel'
" " @click="showUpLoadFile(file)"></div>
@click="showUpLoadFile(file)" <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
</div> </div>
<div v-if="file.Type == 2"> <div v-if="file.Type == 2">
<div <div class="iconfont icon-wenjian" @click="showUpLoadFile(file)"></div>
class="iconfont icon-wenjian" <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
</div> </div>
<div v-if="file.Type == 4"> <div v-if="file.Type == 4">
<div <div class="iconfont icon-yasuobao" @click="showUpLoadFile(file)"></div>
class="iconfont icon-yasuobao" <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
</div> </div>
<div v-if="file.Type == 5"> <div v-if="file.Type == 5">
<div <div class="iconfont icon-shipin" @click="showUpLoadFile(file)"></div>
class="iconfont icon-shipin" <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
@click="showUpLoadFile(file)"
></div>
<span
class="iconfont icon-guanbi1"
@click="deleteUploadFile(fIndex)"
></span>
</div> </div>
</template> </template>
<div class="_pic_upload"> <div class="_pic_upload">
<el-upload <el-upload drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action="">
drag
:http-request="uploadFileBtn"
:multiple="true"
:show-file-list="false"
action=""
>
<i class="el-icon-plus avatar-uploader-icon"></i> <i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text"> <div class="el-upload__text">
{{ $t("active.ld_djscwj") }} {{ $t("active.ld_djscwj") }}
...@@ -1007,28 +574,12 @@ ...@@ -1007,28 +574,12 @@
<q-separator /> <q-separator />
<q-card-actions align="right" class="bg-white"> <q-card-actions align="right" class="bg-white">
<q-btn <q-btn label="取消" flat color="grey-10" style="font-weight: 400 !important" @click="closeSaveForm" />
label="取消" <q-btn label="立即提交" color="accent q-px-md" style="font-weight: 400 !important" :loading="saveLoading"
flat @click="save" />
color="grey-10"
style="font-weight: 400 !important"
@click="closeSaveForm"
/>
<q-btn
label="立即提交"
color="accent q-px-md"
style="font-weight: 400 !important"
:loading="saveLoading"
@click="save"
/>
</q-card-actions> </q-card-actions>
<div <div v-if="picIsShow" class="_show_img_box" @click="(picIsShow = false), (picObj = [])">
v-if="picIsShow" <div style="
class="_show_img_box"
@click="(picIsShow = false), (picObj = [])"
>
<div
style="
position: absolute; position: absolute;
width: 800px; width: 800px;
height: 600px; height: 600px;
...@@ -1036,19 +587,9 @@ ...@@ -1036,19 +587,9 @@
top: 50%; top: 50%;
margin-left: -400px; margin-left: -400px;
margin-top: -300px; margin-top: -300px;
" ">
> <el-carousel :initial-index="initialIndex" height="600px" :interval="5000" trigger="click">
<el-carousel <el-carousel-item style="height: 600px; overflow: auto" v-for="(item, index) in picObj" :key="index">
:initial-index="initialIndex"
height="600px"
:interval="5000"
trigger="click"
>
<el-carousel-item
style="height: 600px; overflow: auto"
v-for="(item, index) in picObj"
:key="index"
>
<img :src="item" style="" /> <img :src="item" style="" />
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
...@@ -1059,22 +600,26 @@ ...@@ -1059,22 +600,26 @@
</template> </template>
<script> <script>
import { import {
getClassDropDownList, getClassDropDownList,
getSchoolDropdown, getSchoolDropdown,
queryClassRoomPage, queryClassRoomPage,
getTeacherDropDownList, getTeacherDropDownList,
SetChangeClassPlan, SetChangeClassPlan,
} from "../../api/school/index"; } from "../../api/school/index";
import { queryCourseDropdownList } from "../../api/course/index"; import {
import { UploadSelfFile } from "../../api/common/common"; queryCourseDropdownList
import Lockr from "lockr"; } from "../../api/course/index";
export default { import {
UploadSelfFile
} from "../../api/common/common";
import Lockr from "lockr";
export default {
props: { props: {
ClassId: { setingObj: {
type: Number, type: Object,
default: null default: null
}, }
}, },
data() { data() {
return { return {
...@@ -1096,7 +641,6 @@ export default { ...@@ -1096,7 +641,6 @@ export default {
step: "00:15", step: "00:15",
end: "22:30", end: "22:30",
}, },
thumbStyle: { thumbStyle: {
right: "2px", right: "2px",
borderRadius: "5px", borderRadius: "5px",
...@@ -1142,8 +686,7 @@ export default { ...@@ -1142,8 +686,7 @@ export default {
IsQuerySurplusPlan: 1, IsQuerySurplusPlan: 1,
}, },
currentClass: [], currentClass: [],
columns2: [ columns2: [{
{
name: "RoomName", name: "RoomName",
label: "教室名称", label: "教室名称",
field: "RoomName", field: "RoomName",
...@@ -1168,8 +711,7 @@ export default { ...@@ -1168,8 +711,7 @@ export default {
align: "left", align: "left",
}, },
], ],
columns: [ columns: [{
{
name: "RoomName", name: "RoomName",
label: "教室名称", label: "教室名称",
field: "RoomName", field: "RoomName",
...@@ -1206,8 +748,7 @@ export default { ...@@ -1206,8 +748,7 @@ export default {
align: "left", align: "left",
}, },
], ],
changeType: [ changeType: [{
{
Id: 1, Id: 1,
Name: "课程时间", Name: "课程时间",
}, },
...@@ -1224,8 +765,7 @@ export default { ...@@ -1224,8 +765,7 @@ export default {
Name: "取消上课", Name: "取消上课",
}, },
], ],
classSetList: [ classSetList: [{
{
Name: "按周排课", Name: "按周排课",
Id: 1, Id: 1,
}, },
...@@ -1242,8 +782,7 @@ export default { ...@@ -1242,8 +782,7 @@ export default {
//选中日期/星期 //选中日期/星期
checkedDays: [], checkedDays: [],
//周几 //周几
weekList: [ weekList: [{
{
label: "周一", label: "周一",
value: "1", value: "1",
icon: 1, icon: 1,
...@@ -1282,8 +821,7 @@ export default { ...@@ -1282,8 +821,7 @@ export default {
dayList: [], //日期数组1-31 dayList: [], //日期数组1-31
//默认上课时间数组 //默认上课时间数组
DefaultPlanTimeList: [], DefaultPlanTimeList: [],
ClassHourMinuteArray: [ ClassHourMinuteArray: [{
{
Id: 45, Id: 45,
Name: 45, Name: 45,
}, },
...@@ -1292,7 +830,6 @@ export default { ...@@ -1292,7 +830,6 @@ export default {
Name: 60, Name: 60,
}, },
], ],
classSetMsg: { classSetMsg: {
OpenTime: "", //开班时间 OpenTime: "", //开班时间
ClassStyle: 1, //排课方式(1-周,2-月,3-固定日期,4-约课) ClassStyle: 1, //排课方式(1-周,2-月,3-固定日期,4-约课)
...@@ -1305,18 +842,30 @@ export default { ...@@ -1305,18 +842,30 @@ export default {
initialIndex: 0, initialIndex: 0,
}; };
}, },
mounted() { created() {
let u = Lockr.get("loginUserInfo"); if (this.setingObj) {
if (u) { if (this.setingObj.CouseId) {
this.queryClass.Teacher_Id = u.AccountId; this.msg.CouseId = this.setingObj.CouseId;
this.queryClass.CourseId = this.setingObj.CouseId;
}
if (this.setingObj.ClassId) {
this.msg.ClassId = this.setingObj.ClassId;
}
if (this.setingObj.School_Id) {
this.msg.SchoolId = this.setingObj.School_Id;
} }
if(this.ClassId){
this.msg.ClassId = this.ClassId;
} }
this.getClass();
this.getSchool(); this.getSchool();
this.getCourseList(); this.getCourseList();
},
mounted() {
let u = Lockr.get("loginUserInfo");
if (this.setingObj && this.setingObj.Teacher_Id) {
this.queryClass.Teacher_Id = this.setingObj.Teacher_Id;
} else if (u) {
this.queryClass.Teacher_Id = u.AccountId;
}
this.getClass(0);
this.getClassRoomPage(); this.getClassRoomPage();
this.GetTeacherList(); this.GetTeacherList();
this.initDayList(); this.initDayList();
...@@ -1616,16 +1165,18 @@ export default { ...@@ -1616,16 +1165,18 @@ export default {
}, },
changeSchool(val) { changeSchool(val) {
this.queryClass.SchoolId = val; this.queryClass.SchoolId = val;
this.getClass(); this.getClass(1);
}, },
changeCourse(val) { changeCourse(val) {
this.queryClass.CourseId = val; this.queryClass.CourseId = val;
this.getClass(); this.getClass(1);
}, },
getClass() { getClass(isClear) {
getClassDropDownList(this.queryClass).then((res) => { getClassDropDownList(this.queryClass).then((res) => {
this.classList = []; this.classList = [];
if (isClear == 1) {
this.msg.ClassId = 0; this.msg.ClassId = 0;
}
if (res.Code == 1) { if (res.Code == 1) {
res.Data.forEach((x) => { res.Data.forEach((x) => {
x.PlanList.forEach((y) => { x.PlanList.forEach((y) => {
...@@ -1639,6 +1190,11 @@ export default { ...@@ -1639,6 +1190,11 @@ export default {
ClassId: 0, ClassId: 0,
}; };
this.classList.unshift(obj); this.classList.unshift(obj);
if (this.msg.ClassId > 0 && isClear == 0) {
this.currentClass = this.classList.find((x) => {
return x.ClassId == this.msg.ClassId ;
}).PlanList;
}
} }
}); });
}, },
...@@ -1686,13 +1242,11 @@ export default { ...@@ -1686,13 +1242,11 @@ export default {
addPlan() { addPlan() {
var planObj = { var planObj = {
DateList: [], DateList: [],
TimeList: [ TimeList: [{
{
StartTime: "", StartTime: "",
EndTime: "", EndTime: "",
TimeHour: "", TimeHour: "",
}, }, ],
],
}; };
this.DefaultPlanTimeList.push(planObj); this.DefaultPlanTimeList.push(planObj);
}, },
...@@ -1773,8 +1327,7 @@ export default { ...@@ -1773,8 +1327,7 @@ export default {
return; return;
} }
// 1 文档 2 数据 3 图片 // 1 文档 2 数据 3 图片
let typeArr = [ let typeArr = [{
{
stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP", stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP",
type: 3, type: 3,
}, },
...@@ -1822,7 +1375,8 @@ export default { ...@@ -1822,7 +1375,8 @@ export default {
); );
}, },
}, },
}; };
</script> </script>
<style> <style>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
border: 1px solid #2961FE; border: 1px solid #2961FE;
border-radius: 50%; border-radius: 50%;
cursor: pointer; cursor: pointer;
color:#2961FE; color: #2961FE;
} }
.OCourseTable { .OCourseTable {
...@@ -24,15 +24,19 @@ ...@@ -24,15 +24,19 @@
height: 40px; height: 40px;
background-color: rgb(238, 238, 239); background-color: rgb(238, 238, 239);
} }
.redStuStyle{
color:red; .redStuStyle {
color: red;
} }
.blaStuStyle{
color:#000; .blaStuStyle {
color: #000;
} }
.classProgress { .classProgress {
color: var(--q-color-primary); color: var(--q-color-primary);
} }
</style> </style>
<template> <template>
<div class="page-body"> <div class="page-body">
...@@ -43,8 +47,8 @@ ...@@ -43,8 +47,8 @@
label="班级名称" @clear="getClassList" maxlength="20" /> label="班级名称" @clear="getClassList" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input @change="getClassList" clearable standout="bg-primary text-white" v-model="msg.ClassNo" <q-input @change="getClassList" clearable standout="bg-primary text-white" v-model="msg.ClassNo" label="班号"
label="班号" @clear="getClassList" maxlength="20" /> @clear="getClassList" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="getClassList" standout="bg-primary text-white" option-value="Id" option-label="Name" <q-select @input="getClassList" standout="bg-primary text-white" option-value="Id" option-label="Name"
...@@ -85,7 +89,7 @@ ...@@ -85,7 +89,7 @@
<div style="display: flex;align-items: center;"> <div style="display: flex;align-items: center;">
<q-avatar size="md" style="background:#d4dfff;color:#2961FE;font-weight:bold;" v-if="props.row.ClassName"> <q-avatar size="md" style="background:#d4dfff;color:#2961FE;font-weight:bold;" v-if="props.row.ClassName">
{{GetFirst(props.row.ClassName)}}</q-avatar> {{GetFirst(props.row.ClassName)}}</q-avatar>
<div > <div>
<span style="color:#2961FE;margin-left:10px;cursor:pointer;" @click="getClassInfo(props.row)" <span style="color:#2961FE;margin-left:10px;cursor:pointer;" @click="getClassInfo(props.row)"
title="点击查看详情">{{props.row.ClassName}}</span> title="点击查看详情">{{props.row.ClassName}}</span>
<div style="margin-left: 10px;">{{props.row.ClassNo}}</div> <div style="margin-left: 10px;">{{props.row.ClassNo}}</div>
...@@ -111,7 +115,8 @@ ...@@ -111,7 +115,8 @@
<th>课程名称</th> <th>课程名称</th>
<th>课时数</th> <th>课时数</th>
</tr> </tr>
<tr v-for="(sItem,sIndex) in props.row.OtherCourseList" style="border-bottom:1px dashed #d1d1d1;"> <tr v-for="(sItem,sIndex) in props.row.OtherCourseList"
style="border-bottom:1px dashed #d1d1d1;">
<td>{{sItem.CourseName}}</td> <td>{{sItem.CourseName}}</td>
<td>{{sItem.ClassHours}}</td> <td>{{sItem.ClassHours}}</td>
</tr> </tr>
...@@ -138,13 +143,14 @@ ...@@ -138,13 +143,14 @@
</template> </template>
<template v-slot:body-cell-ClassPersion="props"> <template v-slot:body-cell-ClassPersion="props">
<q-td auto-width :props="props"> <q-td auto-width :props="props">
<span :class="{'redStuStyle':props.row.ClassPersion>props.row.OrderStudentCount,'blaStuStyle':props.row.ClassPersion==props.row.OrderStudentCount}" <span
>{{props.row.ClassPersion}}-{{props.row.OrderStudentCount}}</span> :class="{'redStuStyle':props.row.ClassPersion>props.row.OrderStudentCount,'blaStuStyle':props.row.ClassPersion==props.row.OrderStudentCount}">{{props.row.ClassPersion}}-{{props.row.OrderStudentCount}}</span>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-CompleteProgress="props"> <template v-slot:body-cell-CompleteProgress="props">
<q-td auto-width :props="props"> <q-td auto-width :props="props">
<span :class="{'classProgress':props.row.UsePlanNum<props.row.TotalPlanNum,'blaStuStyle':props.row.UsePlanNum==props.row.TotalPlanNum}">{{props.row.UsePlanNum}}/{{props.row.TotalPlanNum}}</span> <span
:class="{'classProgress':props.row.UsePlanNum<props.row.TotalPlanNum,'blaStuStyle':props.row.UsePlanNum==props.row.TotalPlanNum}">{{props.row.UsePlanNum}}/{{props.row.TotalPlanNum}}</span>
</q-td> </q-td>
</template> </template>
<template v-slot:bottom> <template v-slot:bottom>
...@@ -153,8 +159,8 @@ ...@@ -153,8 +159,8 @@
</template> </template>
<template v-slot:body-cell-optioned="props"> <template v-slot:body-cell-optioned="props">
<q-td :props="props"> <q-td :props="props">
<q-btn v-if="props.row.ClassStatus==1" flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑" <q-btn v-if="props.row.ClassStatus==1" flat size="xs" icon="edit" color="accent" style="font-weight:400"
@click="EditCourse(props.row)" /> label="编辑" @click="EditCourse(props.row)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;"> <q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list> <q-list>
<q-item clickable v-close-popup @click="gotoOrder(props.row)"> <q-item clickable v-close-popup @click="gotoOrder(props.row)">
...@@ -187,17 +193,17 @@ ...@@ -187,17 +193,17 @@
<q-item-label>月度课耗</q-item-label> <q-item-label>月度课耗</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item clickable v-close-popup @click.stop="getClassItem(props.row)"> <q-item clickable v-close-popup v-if="props.row.ClassStatus!=3" @click.stop="getClassItem(props.row)">
<q-item-section> <q-item-section>
<q-item-label>状态变更</q-item-label> <q-item-label>状态变更</q-item-label>
</q-item-section> </q-item-section>
</q-item> </q-item>
<!-- <q-item clickable v-close-popup @click.stop="getStudent(props.row.ClassId)"> <q-item clickable v-close-popup @click.stop="getStudent(props.row.ClassId)">
<q-item-section> <q-item-section>
<q-item-label>未完成学员名单</q-item-label> <q-item-label>未完成学员名单</q-item-label>
</q-item-section> </q-item-section>
</q-item> --> </q-item>
<q-item v-if="props.row.ClassStatus!=3" clickable v-close-popup @click="classApply(props.row.ClassId)"> <q-item v-if="props.row.ClassStatus!=3" clickable v-close-popup @click="classApply(props.row)">
<q-item-section> <q-item-section>
<q-item-label>调课申请</q-item-label> <q-item-label>调课申请</q-item-label>
</q-item-section> </q-item-section>
...@@ -217,8 +223,8 @@ ...@@ -217,8 +223,8 @@
</othercourseForm> </othercourseForm>
<changestatusForm v-if="isShowStatusChange" :seting-obj="classObjOption" @close="closeClassSaveForm" <changestatusForm v-if="isShowStatusChange" :seting-obj="classObjOption" @close="closeClassSaveForm"
@success="refreshPage"></changestatusForm> @success="refreshPage"></changestatusForm>
<change-class-form v-if="isShowTiaoke" :ClassId="commonClassId" @close="closeClassSaveForm" @success="refreshPage"></change-class-form> <change-class-form v-if="isShowTiaoke" :seting-obj="classObjOption" @close="closeClassSaveForm"
@success="refreshPage"></change-class-form>
</div> </div>
</div> </div>
</template> </template>
...@@ -335,7 +341,7 @@ ...@@ -335,7 +341,7 @@
TeacherName: '', //带班老师 TeacherName: '', //带班老师
CourseName: '', //学习课程 CourseName: '', //学习课程
School_Id: -1, //关联校区 School_Id: -1, //关联校区
ClassNo:'',//班号 ClassNo: '', //班号
}, },
//班级状态 //班级状态
classStatusList: [], classStatusList: [],
...@@ -346,10 +352,9 @@ ...@@ -346,10 +352,9 @@
isShowClassForm: false, //是否显示新增修改弹窗 isShowClassForm: false, //是否显示新增修改弹窗
isShowClassInfo: false, //是否显示课程信息 isShowClassInfo: false, //是否显示课程信息
IsShowOtherCourse: false, //是否显示其他课程 IsShowOtherCourse: false, //是否显示其他课程
TeacherList:[], TeacherList: [],
isShowStatusChange:false, isShowStatusChange: false,//是否显示修改状态弹窗
isShowTiaoke:false, isShowTiaoke: false, //是否显示调课申请
commonClassId:0
} }
}, },
created() { created() {
...@@ -416,22 +421,17 @@ ...@@ -416,22 +421,17 @@
this.isShowStatusChange = true; this.isShowStatusChange = true;
}, },
gotoOrder(item) { gotoOrder(item) {
var tempStr = '/course/classorder?ClassId=' + item.ClassId; this.OpenNewUrl('/course/classorder', {
this.$router.push({ ClassId: item.ClassId,
path: tempStr
}); });
}, },
//跳转到收支明细 //跳转到收支明细
goPayment(item) { goPayment(item) {
this.$router.push({ this.OpenNewUrl('/course/paymentDetail', {
path: 'paymentDetail',
query: {
ClassId: item.ClassId, ClassId: item.ClassId,
School_Id: item.School_Id, School_Id: item.School_Id,
ClassName: encodeURI(item.ClassName), ClassName: encodeURI(item.ClassName),
blank: 'y' });
}
})
}, },
//获取校区列表 //获取校区列表
getSchool() { getSchool() {
...@@ -453,7 +453,7 @@ ...@@ -453,7 +453,7 @@
getClassStatus(status) { getClassStatus(status) {
queryClassStatusList({}).then(res => { queryClassStatusList({}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.classStatusList= res.Data; this.classStatusList = res.Data;
} }
}).catch(() => {}) }).catch(() => {})
}, },
...@@ -515,16 +515,16 @@ ...@@ -515,16 +515,16 @@
this.classObjOption = obj; this.classObjOption = obj;
this.isShowClassInfo = true; this.isShowClassInfo = true;
}, },
gomonthLessonCost(row){ gomonthLessonCost(row) {
let ClassName = encodeURI(row.ClassName) let ClassName = encodeURI(row.ClassName)
this.OpenNewUrl('/course/monthLessonCost' , { this.OpenNewUrl('/course/monthLessonCost', {
ClassId: row.ClassId, ClassId: row.ClassId,
ClassName: ClassName, ClassName: ClassName,
}); });
}, },
//跳转到课程大纲 //跳转到课程大纲
goChapter(CouseId){ goChapter(CouseId) {
this.OpenNewUrl('/course/chapter' , { this.OpenNewUrl('/course/chapter', {
CourseId: CouseId CourseId: CouseId
}); });
}, },
...@@ -541,8 +541,9 @@ ...@@ -541,8 +541,9 @@
}) })
}, },
//调课申请 //调课申请
classApply(ClassId){ classApply(item) {
this.commonClassId = ClassId;
this.classObjOption = item;
this.isShowTiaoke = true; this.isShowTiaoke = true;
} }
} }
......
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