Commit 7436b498 authored by Mac's avatar Mac

1

parent f5e12f1d
......@@ -208,3 +208,13 @@ export function getTeachingBonusDetailList(data) {
data
});
}
/**
* 教师绩效分页列表
*/
export function getTeachingPerfPageList(data) {
return request({
url: '/TeachingRewards/GetTeachingPerfPageList',
method: 'post',
data
});
}
<template>
<div class="achievements page-body">
<q-tabs style="margin-bottom:20px;" v-model="tabCheck" @input="tabChange()" narrow-indicator dense align="left"
class="text-primary">
<q-tab :ripple="false" name="first" label="已发放绩效" />
<q-tab :ripple="false" name="second" label="可发放绩效" />
</q-tabs>
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="SId" option-label="SName"
v-model="msg.School_Id" :options="schoolList" emit-value map-options label="所属校区" />
</div>
<div class="col-3">
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.ClassName"
label="班级名称" maxlength="20" />
</div>
<div class="col-3">
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.TeacherName"
label="教师名称" maxlength="20" />
</div>
<div class="col-3">
<q-select @input="resetSearch" standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="msg.PerfState" :options="StateList" emit-value map-options label="状态" />
</div>
<div class="col-3">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="dateList2" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
 range-separator="至"  start-placeholder="开班开始时间"  end-placeholder="开班结束时间">
  </el-date-picker>       
