Commit 0a210e4d authored by 罗超's avatar 罗超

1

parent 918c2e7a
...@@ -27,4 +27,48 @@ export function getStuList(data) { ...@@ -27,4 +27,48 @@ export function getStuList(data) {
method: 'post', method: 'post',
data data
}) })
}
//学管 获取预警枚举
export function getEarlyWarningEnum(data) {
return request({
url: '/Stu/GetGuestClassHoursEarlyWarningEnumList',
method: 'post',
data
})
}
//学管 获取类型枚举
export function getTypeEnum(data) {
return request({
url: '/Stu/GetOrderJoinTypeEnumEnumList',
method: 'post',
data
})
}
//学管 添加事件
export function addEvent(data) {
return request({
url: '/Stu/GetSetStudentEventLog',
method: 'post',
data
})
}
//学管 获取可补课课时,缺勤次数,请假次数分页信息
export function getClassCheckPageList(data) {
return request({
url: '/Stu/GetClassCheckPageList',
method: 'post',
data
})
}
//学管 获取事件记录分页信息
export function getEventLogPageList(data) {
return request({
url: '/Stu/GetStudentEventLogPageList',
method: 'post',
data
})
} }
\ No newline at end of file
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 800px;max-width:900px;">
<q-card-section>
<div class="text-h6" v-if="this.msg.Id===0">添加事件</div>
<div class="text-h6" v-if="this.msg.Id>0">修改事件</div>
</q-card-section>
<q-card-section class="q-pt-none">
<div class="row ">
<div class="col-6 q-pr-lg">
<q-input filled v-model="msg.Title" label="标题" />
</div>
<div class="col-6">
<q-select @input="" standout="bg-primary text-white" v-model="msg.EventType" class="col-6"
option-label="Name" option-value="Id" :options="typeOpts" emit-value map-options label="类型" />
</div>
</div>
<q-input filled type="textarea" :rows="3" style="margin-top:20px;" stack-label maxlength="2000"
v-model="msg.EventContent" :dense="false" class="col-12 q-pb-lg" label="内容" />
<div class="row wrap" style="padding-top:20px">
<div style="display:flex;flex-wrap: wrap;">
<div v-if="msg.EventPicList&&msg.EventPicList.length>0" v-for="(item,index) in msg.EventPicList">
<div class="ItemImgDiv">
<q-img :src="item" spinner-color="white" style="height: 100%;height:100%" />
<q-btn size="7px" @click="deleteItemImg(index)" style="position:absolute;right:-5px;top:-5px;" round
color="red" icon="iconfont icon-guanbi1" />
</div>
</div>
<el-upload class="avatar-uploader addDutyMain" action="" :before-upload="uploadFile"
:show-file-list="false">
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</div>
</div>
</q-card-section>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
UploadSelfFile,
} from '../../api/common/common'
import {
addEvent
} from '../../api/stuMan/index.js'
export default {
props: {
setObj: {
type: Object,
default: null
}
},
data() {
return {
persistent: true,
saveLoading: false,
msg: {
Id: 0,
StuId: 0,
School_Id: 0,
EventType: 2,
EventContent: "",
Title: "",
EventPicList: []
},
typeOpts: [{
Name: "处分",
Id: 1,
},
{
Name: "奖励",
Id: 2,
},
]
}
},
mounted() {
console.log(85, this.setObj)
if (this.setObj) {
if (this.setObj.Student_Id) {
this.msg.StuId = this.setObj.Student_Id
}
if (this.setObj.School_Id) {
this.msg.School_Id = this.setObj.School_Id
}
if (this.setObj.Id>0) {
this.msg.Id = this.setObj.Id
if (this.setObj.EventType) {
this.msg.EventType = this.setObj.EventType
}
if (this.setObj.Title) {
this.msg.Title = this.setObj.Title
}
if (this.setObj.EventContent) {
this.msg.EventContent = this.setObj.EventContent
}
if (this.setObj.EventPicList) {
this.msg.EventPicList = this.setObj.EventPicList
}
}else{
this.msg.Id =0
this.msg.EventType = 2
this.msg.Title = ""
this.msg.EventContent = ""
this.msg.EventPicList =[]
}
}else{
this.msg.Id =0
this.msg.EventType = 2
this.msg.Title = ""
this.msg.EventContent = ""
this.msg.EventPicList =[]
}
console.log(109, this.msg)
this.$forceUpdate();
},
methods: {
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
save() {
console.log(89, this.msg)
this.saveLoading = true
addEvent(this.msg).then(res => {
this.saveLoading = false
if (res.Code === 1) {
this.$message.success("操作成功")
this.$emit("success")
this.persistent = false
} else {
this.$message.error(res.Message)
}
}).catch(err => {
this.saveLoading = false
})
},
uploadFile(files) {
UploadSelfFile('studentIcon', files, res => {
if (res.Code == 1) {
this.msg.EventPicList.push(res.FileUrl);
}
})
},
//删除图片
deleteItemImg(index) {
this.msg.EventPicList.splice(index, 1);
}
},
}
</script>
<style>
.avatar-uploader .el-upload {
border-radius: 6px;
cursor: pointer;
width: 100%;
height: 100%;
color: #8c939d;
position: relative;
overflow: hidden;
}
.addDutyMain {
display: inline-block;
width: 118px;
height: 118px;
font-size: 70px;
border: 1px dashed #d9d9d9;
line-height: 120px;
}
.ItemImgDiv {
width: 118px;
height: 118px;
position: relative;
margin: 0 10px 10px 0;
display: inline-block;
}
._delete_img {
position: absolute;
top: 0px;
height: 82px;
width: 143px;
line-height: 34px;
text-align: center;
background-color: rgba(2, 2, 2, 0.6);
display: inherit;
opacity: 0;
transition: all linear .5s
}
._delete_img i.iconfont {
display: inline-block;
width: 32px;
height: 32px;
border-radius: 50%;
color: #E95252 !important;
background-color: rgba(251, 251, 251, 0.9);
margin-top: 26px;
}
._upload_box ul li {
float: left;
height: 82px;
width: 143px;
padding: 0px 20px 20px 0;
text-align: center;
position: relative;
cursor: pointer;
margin-right: 10px;
}
._upload_box ul li img {
height: 82px;
width: 143px;
}
._upload_box ul li:hover ._delete_img {
opacity: 1;
}
._upload_tips {
font-size: 12px;
position: absolute;
top: 71%;
width: 100%;
left: 0;
text-align: center;
color: #949494;
}
</style>
<template>
<!-- 可补课时 -->
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 900px;max-width:900px;">
<q-card-section>
<div class="text-h6">事件记录</div>
</q-card-section>
<q-card-section class="q-pt-none">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table "
separator="none" :data="data" :columns="columns" row-key="name">
<template v-slot:top="props">
<!-- <div class="col-2 q-table__title">可补课课时</div> -->
</template>
<template v-slot:body-cell-EventType="props">
<q-td :props="props">
<div v-if="props.row.EventType===1" style="color:#ff0000">处分</div>
<div v-if="props.row.EventType===2" style="color:#00ff00">奖励</div>
</q-td>
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<div>
<q-btn size="xs" color="accent" style="font-weight:400" label="修改"
@click="modify(props.row)" />
</div>
</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>
</q-table>
</q-card-section>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<!-- <q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save" /> -->
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
getEventLogPageList
} from '../../api/stuMan/index.js'
export default {
props: {
setObj: {
type: Object,
}
},
data() {
return {
persistent: true,
loading: false,
pageCount: 0,
msg: {
pageIndex: 1,
pageSize: 10,
rowsPerPage: 10,
StuId:0,
EventType:0
},
data: [],
columns: [
{
name: "Title",
label: "标题",
align: "left",
field: "Title",
},
{
name: "EventType",
label: "类型",
align: "left",
field: "EventType"
},
{
name: "EventContent",
label: "内容",
align: "left",
field: "EventContent",
required: true,
},
{
name: "CreateByName",
label: "创建人",
align: "left",
field: "CreateByName",
},
{
name: "CreateTime",
label: "创建时间",
align: "left",
field: "CreateTime",
},
{
name: "optioned",
label: "操作",
align: "left",
},
]
}
},
mounted() {
if (this.setObj) {
this.msg.StuId = this.setObj.Student_Id
}
this.getList();
},
methods: {
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
getList() {
getEventLogPageList(this.msg).then(res => {
if (res.Code === 1) {
this.data = res.Data.PageData
this.pageCount = res.Data.PageCount
}
})
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
//修改
modify(item){
this.persistent = false
this.$emit('modify',item)
}
},
}
</script>
<style>
.avatar-uploader .el-upload {
border-radius: 6px;
cursor: pointer;
width: 100%;
height: 100%;
color: #8c939d;
position: relative;
overflow: hidden;
}
.addDutyMain {
display: inline-block;
width: 118px;
height: 118px;
font-size: 70px;
border: 1px dashed #d9d9d9;
line-height: 120px;
}
.ItemImgDiv {
width: 118px;
height: 118px;
position: relative;
margin: 0 10px 10px 0;
display: inline-block;
}
._delete_img {
position: absolute;
top: 0px;
height: 82px;
width: 143px;
line-height: 34px;
text-align: center;
background-color: rgba(2, 2, 2, 0.6);
display: inherit;
opacity: 0;
transition: all linear .5s
}
._delete_img i.iconfont {
display: inline-block;
width: 32px;
height: 32px;
border-radius: 50%;
color: #E95252 !important;
background-color: rgba(251, 251, 251, 0.9);
margin-top: 26px;
}
._upload_box ul li {
float: left;
height: 82px;
width: 143px;
padding: 0px 20px 20px 0;
text-align: center;
position: relative;
cursor: pointer;
margin-right: 10px;
}
._upload_box ul li img {
height: 82px;
width: 143px;
}
._upload_box ul li:hover ._delete_img {
opacity: 1;
}
._upload_tips {
font-size: 12px;
position: absolute;
top: 71%;
width: 100%;
left: 0;
text-align: center;
color: #949494;
}
</style>
<template>
<!-- 可补课时 -->
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 900px;max-width:900px;">
<q-card-section>
<div class="text-h6" v-if="type==1">可补课课时</div>
<div class="text-h6" v-if="type==2">缺勤次数</div>
<div class="text-h6" v-if="type==3">请假</div>
</q-card-section>
<q-card-section class="q-pt-none">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table "
separator="none" :data="data" :columns="columns" row-key="name">
<template v-slot:top="props">
<!-- <div class="col-2 q-table__title">可补课课时</div> -->
</template>
<!-- <template v-slot:body-cell-ContractNo="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="seeContract(props.row)">
{{props.row.ContractNo}}
</div>
</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>
</q-table>
</q-card-section>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<!-- <q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" :loading="saveLoading"
@click="save" /> -->
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
getClassCheckPageList
} from '../../api/stuMan/index.js'
export default {
props: {
type: {
type: Number,
default: 1
},
setObj: {
type: Object,
}
},
data() {
return {
persistent: true,
loading: false,
pageCount: 0,
msg: {
pageIndex: 1,
pageSize: 10,
rowsPerPage: 10,
OrderGuestId: 0,
CheckStatus: 1,
MakeUpStatus: 2,
},
data: [],
columns: [
{
name: "GuestName",
label: "学生名称",
align: "left",
field: "GuestName",
},
{
name: "ClassName",
label: "班级名称",
align: "left",
field: "ClassName",
required: true,
},
{
name: "ClassNo",
label: "班号",
align: "left",
field: "ClassNo"
},
{
name: "CourseName",
label: "课程",
align: "left",
field: "CourseName",
},
{
name: "RoomName",
label: "教室",
align: "left",
field: "RoomName",
},
{
name: "TeacherName",
label: "教师",
align: "left",
field: "TeacherName",
},
{
name: "ClassDate",
label: "上课时间",
align: "left",
field: "ClassDate",
},
{
name: "TimeBucket",
label: "上课时间段",
align: "left",
field: "TimeBucket",
},
{
name: "CreateTime",
label: "签到时间",
align: "left",
field: "CreateTime",
},
]
}
},
mounted() {
if (this.setObj) {
this.msg.OrderGuestId = this.setObj.Student_Id
}
if (this.type === 1) {
//可补课时
this.msg.CheckStatus = 1
this.msg.MakeUpStatus = 2
} else if (this.type === 2) {
// 缺勤
this.msg.CheckStatus = 1
delete this.msg.MakeUpStatus
} else if (this.type === 3) {
// 请假
this.msg.CheckStatus = 2
delete this.msg.MakeUpStatus
}
this.getList();
},
methods: {
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
getList() {
getClassCheckPageList(this.msg).then(res => {
console.log(83, res)
if (res.Code === 1) {
this.data = res.Data.PageData
this.pageCount = res.Data.PageCount
}
})
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
//翻页
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
},
}
</script>
<style>
.avatar-uploader .el-upload {
border-radius: 6px;
cursor: pointer;
width: 100%;
height: 100%;
color: #8c939d;
position: relative;
overflow: hidden;
}
.addDutyMain {
display: inline-block;
width: 118px;
height: 118px;
font-size: 70px;
border: 1px dashed #d9d9d9;
line-height: 120px;
}
.ItemImgDiv {
width: 118px;
height: 118px;
position: relative;
margin: 0 10px 10px 0;
display: inline-block;
}
._delete_img {
position: absolute;
top: 0px;
height: 82px;
width: 143px;
line-height: 34px;
text-align: center;
background-color: rgba(2, 2, 2, 0.6);
display: inherit;
opacity: 0;
transition: all linear .5s
}
._delete_img i.iconfont {
display: inline-block;
width: 32px;
height: 32px;
border-radius: 50%;
color: #E95252 !important;
background-color: rgba(251, 251, 251, 0.9);
margin-top: 26px;
}
._upload_box ul li {
float: left;
height: 82px;
width: 143px;
padding: 0px 20px 20px 0;
text-align: center;
position: relative;
cursor: pointer;
margin-right: 10px;
}
._upload_box ul li img {
height: 82px;
width: 143px;
}
._upload_box ul li:hover ._delete_img {
opacity: 1;
}
._upload_tips {
font-size: 12px;
position: absolute;
top: 71%;
width: 100%;
left: 0;
text-align: center;
color: #949494;
}
</style>
...@@ -18,16 +18,16 @@ ...@@ -18,16 +18,16 @@
<div class="text-h6">高级查询</div> <div class="text-h6">高级查询</div>
</q-card-section> </q-card-section>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-input clearable standout="bg-primary text-white" class="col-12" v-model="msg.classId" label="班号" <q-input clearable standout="bg-primary text-white" class="col-12" v-model="msg.ClassNo" label="班号"
maxlength="20" /> maxlength="20" />
</div> </div>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-input clearable standout="bg-primary text-white" class="col-12" v-model="msg.orderId" label="订单号" <q-input clearable standout="bg-primary text-white" class="col-12" v-model="msg.OrderId" label="订单号"
maxlength="20" /> maxlength="20" />
</div> </div>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-select standout="bg-primary text-white" class="col-12" option-label="EmployeeName" option-value="Id" <q-select standout="bg-primary text-white" class="col-12" option-label="EmployeeName" option-value="Id"
v-model="msg.employee" :options="EmployeeList" emit-value use-input map-options label="业务员" clearable v-model="msg.EnterID" :options="EmployeeList" emit-value use-input map-options label="业务员" clearable
@filter="filterEmployee"> @filter="filterEmployee">
<template v-slot:no-option> <template v-slot:no-option>
<q-item> <q-item>
...@@ -41,26 +41,27 @@ ...@@ -41,26 +41,27 @@
<div class="Sysuser_Date row q-mb-md"> <div class="Sysuser_Date row q-mb-md">
<q-field filled class="col-12"> <q-field filled class="col-12">
 <template v-slot:control>  <template v-slot:control>
<el-date-picker v-model="msg.SelectStartTimeStr" type="date" placeholder="下单时间" value-format="yyyy-MM-dd" <el-date-picker v-model="dateList" value-format="yyyy-MM-dd" type="daterange" style="border:none;"
@change="">  range-separator="至"  start-placeholder="开始日期"  end-placeholder="结束日期">
</el-date-picker>      </el-date-picker>      
</template> </template>
</q-field> </q-field>
</div> </div>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-select standout="bg-primary text-white" v-model="msg.status" class="col-12" :options="statusOpts" option-label="name" option-value="Id" <q-select standout="bg-primary text-white" v-model="msg.EffectStatus" class="col-12" :options="statusOpts"
emit-value map-options label="状态" /> option-label="name" option-value="Id" emit-value map-options label="状态" />
</div> </div>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-select standout="bg-primary text-white" v-model="msg.type" class="col-12" :options="typeOpts" option-label="name" option-value="Id" <q-select standout="bg-primary text-white" v-model="msg.JoinType" class="col-12" :options="typeEnum"
emit-value map-options label="类型" /> option-label="Name" option-value="Id" emit-value map-options label="类型" />
</div> </div>
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-select standout="bg-primary text-white" v-model="msg.warn" class="col-12" :options="warnOpts" option-label="name" option-value="Id" <q-select standout="bg-primary text-white" v-model="msg.EarlyWarning" class="col-12" :options="warnEnum"
emit-value map-options label="预警" /> option-label="Name" option-value="Id" emit-value map-options label="预警" />
</div> </div>
<q-card-section> <q-card-section>
<q-btn color="accent" label="查询" @click="query" style="float:right"></q-btn> <q-btn color="accent" label="查询" @click="query" style="float:right"></q-btn>
<q-btn text-color="accent q-mr-md" label="重置" @click="resetForm" style="float:right"></q-btn>
</q-card-section> </q-card-section>
</q-card> </q-card>
<div class="dialog-out-close" @click="closeEditOrder" <div class="dialog-out-close" @click="closeEditOrder"
...@@ -73,135 +74,99 @@ ...@@ -73,135 +74,99 @@
import { import {
queryEmployee queryEmployee
} from '../../api/users/user'; //获取员工 } from '../../api/users/user'; //获取员工
import {
getClassDropDownList
} from '../../api/school/index'; //获取校区列表
export default { export default {
name: "editOrder-form",
props: { props: {
typeEnum: {
type: Array
},
warnEnum: {
type: Array
},
saveQuery: {
type: Object,
default: null
}
}, },
data() { data() {
return { return {
showquery: true, showquery: true,
statusOpts:[ statusOpts: [{
{ name: "不限",
name:"未生效", Id: ""
Id:1 },
}, {
{ name: "未生效",
name:"正常", Id: 0
Id:2 },
}, {
{ name: "正常",
name:"休学", Id: 1
Id:3 },
}, {
{ name: "退学",
name:"完课", Id: 2
Id:4 },
}, {
], name: "申请中",
typeOpts:[ Id: 3
{ },
name:"插班", {
Id:1 name: "驳回申请",
}, Id: 4
{ },
name:"转班", {
Id:2 name: "停课",
}, Id: 5
{ },
name:"分拆", {
Id:3 name: "停课申请中",
}, Id: 6
{ },
name:"正常", {
Id:4 name: "完结的订单",
}, Id: 7
},
{
name: "转班申请中",
Id: 8
},
], ],
warnOpts:[
{
name:"无",
Id:1
},
{
name:"不足5课时",
Id:2
},
{
name:"不足10课时",
Id:3
},
{
name:"不足15课时",
Id:4
},
{
name:"不足20课时",
Id:5
},
],
classList: [],
msg: { msg: {
classId:1, ClassNo: "",
orderId:"1", OrderId: 0,
employee:0, EnterID: 0,
status:1, EffectStatus: "",
type:1, JoinType: 0,
date:"", OrderTime: "",
warn:1, EndOrderTime: "",
EarlyWarning: 0,
chooseNum: 0, //选中几项
}, },
EmployeeList: [], //员工列表 EmployeeList: [], //员工列表
AllemployeeList: [], //所有员工列表 AllemployeeList: [], //所有员工列表
CourseList: [], //课程列表 dateList: [],
courseObj: {}, //选择的课程
Teacher_Id: 0,
ClassName: ''
} }
}, },
mounted() { mounted() {
if (this.saveQuery) {
this.msg.ClassNo = this.saveQuery.ClassNo
this.msg.OrderId = this.saveQuery.OrderId
this.msg.EnterID = this.saveQuery.EnterID
this.msg.EffectStatus = this.saveQuery.EffectStatus
this.msg.JoinType = this.saveQuery.JoinType
this.msg.EarlyWarning = this.saveQuery.EarlyWarning
this.msg.ClassNo = this.saveQuery.ClassNo
if(this.saveQuery.OrderTime){
this.dateList[0] = this.saveQuery.OrderTime
}
if(this.saveQuery.EndOrderTime){
this.dateList[1] = this.saveQuery.EndOrderTime
}
this.$forceUpdate()
}
this.getEmployee(); this.getEmployee();
}, },
methods: { methods: {
//获取课程信息
getClassList(ClassId) {
this.OrderMsg.CourseId = '';
this.CourseList = [];
let val = this.classList.find(x => x.ClassId == ClassId);
if (val) {
this.Teacher_Id = val.Teacher_Id;
this.ClassName = val.ClassName;
}
var qMsg = {
ClassId: ClassId
};
queryChaClassInfo(qMsg).then(res => {
if (res.Code == 1) {
this.CourseList = res.Data.otherCourse;
}
});
},
//获取班级列表
getClass() {
getClassDropDownList({
IsAddDefault: 0,
IsQuerySurplus: 1
}).then(res => {
if (res.Code == 1) {
let tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
ClassId: 0,
ClassName: "不限"
})
this.classList = tempArray;
}
})
},
//筛选员工 //筛选员工
filterEmployee(val, update) { filterEmployee(val, update) {
update(() => { update(() => {
...@@ -234,12 +199,54 @@ ...@@ -234,12 +199,54 @@
this.showquery = false; this.showquery = false;
this.$emit('close') this.$emit('close')
}, },
resetForm() {
this.msg = {
ClassNo: "",
OrderId: 0,
EnterID: 0,
EffectStatus: "",
JoinType: 0,
OrderTime: "",
EndOrderTime: "",
EarlyWarning: 0,
chooseNum: 0, //选中几项
}
this.dateList = []
},
query() { query() {
this.msg.chooseNum = 0
if (!this.dateList) {
this.dateList = []
}
if (this.dateList.length > 0) {
this.msg.chooseNum++
this.msg.OrderTime = this.dateList[0]
this.msg.EndOrderTime = this.dateList[1]
} else {
this.msg.OrderTime = ""
this.msg.EndOrderTime = ""
}
if (this.msg.ClassNo) {
this.msg.chooseNum++
}
if (this.msg.OrderId) {
this.msg.chooseNum++
}
if (this.msg.EnterID) {
this.msg.chooseNum++
}
if (this.msg.EffectStatus >= 0 && this.msg.EffectStatus !== "") {
this.msg.chooseNum++
}
if (this.msg.JoinType) {
this.msg.chooseNum++
}
if (this.msg.EarlyWarning) {
this.msg.chooseNum++
}
this.showquery = false; this.showquery = false;
this.$emit("success", this.msg) this.$emit("success", this.msg)
} }
} }
} }
</script>
</script> \ No newline at end of file
...@@ -37,24 +37,31 @@ ...@@ -37,24 +37,31 @@
.column-cell-class-name-test-lan-s .v-table-body-cell { .column-cell-class-name-test-lan-s .v-table-body-cell {
background-color: #9cf; background-color: #9cf;
} }
.color-red{
color:red; .color-red {
color: red;
} }
.color-green{
color:green; .color-green {
color: green;
} }
.color-black{
color:black !important; .color-black {
color: black !important;
} }
.border-b{
.border-b {
border-bottom: 1px solid #999; border-bottom: 1px solid #999;
} }
td .border-b:last-child{
border:none; td .border-b:last-child {
border: none;
} }
.orderCompleteStatistics td{
color:#000; .orderCompleteStatistics td {
color: #000;
} }
</style> </style>
<template> <template>
<div class="page_EasyReport My_table_tell page-body" v-loading="AALloading"> <div class="page_EasyReport My_table_tell page-body" v-loading="AALloading">
...@@ -82,7 +89,7 @@ ...@@ -82,7 +89,7 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="班级名称:"> <el-form-item label="班级名称:">
<div style="width:190px"> <div style="width:190px">
<el-input v-model="msg.ClassName" placeholder="请输入内容" filterable></el-input> <el-input v-model="msg.ClassName" placeholder="请输入内容" filterable></el-input>
...@@ -94,13 +101,13 @@ ...@@ -94,13 +101,13 @@
<el-form-item label="课程名称:"> <el-form-item label="课程名称:">
<div style="width:190px"> <div style="width:190px">
<el-input v-model="msg.CourseName" placeholder="请输入内容" filterable></el-input> <el-input v-model="msg.CourseName" placeholder="请输入内容" filterable></el-input>
</div> </div>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="业务员:"> <el-form-item label="业务员:">
<el-select v-model="msg.CreateBy" filterable > <el-select v-model="msg.CreateBy" filterable>
<el-option label="不限" :value="0"></el-option> <el-option label="不限" :value="0"></el-option>
<el-option v-for="item in EmployeeList" :label="item.EmployeeName" :key="item.Id" :value="item.Id"> <el-option v-for="item in EmployeeList" :label="item.EmployeeName" :key="item.Id" :value="item.Id">
{{item.EmployeeName}}</el-option> {{item.EmployeeName}}</el-option>
...@@ -114,27 +121,27 @@ ...@@ -114,27 +121,27 @@
</div> </div>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="账户类型:"> <el-form-item label="账户类型:">
<el-select filterable v-model='msg.AccountType'> <el-select filterable v-model='msg.AccountType'>
<el-option :value="0" label="不限"></el-option> <el-option :value="0" label="不限"></el-option>
<el-option v-for='item in AccList' :label='item.Name' :value='item.ID' :key='item.ID'> <el-option v-for='item in AccList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="交易方式:"> <el-form-item label="交易方式:">
<el-select v-model="msg.TradeWay" filterable @change="getAccountList(msg.AccountType,msg.TradeWay)"> <el-select v-model="msg.TradeWay" filterable @change="getAccountList(msg.AccountType,msg.TradeWay)">
<el-option label="不限" :value="0"></el-option> <el-option label="不限" :value="0"></el-option>
<el-option v-for='item in BranchAccountList' :label='item.Name' :value='item.ID' :key='item.ID'> <el-option v-for='item in BranchAccountList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="账号:"> <el-form-item label="账号:">
<el-select v-model="msg.AccountId" filterable > <el-select v-model="msg.AccountId" filterable>
<el-option label="不限" :value="0"></el-option> <el-option label="不限" :value="0"></el-option>
<el-option v-for='item in accountList' :label='item.Name' :value='item.ID' :key='item.ID'></el-option> <el-option v-for='item in accountList' :label='item.Name' :value='item.ID' :key='item.ID'></el-option>
</el-select> </el-select>
...@@ -142,34 +149,35 @@ ...@@ -142,34 +149,35 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="下单时间:"> <el-form-item label="下单时间:">
<el-date-picker class="h34" v-model="datevalue" type="daterange" <el-date-picker class="h34" v-model="datevalue" type="daterange" value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd" range-separator="至"></el-date-picker> range-separator="至"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label="消费课时:"> <el-form-item label="消费课时:">
<el-date-picker class="h34" v-model="datevalue2" type="daterange" <el-date-picker class="h34" v-model="datevalue2" type="daterange" value-format="yyyy-MM-dd"
value-format="yyyy-MM-dd" range-separator="至"></el-date-picker> range-separator="至"></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item > <el-form-item>
<!-- <button class="normalBtn " @click="getData()">查询</button> --> <!-- <button class="normalBtn " @click="getData()">查询</button> -->
<q-btn color="primary" size="11px" label="查询" @click="handleCurrentChange(1)" style="marginRight:10px"/> <q-btn color="primary" size="11px" label="查询" @click="handleCurrentChange(1)" style="marginRight:10px" />
<!-- <button class="normalBtn " @click="exportExcel">导出EXCEL</button> --> <!-- <button class="normalBtn " @click="exportExcel">导出EXCEL</button> -->
<q-btn color="primary" size="11px" label="导出EXCEL" @click="exportExcel"/> <q-btn color="primary" size="11px" label="导出EXCEL" @click="exportExcel" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<!-- <button class="normalBtn page_EasyReport_search" v-if="userId==1" @click="getData(1)">保存损失</button> <!-- <button class="normalBtn page_EasyReport_search" v-if="userId==1" @click="getData(1)">保存损失</button>
<p class="easyUpdateTime" v-if="UpdateStaus==1">正在更新,更新开始时间 {{UpdateStartTime}}</p> <p class="easyUpdateTime" v-if="UpdateStaus==1">正在更新,更新开始时间 {{UpdateStartTime}}</p>
<p class="easyUpdateTime" v-if="UpdateStaus==2">上次更新时间 {{UpdateStartTime}}<br />每日8点、12点、19点、22点数据更新~</p> --> <p class="easyUpdateTime" v-if="UpdateStaus==2">上次更新时间 {{UpdateStartTime}}<br />每日8点、12点、19点、22点数据更新~</p> -->
</div> </div>
<div style="width:100%; overflow-x:auto"> <div style="width:100%; overflow-x:auto">
<table :boeder="1" class="singeRowTable orderCompleteStatistics" style="width:3000px;border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0"> <table :boeder="1" class="singeRowTable orderCompleteStatistics" style="width:3000px;border:1px solid #E6E6E6;"
cellspacing="0" cellpadding="0">
<tr> <tr>
<th colspan="15" style="border-right:1px solid #999;border-bottom:1px solid #999">合同信息</th> <th colspan="15" style="border-right:1px solid #999;border-bottom:1px solid #999">合同信息</th>
<th colspan="6" style="border-right:1px solid #999;border-bottom:1px solid #999">收款信息</th> <th colspan="6" style="border-right:1px solid #999;border-bottom:1px solid #999">收款信息</th>
...@@ -178,166 +186,203 @@ ...@@ -178,166 +186,203 @@
<th colspan="3" style="border-right:1px solid #999;border-bottom:1px solid #999">剩余情况</th> <th colspan="3" style="border-right:1px solid #999;border-bottom:1px solid #999">剩余情况</th>
<th rowspan="2" :width='120'>操作</th> <th rowspan="2" :width='120'>操作</th>
</tr> </tr>
<tr>
<!-- -合同信息-- -->
<th :width='120'>订单号</th>
<th :width='200'>签订时间</th>
<th :width='220'>合同编号</th>
<th :width='400'>产品名称</th>
<th :width='200'>班号</th>
<th :width='400'>班级</th>
<th :width='150'>学员名称</th>
<th :width='120'>业务员</th>
<th :width='120'>课时</th>
<th :width='120'>单价</th>
<th :width='120'>课程费</th>
<th :width='120'>教材费</th>
<th :width='120'>课件费</th>
<th :width='150'>优惠金额</th>
<th :width='180' style="border-right:1px solid #999">合同总金额</th>
<!-- -收款信息(实收金额-- -->
<th :width='150'>单据号</th>
<th :width='300'>收款日期</th>
<th :width='150'>收款金额</th>
<th :width='150'>收款方式</th>
<th :width='300'>收款账户</th>
<th :width='150' style="border-right:1px solid #999">应收金额</th>
<!-- --合同有效金额-- -->
<th :width='150'>有效课时</th>
<th :width='150' style="border-right:1px solid #999">有效金额</th>
<!-- -消耗情况-- -->
<th :width='200'>消耗教材费</th>
<th :width='200'>消耗课件费</th>
<th :width='150'>上课进度</th>
<th :width='150'>已上课时</th>
<th :width='200'>折后单价</th>
<th :width='200'>已上课金额</th>
<th :width='200' style="border-right:1px solid #999">退/付款金额</th>
<!-- -剩余情况-- -->
<th :width='200'>协调金额</th>
<th :width='120'>剩余课时</th>
<th :width='200' style="border-right:1px solid #999">剩余金额</th>
<!-- <th :width='120'>操作</th> -->
</tr>
<template v-for="(item,index) in DataList" v-loading="loading">
<tr> <tr>
<!-- -合同信息-- --> <!-- -合同信息-- -->
<td @click="goUrl3('/sale/orderStatistics',item.OrderId)"> <th :width='120'>订单号</th>
<template v-if="item.JoinType==3"> <th :width='200'>签订时间</th>
<el-tooltip class="item" effect="dark" content="续费订单" placement="top-start"> <th :width='220'>合同编号</th>
<span style="cursor: pointer;text-decoration: underline;color:red" > <th :width='400'>产品名称</th>
{{item.OrderId}} <th :width='200'>班号</th>
</span> <th :width='400'>班级</th>
</el-tooltip> <th :width='150'>学员名称</th>
</template> <th :width='120'>业务员</th>
<template v-else-if="item.TargetJoinType==3"> <th :width='120'>课时</th>
<el-tooltip class="item" effect="dark" content="已续费" placement="top-start"> <th :width='120'>单价</th>
<span style="cursor: pointer;text-decoration: underline;color:green" > <th :width='120'>课程费</th>
{{item.OrderId}} <th :width='120'>教材费</th>
</span> <th :width='120'>课件费</th>
</el-tooltip> <th :width='150'>优惠金额</th>
</template> <th :width='180' style="border-right:1px solid #999">合同总金额</th>
<template v-else-if="item.TargetJoinType==4"> <!-- -收款信息(实收金额-- -->
<el-tooltip class="item" effect="dark" :content="`已转班【${item.TargetClassName}】,关联订单号${item.TargetOrderId}`" placement="top-start"> <th :width='150'>单据号</th>
<span style="cursor: pointer;text-decoration: underline;color:orange" > <th :width='300'>收款日期</th>
{{item.OrderId}} <th :width='150'>收款金额</th>
</span> <th :width='150'>收款方式</th>
</el-tooltip> <th :width='300'>收款账户</th>
</template> <th :width='150' style="border-right:1px solid #999">应收金额</th>
<template v-else-if="item.TargetJoinType==1"> <!-- --合同有效金额-- -->
<th :width='150'>有效课时</th>
<th :width='150' style="border-right:1px solid #999">有效金额</th>
<!-- -消耗情况-- -->
<th :width='200'>消耗教材费</th>
<th :width='200'>消耗课件费</th>
<th :width='150'>上课进度</th>
<th :width='150'>已上课时</th>
<th :width='200'>折后单价</th>
<th :width='200'>已上课金额</th>
<th :width='200' style="border-right:1px solid #999">退/付款金额</th>
<!-- -剩余情况-- -->
<th :width='200'>协调金额</th>
<th :width='120'>剩余课时</th>
<th :width='200' style="border-right:1px solid #999">剩余金额</th>
<!-- <th :width='120'>操作</th> -->
</tr>
<template v-for="(item,index) in DataList" v-loading="loading">
<tr>
<!-- -合同信息-- -->
<td @click="goUrl3('/sale/orderStatistics',item.OrderId)">
<template v-if="item.JoinType==3"> <template v-if="item.JoinType==3">
<el-tooltip class="item" effect="dark" :content="`原订单${item.SourceOrderId}`" placement="top-start"> <el-tooltip class="item" effect="dark" content="续费订单" placement="top-start">
<span style="cursor: pointer;text-decoration: underline;color:blue" > <span style="cursor: pointer;text-decoration: underline;color:red">
{{item.OrderId}}
</span>
</el-tooltip>
</template>
<template v-else-if="item.TargetJoinType==3">
<el-tooltip class="item" effect="dark" content="已续费" placement="top-start">
<span style="cursor: pointer;text-decoration: underline;color:green">
{{item.OrderId}} {{item.OrderId}}
</span> </span>
</el-tooltip> </el-tooltip>
</template> </template>
<template v-else-if="item.JoinType==4"> <template v-else-if="item.TargetJoinType==4">
<el-tooltip class="item" effect="dark" :content="`从【${item.SourceClassName}】转入,关联订单号${item.SourceOrderId}`" placement="top-start"> <el-tooltip class="item" effect="dark"
<span style="cursor: pointer;text-decoration: underline;color:blue" > :content="`已转班【${item.TargetClassName}】,关联订单号${item.TargetOrderId}`" placement="top-start">
<span style="cursor: pointer;text-decoration: underline;color:orange">
{{item.OrderId}} {{item.OrderId}}
</span> </span>
</el-tooltip> </el-tooltip>
</template> </template>
<template v-else-if="item.TargetJoinType==1">
<template v-if="item.JoinType==3">
<el-tooltip class="item" effect="dark" :content="`原订单${item.SourceOrderId}`" placement="top-start">
<span style="cursor: pointer;text-decoration: underline;color:blue">
{{item.OrderId}}
</span>
</el-tooltip>
</template>
<template v-else-if="item.JoinType==4">
<el-tooltip class="item" effect="dark"
:content="`从【${item.SourceClassName}】转入,关联订单号${item.SourceOrderId}`" placement="top-start">
<span style="cursor: pointer;text-decoration: underline;color:blue">
{{item.OrderId}}
</span>
</el-tooltip>
</template>
<template v-else>
<span style="cursor: pointer;text-decoration: underline;">
{{item.OrderId}}
</span>
</template>
</template>
<template v-else> <template v-else>
<span style="cursor: pointer;text-decoration: underline;" > <span style="cursor: pointer;text-decoration: underline;">
{{item.OrderId}} {{item.OrderId}}
</span> </span>
</template> </template>
</template> </td>
<template v-else> <td>{{item.CreateTime}}</td>
<span style="cursor: pointer;text-decoration: underline;" > <td @click="goUrl('/sale/contractManage',item.ContractNo)"><span
{{item.OrderId}} style="cursor: pointer;text-decoration: underline;">{{item.ContractNo}}</span></td>
</span> <td @click="goUrl('/course/course',item.CourseName)"><span
</template> style="cursor: pointer;text-decoration: underline;">{{item.CourseName}}</span></td>
</td> <td>{{item.ClassNo}}</td>
<td>{{item.CreateTime}}</td> <td @click="goUrl2('/course/classManage',item.ClassName)">
<td @click="goUrl('/sale/contractManage',item.ContractNo)"><span style="cursor: pointer;text-decoration: underline;" >{{item.ContractNo}}</span></td> <div style="cursor: pointer;text-decoration: underline;">{{item.ClassName}}</div>
<td @click="goUrl('/course/course',item.CourseName)"><span style="cursor: pointer;text-decoration: underline;" >{{item.CourseName}}</span></td> </td>
<td >{{item.ClassNo}}</td> <td>{{item.StudentName}}</td>
<td @click="goUrl2('/course/classManage',item.ClassName)"><div style="cursor: pointer;text-decoration: underline;" >{{item.ClassName}}</div></td> <td>{{item.CreateByName}}</td>
<td>{{item.StudentName}}</td> <td>{{item.TotalClassHours}}</td>
<td>{{item.CreateByName}}</td> <td>{{item.TotalUnitPrice}}</td>
<td>{{item.TotalClassHours}}</td> <td>{{item.TotalCourseFee}}</td>
<td>{{item.TotalUnitPrice}}</td> <td>{{item.TotalBookFee}}</td>
<td>{{item.TotalCourseFee}}</td> <!--教材费-->
<td>{{item.TotalBookFee}}</td><!--教材费--> <td>{{item.TotalClassFee}}</td>
<td>{{item.TotalClassFee}}</td><!--课件费--> <!--课件费-->
<td>{{item.TotalDiscountMoney}}</td><!--优惠金额--------------------------> <td>{{item.TotalDiscountMoney}}</td>
<td>{{item.TotalMoney}}</td><!--合同总金额--> <!--优惠金额-------------------------->
<!-- -收款信息(实收金额-- --> <td>{{item.TotalMoney}}</td>
<td> <!--合同总金额-->
<div v-for="subitem in item.IncomeList" class="border-b"> <!-- -收款信息(实收金额-- -->
{{ subitem.FrID }} <td>
</div> <div v-for="subitem in item.IncomeList" class="border-b">
</td><!--单据号--> {{ subitem.FrID }}
<td> </div>
<div v-for="subitem in item.IncomeList" class="border-b"> </td>
{{ subitem.TradeDate }} <!--单据号-->
</div> <td>
</td><!--收款日期--> <div v-for="subitem in item.IncomeList" class="border-b">
<td> {{ subitem.TradeDate }}
<div v-for="subitem in item.IncomeList" class="border-b"> </div>
{{ subitem.Money }} </td>
</div> <!--收款日期-->
</td><!--收款金额--> <td>
<td> <div v-for="subitem in item.IncomeList" class="border-b">
<div v-for="subitem in item.IncomeList" class="border-b"> {{ subitem.Money }}
<div v-for="_subitem in subitem.TradeWayList"> </div>
{{ _subitem.TypeName }} </td>
</div> <!--收款金额-->
</div> <td>
</td><!--收款方式--> <div v-for="subitem in item.IncomeList" class="border-b">
<td> <div v-for="_subitem in subitem.TradeWayList">
<div v-for="subitem in item.IncomeList" class="border-b"> {{ _subitem.TypeName }}
<div v-for="_subitem in subitem.TradeWayList" > </div>
{{ _subitem.Alias||'/' }} </div>
</div> </td>
</div> <!--收款方式-->
</td><!--收款账户--> <td>
<!-- ---- --> <div v-for="subitem in item.IncomeList" class="border-b">
<td>{{item.PreferPrice}}</td><!--应收金额--> <div v-for="_subitem in subitem.TradeWayList">
<!-- -合同有效金额--- --> {{ _subitem.Alias||'/' }}
<td>{{item.EffectiveClassHours}}</td><!--有效课时--> </div>
<td>{{item.Income}}</td><!--有效金额--> </div>
<!-- 消耗情况 --> </td>
<td>{{item.UseBookFee}}</td><!--教材费--> <!--收款账户-->
<td>{{item.UseCoursewareFee}}</td><!--课件费--> <!-- ---- -->
<td>{{item.Progress}}</td><!--上课进度--> <td>{{item.PreferPrice}}</td>
<td>{{item.UseClassHours}}</td><!--已上课时--> <!--应收金额-->
<td>{{item.Unit_Price}}</td><!--单价--> <!-- -合同有效金额--- -->
<td>{{item.UseCourseFee}}</td><!--已上课金额--> <td>{{item.EffectiveClassHours}}</td>
<td>{{item.Expend}}</td><!--退/付款金额--> <!--有效课时-->
<!-- -剩余情况-- --> <td>{{item.Income}}</td>
<td>{{item.AdjustPrice}}</td><!--协调金额--> <!--有效金额-->
<td>{{item.SurplusCourseHours}}</td><!--剩余课时--> <!-- 消耗情况 -->
<td :class="{'color-red':item.SurplusMoney<0,'color-green':item.SurplusMoney>0&&item.SurplusMoney<500,'color-black':item.SurplusMoney==0||item.SurplusMoney>=500}">{{item.SurplusMoney}}</td><!--剩余金额--> <td>{{item.UseBookFee}}</td>
<td><q-btn color="primary" style="width:80px;font-size:10px" label="协调金额" @click="show($event),AdjustPriceMsg.ContractId=item.Id,AdjustPriceMsg.AdjustPrice=item.AdjustPrice"/></td><!--操作--> <!--教材费-->
</tr> <td>{{item.UseCoursewareFee}}</td>
<!--课件费-->
</template> <td>{{item.Progress}}</td>
</table> <!--上课进度-->
<div class="noDataNotice" v-if="DataList.length<1"><i class="iconfont icon-kong"></i> <p>暂无数据</p></div> <td>{{item.UseClassHours}}</td>
<!--已上课时-->
<td>{{item.Unit_Price}}</td>
<!--单价-->
<td>{{item.UseCourseFee}}</td>
<!--已上课金额-->
<td>{{item.Expend}}</td>
<!--退/付款金额-->
<!-- -剩余情况-- -->
<td>{{item.AdjustPrice}}</td>
<!--协调金额-->
<td>{{item.SurplusCourseHours}}</td>
<!--剩余课时-->
<td
:class="{'color-red':item.SurplusMoney<0,'color-green':item.SurplusMoney>0&&item.SurplusMoney<500,'color-black':item.SurplusMoney==0||item.SurplusMoney>=500}">
{{item.SurplusMoney}}</td>
<!--剩余金额-->
<td>
<q-btn color="primary" style="width:80px;font-size:10px" label="协调金额" v-if="from==1"
@click="show($event),AdjustPriceMsg.ContractId=item.Id,AdjustPriceMsg.AdjustPrice=item.AdjustPrice" />
<q-btn color="primary" style="width:80px;font-size:10px" label="查看明细" v-if="from==2" @click="seeClassUseDetail(item)" />
</td>
<!--操作-->
</tr>
</template>
</table>
<div class="noDataNotice" v-if="DataList.length<1"><i class="iconfont icon-kong"></i>
<p>暂无数据</p>
</div>
</div> </div>
<!-- 对话框 --> <!-- 对话框 -->
<template> <template>
...@@ -348,33 +393,21 @@ ...@@ -348,33 +393,21 @@
<div class="text-h6" style="textAlign:center">设置协调金额</div> <div class="text-h6" style="textAlign:center">设置协调金额</div>
</q-card-section> </q-card-section>
<q-form @submit="onSubmit" class="q-gutter-md"> <q-form @submit="onSubmit" class="q-gutter-md">
<q-input <q-input filled ref="money" v-model="AdjustPriceMsg.AdjustPrice" label="协调金额" lazy-rules step="0.000001"
filled type="number" />
ref="money"
v-model="AdjustPriceMsg.AdjustPrice"
label="协调金额"
lazy-rules
step="0.000001"
type="number"
/>
<div style="display:flex; justify-content:flex-end"> <div style="display:flex; justify-content:flex-end">
<q-btn label="确认" type="Submit" color="primary" style="margin-right:10px"/> <q-btn label="确认" type="Submit" color="primary" style="margin-right:10px" />
<q-btn label="取消" text-color="primary" @click="hide"/> <q-btn label="取消" text-color="primary" @click="hide" />
</div> </div>
</q-form> </q-form>
</div> </div>
</q-card> </q-card>
</q-dialog> </q-dialog>
</template> </template>
<div v-if="DataList.length>0"> <div v-if="DataList.length>0">
<el-pagination <el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.pageIndex"
background layout="total,prev, pager, next, jumper" :page-size='msg.pageSize' :total='total'>
@current-change="handleCurrentChange"
:current-page.sync="msg.pageIndex"
layout="total,prev, pager, next, jumper"
:page-size='msg.pageSize'
:total='total'>
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
...@@ -383,10 +416,15 @@ ...@@ -383,10 +416,15 @@
import { import {
getSchoolDropdown, //获取校区列表 getSchoolDropdown, //获取校区列表
} from '../../api/school/index'; } from '../../api/school/index';
import { queryEmployee } from '../../api/users/user';//获取业务员 import {
import {getOrderCompleteStatisticsPageList,setContractAdjustPrice} from "../../api/report/index" queryEmployee
} from '../../api/users/user'; //获取业务员
import {
getOrderCompleteStatisticsPageList,
setContractAdjustPrice
} from "../../api/report/index"
import Vue from "vue"; import Vue from "vue";
import { import {
getEasyReportList, getEasyReportList,
outToExcelEasyReportList outToExcelEasyReportList
...@@ -397,27 +435,27 @@ ...@@ -397,27 +435,27 @@
export default { export default {
data() { data() {
return { return {
total:0, total: 0,
msg: { msg: {
pageIndex:1, pageIndex: 1,
pageSize:10, pageSize: 10,
OrderId:0,// 订单编号 OrderId: 0, // 订单编号
ContractNo:"",//合同编号 ContractNo: "", //合同编号
StudentName:"",//学生姓名 StudentName: "", //学生姓名
ClassName:"",//班级名称 ClassName: "", //班级名称
CourseName:"",//课程名称 CourseName: "", //课程名称
CreateBy:0,//业务员 CreateBy: 0, //业务员
FinanceId:0,//财务单据id FinanceId: 0, //财务单据id
TradeWay:0,//交易方式 TradeWay: 0, //交易方式
AccountId:0,//账号id AccountId: 0, //账号id
AccountType:0,//账户类型 AccountType: 0, //账户类型
StartTime:'',//下单时间 StartTime: '', //下单时间
EndTime:'', EndTime: '',
XFStartTime:'',//消费课时时间 XFStartTime: '', //消费课时时间
XFEndTime:'', XFEndTime: '',
}, },
datevalue:[], datevalue: [],
datevalue2:[], datevalue2: [],
data: [], data: [],
DataList: [], DataList: [],
UpdateStaus: 0, UpdateStaus: 0,
...@@ -428,23 +466,28 @@ ...@@ -428,23 +466,28 @@
loading: false, loading: false,
AALloading: false, AALloading: false,
userId: -2, userId: -2,
EmployeeList:[],//业务员列表 EmployeeList: [], //业务员列表
AccList:[],//账户类型列表 AccList: [], //账户类型列表
BranchAccountList:[],//交易方式列表 BranchAccountList: [], //交易方式列表
accountList:[],//账号id列表 accountList: [], //账号id列表
AdjustPriceMsg:{ AdjustPriceMsg: {
ContractId:"",//合同id ContractId: "", //合同id
AdjustPrice:"",//协调金额 AdjustPrice: "", //协调金额
} },
from: 1, //来源页
} }
}, },
created() { created() {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
this.userId = userInfo.EmployeeId; this.userId = userInfo.EmployeeId;
}, },
mounted() { mounted() {
if (this.$route.query.from) {
this.from = this.$route.query.from
this.$forceUpdate();
}
this.getData(); this.getData();
this.getCompanyList(); this.getCompanyList();
this.getEmployee(0); this.getEmployee(0);
...@@ -452,38 +495,36 @@ ...@@ -452,38 +495,36 @@
this.Financial_post_GetBranchAccountList(); this.Financial_post_GetBranchAccountList();
}, },
methods: { methods: {
handleCurrentChange: function (val) { //翻页 handleCurrentChange: function (val) { //翻页
this.msg.pageIndex = val; this.msg.pageIndex = val;
this.getData(); this.getData();
}, },
exportExcel: function () { exportExcel: function () {
EduDownLoad("/finance/OutToExcelOrderStudentClassHoursList", this.msg, "订单完成统计.xls") EduDownLoad("/finance/OutToExcelOrderStudentClassHoursList", this.msg, "订单完成统计.xls")
}, },
getData() {
if (this.datevalue && this.datevalue.length > 0) {
getData(){ this.msg.StartTime = this.datevalue[0];
if (this.datevalue && this.datevalue.length > 0) { this.msg.EndTime = this.datevalue[1];
this.msg.StartTime = this.datevalue[0]; } else {
this.msg.EndTime = this.datevalue[1]; this.msg.StartTime = '';
}else{ this.msg.EndTime = '';
this.msg.StartTime = ''; }
this.msg.EndTime = ''; if (this.datevalue2 && this.datevalue2.length > 0) {
} this.msg.XFStartTime = this.datevalue2[0];
if (this.datevalue2 && this.datevalue2.length > 0) { this.msg.XFEndTime = this.datevalue2[1];
this.msg.XFStartTime = this.datevalue2[0]; } else {
this.msg.XFEndTime = this.datevalue2[1]; this.msg.XFStartTime = '';
}else{ this.msg.XFEndTime = '';
this.msg.XFStartTime = ''; }
this.msg.XFEndTime = ''; getOrderCompleteStatisticsPageList(this.msg).then((res) => {
} res.Data.PageData.map((item) => {
getOrderCompleteStatisticsPageList(this.msg).then((res)=>{ item.Progress = item.Progress + "%"
res.Data.PageData.map((item)=>{
item.Progress=item.Progress+"%"
})
this.DataList=res.Data.PageData
this.total=res.Data.Count
}) })
this.DataList = res.Data.PageData
this.total = res.Data.Count
})
}, },
getCompanyList() { getCompanyList() {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
...@@ -501,13 +542,13 @@ ...@@ -501,13 +542,13 @@
}) })
}, },
//获取业务员 //获取业务员
getEmployee(id) { getEmployee(id) {
var qMsg = { var qMsg = {
Dept_Id: 0 Dept_Id: 0
} }
qMsg.Dept_Id=id; qMsg.Dept_Id = id;
queryEmployee(qMsg).then(res => { queryEmployee(qMsg).then(res => {
if(res.Code==1){ if (res.Code == 1) {
this.EmployeeList = res.Data; this.EmployeeList = res.Data;
} }
}).catch(() => { }).catch(() => {
...@@ -515,7 +556,7 @@ ...@@ -515,7 +556,7 @@
}) })
}, },
//获取账户类型下拉 //获取账户类型下拉
AccountType_post_GetList() { AccountType_post_GetList() {
this.apipost('AccountType_post_GetList', this.queryAccMsg, res => { this.apipost('AccountType_post_GetList', this.queryAccMsg, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.AccList = res.data.data; this.AccList = res.data.data;
...@@ -525,7 +566,7 @@ ...@@ -525,7 +566,7 @@
}, err => {}) }, err => {})
}, },
//获取交易方式列表 //获取交易方式列表
Financial_post_GetBranchAccountList() { Financial_post_GetBranchAccountList() {
this.apipost('Financial_post_GetBranchAccountList', {}, res => { this.apipost('Financial_post_GetBranchAccountList', {}, res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.BranchAccountList = res.data.data; this.BranchAccountList = res.data.data;
...@@ -533,7 +574,7 @@ ...@@ -533,7 +574,7 @@
}, err => {}) }, err => {})
}, },
//账户id //账户id
getAccountList(i, t) { getAccountList(i, t) {
let accountList = []; let accountList = [];
if (t == 1) { // 银行 if (t == 1) { // 银行
this.apipost('bankaccount_post_GetList', { this.apipost('bankaccount_post_GetList', {
...@@ -619,15 +660,18 @@ ...@@ -619,15 +660,18 @@
} }
}, },
bodyCellSpan({ row, column, rowIndex }) { bodyCellSpan({
row,
column,
rowIndex
}) {
if (rowIndex === 1) { if (rowIndex === 1) {
if (column.field === "date") { if (column.field === "date") {
return { return {
rowspan: 1, rowspan: 1,
colspan: 2, colspan: 2,
}; };
} } else if (column.field === "hobby") {
else if (column.field === "hobby") {
return { return {
rowspan: 0, rowspan: 0,
colspan: 0, colspan: 0,
...@@ -636,70 +680,78 @@ ...@@ -636,70 +680,78 @@
} }
}, },
//对话框 //对话框
show() { show() {
this.$refs.dialog.show(); this.$refs.dialog.show();
}, },
hide() { hide() {
this.$refs.dialog.hide(); this.$refs.dialog.hide();
}, },
onDialogHide() { onDialogHide() {
// QDialog发出“hide”事件时 // QDialog发出“hide”事件时
// 需要发出 // 需要发出
this.$emit("hide"); this.$emit("hide");
}, },
onCancelClick() { onCancelClick() {
// 我们只需要隐藏对话框 // 我们只需要隐藏对话框
this.hide(); this.hide();
}, },
onSubmit() { onSubmit() {
this.$refs.money.validate(); this.$refs.money.validate();
if (this.$refs.money.hasError) { if (this.$refs.money.hasError) {
this.formHasError = true; this.formHasError = true;
} else { } else {
this.AdjustPriceMsg.ContractId=this.AdjustPriceMsg.ContractId.toString(); this.AdjustPriceMsg.ContractId = this.AdjustPriceMsg.ContractId.toString();
this.AdjustPriceMsg.AdjustPrice=this.AdjustPriceMsg.AdjustPrice.toString(); this.AdjustPriceMsg.AdjustPrice = this.AdjustPriceMsg.AdjustPrice.toString();
if(this.AdjustPriceMsg.AdjustPrice==''){ if (this.AdjustPriceMsg.AdjustPrice == '') {
this.AdjustPriceMsg.AdjustPrice=0; this.AdjustPriceMsg.AdjustPrice = 0;
} }
setContractAdjustPrice(this.AdjustPriceMsg).then((res) => {
this.$q.notify({
type: "positive",
icon: "done",
position: "top",
color: "positive",
message: res.Message,
});
if (res.Code === 1) {
this.getData()
}
this.$refs.dialog.hide();
})
setContractAdjustPrice(this.AdjustPriceMsg).then((res)=>{ }
this.$q.notify({ },
type: "positive", goUrl(path, Names) {
icon: "done", let Name = encodeURI(Names)
position: "top", this.OpenNewUrl(path, {
color: "positive", Name: Name,
message: res.Message, });
},
goUrl2(path, Names) { //班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
}); });
if(res.Code===1){ },
this.getData() goUrl3(path, ID) { //订单跳转
this.OpenNewUrl(path, {
OrderId: ID,
});
},
seeClassUseDetail(item){
let obj={
StudentId:76,
TeacherId:0,
ClassId:16
} }
this.$refs.dialog.hide(); console.log(752,item)
}) // this.OpenNewUrl("/teacher/studentsClassSee",obj)
} }
},
goUrl(path,Names){
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
Name: Name,
});
},
goUrl2(path,Names){//班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrl3(path,ID){//订单跳转
this.OpenNewUrl(path, {
OrderId: ID,
});
},
} }
} }
......
...@@ -3,33 +3,33 @@ ...@@ -3,33 +3,33 @@
list-style-type: none; list-style-type: none;
} }
.activeType ul { .stuList ul {
padding: 0px; padding: 0px;
} }
.activeType li { .stuList li {
background: rgba(221, 222, 224, 0.2); background: rgba(221, 222, 224, 0.2);
border-radius: 4px; border-radius: 4px;
margin-top: 15px; margin-top: 15px;
} }
.activeType li .dline { .stuList li .dline {
display: table; display: table;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
} }
.activeType li .d1, .stuList li .d1,
.activeType li .d2, .stuList li .d2,
.activeType li .d3, .stuList li .d3,
.activeType li .d4, .stuList li .d4,
.activeType li .d5 { .stuList li .d5 {
width: 18%; width: 18%;
padding: 20px 20px 10px; padding: 20px 20px 10px;
} }
.activeType li .d7 { .stuList li .d7 {
flex: 1; flex: 1;
width: 1px; width: 1px;
display: flex; display: flex;
...@@ -38,19 +38,19 @@ ...@@ -38,19 +38,19 @@
justify-content: center; justify-content: center;
} }
.activeType li .d1 .di-title { .stuList li .d1 .di-title {
font-size: 16px; font-size: 16px;
color: #111111; color: #111111;
} }
.activeType li .d1 .di-c { .stuList li .d1 .di-c {
font-size: 14px; font-size: 14px;
display: flex; display: flex;
line-height: 28px; line-height: 28px;
color: #111111; color: #111111;
} }
.activeType li .d6 { .stuList li .d6 {
padding: 10px 20px; padding: 10px 20px;
width: 100%; width: 100%;
height: inherit; height: inherit;
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
border-top: 1px solid #dddee0; border-top: 1px solid #dddee0;
} }
.activeType li .d6 .progress { .stuList li .d6 .progress {
width: 100%; width: 100%;
height: 5px; height: 5px;
position: absolute; position: absolute;
...@@ -66,41 +66,41 @@ ...@@ -66,41 +66,41 @@
bottom: 0; bottom: 0;
} }
.activeType li .d2 div { .stuList li .d2 div {
margin: 2px 0; margin: 2px 0;
font-size: 14px; font-size: 14px;
color: #111111; color: #111111;
} }
.activeType li .d2-n { .stuList li .d2-n {
font-size: 12px; font-size: 12px;
color: #999999; color: #999999;
margin-right: 20px; margin-right: 20px;
} }
.activeType li .d3 .d3-s { .stuList li .d3 .d3-s {
color: var(--q-color-negative); color: var(--q-color-negative);
font-weight: bold; font-weight: bold;
} }
.activeType li .d3 div { .stuList li .d3 div {
margin: 2px 0; margin: 2px 0;
font-size: 14px; font-size: 14px;
} }
.activeType li .d4 div { .stuList li .d4 div {
font-size: 14px; font-size: 14px;
color: #111111; color: #111111;
margin: 2px 0; margin: 2px 0;
} }
.activeType li .d5 div { .stuList li .d5 div {
font-size: 14px; font-size: 14px;
color: #111111; color: #111111;
margin: 2px 0; margin: 2px 0;
} }
.activeType .myCourseNName { .stuList .myCourseNName {
width: 25px; width: 25px;
height: 25px; height: 25px;
border-radius: 50%; border-radius: 50%;
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
background-color: #004d40; background-color: #004d40;
} }
.activeType .app-image { .stuList .app-image {
background-position: center center; background-position: center center;
width: 50px; width: 50px;
height: 50px; height: 50px;
...@@ -131,6 +131,16 @@ ...@@ -131,6 +131,16 @@
background-color: transparent; background-color: transparent;
} }
.Sysuser_Date .el-range-editor .el-range-input {
width: 100%;
border: none;
background-color: transparent;
}
.el-picker-panel {
z-index: 99999 !important;
}
.syster_qDropdown .q-btn__wrapper { .syster_qDropdown .q-btn__wrapper {
padding: 0 3px; padding: 0 3px;
min-height: 0 !important; min-height: 0 !important;
...@@ -148,13 +158,13 @@ ...@@ -148,13 +158,13 @@
</style> </style>
<template> <template>
<div class="page-body activeType"> <div class="page-body stuList">
<div class="row q-mb-md"> <div class="row q-mb-md">
<q-space></q-space> <q-space></q-space>
<!-- <el-badge :value="11" style="float:right"> --> <!-- <el-badge :value="11" style="float:right"> -->
<div style="position:relative;"> <div style="position:relative;">
<q-btn color="accent" label="高级查询" @click="IsShowQuery=true"></q-btn> <q-btn color="accent" label="高级查询" @click="IsShowQuery=true"></q-btn>
<q-badge floating rounded color="red">11</q-badge> <q-badge floating rounded color="red">{{queryNum}}</q-badge>
</div> </div>
<!-- </el-badge> --> <!-- </el-badge> -->
...@@ -214,14 +224,86 @@ ...@@ -214,14 +224,86 @@
<template v-slot:top="props"> <template v-slot:top="props">
<div class="col-2 q-table__title">学员名单</div> <div class="col-2 q-table__title">学员名单</div>
</template> </template>
<template v-slot:body-cell-ContractNo="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="seeContract(props.row)">
{{props.row.ContractNo}}
</div>
</q-td>
</template>
<template v-slot:body-cell-ClassName="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="seeClassDetail(props.row)">
{{props.row.ClassName}}
</div>
</q-td>
</template>
<template v-slot:body-cell-OrderId="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showOrderDetail(props.row,1)">
{{props.row.OrderId}}
</div>
</q-td>
</template>
<template v-slot:body-cell-Income="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showOrderDetail(props.row,4)">
{{props.row.Income}}
</div>
</q-td>
</template>
<template v-slot:body-cell-Refund="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showOrderDetail(props.row,4)">
{{props.row.Refund}}
</div>
</q-td>
</template>
<template v-slot:body-cell-CompleteHours="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="seeStudentsClassUse(props.row)">
{{props.row.CompleteHours}}
</div>
</q-td>
</template>
<template v-slot:body-cell-MakeUpHours="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showList(props.row,1)">
{{props.row.MakeUpHours}}
</div>
</q-td>
</template>
<template v-slot:body-cell-AbsenceNum="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showList(props.row,2)">
{{props.row.AbsenceNum}}
</div>
</q-td>
</template>
<template v-slot:body-cell-LeaveNum="props" >
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showList(props.row,3)">
{{props.row.LeaveNum}}
</div>
</q-td>
</template>
<template v-slot:body-cell-EventlogNum="props">
<q-td :props="props">
<div style="color:#f00;cursor:pointer;" @click="showEventLog(props.row)">
{{props.row.EventlogNum}}
</div>
</q-td>
</template>
<template v-slot:body-cell-optioned="props"> <template v-slot:body-cell-optioned="props">
<q-td :props="props"> <q-td :props="props">
<div> <div>
<q-btn flat size="xs" color="accent" style="font-weight:400" label="停课" v-if="props.row.GuestState===1" @click="" /> <q-btn flat size="xs" color="accent" style="font-weight:400" label="停课" v-if="props.row.GuestState===1"
<q-btn flat size="xs" color="accent" style="font-weight:400" label="转班" @click="" /> @click="ShowStopLesson(props.row)" />
<q-btn flat size="xs" color="accent" style="font-weight:400" label="转班" v-if="props.row.GuestState===1"
@click="transferClass(props.row,1)" />
<q-btn-dropdown flat size="xs" color="dark" 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 @click=""> <q-item clickable v-close-popup @click="showAddEvent(props.row)">
<q-item-section> <q-item-section>
<q-item-label>添加事件</q-item-label> <q-item-label>添加事件</q-item-label>
</q-item-section> </q-item-section>
...@@ -238,9 +320,25 @@ ...@@ -238,9 +320,25 @@
</q-table> </q-table>
</div> </div>
<!-- 高级查询 --> <!-- 高级查询 -->
<MoreQuery v-if="IsShowQuery" @close="closeruleset" :save-obj="typeObj" @success="morequery"> <MoreQuery v-if="IsShowQuery" :typeEnum="typeEnum" :warnEnum="warnEnum" :saveQuery="msg" @close="closeHandle"
@success="morequery">
</MoreQuery> </MoreQuery>
<!-- 停课申请 -->
<StopLesson-form v-if="isShowStopLesson" :setObj="stuObj" @success="resetSearch" @close="closeHandle" />
<!-- 转班申请 -->
<transferclass-form v-if="isShowTransferClass" :save-obj="orderObj" :ChangeType="ChangeType" @close="closeHandle"
@success="resetSearch"></transferclass-form>
<!-- 添加事件 -->
<AddEvent-form v-if="isShowAddEvent" :setObj="eventObj" @success="resetSearch" @close="closeHandle" />
<!-- 班级详情 -->
<classinfo-form v-if="isShowClassInfo" :seting-obj="eventObj" @close="closeHandle"
@success="refreshPage"/>
<!-- 订单详情 -->
<myOrder-form v-if="isShowmyorderForm" :save-obj="eventObj" @close="closeHandle"></myOrder-form>
<!-- 可补课课时,缺勤次数,请假次数 -->
<list v-if="isShowList" :type="showType" :set-obj="eventObj" @close="closeHandle"/>
<!-- 事件记录 -->
<eventLog v-if="isShowEventLog" :set-obj="eventObj" @modify="modifyEvent" @close="closeHandle"/>
</div> </div>
</template> </template>
<script> <script>
...@@ -251,15 +349,32 @@ ...@@ -251,15 +349,32 @@
import { import {
queryCourseDropdownList queryCourseDropdownList
} from '../../api/course/index' } from '../../api/course/index'
import {getStuList} from '../../api/stuMan/index.js' import {
getStuList,
getEarlyWarningEnum,
getTypeEnum,
} from '../../api/stuMan/index.js'
import MoreQuery from '../../components/stuMan/moreQuery.vue' import MoreQuery from '../../components/stuMan/moreQuery.vue'
import StopLessonForm from '../../components/teacher/stopLessonForm'
import transferclassForm from '../../components/sale/transferclass-form' //转班信息
import AddEventForm from '../../components/stuMan/addEvent-form.vue' //转班信息
import classinfoForm from '../../components/course/classinfo-form';//班级详情
import myOrderForm from '../../components/sale/myOrder-form';//订单详情
import list from '../../components/stuMan/makeUpHours.vue';//可补课课时,缺勤次数,请假次数
import eventLog from '../../components/stuMan/eventRecord.vue';//事件记录
export default { export default {
meta: { meta: {
title: "学员名单" title: "学员名单"
}, },
components: { components: {
MoreQuery MoreQuery,
StopLessonForm,
transferclassForm,
AddEventForm,
classinfoForm,
myOrderForm,
list,
eventLog,
}, },
data() { data() {
return { return {
...@@ -270,18 +385,18 @@ ...@@ -270,18 +385,18 @@
pageIndex: 1, pageIndex: 1,
pageSize: 10, pageSize: 10,
rowsPerPage: 10, rowsPerPage: 10,
School_Id:-1,//校区 School_Id: -1, //校区
CourseId:0,//课程 CourseId: 0, //课程
ClassId:0,//班级 ClassId: 0, //班级
GuestName:'',//学生姓名 GuestName: '', //学生姓名
ClassNo:'',//班号 ClassNo: '', //班号
OrderId:"",//订单号 OrderId: 0, //订单号
EnterID:0,//业务员 EnterID: 0, //业务员
EffectStatus:0,//状态 EffectStatus: "", //状态
JoinType:0,//类型 JoinType: 0, //类型
EarlyWarning:0,//预警 EarlyWarning: 0, //预警
OrderTime:"",//下单时间 OrderTime: "", //下单时间
EndOrderTime:"",//下单结束时间 EndOrderTime: "", //下单结束时间
}, },
pageCount: 0, pageCount: 0,
columns: [{ columns: [{
...@@ -292,134 +407,134 @@ ...@@ -292,134 +407,134 @@
required: true, required: true,
}, },
{ {
name: "Name", name: "GuestName",
label: "姓名", label: "姓名",
align: "left", align: "left",
field: "GuestName", field: "GuestName",
required: true, required: true,
}, },
{ {
name: "ActivityTypeName", name: "Mobile",
label: "电话", label: "电话",
align: "left", align: "left",
field: "Mobile" field: "Mobile"
}, },
{ {
name: "ActivityTime", name: "ContractNo",
label: "合同编号", label: "合同编号",
align: "left", align: "left",
field: "ContractNo", field: "ContractNo",
}, },
{ {
name: "AgeAndPeopleNum", name: "ClassName",
label: "班级", label: "班级",
align: "left", align: "left",
field: "ClassName", field: "ClassName",
}, },
{ {
name: "activePrice", name: "CourseName",
label: "课程", label: "课程",
align: "left", align: "left",
field: "CourseName", field: "CourseName",
}, },
{ {
name: "LocationName", name: "TeacherName",
label: "老师", label: "老师",
align: "left", align: "left",
field: "TeacherName", field: "TeacherName",
}, },
{ {
name: "activeStutes", name: "OrderId",
label: "订单号", label: "订单号",
align: "left", align: "left",
field: "OrderId", field: "OrderId",
}, },
{ {
name: "activeStutes", name: "OrderTime",
label: "报名时间", label: "报名时间",
align: "left", align: "left",
field: "OrderTime", field: "OrderTime",
}, },
{ {
name: "activeStutes", name: "EnterName",
label: "业务员", label: "业务员",
field: "EnterName", field: "EnterName",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "PreferPrice",
label: "应收金额", label: "应收金额",
field: "PreferPrice", field: "PreferPrice",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "Income",
label: "实收金额", label: "实收金额",
field: "Income", field: "Income",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "Refund",
label: "退款金额", label: "退款金额",
field: "Refund", field: "Refund",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "TotalHours",
label: "课程总课时", label: "课程总课时",
field: "TotalHours", field: "TotalHours",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "ValidClassHours",
label: "有效课时", label: "有效课时",
field: "ValidClassHours", field: "ValidClassHours",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "CompleteHours",
label: "消耗课时", label: "消耗课时",
field: "CompleteHours", field: "CompleteHours",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "SurplusHours",
label: "剩余课时", label: "剩余课时",
field: "SurplusHours", field: "SurplusHours",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "MakeUpHours",
label: "可补课课时", label: "可补课课时",
field: "MakeUpHours", field: "MakeUpHours",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "AbsenceNum",
label: "缺勤次数", label: "缺勤次数",
field: "AbsenceNum", field: "AbsenceNum",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "LeaveNum",
label: "请假次数", label: "请假次数",
field: "LeaveNum", field: "LeaveNum",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "EventlogNum",
label: "事件记录", label: "事件记录",
field: "EventlogNum", field: "EventlogNum",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "GuestStateStr",
label: "状态", label: "状态",
field: "GuestStateStr", field: "GuestStateStr",
align: "left" align: "left"
}, },
{ {
name: "activeStutes", name: "JoinTypeStr",
label: "类型", label: "类型",
field: "JoinTypeStr", field: "JoinTypeStr",
align: "left" align: "left"
...@@ -431,8 +546,6 @@ ...@@ -431,8 +546,6 @@
align: "left" align: "left"
} }
], ],
showForm: false,
typeObj: {},
SchoolList: [], SchoolList: [],
CourseList: [], CourseList: [],
AllCourseList: [], AllCourseList: [],
...@@ -446,12 +559,29 @@ ...@@ -446,12 +559,29 @@
MoreStatus: "1,2,3", MoreStatus: "1,2,3",
IsQuerySurplusPlan: 0 IsQuerySurplusPlan: 0
}, },
typeEnum: [],
warnEnum: [],
queryNum: 0, //高级查询个数
isShowStopLesson: false,
stuObj: {}, //停课
isShowTransferClass: false, //是否显示转班
orderObj: {}, //转班
ChangeType: 1, //1-转班 2-分拆
isShowAddEvent: false, //是否显示添加事件
eventObj: {},
isShowClassInfo:false,//是否显示班级详情
isShowmyorderForm: false, //是否显示订单详情
isShowList:false,//是否显示可补课课时,缺勤次数,请假次数
showType:1,
isShowEventLog:false,//是否显示事件记录
} }
}, },
mounted() { mounted() {
this.getSchool(); this.getSchool();
this.getCourseList(); this.getCourseList();
this.getClass(); this.getClass();
this.getTypeEnum();
this.getEarlyWarningEnum();
this.getList(); this.getList();
}, },
methods: { methods: {
...@@ -534,52 +664,36 @@ ...@@ -534,52 +664,36 @@
this.resetSearch(); this.resetSearch();
}, },
getList() { getList() {
// this.loading = true; this.loading = true;
getStuList(this.msg).then(res=>{ getStuList(this.msg).then(res => {
console.log(535,res) this.loading = false
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 => {
this.loading = false;
}) })
}, },
delActive(item) { //显示停课弹窗
let that = this; ShowStopLesson(item) {
that.Confirm("是否删除?", function () { this.isShowStopLesson = true;
that.apipostDS( this.stuObj = item
"/api/Education/RemoveActivity", {
Id: item.Id,
Status: 1
},
res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message);
that.getList();
} else {
that.Error(res.data.message);
}
},
);
})
},
//刷新页面
refreshPage() {
this.showForm = false;
this.getList();
},
//显示修改
editQuotation(item) {
this.showForm = true;
if (item) {
this.typeObj = item;
} else {
this.typeObj = {};
}
}, },
// 高级查询 // 高级查询
morequery(val) { morequery(val) {
console.log(418, val) this.IsShowQuery = false
this.IsShowQuery = false; this.queryNum = val.chooseNum
this.msg.ClassNo = val.ClassNo
this.msg.OrderId = val.OrderId
this.msg.EnterID = val.EnterID
this.msg.EffectStatus = val.EffectStatus
this.msg.JoinType = val.JoinType
this.msg.EarlyWarning = val.EarlyWarning
this.msg.OrderTime = val.OrderTime
this.msg.EndOrderTime = val.EndOrderTime
this.resetSearch();
}, },
//重新查询 //重新查询
resetSearch() { resetSearch() {
...@@ -592,10 +706,21 @@ ...@@ -592,10 +706,21 @@
this.getList() this.getList()
}, },
//关闭弹窗 //关闭弹窗
closeruleset() { closeHandle() {
this.showForm = false;
this.IsShowQuery = false; this.IsShowQuery = false;
this.isShowStopLesson = false;
this.isShowTransferClass = false;
this.isShowAddEvent = false;
this.isShowClassInfo=false;
this.isShowmyorderForm=false;
this.isShowList=false;
this.isShowEventLog=false;
this.isShowEventLog=false;
},
//刷新页面
refreshPage() {
this.closeHandle();
this.getList();
}, },
goUrl(url, item) { goUrl(url, item) {
if (item) { if (item) {
...@@ -623,6 +748,76 @@ ...@@ -623,6 +748,76 @@
} }
}) })
}, },
getTypeEnum() {
getTypeEnum({}).then(res => {
if (res.Code === 1) {
res.Data.unshift({
Name: "不限",
Id: 0
})
this.typeEnum = res.Data
}
})
},
getEarlyWarningEnum() {
getEarlyWarningEnum({}).then(res => {
if (res.Code === 1) {
this.warnEnum = res.Data
}
})
},
//转班
transferClass(item, type) {
this.orderObj = item;
this.ChangeType = type;
this.isShowTransferClass = true;
},
//显示添加事件
showAddEvent(item) {
let newitem=JSON.parse(JSON.stringify(item))
newitem.Id=0
this.eventObj = newitem
this.isShowAddEvent = true;
},
//查看合同
seeContract(item){
this.OpenNewUrl("/contractView",{ContractId:item.ContractId})
},
//查看课时消耗
seeStudentsClassUse(item){
let obj={
StudentId:item.Id,
TeacherId:item.Teacher_Id,
ClassId:item.ClassId
}
this.OpenNewUrl("/teacher/studentsClassSee",obj)
},
//查看班级详情
seeClassDetail(item){
this.eventObj=item
this.isShowClassInfo=true
},
//查看订单详情
showOrderDetail(item,tab){
item.tab = tab
this.eventObj=item
this.isShowmyorderForm=true
},
showList(item,type){
this.eventObj=item
this.showType=type
this.isShowList=true
},
showEventLog(item){
this.eventObj=item
this.isShowEventLog=true
},
// 修改事件
modifyEvent(val){
this.closeHandle();
this.eventObj=val
this.isShowAddEvent=true
}
} }
} }
......
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