Commit 58b191d4 authored by Mac's avatar Mac

课耗相关页面

parent 5473541d
......@@ -147,5 +147,33 @@ export function getSellCommissionPeriodsList(data) {
});
}
// 财务报表 获取老师课耗统计
export function getTeacherConsumptionHoursStatistics(data) {
return request({
url: '/finance/GetTeacherConsumptionHoursStatistics',
method: 'post',
data
});
}
// 财务报表 获取老师课时消费明细列表
export function getTeacherConsumptionHoursDetialPageList(data) {
return request({
url: '/finance/GetTeacherConsumptionHoursDetialPageList',
method: 'post',
data
});
}
// 财务报表 学生课耗明细列表
export function getStudentConsumptionHoursDetialPageList(data) {
return request({
url: '/finance/GetStudentConsumptionHoursDetialPageList',
method: 'post',
data
});
}
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.lessonCostStatistics .border-bottom {
.lessonCostStatistics .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.lessonCostStatistics .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
.lessonCostStatistics .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.lessonCostStatistics ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.lessonCostStatistics ._icon_btn .icon-add {
background-color: #47BF8C;
}
.lessonCostStatistics ._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;
}
.lessonCostStatistics .el-table td,
.el-table th {
padding: 5px 0;
}
.lessonCostStatistics .el-input {
width: 100%;
border: none;
background-color: transparent;
}
.lessonCostStatistics ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.lessonCostStatistics ._icon_btn .icon-add{
background-color: #47BF8C;
}
.lessonCostStatistics ._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;
}
.lessonCostStatistics .el-table td,.el-table th{
padding: 5px 0;
}
</style>
<template>
.lessonCostStatistics .el-input__inner {
width: 100%;
border: none;
background-color: transparent;
}
</style>
<template>
<div class="page-body lessonCostStatistics">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div style="margin-right: 20px;" v-if='iscMaker==true'>
<div class="block">
<span style="margin-right: 5px;">校区</span>
<el-select v-model="msg.SchoolId" filterable @change="handleCurrentChanges(1)">
<el-option value="-1" label="不限"></el-option>
<el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'></el-option>
</el-select>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="SId"
option-label="SName" v-model="msg.SchoolId" ref="SId" :options="CompanyList" label="校区"
:dense="false" emit-value map-options />
</div>
</div>
<div v-if='isgenerate==true'>
<div class="block" style="display:flex">
<span style="margin-right: 5px;">选择月份</span>
<el-date-picker
v-model="value2"
type="month"
placeholder="选择月">
</el-date-picker>
<q-btn :loading="loading1" color="primary" size="11px" label="生成提成" @click="scCommission" style="margin-left:10px"/>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="TId"
option-label="TeacherName" v-model="msg.TeacherId" ref="TId" :options="TeacherList" label="老师"
:dense="false" emit-value map-options />
</div>
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<!-- <el-table-column prop="Id" label="ID" ></el-table-column> -->
<el-table-column prop="Periods" label="周期" ></el-table-column>
<el-table-column prop="SumPrice" label="提成总金额" > </el-table-column>
<el-table-column prop="SchooldCommission" label="校区提成总金额" >
<template slot-scope="scope">
<div style="display: flex;flex-wrap: wrap;" v-if='scope.row.SchooldCommission>=0'>
{{scope.row.SchooldCommission>=0?scope.row.SchooldCommission:'-'}}
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="Id" option-label="Name" v-model="datetype" ref="Id"
:options="datetypelist" label="日期类型" :dense="false" emit-value map-options />
</div>
<div class="col-3" v-if='datetype==1'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valueyear" type="year" placeholder="选择年份" value-format="yyyy"
@change="handleCurrentChanges(1)">
</el-date-picker>    
</template>
</q-field>
</div>
</template>
</el-table-column>
<el-table-column prop="FrIdList" label="财务单据" >
<template slot-scope="scope">
<div style="display: flex;flex-wrap: wrap;" v-if='scope.row.FrIdList.length>0'>
<span v-for="(x,y) in scope.row.FrIdList" @click="gocaiwuxiangq(x)" style="cursor: pointer;text-decoration: underline;margin-right: 5px; color: #409EFF;">{{x}}</span>
<div class="col-3" v-if='datetype==2'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valuemonth" type="month" placeholder="选择月份" value-format="yyyy-MM"
@change="handleCurrentChanges(1)">
</el-date-picker>    
</template>
</q-field>
</div>
<div v-else></div>
</template>
</el-table-column>
<el-table-column prop="CreateByName" label="创建人" > </el-table-column>
<el-table-column prop="CreateTime" label="创建时间" > </el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('CommissionDetail',scope.row.Id)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="制单" placement="top" v-if='iscMaker==true'>
<i class="iconfont icon-add" v-if='iscMaker==true'
@click="generalFinancacls(scope.row)"></i>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges" layout="total,prev, pager, next, jumper" :current-page.sync="msg.PageIndex"
:page-size="msg.PageSize" :total='total'>
</el-pagination>
</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>
<template>
<el-table ref="filterTable" :data="tableData" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="SchoolName" label="校区"></el-table-column>
<el-table-column prop="LeaveStatus" label="职务"> </el-table-column>
<el-table-column prop="EmployeeName" label="老师名称"></el-table-column>
<el-table-column prop="KSNum" label="上课课时"> </el-table-column>
<el-table-column prop="Hours" label="课时转换/小时"></el-table-column>
<el-table-column prop="KSMoney" label="课时费"> </el-table-column>
<el-table-column prop="StuLearnMoney" label="学生上课金额"> </el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看老师" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('teacherclassfee',scope.row.AccountId)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="查看学生" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('studentsClassfee',scope.row.AccountId)"></i>
</el-tooltip>
</div>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges"
layout="total,prev, pager, next, jumper" :current-page.sync="msg.pageIndex"
:page-size="msg.pageSize" :total='total'>
</el-pagination>
</div>
</template>
</div>
</template>
<script>
import {
getSchoolDropdown
} from '../../api/school/index'
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
getSellCommissionPeriodsPageList,
setSellCommissionRule,
setSellCommissionInfo
getSchoolDropdown,
getTeacherDropDownList
} from '../../api/school/index'
import {
getTeacherConsumptionHoursStatistics,
} from '../../api/finance/index'
import {
EduDownLoad,
} from '../../api/common/common';
export default {
meta: {
title: "课耗统计汇总表"
},
props: {},
components: {},
data() {
return {
loading: false,
loading1: false,
value2:'',
//列表数据参数
msg: {
PageIndex: 1,
PageSize: 15,
Name:'',
SchoolId:'-1'
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
total:0,
CompanyList:[],
isgenerate:false,//是否有生成的权限
iscMaker:false,//是否有制单的权限
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "Generate_Commission"){//判断是否有生成的权限
this.isgenerate = true;
}
if(x.FunctionCode == "Commission_maker"){//判断是否有制单的权限
this.iscMaker = true;
}
})
var myDate=new Date();
myDate.setMonth(myDate.getMonth()-1);
this.value2 = myDate.getFullYear() + "-" + (myDate.getMonth()+1)
},
mounted() {
this.getList();//获取提成周期列表
this.getBranchList()
},
methods: {
getList(){
this.loading = true;
getSellCommissionPeriodsPageList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
})
},
scCommission(){//生成提成
if(this.loading1 == false){
this.loading1= true;
setSellCommissionInfo({Month:this.value2}).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '生成提成成功',
position: 'top'
})
this.getList()
}
this.loading1= false;
}).catch(err=>{
this.loading1= false;
})
}
},
getBranchList(){//获取校区
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
}).catch(() => {
})
meta: {
title: "课耗统计汇总表"
},
goUrl(path, id ) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
props: {},
components: {},
data() {
return {
loading: false,
valuemonth: '',
valueyear: '',
//列表数据参数
msg: {
pageIndex: 1,
pageSize: 15,
TeacherId: '-1',
SchoolId: '-1',
StartMonth: '',
EndMonth: '',
},
datetype: '2',
pageCount: 0,
listData: {},
tableData: [],
total: 0,
CompanyList: [],
TeacherList: [],
datetypelist: [
{ Id: '2', Name: '月份' },
{ Id: '1', Name: '年份' },
]
}
})
},
gocaiwuxiangq(id){
this.OpenNewUrl("/financial/financalDocument/FinancialDocumentsDetail", {
id: id
});
},
generalFinancacls(item) {
if(this.msg.SchoolId == -1){
if(item.SumPrice>0){
this.tishi(item.SumPrice,item.Id)
}else{
this.$message.error('提成总金额为0')
}
}else{
if(item.SchooldCommission>0){
this.goaddFinancial(item.SchooldCommission,item.Id)
}else{
this.$message.error('校区提成总金额为0')
}
}
created() {
let userinfo = this.getLocalStorage();
var myDate = new Date();
this.valuemonth = myDate.getFullYear() + "-" + (myDate.getMonth() + 1)
this.valueyear = myDate.getFullYear().toString()
},
goaddFinancial(Money,Id){
let School_Id = 0;
let obj = {
CostType: 316,
Money: Money,
CurrencyId: 21,
XSTC: 1,
School_Id:this.msg.SchoolId == -1?0:this.msg.SchoolId,
OtherType:39,
ReFinanceId:Id,
ReFinanceId2:this.msg.SchoolId
}
let query = {
blank: "y",
tab: "新增付款单据",
Type: 2,
IsUploadPic: 1,
Name:'销售提成单',
id:143,
orderObj: JSON.stringify(obj)
}
this.$router.push({
path: "/financial/financalDocument/addFinancialDocuments",
query
});
mounted() {
this.getList();//获取提成周期列表
this.getBranchList()
this.GetTeacherList();//老师下拉
},
tishi(Money,Id){
let that = this
this.$q.dialog({
title: "销售制单",
message: "你正在进行所有校区一起制单操作?",
persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: {
label: "确认",
flat: true,
focus: true
}
}).onOk(() => {
this.goaddFinancial(Money,Id)
methods: {
getList() {
if(this.valuemonth ==null || this.valueyear==null){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择日期`
})
return
}
if (this.datetype == 2) {
this.msg.StartMonth = this.valuemonth;
this.msg.EndMonth = this.valuemonth;
} else if (this.datetype == 1) {
this.msg.StartMonth = this.valueyear + '-01';
this.msg.EndMonth = this.valueyear + '-12';
}
this.loading = true;
getTeacherConsumptionHoursStatistics(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
var obj = {
TeacherName: '全部',
TId: '-1'
}
this.TeacherList.unshift(obj);
}
})
},
getBranchList() {//获取校区
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
var obj = {
SName: '全部',
SId: '-1'
}
this.CompanyList.unshift(obj);
}).catch(() => {
})
},
goUrl(path, id) {
this.OpenNewUrl('/financial/' + path, {
id: id
});
// this.$router.push({
// path: '/financial/' + path,
// query: {
// id: id,
// blank: 'y',
// }
// })
},
handleCurrentChanges(val) {
this.msg.pageIndex = val;
this.getList()
},
txexport() {
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/finance/GetTeacherConsumptionHoursStatisticsToExcel", msg, "课耗统计.xls")
}
},
handleCurrentChanges(val){
this.msg.PageIndex= val;
this.getList()
},
},
}
</script>
<style lang="sass">
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
</style>
\ No newline at end of file
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.studentsClassfee .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.studentsClassfee .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.studentsClassfee ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.studentsClassfee ._icon_btn .icon-add {
background-color: #47BF8C;
}
.studentsClassfee ._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;
}
.studentsClassfee .el-table td,
.el-table th {
padding: 5px 0;
}
.studentsClassfee .el-input {
width: 100%;
border: none;
background-color: transparent;
}
.studentsClassfee .el-input__inner {
width: 100%;
border: none;
background-color: transparent;
}
</style>
<template>
<div class="page-body studentsClassfee">
<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 @input="handleCurrentChanges(1)" option-value="SId"
option-label="SName" v-model="msg.SchoolId" ref="SId" :options="CompanyList" label="校区"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="TId"
option-label="TeacherName" v-model="msg.TeacherId" ref="TId" :options="TeacherList" label="老师"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<q-input @input="handleCurrentChanges(1)" clearable standout="bg-primary text-white" v-model="msg.OrderId" label="订单号"
@clear="handleCurrentChanges(1)" maxlength="20" />
</div>
<div class="col-3">
<q-input @input="handleCurrentChanges(1)" clearable standout="bg-primary text-white" v-model="msg.StudentName" label="学生名称"
@clear="handleCurrentChanges(1)" maxlength="20" />
</div>
<div class="col-3">
<q-input @input="handleCurrentChanges(1)" clearable standout="bg-primary text-white" v-model="msg.ContractNo" label="合同编号"
@clear="handleCurrentChanges(1)" maxlength="20" />
</div>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="Id" option-label="Name" v-model="datetype" ref="Id"
:options="datetypelist" label="日期类型" :dense="false" emit-value map-options />
</div>
<div class="col-3" v-if='datetype==1'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valueyear" type="year" placeholder="选择年份" value-format="yyyy"
@change="handleCurrentChanges(1)">
</el-date-picker>    
</template>
</q-field>
</div>
<div class="col-3" v-if='datetype==2'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valuemonth" type="month" placeholder="选择月份" value-format="yyyy-MM"
@change="handleCurrentChanges(1)">
</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>
<q-btn  color="primary" size="11px" label="导出" @click="txexport" style="margin-left:10px"/>
</div>
<template>
<el-table ref="filterTable" :data="tableData" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="OrderId" label="订单号"></el-table-column>
<el-table-column prop="ContractNo" width='150' label="合同号"></el-table-column>
<el-table-column prop="ClassDate" label="上课日期"></el-table-column>
<el-table-column prop="TimeBucket" label="上课时间段"> </el-table-column>
<el-table-column prop="GuestName" label="学生名称"> </el-table-column>
<el-table-column prop="ClassName" label="上课班级"> </el-table-column>
<el-table-column prop="CourseName" label="课程"></el-table-column>
<el-table-column prop="TeacherName" label="老师名称"></el-table-column>
<el-table-column prop="CurrentDeductionHours" label="课时"></el-table-column>
<el-table-column prop="UnitPrice">
<template slot="header">
<div>合同单价</div>
<div>(元/课时)</div>
</template>
</el-table-column>
<el-table-column prop="XHMoney" label="课耗(消耗合同金额)"> </el-table-column>
<el-table-column prop="SaleName" label="提成销售"></el-table-column>
<el-table-column prop="HelpEnterName" label="提成老师"></el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges"
layout="total,prev, pager, next, jumper" :current-page.sync="msg.pageIndex"
:page-size="msg.pageSize" :total='total'>
</el-pagination>
</div>
</template>
</div>
</template>
<script>
import {
getSchoolDropdown,
getTeacherDropDownList
} from '../../api/school/index'
import {
getStudentConsumptionHoursDetialPageList,
} from '../../api/finance/index'
import {
EduDownLoad,
} from '../../api/common/common';
export default {
meta: {
title: "学生课耗明细列表"
},
props: {},
components: {},
data() {
return {
loading: false,
valuemonth: '',
valueyear: '',
//列表数据参数
msg: {
pageIndex: 1,
pageSize: 15,
TeacherId: '-1',
SchoolId: '-1',
StartMonth: '',
EndMonth: '',
StudentName:'',
OrderId:'',
ContractNo:'',
},
datetype: '2',
pageCount: 0,
listData: {},
tableData: [],
total: 0,
CompanyList: [],
TeacherList: [],
datetypelist: [
{ Id: '2', Name: '月份' },
{ Id: '1', Name: '年份' },
]
}
},
created() {
let userinfo = this.getLocalStorage();
var myDate = new Date();
this.valuemonth = myDate.getFullYear() + "-" + (myDate.getMonth() + 1)
this.valueyear = myDate.getFullYear().toString()
if(this.$route.query && this.$route.query.id){
this.msg.TeacherId = Number(this.$route.query.id)
}
},
mounted() {
this.getList();//获取提成周期列表
this.getBranchList()
this.GetTeacherList();//老师下拉
},
methods: {
getList() {
if(this.valuemonth ==null || this.valueyear==null){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择日期`
})
return
}
if (this.datetype == 2) {
this.msg.StartMonth = this.valuemonth;
this.msg.EndMonth = this.valuemonth;
} else if (this.datetype == 1) {
this.msg.StartMonth = this.valueyear + '-01';
this.msg.EndMonth = this.valueyear + '-12';
}
this.loading = true;
getStudentConsumptionHoursDetialPageList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
var obj = {
TeacherName: '全部',
TId: '-1'
}
this.TeacherList.unshift(obj);
}
})
},
getBranchList() {//获取校区
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
var obj = {
SName: '全部',
SId: '-1'
}
this.CompanyList.unshift(obj);
}).catch(() => {
})
},
goUrl(path, id) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
}
})
},
handleCurrentChanges(val) {
this.msg.pageIndex = val;
this.getList()
},
txexport(){
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/finance/GetStudentConsumptionHoursDetialPageListToExcel", msg, "课耗学生明细.xls")
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
<style>
.baseSet_Title {
width: 120px !important;
padding: 18px 0 0 16px;
text-align: right;
}
.teacherclassfee .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.teacherclassfee .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.teacherclassfee ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.teacherclassfee ._icon_btn .icon-add {
background-color: #47BF8C;
}
.teacherclassfee ._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;
}
.teacherclassfee .el-table td,
.el-table th {
padding: 5px 0;
}
.teacherclassfee .el-input {
width: 100%;
border: none;
background-color: transparent;
}
.teacherclassfee .el-input__inner {
width: 100%;
border: none;
background-color: transparent;
}
</style>
<template>
<div class="page-body teacherclassfee">
<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 @input="handleCurrentChanges(1)" option-value="SId"
option-label="SName" v-model="msg.SchoolId" ref="SId" :options="CompanyList" label="校区"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="TId"
option-label="TeacherName" v-model="msg.TeacherId" ref="TId" :options="TeacherList" label="老师"
:dense="false" emit-value map-options />
</div>
<div class="col-3">
<q-select filled stack-label @input="handleCurrentChanges(1)" option-value="Id" option-label="Name" v-model="datetype" ref="Id"
:options="datetypelist" label="日期类型" :dense="false" emit-value map-options />
</div>
<div class="col-3" v-if='datetype==1'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valueyear" type="year" placeholder="选择年份" value-format="yyyy"
@change="handleCurrentChanges(1)">
</el-date-picker>    
</template>
</q-field>
</div>
<div class="col-3" v-if='datetype==2'>
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="valuemonth" type="month" placeholder="选择月份" value-format="yyyy-MM"
@change="handleCurrentChanges(1)">
</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>
<q-btn  color="primary" size="11px" label="导出" @click="txexport" style="margin-left:10px"/>
</div>
<template>
<el-table ref="filterTable" :data="tableData" v-loading='loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" border style="width: 100%">
<el-table-column prop="ClassDate" label="上课日期"></el-table-column>
<el-table-column prop="TimeBucket" label="上课时间段"> </el-table-column>
<el-table-column prop="TeacherName" label="老师名称"></el-table-column>
<el-table-column prop="ClassName" label="上课班级"> </el-table-column>
<el-table-column prop="CourseName" label="课程"></el-table-column>
<el-table-column prop="KSNum" label="上课课时"></el-table-column>
<el-table-column prop="Hours" label="课时转换/小时"> </el-table-column>
<el-table-column prop="HourMoney" label="课时费单价元/小时"></el-table-column>
<el-table-column prop="KSMoney" label="老师课时费"></el-table-column>
</el-table>
<div style="margin-top: 10px;text-align: center;">
<el-pagination background @current-change="handleCurrentChanges"
layout="total,prev, pager, next, jumper" :current-page.sync="msg.pageIndex"
:page-size="msg.pageSize" :total='total'>
</el-pagination>
</div>
</template>
</div>
</template>
<script>
import {
getSchoolDropdown,
getTeacherDropDownList
} from '../../api/school/index'
import {
getTeacherConsumptionHoursDetialPageList,
} from '../../api/finance/index'
import {
EduDownLoad,
} from '../../api/common/common';
export default {
meta: {
title: "老师课时消费明细列表"
},
props: {},
components: {},
data() {
return {
loading: false,
valuemonth: '',
valueyear: '',
//列表数据参数
msg: {
pageIndex: 1,
pageSize: 15,
TeacherId: '-1',
SchoolId: '-1',
StartMonth: '',
EndMonth: '',
},
datetype: '2',
pageCount: 0,
listData: {},
tableData: [],
total: 0,
CompanyList: [],
TeacherList: [],
datetypelist: [
{ Id: '2', Name: '月份' },
{ Id: '1', Name: '年份' },
]
}
},
created() {
let userinfo = this.getLocalStorage();
var myDate = new Date();
this.valuemonth = myDate.getFullYear() + "-" + (myDate.getMonth() + 1)
this.valueyear = myDate.getFullYear().toString()
if(this.$route.query && this.$route.query.id){
this.msg.TeacherId = Number(this.$route.query.id)
}
},
mounted() {
this.getList();//获取提成周期列表
this.getBranchList()
this.GetTeacherList();//老师下拉
},
methods: {
getList() {
if(this.valuemonth ==null || this.valueyear==null){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择日期`
})
return
}
if (this.datetype == 2) {
this.msg.StartMonth = this.valuemonth;
this.msg.EndMonth = this.valuemonth;
} else if (this.datetype == 1) {
this.msg.StartMonth = this.valueyear + '-01';
this.msg.EndMonth = this.valueyear + '-12';
}
this.loading = true;
getTeacherConsumptionHoursDetialPageList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
var obj = {
TeacherName: '全部',
TId: '-1'
}
this.TeacherList.unshift(obj);
}
})
},
getBranchList() {//获取校区
getSchoolDropdown({}).then(res => {
this.CompanyList = res.Data;
var obj = {
SName: '全部',
SId: '-1'
}
this.CompanyList.unshift(obj);
}).catch(() => {
})
},
goUrl(path, id) {
this.$router.push({
path: '/financial/' + path,
query: {
"id": id,
blank: 'y',
}
})
},
handleCurrentChanges(val) {
this.msg.pageIndex = val;
this.getList()
},
txexport(){
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/finance/GetTeacherConsumptionHoursDetialPageListToExcel", msg, "课耗老师明细.xls")
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
......@@ -248,6 +248,16 @@ const routes = [{
component: () =>
import("pages/financial/lessonCostStatistics.vue")
},
{
path: "/financial/teacherclassfee", //老师课时消费明细列表
component: () =>
import("pages/financial/teacherclassfee.vue")
},
{
path: "/financial/studentsClassfee", //学生课耗明细列表
component: () =>
import("pages/financial/studentsClassfee.vue")
},
{
path: "/financial/salesCommission", //提成周期列表
component: () =>
......
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