Commit 31f962d6 authored by zhengke's avatar zhengke

修改

parent c5ea0cad
...@@ -500,7 +500,7 @@ export default { ...@@ -500,7 +500,7 @@ export default {
}); });
//调用父页面成功方法 //调用父页面成功方法
this.$emit("success"); this.$emit("success");
this.IsShowBackClassDialog = false; this.$emit('close');
} }
}); });
}, },
......
...@@ -440,7 +440,7 @@ ...@@ -440,7 +440,7 @@
}) })
//调用父页面成功方法 //调用父页面成功方法
this.$emit('success'); this.$emit('success');
this.IsShowContinueClassDialog = false this.$emit('close');
} }
}) })
}, },
......
<style> <style>
.Title_remark { .Title_remark {
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
margin-left: 20px; margin-left: 20px;
} }
.conTinuCheckdTable {
width: 100%;
height: auto;
text-align: left;
margin-top: 20px;
font-size: 12px;
}
.conTinuCheckdTable th {
color: #888888;
}
.enrollTotalSearchTable {
width: 100%;
}
.backContius {
color: #2961fe;
cursor: pointer;
}
.contiue_Top {
width: 100%;
padding: 10px;
border-bottom: 1px solid #d1d1d1;
}
.continus_ClassChoice {
padding: 20px;
max-height: 460px;
overflow: auto;
}
.el-picker-panel {
z-index: 9999 !important;
}
.Sysuser_Date .el-range-editor .el-range-input {
background-color: transparent;
}
.Sysuser_Date .el-range-editor.el-input__inner {
background-color: transparent;
}
.conChoiceTeacherTable {
width: 100%;
border: 1px solid #d1d1d1;
}
.continus_ClassChoice::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.continus_ClassChoice::-webkit-scrollbar-thumb {
border-radius: 4px;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.continus_ClassChoice::-webkit-scrollbar-track {
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #ededed;
}
.contius_List {
width: 100%;
height: 130px;
border: 1px solid #d1d1d1;
border-radius: 5px;
margin-bottom: 15px;
font-size: 12px;
box-shadow: 5px 5px 5px #d4d0d0;
}
.continu_Div {
display: inline-block;
min-height: 90px;
border-right: 1px dashed #d1d1d1;
padding: 10px;
color: #000;
}
.continu_Div:last-child {
border-right: 0;
}
.continu_Btm {
width: 100%;
height: 30px;
padding: 10px;
border-top: 1px solid #d1d1d1;
}
._font_size12 {
font-size: 12px !important;
}
._addUpload_box {
display: block;
margin-top: 15px;
}
._addUpload_box img {
width: 100%;
}
._addUpload_box>div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
._addUpload_box>div:hover {
background-color: #f5f5f5;
}
._addFile_name {
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
._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 {
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
._addUpload_box .icon-yasuobao {
color: gray;
}
._show_img_box {
position: fixed;
background: rgba(0, 0, 0, 0.6);
left: 0;
top: 0;
width: 100vw !important;
height: 100vh;
z-index: 999;
text-align: center;
}
._addUpload_tips {
font-size: 12px;
color: #999999;
}
._jump_page {
cursor: pointer;
text-decoration: underline;
}
._jump_page:hover {
color: #c94052;
}
.stop .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
.conTinuCheckdTable {
width: 100%;
height: auto;
text-align: left;
margin-top: 20px;
font-size: 12px;
}
.conTinuCheckdTable th {
color: #888888;
}
.enrollTotalSearchTable {
width: 100%;
}
.backContius {
color: #2961fe;
cursor: pointer;
}
.contiue_Top {
width: 100%;
padding: 10px;
border-bottom: 1px solid #d1d1d1;
}
.continus_ClassChoice {
padding: 20px;
max-height: 460px;
overflow: auto;
}
.el-picker-panel {
z-index: 9999 !important;
}
.Sysuser_Date .el-range-editor .el-range-input {
background-color: transparent;
}
.Sysuser_Date .el-range-editor.el-input__inner {
background-color: transparent;
}
.conChoiceTeacherTable {
width: 100%;
border: 1px solid #d1d1d1;
}
.continus_ClassChoice::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.continus_ClassChoice::-webkit-scrollbar-thumb {
border-radius: 4px;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.continus_ClassChoice::-webkit-scrollbar-track {
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #ededed;
}
.contius_List {
width: 100%;
height: 130px;
border: 1px solid #d1d1d1;
border-radius: 5px;
margin-bottom: 15px;
font-size: 12px;
box-shadow: 5px 5px 5px #d4d0d0;
}
.continu_Div {
display: inline-block;
min-height: 90px;
border-right: 1px dashed #d1d1d1;
padding: 10px;
color: #000;
}
.continu_Div:last-child {
border-right: 0;
}
.continu_Btm {
width: 100%;
height: 30px;
padding: 10px;
border-top: 1px solid #d1d1d1;
}
._font_size12 {
font-size: 12px !important;
}
._addUpload_box {
display: block;
margin-top: 15px;
}
._addUpload_box img {
width: 100%;
}
._addUpload_box > div {
float: left;
width: 138px;
height: 92px;
border: 1px dashed rgba(210, 210, 210, 1);
border-radius: 2px;
cursor: pointer;
margin-bottom: 10px;
padding: 5px;
margin-right: 10px;
position: relative;
}
._addUpload_box > div:hover {
background-color: #f5f5f5;
}
._addFile_name {
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
._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 {
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
._addUpload_box .icon-yasuobao {
color: gray;
}
._show_img_box {
position: fixed;
background: rgba(0, 0, 0, 0.6);
left: 0;
top: 0;
width: 100vw !important;
height: 100vh;
z-index: 999;
text-align: center;
}
._addUpload_tips {
font-size: 12px;
color: #999999;
}
._jump_page {
cursor: pointer;
text-decoration: underline;
}
._jump_page:hover {
color: #c94052;
}
.stop .el-upload-dragger {
font-size: 28px;
color: #8c939d;
width: 126px;
height: 80px;
line-height: 41px;
text-align: center;
}
</style> </style>
<!--续课--> <!--续课-->
<template> <template>
<q-dialog <q-dialog v-model="IsShowContinueClassDialog" content-class="bg-grey-1" persistent transition-show="scale"
v-model="IsShowContinueClassDialog" transition-hide="scale">
content-class="bg-grey-1"
persistent
transition-show="scale"
transition-hide="scale"
>
<q-card style="width: 850px; max-width: 900px" class="stop"> <q-card style="width: 850px; max-width: 900px" class="stop">
<template v-if="isShowTuike"> <template v-if="isShowTuike">
<q-card-section> <q-card-section>
<div class="text-h6"> <div class="text-h6">
{{ transMsg.ChangeType == 1 ? "转班申请" : "分拆" }} {{ transMsg.ChangeType == 1 ? "转班申请" : "分拆" }}
<span class="Title_remark" <span class="Title_remark">注:找不到学员?请确认学员是否已退课或已续班</span>
>注:找不到学员?请确认学员是否已退课或已续班</span
>
</div> </div>
</q-card-section> </q-card-section>
<div style="margin: 20px; border-bottom: 1px solid #e2e2e2"> <div style="margin: 20px; border-bottom: 1px solid #e2e2e2">
<div <div class="apply_List" v-for="(item, index) in studentList" v-if="item.IsShow">
class="apply_List"
v-for="(item, index) in studentList"
v-if="item.IsShow"
>
<span style="width: 15%">{{ item.GuestName }}</span> <span style="width: 15%">{{ item.GuestName }}</span>
<span style="width: 7%">{{ item.SexStr }}</span> <span style="width: 7%">{{ item.SexStr }}</span>
<span style="width: 8%">{{ item.Age }}</span> <span style="width: 8%">{{ item.Age }}</span>
<span style="width: 20%">{{ item.Mobile }}</span> <span style="width: 20%">{{ item.Mobile }}</span>
<span style="width: 20%"> <span style="width: 20%">
<template v-if="item.ClassHours" <template v-if="item.ClassHours">已学:{{ item.ClassHours }}课时</template>
>已学:{{ item.ClassHours }}课时</template
>
</span> </span>
<span style="width: 10%">{{ item.GuestStateStr }}</span> <span style="width: 10%">{{ item.GuestStateStr }}</span>
<span style="width: 20%" class="guest_Status"> <span style="width: 20%" class="guest_Status">
...@@ -253,10 +245,7 @@ ...@@ -253,10 +245,7 @@
</template> </template>
</span> </span>
</div> </div>
<table <table class="conTinuCheckdTable" v-if="classItem.ClassId > 0 && studentList.length > 0 && isShowAdd">
class="conTinuCheckdTable"
v-if="classItem.ClassId > 0 && studentList.length > 0 && isShowAdd"
>
<tr> <tr>
<th>续费班级</th> <th>续费班级</th>
<th>续费班级</th> <th>续费班级</th>
...@@ -267,11 +256,7 @@ ...@@ -267,11 +256,7 @@
</tr> </tr>
<tr> <tr>
<td> <td>
<span <span style="color: #2961fe; cursor: pointer" @click="getRenewClassList()">+点击选择班级</span>
style="color: #2961fe; cursor: pointer"
@click="getRenewClassList()"
>+点击选择班级</span
>
</td> </td>
<td>{{ classItem.ClassName }}</td> <td>{{ classItem.ClassName }}</td>
<td>¥{{ classItem.SellPrice }}</td> <td>¥{{ classItem.SellPrice }}</td>
...@@ -280,15 +265,10 @@ ...@@ -280,15 +265,10 @@
<td>{{ classItem.OpenTime }}</td> <td>{{ classItem.OpenTime }}</td>
</tr> </tr>
</table> </table>
<table <table class="conTinuCheckdTable" v-else-if="studentList.length > 0 && isShowAdd">
class="conTinuCheckdTable"
v-else-if="studentList.length > 0 && isShowAdd"
>
<tr> <tr>
<td> <td>
<span class="backContius" @click="getRenewClassList()" <span class="backContius" @click="getRenewClassList()">+点击选择班级</span>
>+点击选择班级</span
>
</td> </td>
<td></td> <td></td>
<td></td> <td></td>
...@@ -299,71 +279,31 @@ ...@@ -299,71 +279,31 @@
</table> </table>
<div class="row" style="margin-top: 20px"> <div class="row" style="margin-top: 20px">
<template v-if="transMsg.ChangeType == 1"> <template v-if="transMsg.ChangeType == 1">
<q-input <q-input filled v-model="transMsg.OutTime" class="col-6 q-pr-lg" mask="date" label="转出日期">
filled
v-model="transMsg.OutTime"
class="col-6 q-pr-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="transMsg.OutTime" :options="optionsFn2" @input="getOutTime" />
transition-show="scale"
transition-hide="scale"
>
<q-date
v-model="transMsg.OutTime"
:options="optionsFn2"
@input="getOutTime"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
</template> </template>
<q-input <q-input filled v-model="transMsg.EffectiveDate" class="col-6" mask="date" label="生效日期">
filled
v-model="transMsg.EffectiveDate"
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="qDateProxy2" transition-show="scale" transition-hide="scale">
ref="qDateProxy2" <q-date v-model="transMsg.EffectiveDate" :options="optionsFn" @input="checkEffectDate()" />
transition-show="scale"
transition-hide="scale"
>
<q-date
v-model="transMsg.EffectiveDate"
:options="optionsFn"
@input="checkEffectDate()"
/>
</q-popup-proxy> </q-popup-proxy>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
</div> </div>
<q-input <q-input filled stack-label :dense="false" v-model="transMsg.Remarks" style="margin-top: 20px" type="textarea"
filled class="col-12" :label="transMsg.ChangeType == 1 ? '转班原因' : '分拆原因'" />
stack-label
:dense="false"
v-model="transMsg.Remarks"
style="margin-top: 20px"
type="textarea"
class="col-12"
:label="transMsg.ChangeType == 1 ? '转班原因' : '分拆原因'"
/>
<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> --> <!-- <p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p> -->
...@@ -371,20 +311,12 @@ ...@@ -371,20 +311,12 @@
<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
...@@ -405,53 +337,24 @@ ...@@ -405,53 +337,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") }}
...@@ -464,107 +367,44 @@ ...@@ -464,107 +367,44 @@
<q-separator /> <q-separator />
</div> </div>
<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="closeContinueClassForm" />
label="取消" <q-btn :label="transMsg.ChangeType == 1 ? '确认转班' : '确认分拆'" color="accent" class="q-px-md"
flat style="font-weight: 400 !important" @click="setRenewOrder" />
color="grey-10"
style="font-weight: 400 !important"
@click="closeContinueClassForm"
/>
<q-btn
:label="transMsg.ChangeType == 1 ? '确认转班' : '确认分拆'"
color="accent"
class="q-px-md"
style="font-weight: 400 !important"
@click="setRenewOrder"
/>
</q-card-actions> </q-card-actions>
</template> </template>
<template v-else> <template v-else>
<div class="contiue_Top"> <div class="contiue_Top">
<span class="backContius" @click="isShowTuike = true"> <span class="backContius" @click="isShowTuike = true">
<i <i style="font-size: 18px; margin-left: 15px" title="返回" class="iconfont icon-fanhui"></i></span>
style="font-size: 18px; margin-left: 15px"
title="返回"
class="iconfont icon-fanhui"
></i
></span>
<span style="margin-left: 20px">班级选择 </span> <span style="margin-left: 20px">班级选择 </span>
</div> </div>
<div class="col row wrap q-mr-lg q-col-gutter-md" style="margin: 10px"> <div class="col row wrap q-mr-lg q-col-gutter-md" style="margin: 10px">
<div class="col-3"> <div class="col-3">
<q-select <q-select @input="getRenewClassList" filled option-value="SId" option-label="SName"
@input="getRenewClassList" v-model="classMsg.School_Id" :options="schoolList" emit-value map-options label="关联校区" />
filled
option-value="SId"
option-label="SName"
v-model="classMsg.School_Id"
:options="schoolList"
emit-value
map-options
label="关联校区"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select filled stack-label option-value="CTypeId" option-label="CTypeName" v-model="classMsg.ClassType"
filled ref="CouseId" :options="classTypeList" label="班级类型" :dense="false" emit-value map-options />
stack-label
option-value="CTypeId"
option-label="CTypeName"
v-model="classMsg.ClassType"
ref="CouseId"
:options="classTypeList"
label="班级类型"
:dense="false"
emit-value
map-options
/>
</div> </div>
<div class="col-5 Sysuser_Date"> <div class="col-5 Sysuser_Date">
<q-field filled> <q-field filled>
 <template v-slot:control>  <template v-slot:control>
<el-date-picker <el-date-picker v-model="dateList" @change="getRenewClassList()" value-format="yyyy-MM-dd"
v-model="dateList" type="daterange" style="border: none" range-separator="至" start-placeholder="开始时间"
@change="getRenewClassList()" end-placeholder="结束时间">
value-format="yyyy-MM-dd"   </el-date-picker>       
type="daterange"
style="border: none"
range-separator="至"
start-placeholder="开始时间"
end-placeholder="结束时间"
>
  </el-date-picker
>       
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input <q-input @change="getRenewClassList" clearable filled v-model="classMsg.TeacherName" label="带班老师"
@change="getRenewClassList" @clear="getRenewClassList" maxlength="20" />
clearable
filled
v-model="classMsg.TeacherName"
label="带班老师"
@clear="getRenewClassList"
maxlength="20"
/>
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select <q-select filled stack-label use-input option-value="CourseId" option-label="CourseName"
filled v-model="classMsg.CouseId" :options="ClassList" label="学习课程" :dense="false" emit-value map-options
stack-label @filter="filterFn" @input="getRenewClassList">
use-input
option-value="CourseId"
option-label="CourseName"
v-model="classMsg.CouseId"
:options="ClassList"
label="学习课程"
:dense="false"
emit-value
map-options
@filter="filterFn"
@input="getRenewClassList"
>
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
<q-item-section class="text-grey"> <q-item-section class="text-grey">
...@@ -595,32 +435,19 @@ ...@@ -595,32 +435,19 @@
<div class="continu_Div" style="width: 20%"> <div class="continu_Div" style="width: 20%">
<div>价格</div> <div>价格</div>
<div style="margin: 5px 0">售价:{{ cItem.NewSellPrice }}</div> <div style="margin: 5px 0">售价:{{ cItem.NewSellPrice }}</div>
<template <template v-if="
v-if="
cItem.ClassStepPriceList && cItem.ClassStepPriceList &&
cItem.ClassStepPriceList.length > 0 cItem.ClassStepPriceList.length > 0
" ">
>
更多优惠价格 更多优惠价格
<span <span class="iconfont icon-xiangxia" style="color: #2961fe; font-size: 10px"></span>
class="iconfont icon-xiangxia"
style="color: #2961fe; font-size: 10px"
></span>
<q-popup-proxy> <q-popup-proxy>
<q-banner> <q-banner>
<div class="price-popup"> <div class="price-popup">
<div <div class="price-popup-item" v-for="(x, index2) in cItem.ClassStepPriceList" :key="index2"
class="price-popup-item" style="margin: 5px 0">
v-for="(x, index2) in cItem.ClassStepPriceList" <span style="color: #2d2d2d; font-weight: bold">{{ x.PersionNum }}人报名<span
:key="index2" style="color: #2860fb; margin-left: 15px">{{ x.PersionPrice.toFixed(2) }}</span></span>
style="margin: 5px 0"
>
<span style="color: #2d2d2d; font-weight: bold"
>{{ x.PersionNum }}人报名<span
style="color: #2860fb; margin-left: 15px"
>{{ x.PersionPrice.toFixed(2) }}</span
></span
>
</div> </div>
</div> </div>
</q-banner> </q-banner>
...@@ -634,44 +461,26 @@ ...@@ -634,44 +461,26 @@
</div> </div>
<div> <div>
已招收 已招收
<span style="color: blue">{{ cItem.OrderStudentCount }}</span <span style="color: blue">{{ cItem.OrderStudentCount }}</span>
>
</div> </div>
</div> </div>
<div class="continu_Div" style="width: 15%"> <div class="continu_Div" style="width: 15%">
<q-btn <q-btn label="选择此班" size="sm" @click="clickClassItem(cItem)" color="accent q-px-md" style="
label="选择此班"
size="sm"
@click="clickClassItem(cItem)"
color="accent q-px-md"
style="
font-weight: 400 !important; font-weight: 400 !important;
display: block; display: block;
margin: 25px 0 0 10px; margin: 25px 0 0 10px;
padding: 0; padding: 0;
" " />
/>
</div> </div>
</div> </div>
<div class="continu_Btm">OP备注 {{ cItem.InnerRemark }}</div> <div class="continu_Btm">OP备注 {{ cItem.InnerRemark }}</div>
</div> </div>
<q-pagination <q-pagination class="full-width justify-end" v-model="classMsg.pageIndex" color="primary"
class="full-width justify-end" :max="classPageCount" :input="true" @input="changePage" />
v-model="classMsg.pageIndex"
color="primary"
:max="classPageCount"
:input="true"
@input="changePage"
/>
</div> </div>
</template> </template>
<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;
...@@ -679,19 +488,9 @@ ...@@ -679,19 +488,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>
...@@ -701,427 +500,433 @@ ...@@ -701,427 +500,433 @@
</q-dialog> </q-dialog>
</template> </template>
<script> <script>
import { import {
getSchoolDropdown, getSchoolDropdown,
SetOrderChange, SetOrderChange,
SetOrderSplit, SetOrderSplit,
} from "../../api/school/index"; } from "../../api/school/index";
import { GetClassTypeList } from "../../api/system/index"; import {
import { queryCourseDropdownList } from "../../api/course/index"; GetClassTypeList
import { } from "../../api/system/index";
getOrderGuestPageList, import {
saveRenewOrder, queryCourseDropdownList
queryRenewClass, } from "../../api/course/index";
} from "../../api/sale/sale"; import {
import { UploadSelfFile } from "../../api/common/common"; getOrderGuestPageList,
export default { saveRenewOrder,
name: "backclass-form", queryRenewClass,
props: { } from "../../api/sale/sale";
saveObj: { import {
type: Object, UploadSelfFile
default: null, } from "../../api/common/common";
}, export default {
ChangeType: { name: "backclass-form",
type: Number, props: {
default: null, saveObj: {
}, type: Object,
}, default: null,
data() {
return {
IsShowContinueClassDialog: true,
continueClassMsg: {
OrderId: 0,
ClassId: 0,
pageIndex: 1,
pageSize: 1000,
GuestState: 1,
}, },
SaleRemark: "", //申请理由 ChangeType: {
loading: false, type: Number,
studentList: [], //学员列表 default: null,
chooseItem: {}, //当前选择项
classMsg: {
pageIndex: 1, //当前页码
pageSize: 5, //每页显示条数
rowsPerPage: 5,
School_Id: 0, //校区
ClassType: 0, //班级类型
StartTime: "", //开课开始时间
EndTime: "", //开课结束时间
TeacherName: "", //教师姓名
CouseId: 0, //课程编号
ClassId: 0, //原班级编号
}, },
transMsg: { },
Id: 0, data() {
SourceOrderId: 0, //原订单编号 return {
OrderGuestId: 0, //学员编号 IsShowContinueClassDialog: true,
ChangeType: 1, //变更类型 1转班 2分拆 continueClassMsg: {
NewClassId: 0, //新班级编号 OrderId: 0,
NewCourseId: 0, //新课程编号 ClassId: 0,
EffectiveDate: "", //生效日期 pageIndex: 1,
OutTime: "", //转出本班时间 pageSize: 1000,
Remarks: "", //变更原因 GuestState: 1,
ReceiptFileList: [], },
SaleRemark: "", //申请理由
loading: false,
studentList: [], //学员列表
chooseItem: {}, //当前选择项
classMsg: {
pageIndex: 1, //当前页码
pageSize: 5, //每页显示条数
rowsPerPage: 5,
School_Id: 0, //校区
ClassType: 0, //班级类型
StartTime: "", //开课开始时间
EndTime: "", //开课结束时间
TeacherName: "", //教师姓名
CouseId: 0, //课程编号
ClassId: 0, //原班级编号
},
transMsg: {
Id: 0,
SourceOrderId: 0, //原订单编号
OrderGuestId: 0, //学员编号
ChangeType: 1, //变更类型 1转班 2分拆
NewClassId: 0, //新班级编号
NewCourseId: 0, //新课程编号
EffectiveDate: "", //生效日期
OutTime: "", //转出本班时间
Remarks: "", //变更原因
ReceiptFileList: [],
},
classPageCount: 0,
calssData: [],
classItem: {}, //当前点击的班级
isShowTuike: true, //显示退课信息
schoolList: [], //校区列表
classTypeList: [], //班级类型
dateList: [], //日期
ClassList: [], //学习课程
AllClassList: [],
isShowAdd: false,
saveMsg: [],
picIsShow: false,
picObj: [],
initialIndex: 0,
};
},
created() {
this.continueClassMsg.OrderId = this.saveObj.OrderId;
this.continueClassMsg.ClassId = this.saveObj.ClassId;
this.classMsg.ClassId = this.saveObj.ClassId;
this.transMsg.ChangeType = this.ChangeType;
this.getSchool();
this.GetClassTypeList();
this.CourseList();
this.getStudentList();
},
methods: {
optionsFn(date) {
if (this.transMsg.OutTime == "") {
var myDate = new Date();
let month = myDate.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
var toDay = myDate.getFullYear() + "/" + month + "/" + myDate.getDate();
return date >= toDay;
} else {
return date >= this.transMsg.OutTime;
}
}, },
classPageCount: 0, optionsFn2(date) {
calssData: [],
classItem: {}, //当前点击的班级
isShowTuike: true, //显示退课信息
schoolList: [], //校区列表
classTypeList: [], //班级类型
dateList: [], //日期
ClassList: [], //学习课程
AllClassList: [],
isShowAdd: false,
saveMsg: [],
picIsShow: false,
picObj: [],
initialIndex: 0,
};
},
created() {
this.continueClassMsg.OrderId = this.saveObj.OrderId;
this.continueClassMsg.ClassId = this.saveObj.ClassId;
this.classMsg.ClassId = this.saveObj.ClassId;
this.transMsg.ChangeType = this.ChangeType;
this.getSchool();
this.GetClassTypeList();
this.CourseList();
this.getStudentList();
},
methods: {
optionsFn(date) {
if (this.transMsg.OutTime == "") {
var myDate = new Date(); var myDate = new Date();
let month = myDate.getMonth() + 1; let month = myDate.getMonth() + 1;
if (month < 10) { if (month < 10) {
month = "0" + month; month = "0" + month;
} }
var toDay = myDate.getFullYear() + "/" + month + "/" + myDate.getDate(); var toDay = myDate.getFullYear() + "/" + month + "/" + myDate.getDate();
return date >= toDay; return date > toDay;
} else { },
return date >= this.transMsg.OutTime; //取消申请
} cancelApply() {
}, this.chooseItem = {};
optionsFn2(date) { this.classItem = {};
var myDate = new Date(); this.transMsg.SourceOrderId = 0;
let month = myDate.getMonth() + 1; this.transMsg.OrderGuestId = 0;
if (month < 10) {
month = "0" + month; if (this.studentList && this.studentList.length > 0) {
} this.studentList.forEach((item) => {
var toDay = myDate.getFullYear() + "/" + month + "/" + myDate.getDate(); item.IsShow = true;
return date > toDay; });
},
//取消申请
cancelApply() {
this.chooseItem = {};
this.classItem = {};
this.transMsg.SourceOrderId = 0;
this.transMsg.OrderGuestId = 0;
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = true;
});
}
this.isShowAdd = false;
},
//当前点击项
clickItem(item) {
if (this.studentList && this.studentList.length > 0) {
this.studentList.forEach((item) => {
item.IsShow = false;
});
}
this.isShowAdd = true;
item.IsShow = true;
this.chooseItem = item;
this.transMsg.SourceOrderId = item.OrderId;
this.transMsg.OrderGuestId = item.Id;
// this.getRenewClassList();
},
//关闭弹窗
closeContinueClassForm() {
this.IsShowContinueClassDialog = false;
this.SaleRemark = "";
this.continueClassMsg.OrderId = 0;
this.continueClassMsg.ClassId = 0;
this.chooseItem = {};
this.$emit("close");
},
//获取订单学员列表
getStudentList() {
this.studentList = [];
getOrderGuestPageList(this.continueClassMsg).then((res) => {
if (res.Code == 1) {
this.studentList = res.Data.PageData;
} }
}); this.isShowAdd = false;
}, },
//获取续课列表 //当前点击项
getRenewClassList() { clickItem(item) {
this.isShowTuike = false; if (this.studentList && this.studentList.length > 0) {
if (this.dateList && this.dateList.length > 0) { this.studentList.forEach((item) => {
this.classMsg.StartTime = this.dateList[0]; item.IsShow = false;
this.classMsg.EndTime = this.dateList[1]; });
} else {
this.classMsg.StartTime = "";
this.classMsg.EndTime = "";
}
queryRenewClass(this.classMsg).then((res) => {
if (res.Code == 1) {
this.classPageCount = res.Data.PageCount;
this.calssData = res.Data.PageData;
} }
}); this.isShowAdd = true;
}, item.IsShow = true;
clickClassItem(cItem) { this.chooseItem = item;
this.classItem = cItem;
this.isShowTuike = true; this.transMsg.SourceOrderId = item.OrderId;
this.transMsg.NewClassId = cItem.ClassId; this.transMsg.OrderGuestId = item.Id;
this.transMsg.NewCourseId = cItem.CouseId;
}, // this.getRenewClassList();
//确认转班 },
setRenewOrder() { //关闭弹窗
if (JSON.stringify(this.classItem) === "{}") { closeContinueClassForm() {
this.$q.notify({ this.IsShowContinueClassDialog = false;
type: "negative", this.SaleRemark = "";
position: "top", this.continueClassMsg.OrderId = 0;
message: `请选择要转的班级`, this.continueClassMsg.ClassId = 0;
this.chooseItem = {};
this.$emit("close");
},
//获取订单学员列表
getStudentList() {
this.studentList = [];
getOrderGuestPageList(this.continueClassMsg).then((res) => {
if (res.Code == 1) {
this.studentList = res.Data.PageData;
}
}); });
return; },
} //获取续课列表
if (this.transMsg.OrderGuestId == 0) { getRenewClassList() {
this.$q.notify({ this.isShowTuike = false;
type: "negative", if (this.dateList && this.dateList.length > 0) {
position: "top", this.classMsg.StartTime = this.dateList[0];
message: `请选择要申请的学员`, this.classMsg.EndTime = this.dateList[1];
} else {
this.classMsg.StartTime = "";
this.classMsg.EndTime = "";
}
queryRenewClass(this.classMsg).then((res) => {
if (res.Code == 1) {
this.classPageCount = res.Data.PageCount;
this.calssData = res.Data.PageData;
}
}); });
return; },
} clickClassItem(cItem) {
if (this.transMsg.ChangeType == 1) { this.classItem = cItem;
if (this.transMsg.OutTime == "") { this.isShowTuike = true;
this.transMsg.NewClassId = cItem.ClassId;
this.transMsg.NewCourseId = cItem.CouseId;
},
//确认转班
setRenewOrder() {
if (JSON.stringify(this.classItem) === "{}") {
this.$q.notify({ this.$q.notify({
type: "negative", type: "negative",
position: "top", position: "top",
message: `请选择转出日期`, message: `请选择要转的班级`,
}); });
return; return;
} }
} if (this.transMsg.OrderGuestId == 0) {
if (this.transMsg.EffectiveDate == "") { this.$q.notify({
this.$q.notify({ type: "negative",
type: "negative", position: "top",
position: "top", message: `请选择要申请的学员`,
message: `请选择生效日期`, });
}); return;
return; }
} if (this.transMsg.ChangeType == 1) {
if (this.transMsg.ReceiptFileList.length === 0) { if (this.transMsg.OutTime == "") {
this.$q.notify({
type: "negative",
position: "top",
message: `请上传附件`,
});
return;
}
if (this.transMsg.ChangeType == 1) {
SetOrderChange(this.transMsg).then((res) => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: "保存成功!",
position: "top",
});
//调用父页面成功方法
this.$emit("success");
this.IsShowContinueClassDialog = false;
}
});
} else {
SetOrderSplit(this.transMsg).then((res) => {
if (res.Code == 1) {
this.$q.notify({ this.$q.notify({
icon: "iconfont icon-chenggong", type: "negative",
color: "accent",
timeout: 2000,
message: "保存成功!",
position: "top", position: "top",
message: `请选择转出日期`,
}); });
//调用父页面成功方法 return;
this.$emit("success");
this.IsShowContinueClassDialog = false;
} }
});
}
},
//获取校区列表
getSchool() {
getSchoolDropdown({}).then((res) => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
this.schoolList = tempArray;
}
});
},
//获取班级类型下拉
GetClassTypeList() {
GetClassTypeList({}).then((res) => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
CTypeId: 0,
CTypeName: "不限",
});
this.classTypeList = tempArray;
}
});
},
//筛选课程
filterFn(val, update) {
update(() => {
if (val === "") {
this.ClassList = JSON.parse(JSON.stringify(this.AllClassList));
} else {
this.ClassList = this.AllClassList.filter(
(v) => v.CourseName.indexOf(val) > -1
);
} }
}); if (this.transMsg.EffectiveDate == "") {
}, this.$q.notify({
//获取课程 type: "negative",
CourseList() { position: "top",
queryCourseDropdownList({}).then((res) => { message: `请选择生效日期`,
if (res.Code == 1) {
this.ClassList = res.Data;
this.AllClassList = res.Data;
this.ClassList.unshift({
CourseId: 0,
CourseName: "不限",
}); });
return;
} }
}); if (this.transMsg.ReceiptFileList.length === 0) {
},
//翻页
changePage(val) {
this.classMsg.pageIndex = val;
this.getRenewClassList();
},
getOutTime() {
this.$refs.qDateProxy1.hide();
this.transMsg.EffectiveDate = "";
},
checkEffectDate() {
if (this.transMsg.ChangeType == 1) {
if (this.transMsg.OutTime == "") {
this.$q.notify({ this.$q.notify({
type: "negative", type: "negative",
position: "top", position: "top",
message: `请先选择转出日期`, message: `请上传附件`,
}); });
this.transMsg.EffectiveDate = ""; return;
} }
} if (this.transMsg.ChangeType == 1) {
this.$refs.qDateProxy2.hide(); SetOrderChange(this.transMsg).then((res) => {
}, if (res.Code == 1) {
showUpLoadFile(i) { this.$q.notify({
// 预览上传文件 icon: "iconfont icon-chenggong",
if (i.Type == 3) { color: "accent",
this.picObj.push(i.Url); timeout: 2000,
// this.imgList.push(i.Url) message: "保存成功!",
this.picIsShow = true; position: "top",
} else { });
if ( //调用父页面成功方法
i.Content.substring( this.$emit("success");
i.Content.lastIndexOf(".") + 1, this.$emit("close");
i.Content.length }
).toUpperCase() == "PDF" || });
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
} else { } else {
window.open( SetOrderSplit(this.transMsg).then((res) => {
"https://view.officeapps.live.com/op/view.aspx?src=" + i.Url if (res.Code == 1) {
); this.$q.notify({
} icon: "iconfont icon-chenggong",
} color: "accent",
}, timeout: 2000,
deleteUploadFile(i) { message: "保存成功!",
// 删除上传文件 position: "top",
this.saveMsg.splice(i, 1); });
this.transMsg.ReceiptFileList.splice(i, 1); //调用父页面成功方法
}, this.$emit("success");
uploadFileBtn(file) { this.$emit("close");
//上传 }
if (file.file.size > 1024 * 1024 * 5) { });
this.$message.warning("文件大小不能超过5M");
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [
{
stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP",
type: 3,
},
{
stringArr: "DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT",
type: 1,
},
{
stringArr: "ZIP|RAR|7Z|TAR",
type: 4,
},
{
stringArr: "MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV",
type: 5,
},
];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
typeArr.forEach((x) => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
} }
}); },
let newArr = []; //获取校区列表
newArr.push(file.file); getSchool() {
this.$message.info(this.$t("tips.shangchuanzhong")); getSchoolDropdown({}).then((res) => {
UploadSelfFile( if (res.Code == 1) {
"Temporary", var tempArray = res.Data;
file.file, if (!tempArray) {
(x) => { tempArray = [];
if (x.Code == 1) { }
this.saveMsg.push({ this.schoolList = tempArray;
Content: x.FileUrl, }
ID: 0, });
Type: fileTypeNumber, },
Url: x.FileUrl, //获取班级类型下拉
GetClassTypeList() {
GetClassTypeList({}).then((res) => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
CTypeId: 0,
CTypeName: "不限",
}); });
this.transMsg.ReceiptFileList.push(x.FileUrl); this.classTypeList = tempArray;
this.$message.success(this.$t("tips.scchenggong"));
} }
}, });
1 },
); //筛选课程
filterFn(val, update) {
update(() => {
if (val === "") {
this.ClassList = JSON.parse(JSON.stringify(this.AllClassList));
} else {
this.ClassList = this.AllClassList.filter(
(v) => v.CourseName.indexOf(val) > -1
);
}
});
},
//获取课程
CourseList() {
queryCourseDropdownList({}).then((res) => {
if (res.Code == 1) {
this.ClassList = res.Data;
this.AllClassList = res.Data;
this.ClassList.unshift({
CourseId: 0,
CourseName: "不限",
});
}
});
},
//翻页
changePage(val) {
this.classMsg.pageIndex = val;
this.getRenewClassList();
},
getOutTime() {
this.$refs.qDateProxy1.hide();
this.transMsg.EffectiveDate = "";
},
checkEffectDate() {
if (this.transMsg.ChangeType == 1) {
if (this.transMsg.OutTime == "") {
this.$q.notify({
type: "negative",
position: "top",
message: `请先选择转出日期`,
});
this.transMsg.EffectiveDate = "";
}
}
this.$refs.qDateProxy2.hide();
},
showUpLoadFile(i) {
// 预览上传文件
if (i.Type == 3) {
this.picObj.push(i.Url);
// this.imgList.push(i.Url)
this.picIsShow = true;
} else {
if (
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "PDF" ||
i.Content.substring(
i.Content.lastIndexOf(".") + 1,
i.Content.length
).toUpperCase() == "TXT"
) {
this.previewPDF(i.Url);
} else {
window.open(
"https://view.officeapps.live.com/op/view.aspx?src=" + i.Url
);
}
}
},
deleteUploadFile(i) {
// 删除上传文件
this.saveMsg.splice(i, 1);
this.transMsg.ReceiptFileList.splice(i, 1);
},
uploadFileBtn(file) {
//上传
if (file.file.size > 1024 * 1024 * 5) {
this.$message.warning("文件大小不能超过5M");
return;
}
// 1 文档 2 数据 3 图片
let typeArr = [{
stringArr: "GIF|JPG|JPEG|PNG|BMP|WEBP",
type: 3,
},
{
stringArr: "DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF|TXT",
type: 1,
},
{
stringArr: "ZIP|RAR|7Z|TAR",
type: 4,
},
{
stringArr: "MP4|3GP|AVI|MOV|WMV|RMVB|MKV|M4V|FLV",
type: 5,
},
];
let ft = file.file.name
.substring(file.file.name.lastIndexOf(".") + 1, file.file.name.length)
.toUpperCase();
let fileTypeNumber = 2;
typeArr.forEach((x) => {
if (x.stringArr.indexOf(ft) != "-1") {
fileTypeNumber = x.type;
}
});
let newArr = [];
newArr.push(file.file);
this.$message.info(this.$t("tips.shangchuanzhong"));
UploadSelfFile(
"Temporary",
file.file,
(x) => {
if (x.Code == 1) {
this.saveMsg.push({
Content: x.FileUrl,
ID: 0,
Type: fileTypeNumber,
Url: x.FileUrl,
});
this.transMsg.ReceiptFileList.push(x.FileUrl);
this.$message.success(this.$t("tips.scchenggong"));
}
},
1
);
},
}, },
}, };
};
</script> </script>
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