</template>
</q-field>
</div>
</div>
</div>
<div class="productQueryList" v-loading='loading'>
<ul v-if="data.length!=0">
<li v-for="(item,index) in data" :key="index">
<div class="dline">
<div class="d1 row">
<q-avatar square size="82px">
<img :src="item.TeacherIcon">
</q-avatar>
<div style="margin-left: 20px">
<div class="List-title">{{item.TeacherName}}</div>
<div class="row d-div"><span class="d2-n">原有课时费</span>{{item.BaseHourFee}}元</div>
<div class="row d-div" style="color:#F28C1D;"><span class="d2-n">课时费奖励</span>{{item.UnitPrice}}元</div>
<div class="row d-div"><span class="d2-n">带班人数</span>{{item.BaseStuNum}} <span style="color:#F28C1D;" v-if="item.AddStuNum>0">{{'+'+item.AddStuNum}}</span> </div>
</div>
</div>
<div class="d2">
<div class="List-title">招生信息</div>
<div class="row d-div"><span class="d2-n">名称</span>{{item.ClassName}}</div>
<div class="row d-div"><span class="d2-n">班级人数</span>{{item.ClassPeopelNum}}</div>
<div class="row d-div"><span class="d2-n">结课日期</span>{{item.EndDate.split('T')[0]}}</div>
</div>
<div class="d3">
<div class="List-title">KPI指标</div>
<div class="row d-div"><span class="d2-n">满班率</span>{{item.FullClassRate*100}}%</div>
<div class="row d-div"><span class="d2-n">平均上课率</span>{{item.AvgCheckRate*100}}%</div>
<div class="row d-div"><span class="d2-n">累计上课课时</span>{{item.ClassHours}}课时</div>
</div>
<div class="d4">
<div class="List-title">绩效奖励</div>
<div class="row d-div" style="align-items: flex-end;color: #F72E52;line-height: 14px">
<span style="font-size: 30px;line-height: 30px;font-weight: bold">{{item.Money.toFixed(2).split('.')[0]}}.</span> {{item.Money.toFixed(2).split('.')[1]}}
</div>
<div class="row d-div"><span class="d2-n">明细</span> <span style="color:#2961FE;">{{item.UnitPrice}}元</span> *{{item.ClassHours}}课时</div>
</div>
<div class="d5">
<div class="List-title">财务单据</div>
<div style="width: 100%;" class="row wrap">
<div class="d5-item" v-if="item.FinanceId && item.FinanceId>0">
{{item.FinanceId}}
</div>
<div v-else style="color:#999999;">
未生成财务单据
</div>
</div>
</div>
<div class="d7">
<div class="row" style="align-items: center;color: #3FC4FF;cursor: pointer">
<img src="../../assets/images/course/zhidan.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
自动生成单据
</div>
<div class="row" style="align-items: center;color: #2961FE;cursor: pointer">
<img src="../../assets/images/course/xiaoxi.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
发送账单信息
</div>
<div class="row" style="align-items: center;color: #02C499;cursor: pointer">
<img src="../../assets/images/course/addreamke.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
添加备注说明
</div>
<div class="row" style="align-items: center;color: #F28C1D;cursor: pointer">
<img src="../../assets/images/course/chehui.png" alt="" style="width: 16px;height: 12px;margin-right: 5px;">
撤销奖励
</div>
</div>
</div>
<div class="d6 row">
<span style="color:#2D2D2D;">教师备注:</span>
<div class="row wrap Remark-l" v-if="item.RemarkList.length>0">
{{item.RemarkList[0].Content}}
<span class="iconfont icon-xiangxia" style="color: #2961FE;font-size: 10px;position: absolute;right: 0;top:10px" >
<q-popup-proxy>
<q-banner>
<div style="width: 700px;">
<div>教师备注:</div>
<div v-for="(xq,jq) in item.RemarkList" :key="jq"
style=" margin-top: 10px;background: #e6e6e6;padding: 5px;font-size: 12px">
<div>{{xq.Content}}</div>
<div style="text-align: right">{{xq.CreateBy}} {{xq.CreateTime}}</div>
</div>
</div>
</q-banner>
</q-popup-proxy>
</span>
</div>
<div v-else class="row wrap Remark-l">
暂无
</div>
</div>
</li>
<li style="border: none;display: flex;justify-content: flex-end;background: white;padding: 5px 20px">
<q-pagination
v-model="msg.PageIndex"
:max="pageCount"
@input="changePage"
class="full-width justify-end" color="primary" :input="true"
>
</q-pagination>
</li>
</ul>
</div>
</div>
</template>
<script>
import {
getSchoolDropdown,
} from '../../api/school/index'
import {
getBonusStateEnumList,//教师奖励状态 枚举
getTeachingPerfPageList,
} from '../../api/course/class'
export default {
name: "achievements",
data(){
return{
tabCheck:'first',
msg:{
PageIndex:1,
PageSize:8,
School_Id:0,
ClassId:0,
ClassName:'',//班级名称
TeacherId:0,
TeacherName:'',
Q_IsCreateFinance:0,//是否制单 1是 2否
Q_IsComfirm:0,//是否已确认 1是 2否
PerfState:0,//状态 枚举
StartTime:'',
EndTime:'',
OPStartTime:'',
OPEndTime:'',
},
schoolList: [],
StateList:[],
dateList:[],
dateList2:[],
data:[],
loading: false,
pageCount:0,
}
},
created() {
this.getList()
this.getSchool()
this.GetBonusStateList()
},
methods:{
resetSearch() {
this.msg.PageIndex = 1
this.getList()
},
getList(){
if (this.dateList && this.dateList.length > 0) {
this.msg.StartTime = this.dateList[0];
this.msg.EndTime = this.dateList[1];
} else {
this.msg.StartTime = '';
this.msg.EndTime = '';
}
if (this.dateList2 && this.dateList2.length > 0) {
this.msg.OPStartTime = this.dateList2[0];
this.msg.OPEndTime = this.dateList2[1];
} else {
this.msg.OPStartTime = '';
this.msg.OPEndTime = '';
}
this.loading = true;
getTeachingPerfPageList(this.msg).then(res => {
this.loading = false
this.data = res.Data.PageData
this.pageCount = res.Data.PageCount;
this.loading = false
}).catch(() => {
this.loading = false
})
},
getSchool() {
getSchoolDropdown({}).then(res => {
this.schoolList = res.Data
this.schoolList.unshift({
SId: 0,
SName: "不限"
})
})
},
GetBonusStateList(){
getBonusStateEnumList({}).then(res => {
if (res.Code == 1) {
this.StateList = res.Data;
this.StateList.unshift({
Id: 0,
Name: "不限"
})
}
})
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
}
}
</script>
<style scoped>
.achievements .el-input__inner {
background-color: transparent;
}
.achievements .el-range-editor .el-range-input {
background-color: transparent;
}
.achievements ul{padding: 0px}
.achievements li{background: rgba(221, 222, 224, 0.2);border-radius: 4px;margin-top:15px}
.achievements li .List-title{font-size: 16px;color: #111111;font-weight: bold;margin-bottom: 10px}
.achievements li .d-div{margin-top: 5px;align-items: center;font-size: 14px}
.achievements li .dline{display: table;width: 100%;display: flex;flex-direction: row}
.achievements li .d1{flex: 1;width: 1px;padding:20px 20px 10px;}
.achievements li .d2,.achievements li .d3,.achievements li .d4,.achievements li .d5{width: 17%;padding:20px 20px 10px;}
.achievements li .d7{width: 10%;padding: 20px 20px 10px;}
.achievements li .d1 .di-title{font-size: 16px;color: #111111;}
.achievements li .d1 .di-c{font-size: 14px;display: flex;align-items: center;line-height: 28px;color: #111111}
.achievements li .d6{padding: 20px;width: 100%;height: inherit;position: relative;border-top: 1px solid #DDDEE0}
/*.achievements li .d2 div{margin: 10px 0;font-size: 14px;color: #111111;}*/
.achievements li .d2-n{font-size: 12px;color: #999999;display: inline-block;width: 80px}
.achievements li .d3 .d3-s{color: #f5576c;font-weight: bold}
.achievements .d5-item{padding: 3px 10px ;background: #EEEEEF;color: #111111;align-items: center;justify-content: center;border-radius: 4px}
.achievements .price-popup{border-radius: 4px;}
.achievements .Remark-l{
flex: 1;padding: 10px 15px 10px 10px;background: #E1EAF5;border-radius: 4px;font-size: 14px;color: #F28C1D;position: relative}
</style>
......@@ -131,6 +131,7 @@
<el-drawer
title=""
:visible.sync="drawer"
:wrapperClosable="false"
:with-header="false">
<div style="padding: 15px" class="class-popover">
<div style="margin: 10px 0;font-size: 14px;font-weight: bold;color:#2D2D2D;">新增课时奖励</div>
......@@ -157,7 +158,7 @@
<div class="row col" style="margin-top: 30px">
<q-btn class="q-mr-md" label="取消" @click="drawer=false" />
<q-btn color="accent" class="q-mr-md" label="保存" @click="saveOrderInfo()" />
<q-btn color="accent" class="q-mr-md" label="保存" @click="saveOrderInfo()" :loading="Dloading"/>
</div>
</div>
</el-drawer>
......@@ -182,6 +183,7 @@
loading:false,
ISsystem:false,
Floading:false,
Dloading:false,
drawer:false,
data:[],
pageCount:0,
......@@ -371,8 +373,9 @@
})
return
}
this.Dloading=true
setTeachingBonusAdd(this.addMsg).then(res => {
this.Dloading=false
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
......@@ -482,11 +485,9 @@
</script>
<style scoped>
.classHourReward .el-range-editor .el-range-input {
background: none;
}
.classHourReward .el-range-editor.el-input__inner {
background-color: transparent;
.classHourReward .Sysuser_Date .el-input--prefix .el-input__inner {
background-color: red;
border: 0;
}
.classHourReward .state-item{
padding: 3px 0px;border-radius: 3px;width: 70px;
......@@ -510,11 +511,11 @@
.classHourReward .el-date-editor.el-input{
width: 100%;
}
.classHourReward .el-input__inner {
background-color: red!important;
}
.class-popover .el-input__inner {
.classHourReward .el-date-editor.el-input input{
background-color: transparent!important;
}
.classHourReward .el-range-editor .el-range-input {
background: none;
}
</style>
......@@ -314,7 +314,7 @@
.myOrder ul{padding: 0px}
.myOrder .price-popup{border-radius: 4px;}
.myOrder .el-range-editor .el-range-input {
background: none;
background: transparent;
}
.myOrder .el-range-editor.el-input__inner {
background-color: transparent;
......
......@@ -371,6 +371,11 @@ const routes = [{
component: () =>
import("pages/course/rewardDetailed.vue")
},
{
path: "/course/achievements", //教学奖励 绩效列表
component: () =>
import("pages/course/achievements.vue")
},
{
path: "/test", //API测试
component: () =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment