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

页面修改

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