Commit 562b6420 authored by 罗超's avatar 罗超
parents 06d350c3 908d9f56
......@@ -203,5 +203,16 @@ export function setSellCommissionSendEmployee(data) {
}
// 获取月度班级收支统计
export function getAllClassNowMonthStatistics(data) {
return request({
url: '/finance/GetAllClassNowMonthStatistics',
method: 'post',
data
});
}
......@@ -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>
......
......@@ -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,
......
......@@ -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>
......
......@@ -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,
......
......@@ -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: () =>
......
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