Commit fc8e0a47 authored by 罗超's avatar 罗超
parents b3c8d146 b6bc45c1
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
"cos-js-sdk-v5": "^1.1.5", "cos-js-sdk-v5": "^1.1.5",
"echarts": "^5.1.2", "echarts": "^5.1.2",
"element-ui": "^2.14.1", "element-ui": "^2.14.1",
"html2canvas": "^1.0.0-rc.7", "html2canvas": "^1.0.0",
"js-md5": "^0.7.3", "js-md5": "^0.7.3",
"lockr": "^0.8.5", "lockr": "^0.8.5",
"lrz": "^4.9.41", "lrz": "^4.9.41",
......
...@@ -405,4 +405,27 @@ export function GetTeacherClassHours(data) { ...@@ -405,4 +405,27 @@ export function GetTeacherClassHours(data) {
method: 'post', method: 'post',
data 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) { ...@@ -18,7 +18,7 @@ export function queryStudentBackClassPage(data) {
*/ */
export function saveBackBillAduit(data) { export function saveBackBillAduit(data) {
return request({ return request({
url: '/stu/SetBackBillAduit', url: '/EducationReceipt/AduitEducationReceipt',
method: 'post', method: 'post',
data data
}) })
......
...@@ -48,4 +48,37 @@ export function GetClassPlanStatisticalPage(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 @@ ...@@ -321,4 +321,7 @@
.advmanager-box .el-input .el-input__inner,.advmanager-box .el-select .el-input{height: auto} .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;} .advmanager-box .query-box ul .el-select.w240 .el-input{width: auto;}
.isAssociatTeam{width:600px;} .isAssociatTeam{width:600px;}
.isAssociatTeam .el-switch{margin:20px 0 0 190px;} .isAssociatTeam .el-switch{margin:20px 0 0 190px;}
\ No newline at end of file .adv-box .tools{
padding-left: 40px;
}
...@@ -308,7 +308,7 @@ ...@@ -308,7 +308,7 @@
</div> </div>
</q-td> </q-td>
</template> </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-td :props="props" style="width:130px;">
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;display:none;" label="编辑" <q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400;display:none;" label="编辑"
@click="getInfo(props.row)"> @click="getInfo(props.row)">
...@@ -489,7 +489,7 @@ ...@@ -489,7 +489,7 @@
</q-banner> </q-banner>
</q-popup-proxy> </q-popup-proxy>
</i> </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> @click.stop="delInfo(item)"></i>
</div> </div>
</div> </div>
...@@ -775,6 +775,7 @@ ...@@ -775,6 +775,7 @@
} }
if(this.isShowMyBtn==1){ if(this.isShowMyBtn==1){
this.isShowBtn=false; this.isShowBtn=false;
this.columns.pop();
} }
}, },
mounted() { mounted() {
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<div class="className"> <div class="className">
<div class="classFirst">退课审批</div> <div class="classFirst">退课审批</div>
</div> </div>
<div class="classStatus">{{setingObj.AuditStatusName}}</div> <!-- <div class="classStatus">{{setingObj.AuditStatusName}}</div> -->
</div> </div>
</div> </div>
<q-tabs style="margin:15px;" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary"> <q-tabs style="margin:15px;" v-model="tabCheck" narrow-indicator dense align="left" class="text-primary">
...@@ -85,7 +85,8 @@ ...@@ -85,7 +85,8 @@
showType: { showType: {
type: Number, type: Number,
default: 1 default: 1
} },
}, },
components: { components: {
backinfoForm, backinfoForm,
...@@ -96,12 +97,14 @@ ...@@ -96,12 +97,14 @@
persistent: true, persistent: true,
tabCheck: 'first', //默认选第一个 tabCheck: 'first', //默认选第一个
loading: false, loading: false,
} }
}, },
created() { created() {
}, },
mounted() { mounted() {
x
}, },
methods: { methods: {
refreshPage() { refreshPage() {
......
...@@ -148,8 +148,8 @@ ...@@ -148,8 +148,8 @@
<script> <script>
import { import {
queryBackBillAduitInfo GetEduReceiptInfo
} from '../../api/sale/bill' } from '../../api/teacher/index'
export default { export default {
props: { props: {
setingObj: { setingObj: {
...@@ -164,24 +164,24 @@ ...@@ -164,24 +164,24 @@
return { return {
persistent: true, persistent: true,
qMsg: { qMsg: {
BackId: 0 Id: 0
}, },
DataList: [] DataList: []
} }
}, },
created() { created() {
this.qMsg.BackId = this.setingObj.BackId; this.qMsg.Id = this.setingObj.Id;
}, },
mounted() { mounted() {
this.getStuBaclFlow(); this.getStuBaclFlow();
}, },
methods: { methods: {
getStuBaclFlow() { getStuBaclFlow() {
queryBackBillAduitInfo(this.qMsg).then(res => { GetEduReceiptInfo (this.qMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.DataList = res.Data; this.DataList = res.Data
} }
}) }).catch(() => {})
} }
}, },
} }
......
...@@ -91,22 +91,22 @@ ...@@ -91,22 +91,22 @@
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">编号:</span> <span class="backInfo_Title">编号:</span>
<span class="backOtherInfo">{{setingObj.BackNum}}</span> <span class="backOtherInfo">{{setingObj.DataObj.BackNum}}</span>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">申请人:</span> <span class="backInfo_Title">申请人:</span>
<span class="backOtherInfo">{{setingObj.CreateByName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.CreateByName}}</span>
</div> </div>
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">学员姓名:</span> <span class="backInfo_Title">学员姓名:</span>
<span class="backOtherInfo">{{setingObj.GuestName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.GuestName}}</span>
</div> </div>
<div class="col-6"> <!-- <div class="col-6">
<span class="backInfo_Title">申请时间:</span> <span class="backInfo_Title">申请时间:</span>
<span class="backOtherInfo">{{setingObj.CreateTimeStr}}</span> <span class="backOtherInfo">{{setingObj.CreateTimeStr}}</span>
</div> </div> -->
</div> </div>
<div class="backinfo_Item"> <div class="backinfo_Item">
<span class="role_Line" style="background-color:#F28C1D"></span>教学信息 <span class="role_Line" style="background-color:#F28C1D"></span>教学信息
...@@ -114,21 +114,21 @@ ...@@ -114,21 +114,21 @@
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">校区:</span> <span class="backInfo_Title">校区:</span>
<span class="backOtherInfo">{{setingObj.SchoolName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.SchoolName}}</span>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">班级信息:</span> <span class="backInfo_Title">班级信息:</span>
<span class="backOtherInfo">{{setingObj.ClassName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.ClassName}}</span>
</div> </div>
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">带班老师:</span> <span class="backInfo_Title">带班老师:</span>
<span class="backOtherInfo">{{setingObj.TeacherName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.TeacherName}}</span>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">学习课程:</span> <span class="backInfo_Title">学习课程:</span>
<span class="backOtherInfo">{{setingObj.CourseName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.CourseName}}</span>
</div> </div>
</div> </div>
<div class="backinfo_Item"> <div class="backinfo_Item">
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">学习课时:</span> <span class="backInfo_Title">学习课时:</span>
<span class="backOtherInfo">{{setingObj.FinishHours}} 课时</span> <span class="backOtherInfo">{{setingObj.DataObj.FinishHours}} 课时</span>
</div> </div>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">缺勤次数:</span> <span class="backInfo_Title">缺勤次数:</span>
...@@ -156,30 +156,30 @@ ...@@ -156,30 +156,30 @@
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">关联单号:</span> <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>
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">关联销售:</span> <span class="backInfo_Title">关联销售:</span>
<span class="backOtherInfo">{{setingObj.EnterName}}</span> <span class="backOtherInfo">{{setingObj.DataObj.EnterName}}</span>
</div> </div>
</div> </div>
<div class="row backInfo_One"> <div class="row backInfo_One">
<div class="col-6"> <div class="col-6">
<span class="backInfo_Title">预计退费:</span> <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>
</div> </div>
<div class="replayReason"> <div class="replayReason">
<div class="replay_Title">退课原因</div> <div class="replay_Title">退课原因</div>
<div style="color:#666666;margin-top:5px;"> <div style="color:#666666;margin-top:5px;">
{{setingObj.ApplyReason}} {{setingObj.DataObj.ApplyReason}}
</div> </div>
</div> </div>
<template v-if="setingObj.SpecialNode==1"> <template v-if="setingObj.SpecialNode==1">
<span> <span>
<q-input filled stack-label :dense="false" v-model="backBillMsg.BackMoney" class="col-12" label="退课金额" <q-input filled stack-label :dense="false" v-model="backBillMsg.BackMoney" class="col-12" label="退课金额"
:rules="[val => !!val || '请填退课金额']" /> />
</span> </span>
<span> <span>
系统计算课时费为:{{(classPriceObj.ClassHours-classPriceObj.FinishHours)}}(课时)*{{classPriceObj.classHourPrice}}(课单价)={{classPriceObj.backMoney}}元,请你最终确认退款金额 系统计算课时费为:{{(classPriceObj.ClassHours-classPriceObj.FinishHours)}}(课时)*{{classPriceObj.classHourPrice}}(课单价)={{classPriceObj.backMoney}}元,请你最终确认退款金额
...@@ -265,7 +265,7 @@ ...@@ -265,7 +265,7 @@
return { return {
persistent: true, persistent: true,
backBillMsg: { backBillMsg: {
BackId: 0, Id: 0,
BackMoney: 0, //实际退款金额 BackMoney: 0, //实际退款金额
Description: "", //审批意见 Description: "", //审批意见
AuditStatus: 0, //审核状态 AuditStatus: 0, //审核状态
...@@ -280,7 +280,7 @@ ...@@ -280,7 +280,7 @@
}, },
created() {}, created() {},
mounted() { mounted() {
this.backBillMsg.BackId = this.setingObj.BackId; this.backBillMsg.Id = this.setingObj.Id;
this.backBillMsg.SpecialNode = this.setingObj.SpecialNode; this.backBillMsg.SpecialNode = this.setingObj.SpecialNode;
if (this.backBillMsg.SpecialNode == 1) { if (this.backBillMsg.SpecialNode == 1) {
this.getBackBillMoney(); this.getBackBillMoney();
...@@ -290,7 +290,7 @@ ...@@ -290,7 +290,7 @@
methods: { methods: {
getBackBillMoney() { getBackBillMoney() {
queryBackBillMoney({ queryBackBillMoney({
BackId: this.backBillMsg.BackId BackId: this.setingObj.RelationId
}).then(res => { }).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.classPriceObj = res.Data; this.classPriceObj = res.Data;
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<th width="7%">平台税金</th> <th width="7%">平台税金</th>
<th width="7%">待收金额</th> <th width="7%">待收金额</th>
<th width="7%">状态</th> <th width="7%">状态</th>
<th>操作</th> <th v-if="viewType==0">操作</th>
</tr> </tr>
</thead> </thead>
</table> </table>
...@@ -73,6 +73,9 @@ ...@@ -73,6 +73,9 @@
<div v-if="item.HelpEnterName"> <div v-if="item.HelpEnterName">
协助人员:{{item.HelpEnterName}} 协助人员:{{item.HelpEnterName}}
</div> </div>
<div v-if="item.ClassNo">
班号:{{item.ClassNo}}
</div>
<div v-if="item.OpenTime"> <div v-if="item.OpenTime">
开班时间:{{item.OpenTime}} 开班时间:{{item.OpenTime}}
</div> </div>
...@@ -198,7 +201,7 @@ ...@@ -198,7 +201,7 @@
<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" label="编辑"
@click="editOrder(item)" /> @click="editOrder(item)" />
</template> </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-list>
<q-item clickable v-close-popup> <q-item clickable v-close-popup>
<q-item-section @click="gostudent(item)"> <q-item-section @click="gostudent(item)">
...@@ -904,7 +907,6 @@ ...@@ -904,7 +907,6 @@
isShowRenewClass: false, //是否显示续课按钮 isShowRenewClass: false, //是否显示续课按钮
isShowContract: true, //是否显示合同 isShowContract: true, //是否显示合同
isShowEdit: true, //是否显示修改订单按钮 isShowEdit: true, //是否显示修改订单按钮
isShowMore: true //是否显示更多下拉按钮
}, },
isShowEduForm: false, //是否显示新增修改合同弹窗 isShowEduForm: false, //是否显示新增修改合同弹窗
...@@ -923,7 +925,6 @@ ...@@ -923,7 +925,6 @@
this.Employee(); this.Employee();
var localStorageData = window.localStorage["loginUserInfo"]; var localStorageData = window.localStorage["loginUserInfo"];
let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList
if (ActionMenuList && ActionMenuList.length > 0) { if (ActionMenuList && ActionMenuList.length > 0) {
ActionMenuList.forEach(x => { ActionMenuList.forEach(x => {
if (x.FunctionCode == 'Edit_OrderExtraMoney') { if (x.FunctionCode == 'Edit_OrderExtraMoney') {
...@@ -957,7 +958,8 @@ ...@@ -957,7 +958,8 @@
immediate: true immediate: true
} }
}, },
mounted() {}, mounted() {
},
methods: { methods: {
//初始化权限信息 //初始化权限信息
initAuth() { initAuth() {
...@@ -1004,9 +1006,6 @@ ...@@ -1004,9 +1006,6 @@
if (this.authObj.isShowEdit != null && !this.authObj.isShowEdit) { if (this.authObj.isShowEdit != null && !this.authObj.isShowEdit) {
this.AuthorityObj.isShowEdit = 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 @@ ...@@ -18,53 +18,65 @@
font-weight: bold; font-weight: bold;
cursor: pointer; cursor: pointer;
} }
.sche_rightTop{
.sche_rightTop {
width: 100%; width: 100%;
padding: 20px 0; padding: 20px 0;
background-color: #fff; background-color: #fff;
position: relative; position: relative;
} }
.Scotop_little{
white-space: nowrap;
}
.Scotop_con{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style> </style>
<template> <template>
<div class="sche_rightTop"> <div class="sche_rightTop">
<!-- <div v-if="dataList.Status!=2" class="sche_Topflex" style="display:flex;"> <table style="margin:0 20px;font-size:18px;color:#000000;">
<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;">
<tr> <tr>
<td style="width:11%"> <td style="width:20%">
<span class="Sch_MainColor">本次上课信息</span> <span class="Sch_MainColor Scotop_con" >本次上课信息</span>
</td> </td>
<td style="width:15%"> <td style="width:25%;">
<span class="Scotop_little">班级:</span>{{dataList.ClassName}} <div style="display:flex;">
<div class="Scotop_little">
班级:
</div>
<span class="Scotop_con">{{dataList.ClassName}}</span>
</div>
</td> </td>
<td style="width:15%;"> <td style="width:25%;">
<span class="Scotop_little">计划时间:</span>{{dataList.PlanTime}} <div style="display:flex;padding-left:20px;">
<div class="Scotop_little">
计划时间:
</div>
<span class="Scotop_con">{{dataList.PlanTime}}</span>
</div>
</td> </td>
<td style="width:23%;"> <td style="width:25%;">
<span class="Scotop_little">课程名称:</span>{{dataList.CourseName}} <div style="display:flex;padding-left:20px;">
<div class="Scotop_little">
课程名称:
</div>
<span class="Scotop_con">{{dataList.CourseName}}</span>
</div>
</td> </td>
<td> <td style="width:20%;">
<span class="Scotop_little">当前状态:</span> <div style="display:flex;padding-left:20px;">
<span v-if="dataList.ClassStatus===0">待上课</span> <div class="Scotop_little">
<span v-if="dataList.ClassStatus===1">上课中</span> 当前状态:
<span v-if="dataList.ClassStatus===2">下课</span> </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> </td>
</tr> </tr>
<tr> <tr>
...@@ -73,14 +85,18 @@ ...@@ -73,14 +85,18 @@
<span class="Scotop_little">老师:</span>{{dataList.TeacherName}} <span class="Scotop_little">老师:</span>{{dataList.TeacherName}}
</td> </td>
<td> <td>
<span class="Scotop_little">实际时间:</span>{{dataList.ActualTime}} <div style="padding-left:20px;">
<span class="Scotop_little" >实际时间:</span>{{dataList.ActualTime}}
</div>
</td> </td>
<td> <td>
<span class="Scotop_little">出勤人数:</span>{{dataList.AttendanceNum}} <div style="padding-left:20px;">
<span class="Scotop_little">出勤人数:</span>{{dataList.AttendanceNum}}
</div>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
</template> </template>
<script> <script>
...@@ -91,6 +107,13 @@ ...@@ -91,6 +107,13 @@
default: null default: null
}, },
}, },
watch: {
dataList: {
handler(val) {
console.log(78, val)
}
}
}
} }
</script> </script>
...@@ -97,10 +97,15 @@ ...@@ -97,10 +97,15 @@
<q-item-label>取消</q-item-label> <q-item-label>取消</q-item-label>
</q-item-section> </q-item-section>
</q-item> </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-section @click="systemShan(props.row)">
<q-item-label>制单</q-item-label> <q-item-label>制单</q-item-label>
</q-item-section> </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-item>
</q-list> </q-list>
</q-btn-dropdown> </q-btn-dropdown>
...@@ -174,6 +179,46 @@ ...@@ -174,6 +179,46 @@
<q-icon name="iconfont icon-jujue1" size="26px" /> <q-icon name="iconfont icon-jujue1" size="26px" />
</div> </div>
</el-drawer> </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> </div>
</template> </template>
...@@ -184,6 +229,8 @@ ...@@ -184,6 +229,8 @@
setTeachingBonusAdd, //新增课时奖励 setTeachingBonusAdd, //新增课时奖励
setTeachingBonusState, //教师绩效 设置状态 setTeachingBonusState, //教师绩效 设置状态
setTeachingBonusFinance, //教师奖励 生成财务单据 setTeachingBonusFinance, //教师奖励 生成财务单据
getTeachingRewardsSendEmployeeList,//获取课时费老师列表
setTeachingRewardsSendEmployee,//设置 老师已发放
} from '../../api/course/class' } from '../../api/course/class'
import { import {
getTeacherDropDownList, getTeacherDropDownList,
...@@ -276,6 +323,12 @@ ...@@ -276,6 +323,12 @@
return time.getTime() > upperMonth; return time.getTime() > upperMonth;
}, },
}, },
CheckID:0,
SendEmployeeList:[],
costmode:false,
totalAmount:0,
saveLoading:false,
multipleSelection:[]
} }
}, },
created() { created() {
...@@ -328,7 +381,7 @@ ...@@ -328,7 +381,7 @@
this.TeacherList = res.Data; this.TeacherList = res.Data;
this.TeacherList.unshift({ this.TeacherList.unshift({
TId: 0, TId: 0,
TeacherName: "不限" TeacherName: "全部老师"
}) })
this.AllTeacherList = this.TeacherList this.AllTeacherList = this.TeacherList
} }
...@@ -360,7 +413,6 @@ ...@@ -360,7 +413,6 @@
if (this.tempManager && this.tempManager.length > 0) { if (this.tempManager && this.tempManager.length > 0) {
let all = false let all = false
this.tempManager.forEach(x => { this.tempManager.forEach(x => {
if (x == 0) { if (x == 0) {
all = true all = true
...@@ -516,6 +568,103 @@ ...@@ -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 @@ ...@@ -23,7 +23,7 @@
</div> </div>
</div> </div>
<div class="page-content"> <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> @success="refreshClassOrder"></orderlist>
</div> </div>
</div> </div>
...@@ -58,9 +58,9 @@ ...@@ -58,9 +58,9 @@
isShowCommissionEdit: true, //显示修改提成按钮 isShowCommissionEdit: true, //显示修改提成按钮
isShowRewardEdit: true, //显示修改额外提成按钮 isShowRewardEdit: true, //显示修改额外提成按钮
isShowEdit: true, //显示修改按钮 isShowEdit: true, //显示修改按钮
isShowMore: true //显示更多下拉
}, },
isShowEditBtn:0 isShowEditBtn:0,
viewType:0
} }
}, },
created() { created() {
...@@ -69,9 +69,8 @@ ...@@ -69,9 +69,8 @@
this.msg.ClassId = this.ClassId; this.msg.ClassId = this.ClassId;
} }
if(this.$route.query.isFromMyclass&&this.$route.query.isFromMyclass==1){ if(this.$route.query.isFromMyclass&&this.$route.query.isFromMyclass==1){
this.authObj.isShowEdit=false this.isShowEditBtn=1;
this.authObj.isShowMore=false this.viewType=1
this.isShowEditBtn=1
} }
this.getList(); this.getList();
}, },
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
</tr> </tr>
<tr> <tr>
<th width="">老师名称</th> <th width="">老师名称</th>
<th width="">课时</th> <th width="">上课课时</th>
<th width="">基础课时</th> <th width="">基础课时</th>
<th width="">课时费</th> <th width="">课时费</th>
<th width="">学生名称</th> <th width="">学生名称</th>
...@@ -70,9 +70,12 @@ ...@@ -70,9 +70,12 @@
<span>{{item.Month}}</span> <span>{{item.Month}}</span>
</td> </td>
<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;" 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>
<td> <td>
<p v-for="( son , sIndex ) in item.TeacherList">{{son.HoursNum}}</p> <p v-for="( son , sIndex ) in item.TeacherList">{{son.HoursNum}}</p>
...@@ -94,7 +97,9 @@ ...@@ -94,7 +97,9 @@
</td> </td>
<td> <td>
<span v-if='item.show == true'> <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> </p>
</span> </span>
<span v-if='item.show == false'> <span v-if='item.show == false'>
...@@ -199,9 +204,46 @@ ...@@ -199,9 +204,46 @@
x.show = true 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) {//班级 setClass(item) {//班级
this.isShowClass = true; this.isShowClass = true;
getClassDropDownList({ getClassDropDownList({
......
...@@ -157,7 +157,7 @@ ...@@ -157,7 +157,7 @@
<!-- <button type="button" class="normalBtn" @click="outerVisible=true">导入</button> <!-- <button type="button" class="normalBtn" @click="outerVisible=true">导入</button>
<button type="button" class="normalBtn" @click="downMuban()">下载导入模板</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> --> <!-- <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"> <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="transitionShow" class="iconfont icon-biaoge" @click="switchMethod(1)"></i>
<i v-if="transitionShow2" class="iconfont icon-icon-ssan" @click="switchMethod(2)"></i> <i v-if="transitionShow2" class="iconfont icon-icon-ssan" @click="switchMethod(2)"></i>
...@@ -669,6 +669,7 @@ ...@@ -669,6 +669,7 @@
if(!x){ if(!x){
this.addMsg.ParentId = ''; this.addMsg.ParentId = '';
} }
let msg = { let msg = {
Name:'', Name:'',
Type:0, Type:0,
...@@ -864,7 +865,10 @@ ...@@ -864,7 +865,10 @@
} }
this.DepartmentList=[]; this.DepartmentList=[];
this.PostList=[]; this.PostList=[];
this.EmployeeList=[]; // this.EmployeeList=[];
this.EmployeeList.forEach(y=>{
y.disabled = false;
});
this.CostTypeList = []; this.CostTypeList = [];
}, },
initTableInfo(){//获取数据 initTableInfo(){//获取数据
...@@ -916,7 +920,6 @@ ...@@ -916,7 +920,6 @@
this.addMsg.Sort = dataList.Sort; this.addMsg.Sort = dataList.Sort;
this.addMsg.Is_Report = dataList.Is_Report; this.addMsg.Is_Report = dataList.Is_Report;
this.addMsg.IsSecret = dataList.IsSecret; this.addMsg.IsSecret = dataList.IsSecret;
// this.addMsg = dataList; // this.addMsg = dataList;
if(dataList.DepartList.length>0){ if(dataList.DepartList.length>0){
dataList.DepartList.forEach(x=>{ dataList.DepartList.forEach(x=>{
...@@ -946,6 +949,8 @@ ...@@ -946,6 +949,8 @@
} }
}) })
} }
this.getCostTypeList(2,1)//费用类型
} else { } else {
this.Error(res.data.message); this.Error(res.data.message);
} }
...@@ -1002,6 +1007,9 @@ ...@@ -1002,6 +1007,9 @@
} }
this.addMsg.list.push(obj) this.addMsg.list.push(obj)
} }
if(this.EmployeeIDList.length==0){
return this.$message.error('请选择使用人员')
}
if(this.EmployeeIDList.length > 0){ if(this.EmployeeIDList.length > 0){
this.EmployeeIDList.forEach(x=>{ this.EmployeeIDList.forEach(x=>{
let obj = { let obj = {
......
...@@ -890,7 +890,7 @@ ...@@ -890,7 +890,7 @@
} else { } else {
endDate = that.year + "-" + column.end endDate = that.year + "-" + column.end
} }
if (rowIndex < 6 ) { if (rowIndex < 7 ) {
// 联运收入 // 联运收入
// if(rowData.ZhaiYao=="联运收入"){ // if(rowData.ZhaiYao=="联运收入"){
// that.goUrl("CombinedRevenueReport",startDate,endDate,BranchId,"联运收入") // that.goUrl("CombinedRevenueReport",startDate,endDate,BranchId,"联运收入")
...@@ -1203,11 +1203,11 @@ ...@@ -1203,11 +1203,11 @@
let tichengList = []; let tichengList = [];
this.DataList = []; this.DataList = [];
data.list.forEach(item => { data.list.forEach(item => {
if (item.ZhaiYao != "销售提成" && item.ZhaiYao != "原始提成") { // if (item.ZhaiYao != "销售提成" && item.ZhaiYao != "原始提成") {
this.DataList.push(item) this.DataList.push(item)
} else { // } else {
tichengList.push(item); // tichengList.push(item);
} // }
}) })
this.UpdateStaus = data.Status; this.UpdateStaus = data.Status;
this.UpdateStartTime = data.UpdateStartTime; this.UpdateStartTime = data.UpdateStartTime;
......
...@@ -183,7 +183,7 @@ ...@@ -183,7 +183,7 @@
<td style="position: relative;"> <td style="position: relative;">
<div v-if='item.StuList && item.StuList.length>0'> <div v-if='item.StuList && item.StuList.length>0'>
<span v-if='item.show == true'> <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 <span
style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;" 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' v-if='(sIndex+1)==item.StuList.length && item.show == true && item.StuList.length>3'
...@@ -195,7 +195,7 @@ ...@@ -195,7 +195,7 @@
</span> </span>
<span v-if='item.show == false'> <span v-if='item.show == false'>
<p v-for="( son , sIndex ) in item.StuList"> <span <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 <span
style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;" style="position: absolute;right: 5px;cursor: pointer;text-decoration: underline;color: #409EFF;"
v-if='sIndex==2 && item.show == false' v-if='sIndex==2 && item.show == false'
......
...@@ -28,6 +28,10 @@ ...@@ -28,6 +28,10 @@
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称" <q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName" label="班级名称"
@clear="resetSearch" maxlength="20" /> @clear="resetSearch" maxlength="20" />
</div> </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"> <div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="CourseId" <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="学习课程" /> option-label="CourseName" v-model="msg.CouseId" :options="CourseList" emit-value map-options label="学习课程" />
...@@ -176,6 +180,7 @@ ...@@ -176,6 +180,7 @@
Q_OrderBy: 2, //写死 =2 Q_OrderBy: 2, //写死 =2
PlatformTax: 0, //平台税金 PlatformTax: 0, //平台税金
EnterID:'',//业务员id EnterID:'',//业务员id
ClassNo:'',//班号
}, },
//订单状态 //订单状态
OrderStateList: [], OrderStateList: [],
......
...@@ -82,6 +82,8 @@ ...@@ -82,6 +82,8 @@
</template> </template>
<template v-slot:body-cell-TeacherId="props"> <template v-slot:body-cell-TeacherId="props">
<q-td :props="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" <q-btn flat size="xs" icon="edit" color="accent" @click="editVisitor(props.row)" style="font-weight:400"
label="修改" /> label="修改" />
<q-btn flat size="xs" icon="delete" @click="deleteReserve(props.row)" color="negative" style="font-weight:400" <q-btn flat size="xs" icon="delete" @click="deleteReserve(props.row)" color="negative" style="font-weight:400"
...@@ -283,6 +285,16 @@ ...@@ -283,6 +285,16 @@
//刷新页面 //刷新页面
refreshPage() { refreshPage() {
this.getList(); 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 @@ ...@@ -93,6 +93,12 @@
required: true, required: true,
field: 'Name', field: 'Name',
align: 'left' align: 'left'
},
{
name: 'Age',
field: 'Age',
label: '年龄',
align: 'left',
}, },
{ {
name: 'Tel', 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 @@ ...@@ -68,12 +68,9 @@
methods: { methods: {
goUrl(item) { goUrl(item) {
if (item.ClassType === 1) { if (item.ClassType === 1) {
this.$router.push({ this.OpenNewUrl("../../classroom/courseInfo", {
path: "../../classroom/courseInfo", id: item.Id
query: { });
id: item.Id
}
})
} }
} }
} }
......
...@@ -130,12 +130,9 @@ ...@@ -130,12 +130,9 @@
}, },
//跳转到课程回顾 //跳转到课程回顾
goCourseRecord(item) { goCourseRecord(item) {
this.$router.push({ this.OpenNewUrl("../../classroom/courseInfo", {
path: "../../classroom/courseInfo", id: item.Id
query: { });
id: item.Id
}
})
} }
} }
} }
......
...@@ -31,12 +31,13 @@ ...@@ -31,12 +31,13 @@
<div class="page-search row items-center"> <div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md"> <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3"> <div class="col-3">
<q-input @change="refreshPage" clearable standout="bg-primary text-white" v-model="msg.GuestName" <q-input @change="refreshPage" clearable standout="bg-primary text-white" v-model="msg.GuestName" label="学员名称"
label="学员名称" @clear="refreshPage" maxlength="20" /> @clear="refreshPage" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="refreshPage" standout="bg-primary text-white" option-value="ClassId" option-label="ClassName" <q-select @input="refreshPage" standout="bg-primary text-white" option-value="ClassId"
v-model="msg.ClassId" :options="ClassList" emit-value map-options label="班级" use-input clearable @filter="filterClass"/> option-label="ClassName" v-model="msg.ClassId" :options="ClassList" emit-value map-options label="班级"
use-input clearable @filter="filterClass" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-select @input="refreshPage" standout="bg-primary text-white" option-value="CourseId" <q-select @input="refreshPage" standout="bg-primary text-white" option-value="CourseId"
...@@ -92,9 +93,10 @@ ...@@ -92,9 +93,10 @@
</template> </template>
<template v-slot:body-cell-optioned="props"> <template v-slot:body-cell-optioned="props">
<q-td :props="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="" /> --> @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-list>
<q-item clickable v-close-popup @click="goUrl(props.row)"> <q-item clickable v-close-popup @click="goUrl(props.row)">
<q-item-section> <q-item-section>
...@@ -102,11 +104,11 @@ ...@@ -102,11 +104,11 @@
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
</q-btn-dropdown> </q-btn-dropdown> -->
</q-td> </q-td>
</template> </template>
</q-table> </q-table>
</div> </div>
</div> </div>
</template> </template>
...@@ -122,7 +124,7 @@ ...@@ -122,7 +124,7 @@
} from '../../api/users/user' //获取销售下拉列表 } from '../../api/users/user' //获取销售下拉列表
import { import {
queryCourseDropdownList, queryCourseDropdownList,
} from '../../api/course/index'//课程下拉 } from '../../api/course/index' //课程下拉
import { import {
GetStuPageList GetStuPageList
} from "../../api/teacher/student" } from "../../api/teacher/student"
...@@ -140,20 +142,19 @@ ...@@ -140,20 +142,19 @@
}, },
data() { data() {
return { return {
columns: [ columns: [{
{
name: 'GuestName', name: 'GuestName',
label: '学员名称', label: '学员名称',
field: 'GuestName', field: 'GuestName',
align: 'left', align: 'left',
}, },
{ {
name: 'Mobile', name: 'Mobile',
label: '电话', label: '电话',
field: 'Mobile', field: 'Mobile',
align: 'left' align: 'left'
}, },
{ {
name: 'ClassName', name: 'ClassName',
label: '班级名称', label: '班级名称',
field: 'ClassName', field: 'ClassName',
...@@ -165,26 +166,32 @@ ...@@ -165,26 +166,32 @@
field: 'CourseName', field: 'CourseName',
align: 'left' align: 'left'
}, },
{ {
name: 'TotalPlanNum', name: 'TotalPlanNum',
label: '课程进度', label: '课程进度',
field: 'TotalPlanNum', field: 'TotalPlanNum',
align: 'left' align: 'left'
}, },
{ {
name: 'IsRenewOrder', name: 'IsRenewOrder',
label: '是否是续课订单', label: '是否是续课订单',
field: 'IsRenewOrder', field: 'IsRenewOrder',
align: 'left' align: 'left'
}, },
{ {
name: 'RenewOrderId',
label: '订单号',
field: 'RenewOrderId',
align: 'left'
},
{
name: 'GuestStateStr', name: 'GuestStateStr',
label: '学员状态', label: '学员状态',
field: 'GuestStateStr', field: 'GuestStateStr',
align: 'left' align: 'left'
}, },
{ {
name: 'EnterName', name: 'EnterName',
label: '销售', label: '销售',
field: 'EnterName', field: 'EnterName',
...@@ -289,7 +296,7 @@ ...@@ -289,7 +296,7 @@
}) })
}, },
//获取班级下拉 //获取班级下拉
getClass() { getClass() {
getClassDropDownList({ getClassDropDownList({
CourseId: 0, CourseId: 0,
IsAddDefault: 0, //添加默认选项 IsAddDefault: 0, //添加默认选项
...@@ -319,43 +326,47 @@ ...@@ -319,43 +326,47 @@
}) })
}, },
//获取学员管理列表 //获取学员管理列表
getStuPageList(){ getStuPageList() {
this.loading = true; this.loading = true;
GetStuPageList(this.msg).then(res=>{ GetStuPageList(this.msg).then(res => {
this.loading = false this.loading = false
console.log(439,res) console.log(439, res)
if(res.Code===1){ if (res.Code === 1) {
this.data=res.Data.PageData this.data = res.Data.PageData
this.pageCount=res.Data.PageCount this.pageCount = res.Data.PageCount
} }
}).catch(err=>{ }).catch(err => {
this.loading = false this.loading = false
}) })
}, },
//翻页 //翻页
changePage(val) { changePage(val) {
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getStuPageList() this.getStuPageList()
}, },
//刷新页面 //刷新页面
refreshPage() { refreshPage() {
this.msg.pageIndex = 1; this.msg.pageIndex = 1;
this.getStuPageList(); this.getStuPageList();
}, },
goUrl(i){ goUrl(i) {
console.log(134,i) let path="/teacher/studentsClassSee"
this.$router.push({ let queryObj={
path:"/teacher/studentsClassSee", StudentId: i.Id,
query:{ TeacherId: i.Teacher_Id,
StudentId:i.Id, ClassId: i.ClassId
// StudentName:i.GuestName, }
// SchoolId:i.School_Id, this.OpenNewUrl(path, queryObj)
TeacherId:i.Teacher_Id, // this.$router.push({
ClassId:i.ClassId // path: "/teacher/studentsClassSee",
} // query: {
}) // StudentId: i.Id,
// TeacherId: i.Teacher_Id,
// ClassId: i.ClassId
// }
// })
} }
} }
} }
...@@ -363,5 +374,4 @@ ...@@ -363,5 +374,4 @@
</script> </script>
<style lang="sass"> <style lang="sass">
@import url('~assets/css/table.sass') @import url('~assets/css/table.sass')
</style> </style>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </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="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> <q-btn color="negative" size="sm" label="调课申请" @click="openForm"></q-btn>
</div> </div>
......
...@@ -594,6 +594,21 @@ export default { ...@@ -594,6 +594,21 @@ export default {
}); });
return getBlob 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文件上传 //Blob文件上传
Vue.prototype.uploadSelfBlob = function (path, files, successCall) { Vue.prototype.uploadSelfBlob = function (path, files, successCall) {
let that = this; 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