Commit 53be60ce authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

# Conflicts:
#	src/router/routes.js
parents eb633a6d 39e9549c
......@@ -12,7 +12,7 @@ export default {
<style>
@import url('~assets/css/font.css');
@import url('//at.alicdn.com/t/font_2077629_1f7iels6h8w.css');
@import url('//at.alicdn.com/t/font_2077629_cq0udyr5rpk.css');
.q-scrollarea__thumb{
z-index: 999999!important;
}
......@@ -25,7 +25,7 @@ body,
font-family: -apple-system,BlinkMacSystemFont,'pingfang',' Microsoft YaHei',"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
color: #3f4254;
}
.q-position-engine{
.q-position-engine {
z-index: 9999;
}
.remark-font{
......
......@@ -203,5 +203,16 @@ export function setSellCommissionSendEmployee(data) {
}
// 获取月度班级收支统计
export function getAllClassNowMonthStatistics(data) {
return request({
url: '/finance/GetAllClassNowMonthStatistics',
method: 'post',
data
});
}
......@@ -23,3 +23,29 @@ export function GetClassMonthStatistics(data) {
data
})
}
/**
* 获取我的课表分页列表
* @param {JSON参数} data
*/
export function GetClassPlanStatistical(data) {
return request({
url: '/TeacherClass/GetClassPlanStatistical',
method: 'post',
data
})
}
/**
* 获取我的课表列表数据
* @param {JSON参数} data
*/
export function GetClassPlanStatisticalPage(data) {
return request({
url: '/TeacherClass/GetClassPlanStatisticalPage',
method: 'post',
data
})
}
......@@ -10,7 +10,7 @@
height: 40px;
}
.MainPlan td {
.planClass-table td {
vertical-align: top;
padding: 5px;
width: 14%;
......@@ -126,7 +126,7 @@
</thead>
</table>
<div class="planTabDiv" ref="planTabDiv">
<table class="ClassPlanTable" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<table class="ClassPlanTable planClass-table" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<tbody>
<tr v-for="(item,index) in dataList.fridayList" :key="index">
<td>
......
......@@ -310,7 +310,7 @@
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props" style="width:130px;">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;display:none;" label="编辑"
@click="getInfo(props.row)">
<q-popup-proxy>
<q-banner v-if="isShowEdit">
......@@ -410,7 +410,7 @@
<div class="calendarTop">
<div>{{item.RoomName}}</div>
<div>
<i class="iconfont icon-edit Lessicon_Edit" @click.stop="getInfo(item)">
<i class="iconfont icon-edit Lessicon_Edit" style="display:none;" @click.stop="getInfo(item)">
<q-popup-proxy>
<q-banner v-if="isShowEdit">
<div class="calenderDialog">
......@@ -574,6 +574,7 @@
<el-select v-model="props.row.IsCheck" style="width:80px;" size="small" placeholder="小时">
<el-option label="出勤" :value="0"></el-option>
<el-option label="缺勤" :value="1"></el-option>
<el-option label="请假" :value="2"></el-option>
</el-select>
</q-td>
</template>
......
......@@ -46,13 +46,13 @@
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" :data="data" :columns="columns" row-key="QuestionId" selection="multiple"
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="data" :columns="columns" row-key="QuestionId" :selection="editStatus?'multiple':'none'"
:selected.sync="selectedQuestion">
<template v-slot:top="props">
<div class="col-2 q-table__title">问题列表</div>
<q-space />
<div class="page-option">
<div class="page-option" v-if="editStatus">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="新增题目" @click="EditQuestion(null)" />
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="批量设置" title="批量设置考级程度"
@click="isShowEdit=true">
......@@ -101,16 +101,18 @@
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
<q-btn v-if="editStatus" flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditQuestion(props.row)" />
<q-btn flat size="xs" icon="edit" color="negative" style="font-weight:400" label="删除"
<q-btn v-if="editStatus" flat size="xs" icon="edit" color="negative" style="font-weight:400" label="删除"
@click="setQuestionStatus(props.row)"></q-btn>
<q-btn flat size="xs" icon="iconfont icon-shangyi2" :class="{'QuestionisVisible':!props.row.isShowFirst}"
<q-btn v-if="editStatus" flat size="xs" icon="iconfont icon-shangyi2" :class="{'QuestionisVisible':!props.row.isShowFirst}"
color="accent" title="上移" style="font-weight:400;" label="" @click="getUpStatus(props.row,1)"></q-btn>
<q-btn flat size="xs" icon="iconfont icon-xiayi" :class="{'QuestionisVisible':!props.row.isShowLast}"
<q-btn v-if="editStatus" flat size="xs" icon="iconfont icon-xiayi" :class="{'QuestionisVisible':!props.row.isShowLast}"
color="accent" title="下移" style="font-weight:400;" label="" @click="getUpStatus(props.row,2)"></q-btn>
<q-btn flat size="xs" icon="iconfont icon-fuzhi" color="accent" style="font-weight:400;" label=""
<q-btn v-if="editStatus" flat size="xs" icon="iconfont icon-fuzhi" color="accent" style="font-weight:400;" label=""
@click="getCopyItem(props.row)"></q-btn>
<q-btn v-if="!editStatus" flat size="xs" color="primary" style="font-weight:400" label="查看"
@click="goDetail(props.row)"/>
</q-td>
</template>
</q-table>
......@@ -141,6 +143,10 @@
props: {
queryMsg: {
type: Object,
},
editStatus:{
type: Boolean,
default: true
}
},
meta: {
......@@ -503,7 +509,7 @@
},
//点击跳转
goDetail(item){
this.OpenNewUrl('questionInfo',{
this.OpenNewUrl('/course/questionInfo',{
'QuestionId':item.QuestionId
})
}
......
......@@ -51,7 +51,7 @@
<col width="7%" />
<col width="7%" />
<col width="7%" />
<col width="7%" />
<col width="7%" v-if="viewType==0"/>
<col>
</colgroup>
<tr>
......@@ -193,7 +193,7 @@
<span style="color: #02C499">{{item.OrderStateName}}</span>
</div>
</td>
<td style="border:none">
<td style="border:none" v-if="viewType==0">
<template v-if="isEditOrder||AuthorityObj.isShowEdit">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="editOrder(item)" />
......@@ -599,7 +599,7 @@
<span style="color: #02C499">{{item.OrderStateName}}</span>
</div>
</td>
<td style="border:none;" v-if="AuthorityObj.isShowEdit">
<td style="border:none;" v-if="AuthorityObj.isShowEdit && viewType==0">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;display:none;" label="编辑"
@click="editOrder(item)" />
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;display:none;">
......@@ -860,6 +860,10 @@
isShowEditBtn:{
type: Number,
default: null
},
viewType:{
type:Number,
default:0
}
},
data() {
......
......@@ -18,7 +18,7 @@
</thead>
</table>
<div class="planTabDiv" ref="planTabDiv">
<table class="ClassPlanTable" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<table class="ClassPlanTable planClass-table" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<tbody>
<tr v-for="(item,index) in tbodayData.fridayList" :key="index">
<td>
......@@ -116,7 +116,7 @@
height: 40px;
}
.MainPlan td {
.planClass-table td {
vertical-align: top;
padding: 5px;
width: 14%;
......
......@@ -118,10 +118,10 @@
border: 1px dashed #E2E2E2;
}
.lessonPreparation .cont .q-gutter-y-xs>*,
/* .lessonPreparation .cont .q-gutter-y-xs>*,
.q-gutter-xs>* {
margin: 0;
}
} */
.lessonPreparation .cont:hover .Less_Delete {
display: inline-block;
......
......@@ -238,9 +238,10 @@
});
},
gourlteacher2(path,row,item) {
let StudentName = encodeURI(row.StudentName)
this.OpenNewUrl('/financial/'+path, {
ClassId: this.ClassId,
StudentName:row.StudentName,
StudentName:StudentName,
datetype:'2',
StartMonth:item.Month,
EndMonth:item.Month,
......
......@@ -355,21 +355,7 @@
课后总结
</div>
</div>
<template v-if="(LessonPlanNum>0&&LessonPlanSummaryNum>0) || this.data.LessonPlanList[0].Summary!=''">
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="margin-top:10px;background-color:rgb(251, 246, 240)">{{conclusion}}</div>
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<el-image
style="height: 100%;height:100%"
:src="item"
fit="cover"
:preview-src-list="ImgList"></el-image>
</div>
</div>
</div>
</template>
<template v-else>
<template v-if="LessonPlanNum>0&&LessonPlanSummaryNum==0">
<q-input type="textarea" filled label="课后总结" v-model="conclusion" :rows="3" style="flex:1;margin-top:20px;" />
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
......@@ -390,6 +376,20 @@
</el-upload>
</div>
</template>
<template v-else>
<div class="text14-o q-pa-md Pre-ComBg rounded-borders" style="margin-top:10px;background-color:rgb(251, 246, 240)">{{conclusion}}</div>
<div style="display:flex;flex-wrap: wrap;margin-top:20px;">
<div v-if="ImgList.length>0" v-for="(item,index) in ImgList">
<div class="pre-ImgDiv">
<el-image
style="height: 100%;height:100%"
:src="item"
fit="cover"
:preview-src-list="ImgList"></el-image>
</div>
</div>
</div>
</template>
</div>
<q-btn color="accent" size="sm" v-if="LessonPlanNum>0&&LessonPlanSummaryNum==0&&isShowBtn" class="margint-15" @click="saveOrderInfo()"
style="margin:20px 0 0 15px;width:97%;height:40px;" label="提交" />
......@@ -595,11 +595,10 @@
if (a > 0) {
this.isUpData = false;
}
console.log(this.data.LessonPlanList[0].ProjectPicList,'this.data.LessonPlanList[0].ProjectPicList');
if(this.data.LessonPlanList&&this.data.LessonPlanList.length>0){
this.conclusion = this.data.LessonPlanList[0].Summary;
this.ImgList = this.data.LessonPlanList[0].ProjectPicList;
this.isShowBtn=false
// this.isShowBtn=false
}
}
})
......@@ -667,6 +666,10 @@
position: 'top'
})
this.getList();
var tempStr = '/course/teacherLesson'
this.$router.push({
path: tempStr
});
}
})
},
......
<style>
.teacherLesson .TeacherTop {
display: flex;
min-width: 1200px;
/* min-width: 1200px; */
}
.teacherLesson .Teacher_Left {
......@@ -67,7 +67,7 @@
}
.teacherLesson .Cal_Content {
min-width: 880px;
/* min-width: 880px; */
width: 80%;
display: inline-block;
margin-left: 10px;
......@@ -328,6 +328,8 @@
<span v-if="item1.LessonPlanNum>0" @click="goyibeike(item1)" style="color:#2961FE;font-size:12px;margin-right:20px;cursor:pointer;">已备课</span>
<!-- <span class="beikeBtn" v-if="item1.LessonPlanNum>0" style="backgroundColor:#3FC4FF;margin-right:20px;"
@click="goyibeike(item1)">已备课</span> -->
<span class="beikeBtn" style="margin:0 20px 0 0" v-if="AccountType&&item1.LessonPlanNum>0" @click="goBeike(item1)">修改</span>
<span class="beikeBtn" v-if="AccountType&&item1.LessonPlanNum===0" @click="goBeike(item1)">备课</span>
<span style="color:#3FC4FF;font-size:12px;cursor:pointer" v-if="item1.LessonPlanSummaryNum>0&&item1.LessonPlanNum>0" @click="goyibeike(item1)">已反馈</span>
<span style="color:#FFA800;font-size:12px;" v-if="item1.LessonPlanSummaryNum==0&&item1.LessonPlanNum>0">未反馈</span>
......
......@@ -37,6 +37,10 @@
.column-cell-class-name-test-lan-s .v-table-body-cell {
background-color: #9cf;
}
.page_EasyReport .column-cell-class-name-test-red-new{
background: #e95252;
color:#FFF;
}
</style>
<template>
......@@ -96,7 +100,7 @@
// 团队跳转
template: `
<div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',1,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.YiYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!=''" @click="goUrl('JumpReport',1,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.YiYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.YiYue}}</span>
</div>`,
props: {
......@@ -130,7 +134,7 @@
// 团队跳转
template: `
<div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',2,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.ErYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!=''" @click="goUrl('JumpReport',2,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.ErYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.ErYue}}</span>
</div>`,
props: {
......@@ -163,7 +167,7 @@
Vue.component("SanYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',3,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.SanYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',3,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.SanYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.SanYue}}</span>
</div>`,
props: {
......@@ -196,7 +200,7 @@
Vue.component("SiYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',4,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.SiYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',4,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.SiYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.SiYue}}</span>
</div>`,
props: {
......@@ -229,7 +233,7 @@
Vue.component("WuYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',5,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.WuYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',5,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.WuYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.WuYue}}</span>
</div>`,
props: {
......@@ -262,7 +266,7 @@
Vue.component("LiuYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer;" v-if="rowData.CostIds" @click="goUrl('JumpReport',6,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.LiuYue}}</span>
<span style="cursor: pointer;" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',6,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.LiuYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.LiuYue}}</span>
</div>`,
props: {
......@@ -295,7 +299,7 @@
Vue.component("QiYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',7,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.QiYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',7,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.QiYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.QiYue}}</span>
</div>`,
props: {
......@@ -328,7 +332,7 @@
Vue.component("BaYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',8,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.BaYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',8,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.BaYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.BaYue}}</span>
</div>`,
props: {
......@@ -361,7 +365,7 @@
Vue.component("JiuYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',9,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.JiuYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',9,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.JiuYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.JiuYue}}</span>
</div>`,
props: {
......@@ -394,7 +398,7 @@
Vue.component("ShiYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',10,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.ShiYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',10,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.ShiYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.ShiYue}}</span>
</div>`,
props: {
......@@ -427,7 +431,7 @@
Vue.component("ShiYiYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',11,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.ShiYiYue}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',11,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.ShiYiYue}}</span>
<span style="cursor: pointer" v-else>{{rowData.ShiYiYue}}</span>
</div>`,
props: {
......@@ -460,7 +464,7 @@
Vue.component("ShiErYueJump", {
// 团队跳转
template: ` <div class="gourl_span">
<span style="cursor: pointer" v-if="rowData.CostIds" @click="goUrl('JumpReport',12,rowData.Year,rowData.BranchId,rowData.CostIds)">{{rowData.ShiEr}}</span>
<span style="cursor: pointer" v-if="rowData.CostTypeIds && rowData.CostTypeIds!='' " @click="goUrl('JumpReport',12,rowData.Year,rowData.BranchId,rowData.CostTypeIds)">{{rowData.ShiEr}}</span>
<span style="cursor: pointer" v-else>{{rowData.ShiEr}}</span>
</div>`,
props: {
......@@ -853,15 +857,21 @@
})
},
GoUrlFan(path, month, year, BranchId, ids) {
this.$router.push({
path: "/financial/" + path,
query: {
// this.$router.push({
// path: "/financial/" + path,
// query: {
// year: year,
// month: month,
// BranchId: BranchId,
// CostIds: ids,
// blank: "y"
// }
// });
this.OpenNewUrl('/financial/'+ path, {
year: year,
month: month,
BranchId: BranchId,
CostIds: ids,
blank: "y"
}
});
},
rowDbClick(rowIndex, rowData, column) {
......@@ -879,7 +889,7 @@
} else {
endDate = that.year + "-" + column.end
}
if (rowIndex < 8) {
if (rowIndex < 6 ) {
// 联运收入
// if(rowData.ZhaiYao=="联运收入"){
// that.goUrl("CombinedRevenueReport",startDate,endDate,BranchId,"联运收入")
......@@ -891,34 +901,34 @@
// else if(rowData.ZhaiYao=="营业总成本"){
// that.goUrl("RecPayQueryTeamV2",startDate,endDate,BranchId,"应付团款查询")
// }
that.$router.push({
path: "/financial/TeamRevenueReport",
query: {
if(column.title!='合计' && column.title!="摘要"){
this.OpenNewUrl('/financial/reportform/RecPayQueryTeam', {
StartTime: startDate,
EndTime: endDate,
BranchId: BranchId,
blank: "y"
}
});
EndTime: endDate,
});
}
} else {
if (rowData.ZhaiYao == "员工提成") {
if (Number(this.year) == 2019) {
if (column.title == "十月" || column.title == "十一月" || column.title == "十二月") {
let CostIds = "";
CostIds = rowData.CostIds.replace('112,', '');
CostIds = CostIds.replace('16,', '');
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, CostIds)
let CostTypeIds = "";
CostTypeIds = rowData.CostTypeIds.replace('112,', '');
CostTypeIds = CostTypeIds.replace('16,', '');
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, CostTypeIds)
} else {
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostIds)
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostTypeIds)
}
} else if (Number(this.year) > 2019) {
let CostIds = "";
CostIds = rowData.CostIds.replace('112,', '');
CostIds = CostIds.replace('16,', '');
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, CostIds)
let CostTypeIds = "";
CostTypeIds = rowData.CostTypeIds.replace('112,', '');
CostTypeIds = CostTypeIds.replace('16,', '');
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, CostTypeIds)
} else {
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostIds)
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostTypeIds)
}
} else if (rowData.ZhaiYao == "歐洲與南亞損失分攤") {
that.goUrl("AirTicketLoss", startDate, endDate, BranchId, "机票分摊")
......@@ -930,7 +940,7 @@
year: rowData.Year,
month: month,
BranchId: rowData.BranchId,
CostIds: rowData.CostIds,
CostIds: rowData.CostTypeIds,
"IsJapanNonbusinessIncome": 1,
blank: "y"
}
......@@ -944,17 +954,21 @@
year: rowData.Year,
month: month,
BranchId: rowData.BranchId,
CostIds: rowData.CostIds,
CostIds: rowData.CostTypeIds,
"IsJapanNonbusinessIncome": 1,
blank: "y"
}
});
} else {
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostIds)
if(rowData.CostTypeIds && rowData.CostTypeIds !=''){
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostTypeIds)
}
}
} else {
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostIds)
if(rowData.CostTypeIds && rowData.CostTypeIds !=''){
that.GoUrlFan('JumpReport', month, rowData.Year, rowData.BranchId, rowData.CostTypeIds)
}
}
}
},
......@@ -998,58 +1012,61 @@
},
columnCellClass: function (rowIndex, columnName, rowData) {
if (rowData.YiYue < 0 && columnName == "YiYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ErYue < 0 && columnName == "ErYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.SanYue < 0 && columnName == "SanYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.DiYiJiDu < 0 && columnName == "DiYiJiDu") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.SiYue < 0 && columnName == "SiYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.WuYue < 0 && columnName == "WuYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.LiuYue < 0 && columnName == "LiuYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.DiErJiDu < 0 && columnName == "DiErJiDu") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ShangBanNianBao < 0 && columnName == "ShangBanNianBao") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.QiYue < 0 && columnName == "QiYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.BaYue < 0 && columnName == "BaYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.JiuYue < 0 && columnName == "JiuYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.DiSanJiDu < 0 && columnName == "DiSanJiDu") {
return "column-cell-class-name-test-red-new"
}
if (rowData.ShiYue < 0 && columnName == "ShiYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ShiYiYue < 0 && columnName == "ShiYiYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ShiErYue < 0 && columnName == "ShiErYue") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.DiSiJiDu < 0 && columnName == "DiSiJiDu") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.XiaBanNianBao < 0 && columnName == "XiaBanNianBao") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ZongJi < 0 && columnName == "ZongJi") {
return "column-cell-class-name-test-red"
return "column-cell-class-name-test-red-new"
}
if (rowData.ZhaiYao == '以下项均不计入计算') {
......@@ -1127,7 +1144,7 @@
}
if (rowData.ZhaiYao === '营业总毛利' || rowData.ZhaiYao === '歐洲與南亞損失分攤' || rowData.ZhaiYao === '营业税金及附加' || rowData
.ZhaiYao === '管销费用' || rowData.ZhaiYao === '财务费用' || rowData.ZhaiYao === '营业外收入' || rowData.ZhaiYao ===
'其他营业支出') {
'其他营业支出' || rowData.ZhaiYao.indexOf('小计')!=-1) {
return "column-cell-class-name-test-greed";
}
if (rowData.ZhaiYao === '社保') {
......
......@@ -1425,7 +1425,7 @@
}
let userInfo = this.getLocalStorage();
if (this.$route.query.BranchId) {
this.msg.SchoolId = this.$route.query.BranchId != undefined ? this.$route.query.BranchId : '';
this.msg.SchoolId = this.$route.query.BranchId != undefined ? Number( this.$route.query.BranchId ): '';
} else {
if (userInfo.School_Id > 0) {
......
......@@ -105,13 +105,13 @@
<el-table-column prop="UserName" label="销售" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<template slot-scope="scope">
<div style="cursor: pointer;" >{{scope.row.OrderId}} </div>
<div style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList('/sale/orderStatistics',scope.row.OrderId)">{{scope.row.OrderId}} </div>
</template>
</el-table-column>
......@@ -394,7 +394,18 @@
tcexport(){//导出
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/SellCommission/GetSellCommissionStatisticsToExcel", msg, "提成统计.xls")
}
},
goUrlclass(path,Names){//班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrlorderList(path,ID){//订单跳转
this.OpenNewUrl(path, {
OrderId: ID,
});
},
},
}
......
......@@ -60,14 +60,14 @@
</el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息">
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
<div><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号">
<template slot-scope="scope">
<div style="cursor: pointer;">{{scope.row.OrderId}} </div>
<div style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList('/sale/orderStatistics',scope.row.OrderId)">{{scope.row.OrderId}} </div>
</template>
</el-table-column>
......@@ -265,7 +265,18 @@
},
goreturn() {
this.$router.go(-1);
}
},
goUrlclass(path,Names){//班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrlorderList(path,ID){//订单跳转
this.OpenNewUrl(path, {
OrderId: ID,
});
},
......
<style>
@import "../css/cssReset.css";
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.RecPayQueryTeam .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.RecPayQueryTeam .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.RecPayQueryTeam ._icon_btn .icon-xueyuan {
background-color: #47BF8C;
}
.RecPayQueryTeam ._icon_btn .icon-jiaoshi {
background-color: #47BF8C;
}
.RecPayQueryTeam ._icon_btn i {
width: 26px;
height: 26px;
display: inline-block;
color: white !important;
border-radius: 50%;
text-align: center;
line-height: 26px;
margin-right: 10px;
cursor: pointer;
outline: none;
}
.RecPayQueryTeam .el-table td,
.el-table th {
padding: 5px 0;
}
.RecPayQueryTeam .el-input {
width: 100%;
border: none;
background-color: transparent;
}
.RecPayQueryTeam .el-date-editor .el-range-input{
width: 100%;
border: none;
background-color: transparent;
}
.RecPayQueryTeam .items-center .el-input__inner {
width: 100%;
border: none;
background-color: transparent;
}
.RecPayQueryTeam .singeRowTable tr th {
border: 1px solid #d2d2d2;
}
</style>
<template>
<div class="page-body RecPayQueryTeam">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" @input="getList"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false" emit-value
map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<div class="col-3">
<q-input @input="getList()" clearable standout="bg-primary text-white" v-model="msg.ClassNo" label="班号"
@clear="getList()" maxlength="20" />
</div>
<div class="col-3" >
<q-field filled>
 <template v-slot:control>
<el-date-picker class="h34" @change="getList()" v-model="valuemonth" type="daterange" :clearable='false'
value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始时间"
end-placeholder="结束时间"></el-date-picker>
</template>
</q-field>
</div>
</div>
</div>
<div class="page-search row items-center" style="justify-content: space-between;">
<span style="font-size: 20px;font-weight: 400;">月度班级收支统计 <span style="font-size: 16px;"></span> </span>
<q-btn  color="primary"  size="11px"  label="导出"  @click="txexport"  style="margin-left:10px" />
</div>
<template>
<div class="cm_content" style="width: 100%;">
<table class="po_content singeRowTable" style="border:1px solid #E6E6E6;" cellspacing="1"
cellpadding="1" v-loading="loading">
<tr >
<th rowspan="2">班号</th>
<th rowspan="2">班级名称</th>
<th rowspan="2">总课时</th>
<th rowspan="2">总学生数量</th>
<th rowspan="2">收入金额</th>
<th colspan="3">学生列表</th>
<th rowspan="2">老师课时费</th>
<th rowspan="2">老师绩效金额</th>
<th rowspan="2">销售提成</th>
<th rowspan="2">其他收入</th>
<th rowspan="2">其他成本</th>
</tr>
<tr>
<th width="">学生名称</th>
<th width="">学习课时</th>
<th width="">耗费金额</th>
</tr>
<tr v-for=" ( item , index ) in tableData ">
<td><span style="cursor: pointer;text-decoration: underline;" @click="goUrlClassNo('/sale/japaneseTrain',item.ClassNo)">{{item.ClassNo}}</span></td>
<td><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',item.ClassName)">{{item.ClassName}}</span> <span>({{item.ClassType==1?'培':'留'}})</span> </td>
<td><span>{{item.THoursNum}}</span></td>
<td><span>{{item.TStuNum}}</span></td>
<td><span>{{item.TStuMoney}}</span></td>
<td>
<span v-if='item.show == true'>
<p v-for="( son , sIndex ) in item.StuList"><span style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.StuName}}</span>
</p>
</span>
<span v-if='item.show == false'>
<p v-for="( son , sIndex ) in item.StuList"> <span v-if='sIndex<3'> <span
style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.StuName}}</span></span>
</p>
</span>
</td>
<td>
<span v-if='item.show == true'>
<p v-for="( son , sIndex ) in item.StuList">{{son.KSNum}}</p>
</span>
<span v-if='item.show == false'>
<p v-for="( son , sIndex ) in item.StuList"> <span
v-if='sIndex<3'>{{son.KSNum}}</span></p>
</span>
</td>
<td style="position: relative;">
<span v-if='item.show == true'>
<p v-for="( son , sIndex ) in item.StuList">{{son.Money}}
<span
style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;"
v-if='(sIndex+1)==item.StuList.length && item.show == true && item.StuList.length>3'
@click="tableData[index].show = false,$forceUpdate()">
<i class="el-icon-top"></i>
收起
</span>
</p>
</span>
<span v-if='item.show == false'>
<p v-for="( son , sIndex ) in item.StuList"> <span
v-if='sIndex<3'>{{son.Money}}</span>
<span
style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;"
v-if='sIndex==2 && item.show == false'
@click="tableData[index].show = true,$forceUpdate()">
<i class="el-icon-bottom"></i>
展开
</span>
</p>
</span>
</td>
<td><span>{{item.BonusMoney}}</span></td>
<td><span>{{item.PerfMoney}}</span></td>
<td><span>{{item.SellMoney}}</span></td>
<td><span>{{item.OtherIncome}}</span></td>
<td><span>{{item.OtherCost}}</span></td>
</tr>
</table>
<div v-if='tableData.length==0'
style="width: 100%;border:1px solid #E6E6E6;display: flex;align-items: center;justify-content: center;height: 60px;">
暂无数据
</div>
</div>
</template>
</div>
</template>
<script>
import {
getClassDropDownList,
} from '../../../api/school/index'
import {
getAllClassNowMonthStatistics,
} from '../../../api/finance/index'
import {
EduDownLoad,
} from '../../../api/common/common';
export default {
meta: {
title: "月度班级收支统计"
},
props: {},
components: {},
data() {
return {
loading: false,
valuemonth: '',
//列表数据参数
msg: {
ClassId: 0,
ClassNo: '',
StartTime: '',
EndTime: '',
},
tableData: [],
ClassList: [],
allClassList: [],
}
},
created() {
if(this.$route.query){
if(this.$route.query.StartTime && this.$route.query.EndTime ){
this.valuemonth = [this.$route.query.StartTime,this.$route.query.EndTime]
}
}
},
mounted() {
this.getList();
this.setClass()
},
methods: {
getList() {
if (this.valuemonth !='' && this.valuemonth.length>0) {
this.msg.StartTime = this.valuemonth[0]
this.msg.EndTime = this.valuemonth[1]
} else{
this.msg.StartTime = ''
this.msg.EndTime = ''
}
this.loading = true;
getAllClassNowMonthStatistics(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data
this.tableData.forEach(x => {
if (x.StuList.length > 3) {
x.show = false
} else {
x.show = true
}
});
}
})
},
setClass(item) {//班级
this.isShowClass = true;
getClassDropDownList({
CourseId: 0,
IsAddDefault: 1, //添加默认选项
}).then(res => {
if (res.Code == 1) {
var jsonData = res.Data;
if (jsonData && jsonData.length > 0) {
this.ClassList = JSON.parse(JSON.stringify(jsonData));
this.allClassList = JSON.parse(JSON.stringify(jsonData));;
}
}
});
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.ClassList = JSON.parse(JSON.stringify(this.allClassList))
} else {
const needle = val.toLowerCase()
this.ClassList = this.allClassList.filter(v => v.ClassName.toLowerCase().indexOf(needle) > -1)
}
})
},
txexport() {
let text = '';
if (this.datetype == 2) {
if(new Date(this.msg.StartMonth).getTime() == new Date(this.msg.EndMonth).getTime()){
text = this.msg.StartMonth+'课耗统计.xls'
}else{
text = this.msg.StartMonth+'-'+ this.msg.EndMonth +'课耗统计.xls'
}
} else if (this.datetype == 1) {
text = this.valueyear+'年课耗统计.xls'
}
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/finance/GetTeacherConsumptionHoursStatisticsToExcel", msg, text)
},
gourlteacher2(path,row,item) {
let StudentName = encodeURI(row.StuName)
this.OpenNewUrl('/financial/'+path, {
ClassId: item.ClassId,
StudentName:StudentName,
datetype:'2',
StartMonth:this.msg.StartTime.split('-')[0]+'-'+this.msg.StartTime.split('-')[1],
EndMonth:this.msg.EndTime.split('-')[0]+'-'+this.msg.EndTime.split('-')[1],
});
},
goUrlclass(path,Names){//班级跳转
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrlClassNo(path,Names){
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassNo: Name,
});
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -243,7 +243,7 @@
this.msg.ClassId = Number(this.$route.query.ClassId)
}
if(this.$route.query && this.$route.query.StudentName){
this.msg.StudentName = this.$route.query.StudentName
this.msg.StudentName = decodeURI(this.$route.query.StudentName)
}
},
......
......@@ -73,7 +73,7 @@
<el-table-column prop="UserName" label="销售"> </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息">
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
<div> <span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
......@@ -242,7 +242,13 @@
},
goreturn() {
this.$router.go(-1);
}
},
goUrlclass(path,Names){//班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
},
}
</script>
......
<style>
.MainPlan .ClassPlanTable {
width: 100%;
color: #000;
}
.ClassPlanTable th,
.ClassPlanTable td {
border: 1px solid #d1d1d1;
height: 40px;
}
.teacher-Table td {
vertical-align: top;
padding: 5px;
width: 14%;
}
.MainPlan {
margin: 20px;
}
.MainPlan .plan_ClassDate {
height: 30px;
line-height: 30px;
font-size: 15px;
font-weight: bold;
}
.MainPlan .plantHead th {
border-bottom: 0;
}
.MainPlan .planTabDiv {
max-height: calc(100vh - 235px);
height: calc(100vh - 235px);
overflow-y: overlay;
/* margin-right: -3px; */
}
.planTabDiv::-webkit-scrollbar {
width: 3px;
height: 3px;
background-color: #F5F5F5;
}
/*!*定义滚动条轨道 内阴影+圆角*!*/
.planTabDiv::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-color: #F5F5F5;
}
/*!*定义滑块 内阴影+圆角*!*/
.planTabDiv::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: -webkit-gradient(linear, 0 0, 0 100%, color-stop(.5, rgba(255, 255, 255, .2)), color-stop(.5, transparent), to(transparent));
background-color: #0ae;
}
.MainPlan .el-collapse-item__header {
font-size: 12px;
line-height: normal;
color: #000;
}
.MainPlan .plan_Inner {
font-size: 12px;
color: #000;
display: flex;
margin-top: 5px;
}
.MainPlan .plan_LeftTitle {
width: 60px;
text-align: right;
flex-shrink: 0
}
.MainPlan .plan_RightInner {
width: 100%;
}
.MainPlan .commonTimeStr {
display: inline-block;
color: #fff;
padding: 1px 3px;
border-radius: 5px;
}
.MainPlan .greenTime {
background-color: green;
}
.MainPlan .blueTime {
background-color: blue;
}
.MainPlan .orangeTime {
background-color: orange;
}
.MainPlan .plan_Tdiv {
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
}
</style>
<template>
<div>
<table class="ClassPlanTable plantHead" style="border-collapse:collapse;width:100%;margin:15px 0 0 0;">
<thead>
<tr>
<th colspan="16">甲鹤校区教室使用情况</th>
</tr>
<tr>
<th>周一</th>
<th>周二</th>
<th>周三</th>
<th>周四</th>
<th>周五</th>
<th>周六</th>
<th>周日</th>
</tr>
</thead>
</table>
<div class="planTabDiv" ref="planTabDiv">
<table class="ClassPlanTable teacher-Table" ref="PlanTable" style="border-collapse:collapse;margin-top:0;">
<tbody>
<tr v-for="(item,index) in dataList.fridayList" :key="index">
<td>
<div class="plan_ClassDate">{{dataList.mondayList[index].ClassDate}}</div>
<mateitem v-if="dataList.mondayList&&dataList.mondayList[index].SubList"
:dayData="dataList.mondayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.tuesdayList[index].ClassDate}}</div>
<mateitem v-if="dataList.tuesdayList&&dataList.tuesdayList[index].SubList"
:dayData="dataList.tuesdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.wednesdayList[index].ClassDate}}</div>
<mateitem v-if="dataList.wednesdayList&&dataList.wednesdayList[index].SubList"
:dayData="dataList.wednesdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.thursdayList[index].ClassDate}}</div>
<mateitem v-if="dataList.thursdayList&&dataList.thursdayList[index].SubList"
:dayData="dataList.thursdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.fridayList[index].ClassDate}}</div>
<mateitem v-if="dataList.fridayList&&dataList.fridayList[index].SubList"
:dayData="dataList.fridayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.saturdayList[index].ClassDate}}</div>
<mateitem v-if="dataList.saturdayList&&dataList.saturdayList[index].SubList"
:dayData="dataList.saturdayList[index]"></mateitem>
</td>
<td>
<div class="plan_ClassDate">{{dataList.sundayList[index].ClassDate}}</div>
<mateitem v-if="dataList.sundayList&&dataList.sundayList[index].SubList"
:dayData="dataList.sundayList[index]"></mateitem>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</template>
<script>
import mateitem from '../components/mateitem';
export default {
props: {
dataList: {
type: Object,
default: null
},
},
components: {
mateitem,
},
data() {
return {
msg: {
StartTime: "",
EndTime: '',
TeacherId: 0,
ClassRoomId: 0
},
};
},
created() {
},
mounted() {},
methods: {
//获取进度条
getProgress(num, total) {
if (num == 0 || total == 0) {
return 0;
}
return (Math.round(num / total * 100) / 100.00);
}
}
};
</script>
<style>
</style>
<template>
<div>
<el-collapse v-if="dayData&&dayData.SubList&&dayData.SubList.length>0">
<el-collapse-item v-for="(subItem,subIndex) in dayData.SubList" :key="subIndex" :name="subIndex">
<template slot="title">
<div class="plan_Tdiv">
<span v-if="subItem.TimeStr==='早上'" class="commonTimeStr greenTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='下午'" class="commonTimeStr blueTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='晚上'" class="commonTimeStr orangeTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.ClassType==2">试听课</span>
<span style="color:red;margin:0 5px;">{{subItem.TeacherName}}</span>
<span>[{{subItem.RoomName}}]</span>
</div>
</template>
<div @click="goUrl(subItem)" style="cursor:pointer;">
<div class="plan_Inner">
<div class="plan_LeftTitle">上课时间:</div>
<div class="plan_RightInner">{{subItem.StartTime}}-{{subItem.EndTime}}</div>
</div>
<div class="plan_Inner" v-if="subItem.ClassName">
<div class="plan_LeftTitle">班级:</div>
<div class="plan_RightInner">{{subItem.ClassName}}</div>
</div>
<div class="plan_Inner">
<div class="plan_LeftTitle">课程名称:</div>
<div class="plan_RightInner">{{subItem.CourseName}}</div>
</div>
<div class="plan_Inner" v-if="subItem.GuestList&&subItem.GuestList.length>0">
<div class="plan_LeftTitle">学生名称:</div>
<div class="plan_RightInner">
<span style="margin-right:10px;" v-for="tItem in subItem.GuestList">{{tItem.GuestName}}</span>
</div>
</div>
<div class="plan_Inner" style="align-items:center;" v-if="subItem.CompleteProgress>=0">
<div class="plan_LeftTitle">课程进度:</div>
<div class="plan_RightInner">
<el-progress :percentage="subItem.CompleteProgress"></el-progress>
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
</template>
<script>
export default {
props: {
dayData: {
type: Object,
default: null
}
},
components: {
},
data() {
return {
}
},
created() {},
mounted() {
},
methods: {
goUrl(item) {
if (item.ClassType === 1) {
this.$router.push({
path: "../../classroom/courseInfo",
query: {
id: item.Id
}
})
}
}
}
}
</script>
<template>
<div style="padding:20px 0">
<div class="page-content">
<q-table :pagination="setMsg" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="tableData" :columns="columns" row-key="name">
<template v-slot:body-cell-GuestList="props">
<q-td auto-width :props="props">
<span v-for="(item,index) in props.row.GuestList" style="margin-right:5px;">
{{item.GuestName}}
</span>
</q-td>
</template>
<template v-slot:body-cell-StartTime="props">
<q-td auto-width :props="props">
{{props.row.StartTime}}-{{props.row.EndTime}}
</q-td>
</template>
<template v-slot:body-cell-TotalPlanNum="props">
<q-td>
{{props.row.Ranks}}/{{props.row.TotalPlanNum}}
</q-td>
</template>
<template v-slot:body-cell-optioned="props">
<q-td>
<q-btn flat size="xs" icon="iconfont icon-view" v-if="props.row.ClassType==1" color="accent"
style="font-weight:400" label="课程回顾" @click="goCourseRecord(props.row)" />
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="PageIndex" color="primary" :max="PageCount"
:input="true" @input="changePage" />
</template>
</q-table>
</div>
</div>
</template>
<script>
export default {
props: {
setMsg: {
type: Object,
default: null
},
tableData: {
type: Array,
default: null
},
PageCount: {
type: Number,
default: null
}
},
meta: {
title: "我的课表"
},
components: {
},
data() {
return {
columns: [{
name: 'ClassDate',
label: '日期',
field: 'ClassDate',
align: 'left'
}, {
name: 'StartTime',
label: '上课时间',
field: 'StartTime',
align: 'left'
}, {
name: 'ClassName',
label: '班级',
field: 'ClassName',
align: 'left'
},
{
name: 'CourseName',
label: '课程名称',
field: 'CourseName',
align: 'left',
},
{
name: 'GuestList',
label: '学员名称',
field: 'GuestList',
align: 'left'
},
{
name: 'TeacherName',
label: '教师',
field: 'TeacherName',
align: 'left'
},
{
name: 'TotalPlanNum',
label: '课程进度',
field: 'TotalPlanNum',
align: 'left'
},
{
name: 'optioned',
label: '操作',
field: 'Id'
}
],
tabMsg: {
PageIndex: 1,
PageSize: 15,
rowsPerPage: 15,
StartTime: '',
EndTime: '',
TeacherId: 0,
ClassRoomId: 0,
ClassType: 0
},
PageIndex: 1
}
},
created() {
},
mounted() {
},
methods: {
//翻页
changePage(val) {
this.PageIndex = val;
this.$emit('getChange', this.PageIndex);
},
//跳转到课程回顾
goCourseRecord(item) {
this.$router.push({
path: "../../classroom/courseInfo",
query: {
id: item.Id
}
})
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<div class="page-body myOrder">
<div style="width: 100%;display: flex;justify-content: space-between">
<span style="font-size: 20px;font-weight: 400; ">我的关联订单</span>
<sub class="f12">注意:本功能只能查看关联到自己的订单,不能查看自己创建的订单</sub>
</div>
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.OrderId" label="订单号"
@clear="resetSearch" maxlength="10" />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="学生名称"
@clear="resetSearch" maxlength="20" />
</div>
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称"
@clear="resetSearch" maxlength="20" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="CourseId"
option-label="CourseName" v-model="msg.CouseId" :options="CourseList" emit-value map-options label="学习课程" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.OrderState" :options="OrderStateList" emit-value map-options label="订单状态" />
</div>
<div class="col-3">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="msg.StartTime" type="date" placeholder="报名开始时间" size="small" style="width:47%;"
@change="resetSearch" clear-icon="iconfont icon-guanbi">
</el-date-picker>
<el-date-picker v-model="msg.EndTime" type="date" placeholder="报名结束时间" size="small" style="width:47%;"
@change="resetSearch" clear-icon="iconfont icon-guanbi">
</el-date-picker>
<!-- <el-date-picker v-model="dateList" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="报名开始时间"  end-placeholder="报名结束时间">
 </el-date-picker>        -->
</template>
</q-field>
</div>
<div class="col-3">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="dateList2" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="开班开始时间"  end-placeholder="开班结束时间">
 </el-date-picker>       
</template>
</q-field>
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id"
option-label="EmployeeName" v-model="msg.EnterID" :options="EmployeeList" emit-value map-options label="业务员" use-input @filter="filterFn2"/>
</div>
</div>
</div>
<div class="col row wrap q-gutter-x-md" v-if="data.Statistics">
<div class="col stics">
<span class="stics-name">应收款</span>
<span>{{data.Statistics.PreferPrice?data.Statistics.PreferPrice:0}}</span>
</div>
<div class="col stics">
<span class="stics-name">实收款</span>
<span>{{data.Statistics.Income}}</span>
</div>
<div class="col stics">
<span class="stics-name">待收款</span>
<span style="color: #F72E52">{{data.Statistics.DueInMoney}}</span>
</div>
<div class="col stics">
<span class="stics-name">收客人数</span>
<span style="color:#2961FE;">{{data.Statistics.GuestNum}}人</span>
</div>
<div class="col stics">
<span class="stics-name">取消人数</span>
<span>{{data.Statistics.CancelNum}}人</span>
</div>
</div>
<div class="row col" style="justify-content: flex-end">
<div class="row tis">
<div class="tis-k" style="background: #2961FE"></div>
<span>已打单</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #02C499"></div>
<span>平台出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #F28C1D"></div>
<span>银行出纳已审核</span>
</div>
<div class="row tis">
<div class="tis-k" style="background: #3FC4FF"></div>
<span>已通过</span>
</div>
</div>
<div class="page-content">
<orderlist :dataList="data.List" :viewType="1" :authObj="authObj" @success="refreshClassOrder" :modityOrderType="3" ref="orderL" >
</orderlist>
<div class="row" style="justify-content: flex-end;padding: 5px 20px">
<q-pagination v-model="msg.pageIndex" :max="pageCount" @input="changePage" class="full-width justify-end"
color="primary" :input="true">
</q-pagination>
</div>
</div>
<classinfo-form v-if="isShowClassInfo" :seting-obj="classObjOption" @close="closeClass"
@success="refreshClassOrder">
</classinfo-form>
</div>
</template>
<script>
import {
getMyOrderStatisticsPageList, //获取订单列表
getOrderStateEnumList //订单状态
} from '../../api/sale/sale';
import {
queryCourseDropdownList,
} from '../../api/course/index'
import myOrderForm from '../../components/sale/myOrder-form'
import classinfoForm from '../../components/course/classinfo-form';
import orderlist from '../../components/sale/orderlist'
import { queryEmployee } from '../../api/users/user';
import {
EduDownLoad,
} from '../../api/common/common';
import Lockr from 'lockr';
export default {
meta: {
title: "关联订单"
},
components: {
myOrderForm,
classinfoForm,
orderlist
},
data() {
return {
dialog: false,
data: {},
loading: false,
dateList: [], //报名时间
dateList2: [], //开班时间
msg: {
pageIndex: 1,
pageSize: 8,
OrderId: '', //订单号
GuestName: '', //客人名称
ClassName: '', //班级名称
CouseId: 0, //课程id
StartTime: '', //报名开始时间
EndTime: '', //报名结束时间
OPStartTime: '', //开班开始时间
OPEndTime: '', //开班结束时间
Q_NotCollect: '0', //查询未收齐 1是 0否
OrderState: 0, //订单状态 枚举
Q_OrderState: 1, //查询 1正常订单 2取消订单 (默认传1 如果 选择了订单状态 则传 0)
Q_OrderBy: 2, //写死 =2
PlatformTax: 0, //平台税金
EnterID:'',//业务员id
},
//订单状态
OrderStateList: [],
pageCount: 0,
CourseList: [], //关联课程下拉数据
classObjOption: null,
isShowClassInfo: false, //是否显示课程信息
showone: false,
//权限判断
authObj: {
isShowGuestBtn: 0, //显示新增学员名单按钮
isShowFinanceBtn: false, //显示财务单据按钮
isShowTransOrder: false, //显示转交订单按钮
isShowSaleRemark: false, //显示修改销售备注
isShowBackClass: false, //显示退课按钮
isShowRenewClass: false, //显示续课按钮
isShowEdit:false,//不显示修改按钮
isShowBackClass:false,//不显示退课
isShowRenewClass:false,//不显示续课
},
EmployeeList:[],//业务员
AllemployeeList:[],
}
},
created() {
if (this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId;
}
let nowDay = new Date();
var year = nowDay.getFullYear(); //年
var month = nowDay.getMonth() + 1; //月
var day = nowDay.getDate(); //日
var currentDay = year + '-' + month + '-' + day;
this.msg.StartTime = currentDay
if (this.$route.query.StartTime) {
this.msg.StartTime = this.$route.query.StartTime+'-01';
}
if (this.$route.query.EndTime) {
this.msg.EndTime = this.$route.query.EndTime+'-01';
}
if (this.$route.query.EnterID) {
this.msg.EnterID = Number(this.$route.query.EnterID) ;
}
if (this.$route.query.ClassName) {
this.msg.ClassName = this.$route.query.ClassName;
}
this.getOrderState();
this.getCourseList();
},
mounted() {
this.getList();
this.getEmployee(0);
},
methods: {
//订单状态
getOrderState() {
getOrderStateEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
Id: 0,
Name: "不限"
})
this.OrderStateList = tempArray;
}
})
},
//获取课程
getCourseList() {
queryCourseDropdownList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
CourseId: 0,
CourseName: "不限"
})
this.CourseList = tempArray;
}
})
},
//翻页
changePage(val) {
if (this.showone == true) {
this.msg.pageIndex = val;
this.getList()
} else {
this.showone = true
}
},
resetSearch() {
this.msg.pageIndex = 1;
this.getList()
},
//获取菜单分页列表
getList() {
// if (this.dateList && this.dateList.length > 0) {
// this.msg.StartTime = this.dateList[0];
// this.msg.EndTime = this.dateList[1];
// } else {
// this.msg.StartTime = '';
// this.msg.EndTime = '';
// }
let u=Lockr.get("loginUserInfo")
if (this.dateList2 && this.dateList2.length > 0) {
this.msg.OPStartTime = this.dateList2[0];
this.msg.OPEndTime = this.dateList2[1];
} else {
this.msg.OPStartTime = '';
this.msg.OPEndTime = '';
}
let msg = JSON.parse(JSON.stringify(this.msg));
if (msg.OrderId == '' || msg.OrderId == null) {
msg.OrderId = 0
}
if(u){
msg.HelpEnterId=u.Id
}
this.loading = true;
getMyOrderStatisticsPageList(msg).then(res => {
this.data = res.Data.PageData;
let OrderIds = []
this.data.List.forEach(x => {
OrderIds.push(x.OrderId)
})
this.loading = false
OrderIds = OrderIds.join(',')
if (this.data.List.length > 0) {
this.$refs.orderL.getOrderFinanceList(OrderIds, 1)
}
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false
})
},
//刷新页面
refreshClassOrder() {
this.getList();
},
getClassInfo(obj) { //打开班级详情组件
this.classObjOption = obj;
this.isShowClassInfo = true;
},
//关闭班级信息弹窗
closeClass() {
this.isShowClassInfo = false;
},
//业务员
getEmployee(id) {
var qMsg = {
Dept_Id: 0
}
qMsg.Dept_Id=id;
queryEmployee(qMsg).then(res => {
if(res.Code==1){
this.EmployeeList = res.Data;
let obj={
Id:"",
EmployeeName:"不限"
}
this.EmployeeList.unshift(obj)
this.AllemployeeList = JSON.parse(JSON.stringify(this.EmployeeList));
}
}).catch(() => {
})
},
//筛选业务员
filterFn2(val, update) {
update(() => {
if (val === '') {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList))
} else {
const needle = val.toLowerCase()
this.EmployeeList = this.AllemployeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1)
}
})
},
goexport(){//导出
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/order/GetOrderPageListStatisticsToExcel", msg, "订单列表.xls")
}
}
}
</script>
<style>
li {
list-style-type: none;
}
.myOrder ul {
padding: 0px
}
.myOrder .price-popup {
border-radius: 4px;
}
.myOrder .el-range-editor .el-range-input {
background: transparent;
}
.myOrder .el-range-editor.el-input__inner {
background-color: transparent;
}
.myOrder .q-mb-md {
margin-bottom: 0;
}
.myOrder .stics {
padding: 10px 20px;
background: #DDDEE0;
border-radius: 4px;
font-size: 14px;
color: #000000;
font-weight: bold
}
.myOrder .stics .stics-name {
color: #2D2D2D;
font-weight: 600;
margin-right: 10px
}
.myOrder .tis {
margin: 10px 0;
align-items: center
}
.myOrder .tis .tis-k {
width: 10px;
height: 10px;
margin-right: 8px
}
.myOrder .tis span {
font-size: 14px;
color: #2D2D2D;
font-weight: 600;
margin-right: 20px
}
.myOrder .el-input__inner {
border: none !important;
background: transparent !important;
}
</style>
......@@ -238,9 +238,10 @@
});
},
gourlteacher2(path,row,item) {
let StudentName = encodeURI(row.StudentName)
this.OpenNewUrl('/financial/'+path, {
ClassId: this.ClassId,
StudentName:row.StudentName,
StudentName:StudentName,
datetype:'2',
StartMonth:item.Month,
EndMonth:item.Month,
......
<template>
<div class="page-body MainPlan">
<div class="col row wrap q-col-gutter-md">
<div class="col-2">
<el-select v-model="msg.ClassRoomId" style="width:100%;" placeholder="教室" size="small" @change="getTypeWay()">
<el-option v-for="item in ClassRoomList" :key="item.RoomName" :label="item.RoomName" :value="item.RoomId">
</el-option>
</el-select>
</div>
<div class="col-2">
<el-date-picker v-model="msg.StartTime" type="date" value-format="yyyy-MM-dd" placeholder="开始日期" size="small"
style="width:100%;" @change="getTypeWay()" clear-icon="iconfont icon-guanbi">
</el-date-picker>
</div>
<div class="col-2">
<el-date-picker v-model="msg.EndTime" type="date" value-format="yyyy-MM-dd" placeholder="结束日期" size="small"
style="width:100%;" @change="getTypeWay()" clear-icon="iconfont icon-guanbi">
</el-date-picker>
</div>
<div class="col-2">
<el-select v-model="msg.ClassType" style="width:100%;" placeholder="类型" size="small" @change="getTypeWay()">
<el-option :key="0" label="全部" :value="0">
</el-option>
<el-option :key="1" label="正常" :value="1">
</el-option>
<el-option :key="2" label="试听课" :value="2">
</el-option>
</el-select>
</div>
<div class="col-2">
<q-btn color="accent" size="sm" class="q-mr-md" style="margin-top:2px;" @click="exchangeType" :label="typeName" />
</div>
</div>
<classmateForm :dataList="dataList" v-if="commonType==1"></classmateForm>
<teachTable v-if="commonType==2" :tableData="tableData" :PageCount="PageCount" :setMsg="tabMsg" @getChange="getChange"></teachTable>
</div>
</template>
<script>
import {
getTeacherDropDownList,
queryClassRoomList
} from '../../api/school/index'
import {
GetClassPlanStatistical,
GetClassPlanStatisticalPage
} from '../../api/teacher/index';
import classmateForm from '../teacher/components/classmate-form';
import teachTable from '../teacher/components/teachTable';
export default {
meta: {
title: "上课计划"
},
components: {
classmateForm,
teachTable
},
data() {
return {
ClassRoomList: [], //
StartTime: "",
EndTime: '',
TeacherId: 0,
ClassRoomId: 0,
dataList: {},
activeNames: [1],
msg: {
StartTime: "",
EndTime: '',
TeacherId: 0,
ClassRoomId: 0,
ClassType: 0,
},
commonType:1, //1日历模式 2列表模式
typeName:'列表模式',
tabMsg:{
PageIndex:1,
PageSize:12,
rowsPerPage: 12,
StartTime:'',
EndTime:'',
TeacherId:0,
ClassRoomId:0,
ClassType:0
},
tableData:[], //表格数据
PageCount:0
};
},
created() {
if (this.$route.query && this.$route.query.ClassType) {
this.msg.ClassType = this.$route.query.ClassType;
}
let userinfo = this.getLocalStorage();
this.msg.TeacherId = userinfo.AccountId;
this.tabMsg.TeacherId = userinfo.AccountId;
this.getClassRoomList();
},
mounted() {
this.getPlanList();
},
methods: {
// 获取校区教室导航列表
getPlanList() {
GetClassPlanStatistical(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data;
}
}).catch(() => {
})
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
var obj = {
RoomName: '请选择',
RoomId: 0
}
this.ClassRoomList.unshift(obj);
}
})
},
exchangeType(){
if(this.commonType==1){
this.commonType=2
this.typeName='日历模式'
this.getTableList()
}else{
this.commonType=1;
this.typeName='列表模式'
this.getPlanList()
}
},
getTableList(){
this.tabMsg.StartTime = this.msg.StartTime;
this.tabMsg.EndTime = this.msg.EndTime;
this.tabMsg.ClassRoomId = this.msg.ClassRoomId;
this.tabMsg.ClassType = this.msg.ClassType;
GetClassPlanStatisticalPage(this.tabMsg).then(res => {
if (res.Code == 1) {
this.tableData = res.Data.PageData;
this.PageCount = res.Data.PageCount;
}
})
},
getChange(val) {
this.tabMsg.PageIndex = val;
this.getTableList()
},
getTypeWay(){
if(this.commonType==2){
this.getTableList()
}else{
this.getPlanList()
}
}
}
};
</script>
<template>
<div>
<questionlist-form :queryMsg="qMsg" :editStatus="false"></questionlist-form>
</div>
</template>
<script>
import questionlistForm from '../../components/question/questionlist-form';
export default {
meta: {
title: "题库查询"
},
components: {
questionlistForm
},
data() {
return {
qMsg: {
BankId: 0,
CourseId: 0
}
}
},
created() {
if (this.$route.query && this.$route.query.CourseId) {
this.qMsg.CourseId = this.$route.query.CourseId
}
if (this.$route.query && this.$route.query.BankId) {
this.qMsg.BankId = this.$route.query.BankId
}
},
mounted() {},
methods: {}
}
</script>
......@@ -537,6 +537,11 @@ const routes = [{
component: () =>
import("pages/financial/financalDocument/BasicDocuments.vue")
},
{
path: "/financial/reportform/RecPayQueryTeam", //财务报表 月度班级收支统计
component: () =>
import("pages/financial/reportform/RecPayQueryTeam.vue")
},
{
path: "/administration/document", //行政公告
component: () =>
......@@ -939,6 +944,16 @@ const routes = [{
component: () =>
import("pages/teacher/myClass")
},
{
path: "/teacher/testdatabase", //题库查询
component: () =>
import("pages/teacher/testdatabase")
},
{
path: "/teacher/relation-order", //题库查询
component: () =>
import("pages/teacher/relationOrder")
},
{
path: "/teacher/teachMonthLessonCost", //月度课耗
component: () =>
......@@ -968,7 +983,11 @@ const routes = [{
path: "/teacher/studentManager", //学员管理
component: () =>
import("pages/teacher/studentManager")
},
}, {
path: "/teacher/teacherSchedule",
component: () =>
import("pages/teacher/teacherSchedule")
}
],
},
......
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