Commit fc8e0a47 authored by 罗超's avatar 罗超
parents b3c8d146 b6bc45c1
......@@ -20,7 +20,7 @@
"cos-js-sdk-v5": "^1.1.5",
"echarts": "^5.1.2",
"element-ui": "^2.14.1",
"html2canvas": "^1.0.0-rc.7",
"html2canvas": "^1.0.0",
"js-md5": "^0.7.3",
"lockr": "^0.8.5",
"lrz": "^4.9.41",
......
......@@ -405,4 +405,27 @@ export function GetTeacherClassHours(data) {
method: 'post',
data
})
}
/**
* 教师奖励 获取课时费老师列表
* @param {JSON参数} data
*/
export function getTeachingRewardsSendEmployeeList(data) {
return request({
url: '/TeachingRewards/GetTeachingRewardsSendEmployeeList',
method: 'post',
data
})
}
/**
* 教师奖励 设置 老师已发放
* @param {JSON参数} data
*/
export function setTeachingRewardsSendEmployee(data) {
return request({
url: '/TeachingRewards/SetTeachingRewardsSendEmployee',
method: 'post',
data
})
}
\ No newline at end of file
......@@ -18,7 +18,7 @@ export function queryStudentBackClassPage(data) {
*/
export function saveBackBillAduit(data) {
return request({
url: '/stu/SetBackBillAduit',
url: '/EducationReceipt/AduitEducationReceipt',
method: 'post',
data
})
......
......@@ -48,4 +48,37 @@ export function GetClassPlanStatisticalPage(data) {
})
}
/**
* 获取我调课申请列表
* @param {JSON参数} data
*/
export function GetEducationReceiptPage(data) {
return request({
url: '/EducationReceipt/GetEducationReceiptPage',
method: 'post',
data
})
}
/**
* 获取下拉数据
* @param {JSON参数} data
*/
export function GetEducationReceiptType() {
return request({
url: '/EducationReceipt/GetEducationReceiptType',
method: 'post'
})
}
/**
* 获取下拉数据
* @param {JSON参数} data
*/
export function GetEduReceiptInfo (data) {
return request({
url: '/EducationReceipt/GetEduReceiptInfo ',
method: 'post',
data
})
}
@font-face{
font-family:'katongjian';
src:url('../../webfont/katongjian.ttf') format('truetype')
}
@font-face{
font-family:'YGYXSZITI';
src:url('../../webfont/YGYXSZITI2.0.ttf') format('truetype')
}
@font-face{
font-family:'FZYBXSJW';
src:url('../../webfont/FZYBXSJW.ttf') format('truetype')
}
@font-face{
font-family:'fzjzjt';
src:url('../../webfont/fzjzjt.ttf') format('truetype')
}
@font-face{
font-family:'fzmwt';
src:url('../../webfont/fzmwt.ttf') format('truetype')
}
@font-face{
font-family:'fztjlst';
src:url('../../webfont/fztjlst.ttf') format('truetype')
}
@font-face{
font-family:'hyhctj';
src:url('../../webfont/hyhctj.ttf') format('truetype')
}
@font-face{
font-family:'hyqytj';
src:url('../../webfont/hyqytj.ttf') format('truetype')
}
@font-face{
font-family:'hyyltj';
src:url('../../webfont/hyyltj.ttf') format('truetype')
}
@font-face{
font-family:'jlx';
src:url('../../webfont/jlx.ttf') format('truetype')
}
@font-face{
font-family:'sszhjt';
src:url('../../webfont/sszhjt.ttf') format('truetype')
}
@font-face{
font-family:'hybqt';
src:url('../../webfont/hybqt.ttf') format('truetype')
}
@font-face{
font-family:'hyhht';
src:url('../../webfont/hyhht.ttf') format('truetype')
}
@font-face{
font-family:'hylbt';
src:url('../../webfont/hylbt.ttf') format('truetype')
}
@font-face{
font-family:'hxlbjt';
src:url('../../webfont/hxlbjt.ttf') format('truetype')
}
@font-face{
font-family:'hywwzj';
src:url('../../webfont/hywwzj.ttf') format('truetype')
}
@font-face{
font-family:'pingfang';
src:url('../../webfont/pingfang.ttf') format('truetype')
}
.adv-box{
box-sizing: border-box;
position: absolute;
/* overflow-y: auto; */
padding-bottom: 15px;
top:0px;
left: 20px;
right: 0;
bottom: 0;
background: #f1f1f1;
}
.adv-box .board{
width: 470px;
position: absolute;
left: 0px;
z-index: 98;
top: 0px;
-webkit-user-select: none !important;
overflow: hidden;
}
.adv-box .board .bg{
width:470px;
z-index: 99;
-webkit-user-drag: none;
}
.adv-box .board .vdr .text{
width:100%;
height:100%;
cursor: move;
overflow: hidden;
white-space: pre-line;
}
.adv-box .board .vdr .img{
max-width:100%;
max-height:100%;
/* width:100%;
height:100%; */
cursor: move;
-webkit-user-drag:none;
}
.adv-box .board .vdr.active{
background:rgba(0,0,0,.3)
}
.adv-box .tools{
width: 32px;
position: absolute;
left: 480px;
top: 0px;
}
.adv-box .tools li{
height: 21px;
width: 32px;
text-align: center;
background: #e5e5e5;
cursor: pointer;
border-radius: 2px;
margin-bottom: 12px;
line-height: 21px;
}
.adv-box .tools li:hover{
background: #d8d8d8 !important
}
.adv-box .tools li.save{
color: #fff;
background: #4d90fe;
}
.adv-box .tools li.save:hover{
background: #0362fd !important;
}
.adv-box .tools li.down{
color: #fff;
background: #35aa47;
}
.adv-box .tools li.down:hover{
background: #1d943b !important;
}
.adv-box .tools li.return{
color: #fff;
background: #d84a38;
}
.adv-box .tools li.return:hover{
background: #bb2413 !important;
}
.adv-box .tools li.source{
color: #fff;
background: #fc5c65;
}
.adv-box .tools li.source:hover{
background: #fc5c65 !important;
}
.adv-box .tools li i{
font-size: 16px;
color: #333;
}
.adv-box .tools li.save,.adv-box .tools li.down,.adv-box .tools li.return,.adv-box .tools li.source {
color: #f0f0f0;
font-size: 12px;
}
.adv-box .property-box{
position: absolute;
left: 560px;
top: 0px;
width: 640px;
right: 10px;
overflow: hidden;
}
.adv-box .property-box label{
font-size: 12px;
}
.adv-box .property-box label.remark{
color: #999;
}
.adv-box .property-box .el-button{
/* padding:5px; */
}
.adv-box .resorece{
position: absolute;
left: 560px;
top: 0px;
width: 120px;
height: 120px;
}
.adv-box .resorece img{
}
.adv-box .max-resource{
width: 470px;
}
.adv-box .el-textarea__inner{
width: 290px;
}
.adv-box .el-slider{
width: 290px;
padding-left: 9px;
}
.adv-box::-webkit-scrollbar{
width: 4px;
height: 8px;
}
.adv-box::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.adv-box::-webkit-scrollbar-thumb {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #EDEDED;
}
.adv-box .el-input-group__append,.adv-box .el-input-group__prepend{
padding: 0 4px;
border-radius: 0px;
}
.adv-box .el-color-picker__trigger,.adv-box .el-color-picker__color{
border-radius: 0px;
}
.adv-box .el-color-picker__trigger {
height: 34px;
width: 34px;
margin-top: 4px;
}
.adv-box .advmanager-box .content {
top: 80px;
left: 0px;
}
.adv-box .goon{
position: fixed;
background: rgba(235, 59, 90, .8);
font-family: 'PingFangSC-fine';
font-size: 14px;
width: 50px;
height: 50px;
border-radius: 100%;
color: #f1f1f1;
right: 10px;
text-align: center;
line-height: 50px;
top:220px;
cursor: pointer;
}
.adv-box .el-input--mini .el-input__inner{
line-height: normal;
}
.adv-box .el-input-number{
vertical-align: top;
}
\ No newline at end of file
......@@ -321,4 +321,7 @@
.advmanager-box .el-input .el-input__inner,.advmanager-box .el-select .el-input{height: auto}
.advmanager-box .query-box ul .el-select.w240 .el-input{width: auto;}
.isAssociatTeam{width:600px;}
.isAssociatTeam .el-switch{margin:20px 0 0 190px;}
\ No newline at end of file
.isAssociatTeam .el-switch{margin:20px 0 0 190px;}
.adv-box .tools{
padding-left: 40px;
}
......@@ -308,7 +308,7 @@
</div>
</q-td>
</template>
<template v-slot:body-cell-optioned="props">
<template v-slot:body-cell-optioned="props" v-if="isShowBtn">
<q-td :props="props" style="width:130px;">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;display:none;" label="编辑"
@click="getInfo(props.row)">
......@@ -489,7 +489,7 @@
</q-banner>
</q-popup-proxy>
</i>
<i v-if="!item.IsEndDate" class="iconfont icon-guanbi Less_Close" style="margin-left:5px;"
<i v-if="!item.IsEndDate&&isShowBtn" class="iconfont icon-guanbi Less_Close" style="margin-left:5px;"
@click.stop="delInfo(item)"></i>
</div>
</div>
......@@ -775,6 +775,7 @@
}
if(this.isShowMyBtn==1){
this.isShowBtn=false;
this.columns.pop();
}
},
mounted() {
......
......@@ -50,7 +50,7 @@
<div class="className">
<div class="classFirst">退课审批</div>
</div>
<div class="classStatus">{{setingObj.AuditStatusName}}</div>
<!-- <div class="classStatus">{{setingObj.AuditStatusName}}</div> -->
</div>
</div>
<q-tabs style="margin:15px;" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary">
......@@ -85,7 +85,8 @@
showType: {
type: Number,
default: 1
}
},
},
components: {
backinfoForm,
......@@ -96,12 +97,14 @@
persistent: true,
tabCheck: 'first', //默认选第一个
loading: false,
}
},
created() {
},
mounted() {
x
},
methods: {
refreshPage() {
......
......@@ -148,8 +148,8 @@
<script>
import {
queryBackBillAduitInfo
} from '../../api/sale/bill'
GetEduReceiptInfo
} from '../../api/teacher/index'
export default {
props: {
setingObj: {
......@@ -164,24 +164,24 @@
return {
persistent: true,
qMsg: {
BackId: 0
Id: 0
},
DataList: []
}
},
created() {
this.qMsg.BackId = this.setingObj.BackId;
this.qMsg.Id = this.setingObj.Id;
},
mounted() {
this.getStuBaclFlow();
},
methods: {
getStuBaclFlow() {
queryBackBillAduitInfo(this.qMsg).then(res => {
GetEduReceiptInfo (this.qMsg).then(res => {
if (res.Code == 1) {
this.DataList = res.Data;
this.DataList = res.Data
}
})
}).catch(() => {})
}
},
}
......
......@@ -91,22 +91,22 @@
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">编号:</span>
<span class="backOtherInfo">{{setingObj.BackNum}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.BackNum}}</span>
</div>
<div class="col-6">
<span class="backInfo_Title">申请人:</span>
<span class="backOtherInfo">{{setingObj.CreateByName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.CreateByName}}</span>
</div>
</div>
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">学员姓名:</span>
<span class="backOtherInfo">{{setingObj.GuestName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.GuestName}}</span>
</div>
<div class="col-6">
<!-- <div class="col-6">
<span class="backInfo_Title">申请时间:</span>
<span class="backOtherInfo">{{setingObj.CreateTimeStr}}</span>
</div>
</div> -->
</div>
<div class="backinfo_Item">
<span class="role_Line" style="background-color:#F28C1D"></span>教学信息
......@@ -114,21 +114,21 @@
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">校区:</span>
<span class="backOtherInfo">{{setingObj.SchoolName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.SchoolName}}</span>
</div>
<div class="col-6">
<span class="backInfo_Title">班级信息:</span>
<span class="backOtherInfo">{{setingObj.ClassName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.ClassName}}</span>
</div>
</div>
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">带班老师:</span>
<span class="backOtherInfo">{{setingObj.TeacherName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.TeacherName}}</span>
</div>
<div class="col-6">
<span class="backInfo_Title">学习课程:</span>
<span class="backOtherInfo">{{setingObj.CourseName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.CourseName}}</span>
</div>
</div>
<div class="backinfo_Item">
......@@ -137,7 +137,7 @@
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">学习课时:</span>
<span class="backOtherInfo">{{setingObj.FinishHours}} 课时</span>
<span class="backOtherInfo">{{setingObj.DataObj.FinishHours}} 课时</span>
</div>
<div class="col-6">
<span class="backInfo_Title">缺勤次数:</span>
......@@ -156,30 +156,30 @@
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">关联单号:</span>
<span class="backOtherInfo" style="color:#2961FE">{{setingObj.OrderId}}</span>
<span class="backOtherInfo" style="color:#2961FE">{{setingObj.DataObj.OrderId}}</span>
</div>
<div class="col-6">
<span class="backInfo_Title">关联销售:</span>
<span class="backOtherInfo">{{setingObj.EnterName}}</span>
<span class="backOtherInfo">{{setingObj.DataObj.EnterName}}</span>
</div>
</div>
<div class="row backInfo_One">
<div class="col-6">
<span class="backInfo_Title">预计退费:</span>
<span class="backOtherInfo" style="color:#F72E52">¥{{setingObj.BackMoney}}</span>
<span class="backOtherInfo" style="color:#F72E52">¥{{setingObj.DataObj.BackMoney}}</span>
</div>
</div>
</div>
<div class="replayReason">
<div class="replay_Title">退课原因</div>
<div style="color:#666666;margin-top:5px;">
{{setingObj.ApplyReason}}
{{setingObj.DataObj.ApplyReason}}
</div>
</div>
<template v-if="setingObj.SpecialNode==1">
<span>
<q-input filled stack-label :dense="false" v-model="backBillMsg.BackMoney" class="col-12" label="退课金额"
:rules="[val => !!val || '请填退课金额']" />
/>
</span>
<span>
系统计算课时费为:{{(classPriceObj.ClassHours-classPriceObj.FinishHours)}}(课时)*{{classPriceObj.classHourPrice}}(课单价)={{classPriceObj.backMoney}}元,请你最终确认退款金额
......@@ -265,7 +265,7 @@
return {
persistent: true,
backBillMsg: {
BackId: 0,
Id: 0,
BackMoney: 0, //实际退款金额
Description: "", //审批意见
AuditStatus: 0, //审核状态
......@@ -280,7 +280,7 @@
},
created() {},
mounted() {
this.backBillMsg.BackId = this.setingObj.BackId;
this.backBillMsg.Id = this.setingObj.Id;
this.backBillMsg.SpecialNode = this.setingObj.SpecialNode;
if (this.backBillMsg.SpecialNode == 1) {
this.getBackBillMoney();
......@@ -290,7 +290,7 @@
methods: {
getBackBillMoney() {
queryBackBillMoney({
BackId: this.backBillMsg.BackId
BackId: this.setingObj.RelationId
}).then(res => {
if (res.Code == 1) {
this.classPriceObj = res.Data;
......
......@@ -32,7 +32,7 @@
<th width="7%">平台税金</th>
<th width="7%">待收金额</th>
<th width="7%">状态</th>
<th>操作</th>
<th v-if="viewType==0">操作</th>
</tr>
</thead>
</table>
......@@ -73,6 +73,9 @@
<div v-if="item.HelpEnterName">
协助人员:{{item.HelpEnterName}}
</div>
<div v-if="item.ClassNo">
班号:{{item.ClassNo}}
</div>
<div v-if="item.OpenTime">
开班时间:{{item.OpenTime}}
</div>
......@@ -198,7 +201,7 @@
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="editOrder(item)" />
</template>
<q-btn-dropdown flat size="xs" color="dark" v-if="AuthorityObj.isShowMore" label="更多" style="margin-left:10px;">
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup>
<q-item-section @click="gostudent(item)">
......@@ -904,7 +907,6 @@
isShowRenewClass: false, //是否显示续课按钮
isShowContract: true, //是否显示合同
isShowEdit: true, //是否显示修改订单按钮
isShowMore: true //是否显示更多下拉按钮
},
isShowEduForm: false, //是否显示新增修改合同弹窗
......@@ -923,7 +925,6 @@
this.Employee();
var localStorageData = window.localStorage["loginUserInfo"];
let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList
if (ActionMenuList && ActionMenuList.length > 0) {
ActionMenuList.forEach(x => {
if (x.FunctionCode == 'Edit_OrderExtraMoney') {
......@@ -957,7 +958,8 @@
immediate: true
}
},
mounted() {},
mounted() {
},
methods: {
//初始化权限信息
initAuth() {
......@@ -1004,9 +1006,6 @@
if (this.authObj.isShowEdit != null && !this.authObj.isShowEdit) {
this.AuthorityObj.isShowEdit = this.authObj.isShowEdit;
}
if(this.authObj.isShowMore != null && !this.authObj.isShowMore){
this.AuthorityObj.isShowMore = this.authObj.isShowMore
}
}
},
//关闭报价单
......
This diff is collapsed.
......@@ -18,53 +18,65 @@
font-weight: bold;
cursor: pointer;
}
.sche_rightTop{
.sche_rightTop {
width: 100%;
padding: 20px 0;
background-color: #fff;
position: relative;
}
.Scotop_little{
white-space: nowrap;
}
.Scotop_con{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
<template>
<div class="sche_rightTop">
<!-- <div v-if="dataList.Status!=2" class="sche_Topflex" style="display:flex;">
<div class="Sctop_Color Scdu_benci" style="position:relative;">本次上课信息</div>
<div class="Sctop_Color">
<span class="Scotop_little">校区</span>{{dataList.SchoolName}}
</div>
<div class="Sctop_Color" style="width:33%;">
<span class="Scotop_little">计划时间</span>
<span v-if="dataList.PlanDate">{{dataList.PlanDate.replaceAll('-','.')}}</span>
<span v-if="dataList.WeekDay"> {{dataList.WeekDay.replace('星期','周')}}</span>
{{dataList.StartTime}}-{{dataList.EndTime}}
</div>
<div class="Sctop_Color" style="width:15%">
<span class="Scotop_little">课程名称</span>{{dataList.ShiftName}}
</div>
</div> -->
<!-- <div class="Sctop_Last">
<div @click="isShowJiedai=true"><i style="margin-right:5px;" class="iconfont icon-liuchengguanliqi"></i>接待流程
</div>
</div> -->
<table style="width:100%;margin:0 20px;font-size:18px;color:#000000;">
<table style="margin:0 20px;font-size:18px;color:#000000;">
<tr>
<td style="width:11%">
<span class="Sch_MainColor">本次上课信息</span>
<td style="width:20%">
<span class="Sch_MainColor Scotop_con" >本次上课信息</span>
</td>
<td style="width:15%">
<span class="Scotop_little">班级:</span>{{dataList.ClassName}}
<td style="width:25%;">
<div style="display:flex;">
<div class="Scotop_little">
班级:
</div>
<span class="Scotop_con">{{dataList.ClassName}}</span>
</div>
</td>
<td style="width:15%;">
<span class="Scotop_little">计划时间:</span>{{dataList.PlanTime}}
<td style="width:25%;">
<div style="display:flex;padding-left:20px;">
<div class="Scotop_little">
计划时间:
</div>
<span class="Scotop_con">{{dataList.PlanTime}}</span>
</div>
</td>
<td style="width:23%;">
<span class="Scotop_little">课程名称:</span>{{dataList.CourseName}}
<td style="width:25%;">
<div style="display:flex;padding-left:20px;">
<div class="Scotop_little">
课程名称:
</div>
<span class="Scotop_con">{{dataList.CourseName}}</span>
</div>
</td>
<td>
<span class="Scotop_little">当前状态:</span>
<span v-if="dataList.ClassStatus===0">待上课</span>
<span v-if="dataList.ClassStatus===1">上课中</span>
<span v-if="dataList.ClassStatus===2">下课</span>
<td style="width:20%;">
<div style="display:flex;padding-left:20px;">
<div class="Scotop_little">
当前状态:
</div>
<span v-if="dataList.ClassStatus===0" class="Scotop_con">待上课</span>
<span v-if="dataList.ClassStatus===1" class="Scotop_con">上课中</span>
<span v-if="dataList.ClassStatus===2" class="Scotop_con">下课</span>
</div>
</td>
</tr>
<tr>
......@@ -73,14 +85,18 @@
<span class="Scotop_little">老师:</span>{{dataList.TeacherName}}
</td>
<td>
<span class="Scotop_little">实际时间:</span>{{dataList.ActualTime}}
<div style="padding-left:20px;">
<span class="Scotop_little" >实际时间:</span>{{dataList.ActualTime}}
</div>
</td>
<td>
<span class="Scotop_little">出勤人数:</span>{{dataList.AttendanceNum}}
<div style="padding-left:20px;">
<span class="Scotop_little">出勤人数:</span>{{dataList.AttendanceNum}}
</div>
</td>
</tr>
</table>
</div>
</template>
<script>
......@@ -91,6 +107,13 @@
default: null
},
},
watch: {
dataList: {
handler(val) {
console.log(78, val)
}
}
}
}
</script>
......@@ -97,10 +97,15 @@
<q-item-label>取消</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup v-if="props.row.State==2 && props.row.FrIdList==0 && props.row.Money>0">
<!-- <q-item clickable v-close-popup v-if="props.row.State==2 && props.row.FrIdList==0 && props.row.Money>0">
<q-item-section @click="systemShan(props.row)">
<q-item-label>制单</q-item-label>
</q-item-section>
</q-item> -->
<q-item clickable v-close-popup v-if="props.row.State==2 && props.row.FrIdList==0 && props.row.Money>0">
<q-item-section @click="generalFinancacls(props.row)">
<q-item-label>制单</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
......@@ -174,6 +179,46 @@
<q-icon name="iconfont icon-jujue1" size="26px" />
</div>
</el-drawer>
<q-dialog v-model="costmode" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 700px;max-width:700px;">
<q-card-section>
<div class="text-h6">设置发放老师</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" >
<el-table
:data="SendEmployeeList"
border
max-height='384px'
@selection-change="handleSelectionChange"
style="width: 100%;">
<el-table-column type="selection" width="55" :selectable="checkSelectable"></el-table-column>
<el-table-column prop="TeacherName" label="老师" > </el-table-column>
<el-table-column prop="Money" label="应发提成金额" > </el-table-column>
<el-table-column prop="IsGiveOut" label="是否已发放" >
<template slot-scope="scope">
<span v-if='scope.row.IsGiveOut==1'>已发放</span>
<span v-if='scope.row.IsGiveOut==2'>未发放</span>
</template>
</el-table-column>
</el-table>
<div style="margin-top: 10px;">金额总额:{{totalAmount}}</div>
<div slot="footer" class="dialog-footer">
<el-button class="hollowFixedBtn" @click="costmode=false">取消</el-button>
<el-button class="normalBtn" type="primary" @click="preservetransaction()">确定</el-button>
</div>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="costmode=false" />
<q-btn label="确定" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="preservetransaction()" />
</q-card-actions>
</q-card-section>
</q-card>
</q-dialog>
</div>
</template>
......@@ -184,6 +229,8 @@
setTeachingBonusAdd, //新增课时奖励
setTeachingBonusState, //教师绩效 设置状态
setTeachingBonusFinance, //教师奖励 生成财务单据
getTeachingRewardsSendEmployeeList,//获取课时费老师列表
setTeachingRewardsSendEmployee,//设置 老师已发放
} from '../../api/course/class'
import {
getTeacherDropDownList,
......@@ -276,6 +323,12 @@
return time.getTime() > upperMonth;
},
},
CheckID:0,
SendEmployeeList:[],
costmode:false,
totalAmount:0,
saveLoading:false,
multipleSelection:[]
}
},
created() {
......@@ -328,7 +381,7 @@
this.TeacherList = res.Data;
this.TeacherList.unshift({
TId: 0,
TeacherName: "不限"
TeacherName: "全部老师"
})
this.AllTeacherList = this.TeacherList
}
......@@ -360,7 +413,6 @@
if (this.tempManager && this.tempManager.length > 0) {
let all = false
this.tempManager.forEach(x => {
if (x == 0) {
all = true
......@@ -516,6 +568,103 @@
}
})
},
checkSelectable(row){
return row.IsGiveOut==2
},
handleSelectionChange(val) {
this.multipleSelection = val;
let zong = 0
this.multipleSelection.forEach(x=>{
zong +=x.Money
})
this.totalAmount = zong
},
generalFinancacls(item){
this.CheckID = item.Id
console.log(item)
if(item.Money>0){
this.getcomSendEmployeeList()
}else{
this.$message.error('提成总金额为0')
}
},
getcomSendEmployeeList(Id){//获取可发放提成的老师
getTeachingRewardsSendEmployeeList({PeriodId:this.CheckID}).then(res => {
this.SendEmployeeList = res.Data;
this.costmode = true
}).catch(() => {
})
},
preservetransaction(){
let that = this
if( this.multipleSelection.length == 0){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择您要发放的老师`
})
return
}
this.$q.dialog({
title: "设置用户状态",
message: "确认后无法更改老师制单状态,如果需修改请联系管理员",
persistent: true,
cancel: {
label: "取消",
flat: true
},
ok: {
label: "确认",
flat: true,
focus: true
}
}).onOk(() => {
let EmpIds = '';
let data = []
this.multipleSelection.forEach(x=>{
data.push(x.TeacherId)
})
EmpIds = data.join(',')
this.saveLoading = true
setTeachingRewardsSendEmployee({PeriodId:this.CheckID,EmpIds:EmpIds}).then(res => {
this.saveLoading = false
this.goaddFinancial(this.totalAmount,this.CheckID)
this.$message.success('设置成功');
}).catch(() => {
})
});
},
goaddFinancial(Money,Id){
let School_Id = 0;
let obj = {
CostType: 1250,
Money: Money,
CurrencyId: 21,
XSTC: 1,
School_Id:0,
OtherType:26,
ReFinanceId:Id,
ReFinanceId2:0
}
let query = {
blank: "y",
tab: "新增付款单据",
Type: 2,
IsUploadPic: 1,
Name:'销售提成单',
id:143,
orderObj: JSON.stringify(obj)
}
this.$router.push({
path: "/financial/financalDocument/addFinancialDocuments",
query
});
},
}
}
......
......@@ -23,7 +23,7 @@
</div>
</div>
<div class="page-content">
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :isShowEditBtn="isShowEditBtn" :modityOrderType="2" :cancelList="CancelList"
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :viewType="viewType" :isShowEditBtn="isShowEditBtn" :modityOrderType="2" :cancelList="CancelList"
@success="refreshClassOrder"></orderlist>
</div>
</div>
......@@ -58,9 +58,9 @@
isShowCommissionEdit: true, //显示修改提成按钮
isShowRewardEdit: true, //显示修改额外提成按钮
isShowEdit: true, //显示修改按钮
isShowMore: true //显示更多下拉
},
isShowEditBtn:0
isShowEditBtn:0,
viewType:0
}
},
created() {
......@@ -69,9 +69,8 @@
this.msg.ClassId = this.ClassId;
}
if(this.$route.query.isFromMyclass&&this.$route.query.isFromMyclass==1){
this.authObj.isShowEdit=false
this.authObj.isShowMore=false
this.isShowEditBtn=1
this.isShowEditBtn=1;
this.viewType=1
}
this.getList();
},
......
......@@ -56,7 +56,7 @@
</tr>
<tr>
<th width="">老师名称</th>
<th width="">课时</th>
<th width="">上课课时</th>
<th width="">基础课时</th>
<th width="">课时费</th>
<th width="">学生名称</th>
......@@ -70,9 +70,12 @@
<span>{{item.Month}}</span>
</td>
<td>
<p v-for="( son , sIndex ) in item.TeacherList"><span
<p v-for="( son , sIndex ) in item.TeacherList">
<span v-if="son.TeacherName !='-' "
style="cursor: pointer;text-decoration: underline;"
@click="gourlteacher('teacherclassfee',son,item)">{{son.TeacherName}}</span></p>
@click="gourlteacher('teacherclassfee',son,item)">{{son.TeacherName}}</span>
<span v-else >{{son.TeacherName}}</span>
</p>
</td>
<td>
<p v-for="( son , sIndex ) in item.TeacherList">{{son.HoursNum}}</p>
......@@ -94,7 +97,9 @@
</td>
<td>
<span v-if='item.show == true'>
<p v-for="( son , sIndex ) in item.StudentList"><span style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.StudentName}}</span>
<p v-for="( son , sIndex ) in item.StudentList">
<span v-if="son.StudentName!='-'" style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.StudentName}}</span>
<span v-else >{{son.StudentName}}</span>
</p>
</span>
<span v-if='item.show == false'>
......@@ -199,9 +204,46 @@
x.show = true
}
});
if(this.dataList.length>0){
this.getAskfor()
}
}
})
},
getAskfor(){
let obj = {
Month:'合计',
TeacherList:[{TeacherName:'-',HoursNum:0,BaseHoursNum:0,HoursMoney:0}],
StuNum:'-',
StuSumHours:0,
StuSumMoney:0,
StudentList:[{StudentName:'-',HoursNum:'-',HoursMoney:'-'}],
show:true
}
this.dataList.forEach((x)=>{
if(x.StuSumHours){obj.StuSumHours = this.accAdd(x.StuSumHours,obj.StuSumHours) };
if(x.StuSumMoney){obj.StuSumMoney = this.accAdd(x.StuSumMoney,obj.StuSumMoney) };
x.TeacherList.forEach(j=>{
obj.TeacherList[0].HoursNum = this.accAdd(obj.TeacherList[0].HoursNum,j.HoursNum);
obj.TeacherList[0].BaseHoursNum = this.accAdd(obj.TeacherList[0].BaseHoursNum,j.BaseHoursNum);
obj.TeacherList[0].HoursMoney = this.accAdd(obj.TeacherList[0].HoursMoney,j.HoursMoney);
})
})
this.dataList.push(obj)
},
accAdd(arg1,arg2){//js 加法精确计算
var r1,r2,m;
try { r1 = arg1.toString().split(".")[1].length;} catch(e) {
r1 = 0;
}
try { r2 = arg2.toString().split(".")[1].length;} catch(e) {
r2 = 0;
}
m =Math.pow(10,Math.max(r1,r2));
return (arg1*m+arg2*m)/m;
},
setClass(item) {//班级
this.isShowClass = true;
getClassDropDownList({
......
......@@ -157,7 +157,7 @@
<!-- <button type="button" class="normalBtn" @click="outerVisible=true">导入</button>
<button type="button" class="normalBtn" @click="downMuban()">下载导入模板</button> -->
<!-- <button class="normalBtn" @click="addShow=true,text=$t('pub.addBtn'),addFun(),resetInfo()" >{{$t('pub.addBtn')}}</button> -->
<q-btn color="primary" size="11px" :label="$t('pub.addBtn')"  @click="addShow=true,text=$t('pub.addBtn'),addFun(),resetInfo()"/>
<q-btn color="primary" size="11px" label="新增"  @click="addShow=true,text=$t('pub.addBtn'),addFun(),resetInfo()"/>
<el-tooltip class="item" effect="dark" :content="$t('fnc.qhpaiban')" placement="top-end">
<i v-if="transitionShow" class="iconfont icon-biaoge" @click="switchMethod(1)"></i>
<i v-if="transitionShow2" class="iconfont icon-icon-ssan" @click="switchMethod(2)"></i>
......@@ -669,6 +669,7 @@
if(!x){
this.addMsg.ParentId = '';
}
let msg = {
Name:'',
Type:0,
......@@ -864,7 +865,10 @@
}
this.DepartmentList=[];
this.PostList=[];
this.EmployeeList=[];
// this.EmployeeList=[];
this.EmployeeList.forEach(y=>{
y.disabled = false;
});
this.CostTypeList = [];
},
initTableInfo(){//获取数据
......@@ -916,7 +920,6 @@
this.addMsg.Sort = dataList.Sort;
this.addMsg.Is_Report = dataList.Is_Report;
this.addMsg.IsSecret = dataList.IsSecret;
// this.addMsg = dataList;
if(dataList.DepartList.length>0){
dataList.DepartList.forEach(x=>{
......@@ -946,6 +949,8 @@
}
})
}
this.getCostTypeList(2,1)//费用类型
} else {
this.Error(res.data.message);
}
......@@ -1002,6 +1007,9 @@
}
this.addMsg.list.push(obj)
}
if(this.EmployeeIDList.length==0){
return this.$message.error('请选择使用人员')
}
if(this.EmployeeIDList.length > 0){
this.EmployeeIDList.forEach(x=>{
let obj = {
......
......@@ -890,7 +890,7 @@
} else {
endDate = that.year + "-" + column.end
}
if (rowIndex < 6 ) {
if (rowIndex < 7 ) {
// 联运收入
// if(rowData.ZhaiYao=="联运收入"){
// that.goUrl("CombinedRevenueReport",startDate,endDate,BranchId,"联运收入")
......@@ -1203,11 +1203,11 @@
let tichengList = [];
this.DataList = [];
data.list.forEach(item => {
if (item.ZhaiYao != "销售提成" && item.ZhaiYao != "原始提成") {
// if (item.ZhaiYao != "销售提成" && item.ZhaiYao != "原始提成") {
this.DataList.push(item)
} else {
tichengList.push(item);
}
// } else {
// tichengList.push(item);
// }
})
this.UpdateStaus = data.Status;
this.UpdateStartTime = data.UpdateStartTime;
......
......@@ -183,7 +183,7 @@
<td style="position: relative;">
<div v-if='item.StuList && item.StuList.length>0'>
<span v-if='item.show == true'>
<p v-for="( son , sIndex ) in item.StuList">{{son.Money}}
<p v-for="( son , sIndex ) in item.StuList"><span style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.Money}}</span>
<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'
......@@ -195,7 +195,7 @@
</span>
<span v-if='item.show == false'>
<p v-for="( son , sIndex ) in item.StuList"> <span
v-if='sIndex<3'>{{son.Money}}</span>
v-if='sIndex<3'><span style="cursor: pointer;text-decoration: underline;" @click="gourlteacher2('studentsClassfee',son,item)">{{son.Money}}</span></span>
<span
style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;"
v-if='sIndex==2 && item.show == false'
......
......@@ -28,6 +28,10 @@
<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-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassNo" 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="学习课程" />
......@@ -176,6 +180,7 @@
Q_OrderBy: 2, //写死 =2
PlatformTax: 0, //平台税金
EnterID:'',//业务员id
ClassNo:'',//班号
},
//订单状态
OrderStateList: [],
......
......@@ -82,6 +82,8 @@
</template>
<template v-slot:body-cell-TeacherId="props">
<q-td :props="props">
<q-btn flat size="xs" color="accent" @click="goUrl(props.row)" style="font-weight:400"
label="学员名单" />
<q-btn flat size="xs" icon="edit" color="accent" @click="editVisitor(props.row)" style="font-weight:400"
label="修改" />
<q-btn flat size="xs" icon="delete" @click="deleteReserve(props.row)" color="negative" style="font-weight:400"
......@@ -283,6 +285,16 @@
//刷新页面
refreshPage() {
this.getList();
},
goUrl(i) {
let path="/teacher/studentsClassSee"
let queryObj={
StudentId: i.Id,
TeacherId: i.Teacher_Id,
ClassId: i.ClassId
}
this.OpenNewUrl(path, queryObj)
}
}
}
......
......@@ -93,6 +93,12 @@
required: true,
field: 'Name',
align: 'left'
},
{
name: 'Age',
field: 'Age',
label: '年龄',
align: 'left',
},
{
name: 'Tel',
......
<style>
.Sysuser_Date .el-range-editor .el-range-input {
background-color: transparent;
}
.Sysuser_Date .el-range-editor.el-input__inner {
background-color: transparent;
}
.ReceipTypeName{
display: inline-block;
padding: 2px 8px;
color: white;
background-color: rgb(233, 82, 82);
line-height: 16px;
border-radius: 4px;
}
</style>
<template>
<div class="page-body">
<div class="page-search row items-center">
<div class="col row wrap q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable filled v-model="msg.ClassName"
label="学员名称/班级名称/老师名称" />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled v-model="msg.AuditStatus" :options="ShowOpts"
emit-value map-options label="审核状态" />
</div>
<div class="col-3">
<q-select @input="resetSearch" option-value="Id" option-label="Name" filled v-model="msg.ReceiptType" :options="OrderTypeList"
emit-value map-options label="单据类型" />
</div>
<div class="col-3 Sysuser_Date">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="applyDateList" @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>
</div>
<div class="page-content">
<q-tabs style="margin-bottom:20px;" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary">
<q-tab :ripple="false" name="1" label="我发起的" />
<q-tab :ripple="false" name="3" label="待我审批" />
<q-tab :ripple="false" name="2" label="已审批" />
<q-tab :ripple="false" name="4" label="抄送给我的" />
</q-tabs>
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-tow-column-table"
separator="none" :data="data" :columns="columns" row-key="name">
<template v-slot:body-cell-ReceiptTypeName="props">
<q-td :props="props">
<span class="ReceipTypeName">{{props.row.ReceiptTypeName}}</span>
</q-td>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<template v-if="tabCheck=='3'">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="审核"
@click="showBillForm(props.row,2)" />
</template>
<template v-else>
<template v-if="props.row.FinanceId&& props.row.FinanceId>0">
<a style="cursor:pointer;color:blue;" title="退课财务单据号"
@click="goFinaceUrl('FinancialDocumentsDetail',props.row)">{{props.row.FinanceId}}</a>
</template>
<template v-else>
<q-btn v-if="tabCheck=='1' && props.row.AuditStatus==2" flat size="xs" icon="edit" color="accent"
style="font-weight:400" label="生成单据" @click="createBillForm(props.row)" />
</template>
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="查看"
@click="showBillForm(props.row,1)" />
</template>
</q-td>
</template>
</q-table>
<backbill-form v-if="isShowBillForm" :seting-obj="billObj" :showType="showType" @close="closeBillForm"
@success="refreshPage">
</backbill-form>
<createbackbill-form v-if="isShowCreateBillForm" :seting-obj="billObj" @close="closeBillForm"
@success="refreshPage">
</createbackbill-form>
</div>
</div>
</template>
<script>
import {
GetEducationReceiptPage,
GetEducationReceiptType
} from '../../api/teacher/index'
import backbillForm from '../../components/sale/backbill-form';
import createbackbillForm from '../../components/sale/createbackbill-form';
export default {
meta: {
title: "退课单据"
},
components: {
backbillForm,
createbackbillForm
},
data() {
return {
currentUrl: "",
columns: [{
name: 'Id',
label: '单号',
field: 'Id',
align: 'left'
},{
name: 'Title',
label: '标题',
field: 'Title',
align: 'left'
},
{
name: 'ReceiptTypeName',
label: '单据类型',
field: 'ReceiptTypeName',
align: 'left'
},
{
name: 'AuditStatusName',
label: '审核状态',
field: 'AuditStatusName',
align: 'left'
},
{
name: 'CreateByName',
label: '创建人',
field: 'CreateByName',
align: 'left'
},
{
name: 'CreateTime',
label: '创建时间',
field: 'CreateTime',
align: 'left'
},
{
name: 'optioned',
label: '操作',
field: 'BackId'
}
],
data: [],
loading: true,
applyDateList: [], //申请日期
ShowOpts: [
{
label: '审核中',
value: '1'
},
{
label: '通过',
value: '2'
},
{
label: '驳回',
value: '3'
},
{
label: '作废',
value: '4'
}
],
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
ClassName: "", //学员、班级、老师名称
AuditStatus: "", //审核状态
StartTime: "", //开始时间
EndTime: "", //结束时间
Conditon: 1,
ReceiptType:'' //单据类型
},
tabCheck: "1",
pageCount: 0,
isShowBillForm: false, //是否显示单据表单
isShowCreateBillForm: false, //是否显示制单表单
billObj: {}, //单据信息
showType: 1, //1-查看,2-审核
OrderTypeList: [],
}
},
created() {
},
mounted() {
this.currentUrl = this.$route.path;
this.getEducationType();
this.getStuBackBill();
},
methods: {
//跳转到财务单据
goFinaceUrl(path, rowData) {
this.$router.push({
path: '/financial/financalDocument/' + path,
query: {
"id": rowData.FinanceId,
blank: 'y',
tab: '单据详情'
}
})
},
//生成财务单据
createBillForm(item) {
this.isShowCreateBillForm = true;
this.billObj = item;
},
//关闭表单
closeBillForm() {
this.isShowBillForm = false;
this.isShowCreateBillForm = false;
this.billObj = {};
},
//显示表单
showBillForm(item, type) {
this.isShowBillForm = true;
this.showType = type;
this.billObj = item;
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getStuBackBill();
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getStuBackBill();
},
//获取退课单据分页列表
getStuBackBill() {
this.loading = true;
this.data = [];
this.pageCount = 0;
this.msg.Conditon = this.tabCheck;
if (this.applyDateList && this.applyDateList.length > 0) {
this.msg.StartTime = this.applyDateList[0];
this.msg.EndTime = this.applyDateList[1];
} else {
this.msg.StartTime = '';
this.msg.EndTime = '';
}
GetEducationReceiptPage(this.msg).then(res => {
this.loading = false;
this.data = res.Data.PageData;
this.pageCount = res.Data.PageCount;
}).catch(() => {
this.loading = false;
})
},
//刷新页面
refreshPage() {
this.isShowBillForm = false;
this.billObj = {};
this.getStuBackBill();
},
//获取下拉数据
getEducationType() {
GetEducationReceiptType().then(res => {
if (res.Code == 1) {
this.OrderTypeList = res.Data;
}
}).catch(() => {})
}
},
watch: {
tabCheck: function (val) {
this.resetSearch();
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
......@@ -68,12 +68,9 @@
methods: {
goUrl(item) {
if (item.ClassType === 1) {
this.$router.push({
path: "../../classroom/courseInfo",
query: {
id: item.Id
}
})
this.OpenNewUrl("../../classroom/courseInfo", {
id: item.Id
});
}
}
}
......
......@@ -130,12 +130,9 @@
},
//跳转到课程回顾
goCourseRecord(item) {
this.$router.push({
path: "../../classroom/courseInfo",
query: {
id: item.Id
}
})
this.OpenNewUrl("../../classroom/courseInfo", {
id: item.Id
});
}
}
}
......
......@@ -31,12 +31,13 @@
<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="refreshPage" clearable standout="bg-primary text-white" v-model="msg.GuestName"
label="学员名称" @clear="refreshPage" maxlength="20" />
<q-input @change="refreshPage" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="学员名称"
@clear="refreshPage" maxlength="20" />
</div>
<div class="col-3">
<q-select @input="refreshPage" standout="bg-primary text-white" option-value="ClassId" option-label="ClassName"
v-model="msg.ClassId" :options="ClassList" emit-value map-options label="班级" use-input clearable @filter="filterClass"/>
<q-select @input="refreshPage" standout="bg-primary text-white" option-value="ClassId"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" emit-value map-options label="班级"
use-input clearable @filter="filterClass" />
</div>
<div class="col-3">
<q-select @input="refreshPage" standout="bg-primary text-white" option-value="CourseId"
......@@ -92,9 +93,10 @@
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<!-- <q-btn flat size="xs" color="accent" style="font-weight:400" label="停课"
<!-- <q-btn flat size="xs" color="accent" style="font-weight:400" label="停课"
@click="" /> -->
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-btn flat size="xs" color="accent" style="font-weight:400" label="课耗明细" @click="goUrl(props.row)" />
<!-- <q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="goUrl(props.row)">
<q-item-section>
......@@ -102,11 +104,11 @@
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</q-btn-dropdown> -->
</q-td>
</template>
</q-table>
</div>
</div>
</template>
......@@ -122,7 +124,7 @@
} from '../../api/users/user' //获取销售下拉列表
import {
queryCourseDropdownList,
} from '../../api/course/index'//课程下拉
} from '../../api/course/index' //课程下拉
import {
GetStuPageList
} from "../../api/teacher/student"
......@@ -140,20 +142,19 @@
},
data() {
return {
columns: [
{
columns: [{
name: 'GuestName',
label: '学员名称',
field: 'GuestName',
align: 'left',
},
{
{
name: 'Mobile',
label: '电话',
field: 'Mobile',
align: 'left'
},
{
{
name: 'ClassName',
label: '班级名称',
field: 'ClassName',
......@@ -165,26 +166,32 @@
field: 'CourseName',
align: 'left'
},
{
{
name: 'TotalPlanNum',
label: '课程进度',
field: 'TotalPlanNum',
align: 'left'
},
{
{
name: 'IsRenewOrder',
label: '是否是续课订单',
field: 'IsRenewOrder',
align: 'left'
},
{
{
name: 'RenewOrderId',
label: '订单号',
field: 'RenewOrderId',
align: 'left'
},
{
name: 'GuestStateStr',
label: '学员状态',
field: 'GuestStateStr',
align: 'left'
},
{
{
name: 'EnterName',
label: '销售',
field: 'EnterName',
......@@ -289,7 +296,7 @@
})
},
//获取班级下拉
getClass() {
getClass() {
getClassDropDownList({
CourseId: 0,
IsAddDefault: 0, //添加默认选项
......@@ -319,43 +326,47 @@
})
},
//获取学员管理列表
getStuPageList(){
this.loading = true;
GetStuPageList(this.msg).then(res=>{
this.loading = false
console.log(439,res)
if(res.Code===1){
this.data=res.Data.PageData
this.pageCount=res.Data.PageCount
}
}).catch(err=>{
this.loading = false
})
getStuPageList() {
this.loading = true;
GetStuPageList(this.msg).then(res => {
this.loading = false
console.log(439, res)
if (res.Code === 1) {
this.data = res.Data.PageData
this.pageCount = res.Data.PageCount
}
}).catch(err => {
this.loading = false
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getStuPageList()
},
//刷新页面
refreshPage() {
this.msg.pageIndex = 1;
this.getStuPageList();
},
goUrl(i){
console.log(134,i)
this.$router.push({
path:"/teacher/studentsClassSee",
query:{
StudentId:i.Id,
// StudentName:i.GuestName,
// SchoolId:i.School_Id,
TeacherId:i.Teacher_Id,
ClassId:i.ClassId
}
})
goUrl(i) {
let path="/teacher/studentsClassSee"
let queryObj={
StudentId: i.Id,
TeacherId: i.Teacher_Id,
ClassId: i.ClassId
}
this.OpenNewUrl(path, queryObj)
// this.$router.push({
// path: "/teacher/studentsClassSee",
// query: {
// StudentId: i.Id,
// TeacherId: i.Teacher_Id,
// ClassId: i.ClassId
// }
// })
}
}
}
......@@ -363,5 +374,4 @@
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
......@@ -27,7 +27,7 @@
</el-option>
</el-select>
</div>
<div class="col-2">
<div class="col-4">
<q-btn color="accent" size="sm" class="q-mr-md" style="margin-top:2px;" @click="exchangeType" :label="typeName" />
<q-btn color="negative" size="sm" label="调课申请" @click="openForm"></q-btn>
</div>
......
......@@ -594,6 +594,21 @@ export default {
});
return getBlob
},
Vue.prototype.getAnyFileBlob = function (url) {
let getBlob = new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
});
return getBlob
},
//Blob文件上传
Vue.prototype.uploadSelfBlob = function (path, files, successCall) {
let that = this;
......
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