Commit 09f65d06 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/luochao/confucius into master

# Conflicts:
#	src/router/routes.js
parents d9abab24 17aa2574
...@@ -12,7 +12,7 @@ export default { ...@@ -12,7 +12,7 @@ export default {
<style> <style>
@import url('~assets/css/font.css'); @import url('~assets/css/font.css');
@import url('//at.alicdn.com/t/font_2077629_9jvzm3idarn.css'); @import url('//at.alicdn.com/t/font_2077629_v5y4jdrtlx.css');
html, html,
body, body,
......
...@@ -129,4 +129,23 @@ export function setSellCommissionInfo(data) { ...@@ -129,4 +129,23 @@ export function setSellCommissionInfo(data) {
}); });
} }
// 财务工作台 获取周期提成 提成统计
export function getSellCommissionStatistics(data) {
return request({
url: '/SellCommission/GetSellCommissionStatistics',
method: 'post',
data
});
}
// 财务工作台 获取周期提成 周期列表下拉选择
export function getSellCommissionPeriodsList(data) {
return request({
url: '/SellCommission/GetSellCommissionPeriodsList',
method: 'post',
data
});
}
...@@ -159,3 +159,77 @@ export function saveDutyCheck(data) { ...@@ -159,3 +159,77 @@ export function saveDutyCheck(data) {
data data
}) })
} }
/**
* 约课管理
* @param {JSON参数} data
*/
export function GetReserveClassPage(data) {
return request({
url: '/VisitorReserve/GetReserveClassPage',
method: 'post',
data
})
}
/**
* 设置约课信息
* @param {JSON参数} data
*/
export function SetVisitorReserve(data) {
return request({
url: '/VisitorReserve/SetVisitorReserve',
method: 'post',
data
})
}
/**
* 约课管理
* @param {JSON参数} data
*/
export function queryVisitorReservePage(data) {
return request({
url: '/VisitorReserve/GetVisitorReservePage',
method: 'post',
data
})
}
/**
* 删除试听课程
* @param {JSON参数} data
*/
export function RemoveReserveClass(data) {
return request({
url: '/VisitorReserve/RemoveReserveClass',
method: 'post',
data
})
}
/**
* 保存修改听课程
* @param {JSON参数} data
*/
export function SetReserveClass(data) {
return request({
url: '/VisitorReserve/SetReserveClass',
method: 'post',
data
})
}
/**
* 获取约课班级详情
* @param {JSON参数} data
*/
export function GetReserveClass(data) {
return request({
url: '/VisitorReserve/GetReserveClass',
method: 'post',
data
})
}
\ No newline at end of file
...@@ -532,4 +532,15 @@ export function propertyGetPageList(data) { ...@@ -532,4 +532,15 @@ export function propertyGetPageList(data) {
method: 'post', method: 'post',
data data
}) })
} }
\ No newline at end of file
/**
* 验证用户是否有 需补交提成订单
*/
export function getUserLeaveOrderCommission(data) {
return request({
url: '/SellCommission/GetUserLeaveOrderCommission',
method: 'post',
data
});
}
...@@ -178,12 +178,14 @@ ...@@ -178,12 +178,14 @@
margin-right: 5px; margin-right: 5px;
} }
.lesson_Form .lessForm_Class{ .lesson_Form .lessForm_Class {
border-bottom:1px dashed #EEE; border-bottom: 1px dashed #EEE;
} }
.lesson_Form .q-btn__wrapper{
.lesson_Form .q-btn__wrapper {
padding: 4px 5px; padding: 4px 5px;
} }
</style> </style>
<template> <template>
<div v-if="!isShowSign"> <div v-if="!isShowSign">
...@@ -348,7 +350,7 @@ ...@@ -348,7 +350,7 @@
<template slot="dateCell" slot-scope="{date, data}"> <template slot="dateCell" slot-scope="{date, data}">
<!--自定义内容--> <!--自定义内容-->
<div class="calendar-day">{{ data.day.split('-').slice(2).join('-') }}</div> <div class="calendar-day">{{ data.day.split('-').slice(2).join('-') }}</div>
<div v-for="item in calendarData" > <div v-for="item in calendarData">
<div v-if="item.ClassDateStr==data.day"> <div v-if="item.ClassDateStr==data.day">
<div class="calendarTop"> <div class="calendarTop">
<div>{{item.RoomName}}</div> <div>{{item.RoomName}}</div>
...@@ -470,7 +472,19 @@ ...@@ -470,7 +472,19 @@
</q-avatar> </q-avatar>
<q-avatar size="sm" color="teal-10" style="margin:5px 0 5px 0" text-color="white" <q-avatar size="sm" color="teal-10" style="margin:5px 0 5px 0" text-color="white"
v-if="!props.row.UserIcon"> v-if="!props.row.UserIcon">
{{props.row.GuestName[0]}}</q-avatar><span style="margin-left:5px;">{{props.row.GuestName}}</span> {{props.row.GuestName[0]}}</q-avatar><span style="margin-left:5px;">
<template v-if="props.row.IsChaBan==0">{{props.row.GuestName}}</template>
<template v-else><span style="color:red;">{{props.row.GuestName}}</span></template>
  <q-tooltip :offset="[0, 10]" v-if="props.row.IsChaBan==1">
 插班报入 <br />
开始课时:{{props.row.StartClassHours}} <br />
 生效状态:{{props.row.EffectStatusStr}} <br />
 生效时间:{{props.row.EffectTime}} <br />
 <template v-if="props.row.UpOrderId&&props.row.UpOrderId>0">
前置订单:{{props.row.UpOrderId}} <br />
</template>
</q-tooltip>
</span>
</div> </div>
</q-td> </q-td>
</template> </template>
......
...@@ -50,7 +50,6 @@ ...@@ -50,7 +50,6 @@
//初始化表单 //初始化表单
initObj() { initObj() {
GetClassLessPlanList({}).then(res => { GetClassLessPlanList({}).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.tableData = res.Data; this.tableData = res.Data;
this.tableData.forEach(x => { this.tableData.forEach(x => {
......
...@@ -121,7 +121,6 @@ ...@@ -121,7 +121,6 @@
<div v-for="(item,index) in props.row.TimeList"> <div v-for="(item,index) in props.row.TimeList">
{{index+1}}节课 {{item.StartTime}}-{{item.EndTime}} {{index+1}}节课 {{item.StartTime}}-{{item.EndTime}}
</div> </div>
</q-td> </q-td>
</template> </template>
<template v-slot:body-cell-CheckNum="props"> <template v-slot:body-cell-CheckNum="props">
...@@ -156,7 +155,6 @@ ...@@ -156,7 +155,6 @@
</q-popup-proxy> </q-popup-proxy>
</span> </span>
</div> </div>
</q-td> </q-td>
</template> </template>
<template v-slot:bottom> <template v-slot:bottom>
......
...@@ -101,12 +101,12 @@ ...@@ -101,12 +101,12 @@
style="font-size:14px;">{{item.OfferId}}</span> style="font-size:14px;">{{item.OfferId}}</span>
</div> </div>
<template v-if="item.IsCommissionGive==1"> <template v-if="item.IsCommissionGive==1">
<div style="margin-top:30px;">提成:{{item.CommissionMoney}}</div> <div style="color:red" v-if="item.YFCommissionMoney>0">应发提成:{{item.YFCommissionMoney}}</div>
</template> <div style="color:red;cursor: pointer;text-decoration: underline;" @click='gourltx(item.OrderId)'>已发提成:{{item.CommissionMoney}}</div>
<template> <div style="color:red" v-if="item.ExtraCommissionMoney>0">额外奖励实发:{{item.ExtraCommissionMoney}}</div>
<div style="margin-top:30px;color:red;" v-if="item.ExtraRewardMoney>0">额外奖励:{{item.ExtraRewardMoney}} <div style="color:red;" v-if="item.ExtraRewardMoney>0">额外奖励:{{item.ExtraRewardMoney}}</div>
</div>
<div style="color:red" v-if="item.ExtraDeductMoney>0">额外扣除:{{item.ExtraDeductMoney}}</div> <div style="color:red" v-if="item.ExtraDeductMoney>0">额外扣除:{{item.ExtraDeductMoney}}</div>
<div style="color:red" v-if="item.CommissionBack>0">补交提成:{{item.CommissionBack}}</div>
</template> </template>
</td> </td>
<td style="border:none">{{item.GuestNum}}人</td> <td style="border:none">{{item.GuestNum}}人</td>
...@@ -210,11 +210,11 @@ ...@@ -210,11 +210,11 @@
</q-item-section> </q-item-section>
</q-item> </q-item>
<q-item clickable v-close-popup v-if="AuthorityObj.isShowCommissionEdit&&item.IsCommissionGive==1"> <!-- <q-item clickable v-close-popup v-if="AuthorityObj.isShowCommissionEdit&&item.IsCommissionGive==1">
<q-item-section @click="upDateMoney(item,1)"> <q-item-section @click="upDateMoney(item,1)">
<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="AuthorityObj.isShowRewardEdit&&isShowReward"> <q-item clickable v-close-popup v-if="AuthorityObj.isShowRewardEdit&&isShowReward">
<q-item-section @click="upDateMoney(item,2)"> <q-item-section @click="upDateMoney(item,2)">
<q-item-label>额外奖励</q-item-label> <q-item-label>额外奖励</q-item-label>
...@@ -1287,6 +1287,11 @@ ...@@ -1287,6 +1287,11 @@
path: '/sale/contractManage', path: '/sale/contractManage',
query: {} query: {}
}); });
},
gourltx(OrderId){
this.OpenNewUrl("/financial/cycleOrderList", {
OrderId: OrderId
});
} }
} }
} }
......
<style>
.Appoint_Line {
width: 3px;
height: 11px;
margin-right: 10px;
background-color: #3FC4FF;
display: inline-block;
}
.Sysuser_Date .el-input__inner {
background: transparent !important;
border: 0 !important;
}
.time-select {
z-index: 9999 !important;
}
</style>
<template>
<q-dialog v-model="persistent" maximized full-height seamless position="right" @hide="closeAppointForm">
<q-card style="margin-top:61px;width:400px" class="no-border-radius classinfo_Dialog">
<div style="padding:15px;">
<div style="margin-bottom:20px;">
<div class="Appoint_Line"></div>预约申请
</div>
<q-input filled v-model="addMsg.ClassDate" class="col-6 q-pb-lg" :rules="[val => !!val || '请选择预约日期']" ref="ClassDate" mask="date" label="预约日期">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="addMsg.ClassDate" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<div class="Sysuser_Date">
<q-field filled class="q-pb-lg">
  <template v-slot:control>
<el-time-select v-model="addMsg.ClassTime" ref="ClassTime" style="width:100%" :picker-options="{
start: '09:00',
step: '00:15',
end: '21:00'
}" placeholder="预约时间">
</el-time-select>
</template>
</q-field>
</div>
<q-select filled stack-label option-value="Name" option-label="Name"
v-model="addMsg.ClassContent" ref="ClassContent" :options="ContentList" :rules="[val => !!val || '请选择主讲内容']" label="主讲内容" :dense="false"
class="col-6 q-pb-lg" emit-value map-options />
<div style="display:flex;align-items:center;">
<q-select filled stack-label option-value="TId" style="width:90%" option-label="TeacherName"
v-model="addMsg.TeacherId" ref="TeacherId" :options="TeacherList" label="选择教师" :dense="false"
class="col-6 q-pb-lg" emit-value map-options />
<div style="margin:-20px 0 0 9px;cursor:pointer;" @click="isShowTeacher=true">选择</div>
</div>
<q-select filled stack-label option-value="RoomId" option-label="RoomName" v-model="addMsg.ClassRoomId"
ref="ClassRoomId" :options="ClassRoomList" label="关联教室" :dense="false" class="col-6 q-pb-lg" emit-value
map-options />
</div>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" size="sm" style="font-weight:400 !important" @click="closeAppointForm" />
<q-btn label="保存" color="accent q-px-md" size="sm" style="font-weight:400 !important"
:loading="saveAppointLoading" @click="saveAppointForm" />
</q-card-actions>
</q-card>
<div class="dialog-out-close" @click="closeAppointForm"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;">
<q-icon name="iconfont icon-jujue1" size="26px" />
</div>
<audition-form v-if="isShowTeacher" @close="closeAuditForm" @getchildInfo="getchildInfo"></audition-form>
</q-dialog>
</template>
<script>
import {
getTeacherDropDownList,
queryClassRoomList
} from "../../api/school/index";
import {
SetVisitorReserve
} from "../../api/scheduling/schedu";
import auditionForm from '../schedul/audition-form'
export default {
props: {
saveObj: {
type: Object,
default: null
}
},
components: {
auditionForm
},
data() {
return {
persistent: true,
loading: false,
addMsg: {
Id: 0, //编号
Visitor_Id: 0, //访客编号
ReserveClassId: 0, //选中的班级编号
ClassDate: "", //预约日期
ClassTime: "", //预约时间
TeacherId: 0, //教师编号
ClassRoomId: 0, //教室编号
ClassContent: "", //主讲内容
},
TeacherList: [], //教师
ClassRoomList: [], //教室
saveAppointLoading: false,
isShowTeacher: false, //显示选择框
ContentList: [{
Id: 1,
Name: '少儿类:主要以丰富可与时间和兴趣为主,要求课堂轻松活跃。趣味性十足'
}, {
Id: 2,
Name: '兴趣类:成年人,对日语学习从兴趣开始,要求课堂丰富有趣'
}, {
Id: 3,
Name: '实用类:对于日语学习有一定的需求(考研、就业等),要求学习过程专业,干货多'
}, {
Id: 4,
Name: '留学类:打算去往日本留学(本科、硕士、语言学校、私塾等)'
}]
}
},
created() {
},
mounted() {
this.GetTeacherList();
this.getClassRoomList();
},
methods: {
closeAppointForm() {
this.persistent = false;
this.$emit('close');
},
closeAuditForm() {
this.isShowTeacher = false;
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
var obj = {
TeacherName: '请选择',
TId: 0
}
this.TeacherList.unshift(obj);
}
});
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
var obj = {
RoomName: '请选择',
RoomId: 0
}
this.ClassRoomList.unshift(obj);
}
})
},
//保存
saveAppointForm() {
if(this.saveObj){
this.addMsg.Visitor_Id = this.saveObj.Id;
}
this.$refs.ClassDate.validate();
this.$refs.ClassContent.validate();
if (!this.$refs.ClassDate.hasError && !this.$refs.ClassContent.hasError){
SetVisitorReserve(this.addMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit('success');
this.closeAppointForm();
}
})
}
},
//子组件选中传值
getchildInfo(obj){
console.log(obj,'来了');
this.addMsg.TeacherId = obj.TeacherId;
this.addMsg.ClassRoomId = obj.ClassRoomId;
this.addMsg.ReserveClassId = obj.ReserveClassId;
}
}
}
</script>
<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 class="q-pt-none scroll" style="max-height: 70vh">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" style="margin-top:20px;" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">人员信息</div>
<q-space />
</template>
<template v-slot:body-cell-Id="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" @click="getStuInfo(props.row)" style="font-weight:400" label="报入" />
</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-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
GetReserveClassPage
} from '../../api/scheduling/schedu'
export default {
components: {},
data() {
return {
persistent: true,
loading: false,
msg: {
pageIndex:1,
pageSize:10,
rowsPerPage: 10,
StartClassDate:''
},
PageCount:0,
columns: [{
name: 'TeacherName',
label: '老师',
field: 'TeacherName',
align: 'left'
},
{
name: 'ClassDateStr',
field: 'ClassDateStr',
label: '日期',
align: 'left',
},
{
name: 'ClassTime',
field: 'ClassTime',
label: '时间',
align: 'left'
},
{
name: 'RoomName',
label: '教室',
field: 'RoomName',
align: 'left'
},
{
name: 'RoomNum',
label: '人数',
field: 'RoomNum',
align: 'left'
},
{
name: 'ClassContent',
label: '主讲内容',
field: 'ClassContent',
align: 'left'
},
{
name: 'Id',
label: '操作',
}
],
dataList:[],
StuObj:{}
}
},
created() {},
mounted() {
var day = new Date();
this.msg.StartClassDate = day.getFullYear()+"-" + (day.getMonth()+1) + "-" + day.getDate();
this.getList();
},
methods: {
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
//获取课程系列分页列表
getList() {
GetReserveClassPage(this.msg).then(res => {
console.log(res,'数据');
if(res.Code==1){
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
}
})
},
//点击报入
getStuInfo(item){
if(item){
this.StuObj.ClassRoomId = item.ClassRoomId;
this.StuObj.TeacherId = item.TeacherId;
this.StuObj.ReserveClassId = item.ReserveClassId;
}
this.$emit('getchildInfo',this.StuObj);
this.closeSaveForm();
}
},
}
</script>
<style>
</style>
<style>
.time-select {
z-index: 9999 !important;
}
</style>
<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">{{objOption.ReserveClassId==0?'新增试听课程':'修改试听课程'}}</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled v-model="objOption.ClassDate" class="col-6 q-pr-lg q-pb-lg"
:rules="[val => !!val || '请选择预约日期']" ref="ClassDate" mask="date" label="预约日期">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="objOption.ClassDate" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<div class="Sysuser_Date col-6 q-pb-lg">
<q-field filled>
  <template v-slot:control>
<el-time-select v-model="objOption.ClassTime" ref="ClassTime" style="width:100%" :picker-options="{
start: '09:00',
step: '00:15',
end: '21:00'
}" placeholder="预约时间">
</el-time-select>
</template>
</q-field>
</div>
<q-select filled stack-label option-value="TId" option-label="TeacherName" v-model="objOption.TeacherId"
ref="TeacherId" :options="TeacherList" label="选择教师" :dense="false" class="col-6 q-pr-lg q-pb-lg" emit-value
map-options />
<q-select filled stack-label option-value="RoomId" option-label="RoomName" v-model="objOption.ClassRoomId"
ref="ClassRoomId" :options="ClassRoomList" label="关联教室" :dense="false" class="col-6 q-pb-lg" emit-value
map-options />
<q-select filled stack-label option-value="Name" option-label="Name" v-model="objOption.ClassContent"
ref="ClassContent" :options="ContentList" label="主讲内容" :dense="false" class="col-12 q-pb-lg" emit-value
map-options />
</div>
</div>
</q-card-section>
<q-separator />
<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="saveCategory" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
getTeacherDropDownList,
queryClassRoomList
} from "../../api/school/index";
import {
GetReserveClass,
SetReserveClass
} from '../../api/scheduling/schedu'
export default {
props: {
saveObj: {
type: Object,
default: null
}
},
data() {
return {
persistent: true,
objOption: {
ReserveClassId: 0,
TeacherId: "",
ClassDate: "",
ClassTime: "",
ClassRoomId: "",
ClassContent: ''
},
saveLoading: false,
TeacherList: [],
ClassRoomList: [],
ContentList: [{
Id: 1,
Name: '少儿类:主要以丰富可与时间和兴趣为主,要求课堂轻松活跃。趣味性十足'
}, {
Id: 2,
Name: '兴趣类:成年人,对日语学习从兴趣开始,要求课堂丰富有趣'
}, {
Id: 3,
Name: '实用类:对于日语学习有一定的需求(考研、就业等),要求学习过程专业,干货多'
}, {
Id: 4,
Name: '留学类:打算去往日本留学(本科、硕士、语言学校、私塾等)'
}]
}
},
mounted() {
this.GetTeacherList();
this.getClassRoomList();
this.initObj()
},
methods: {
//初始化表单
initObj() {
if (this.saveObj && this.saveObj.ReserveClassId > 0) {
GetReserveClass({
ReserveClassId: this.saveObj.ReserveClassId
}).then(res => {
if (res.Code == 1) {
this.objOption.ReserveClassId = res.Data.ReserveClassId;
this.objOption.TeacherId = res.Data.TeacherId;
this.objOption.ClassDate = res.Data.ClassDateStr;
this.objOption.ClassTime = res.Data.ClassTime;
this.objOption.ClassRoomId = res.Data.ClassRoomId;
this.objOption.ClassContent = res.Data.ClassContent;
} else {
this.objOption.TeacherId = 0;
this.objOption.ClassDate = '';
this.objOption.ClassTime = '';
this.objOption.ClassRoomId = 0;
this.objOption.ClassContent = '';
}
})
}
},
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
//保存菜单
saveCategory() {
this.saveLoading = true
SetReserveClass(this.objOption).then(res => {
this.saveLoading = false
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '数据保存成功!',
position: 'top'
})
this.$emit("success")
this.closeSaveForm()
}).catch(() => {
this.saveLoading = false
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
}
});
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
}
})
},
}
}
</script>
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
ref="VisitorStatus" v-model="objOption.VisitorStatus" :options="statusList" ref="VisitorStatus" v-model="objOption.VisitorStatus" :options="statusList"
:rules="[val => !!val || '请选择状态']" emit-value map-options label="状态" /> :rules="[val => !!val || '请选择状态']" emit-value map-options label="状态" />
<q-input filled stack-label :dense="false" v-model="objOption.Evaluate" ref="Evaluate" class="col-6 q-pb-lg" <q-input filled stack-label :dense="false" v-model="objOption.Evaluate" ref="Evaluate" class="col-6 q-pb-lg"
label="兴趣课程" :rules="[val => !!val || '请输入兴趣课程']" /> label="意向评估" :rules="[val => !!val || '请输入意向评估']" />
</div> </div>
<div class="row wrap"> <div class="row wrap">
<q-input filled stack-label type="textarea" maxlength="500" :dense="false" v-model="objOption.Remark" <q-input filled stack-label type="textarea" maxlength="500" :dense="false" v-model="objOption.Remark"
......
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 400px;max-width:400px;">
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<q-card-section>
<div class="text-h6">
<span v-if="ChoiceType==3">请填写取消备注</span>
<span v-if="ChoiceType==2">请选择流单原因</span>
</div>
</q-card-section>
<div class="row wrap">
<template v-if="ChoiceType==3">
<q-input filled stack-label :dense="false" v-model="msg.remark" type="textarea" class="col-12" label="备注" />
</template>
<template v-if="ChoiceType==2">
<q-select filled stack-label option-value="Id" option-label="Name" v-model="chooseLiudan"
ref="remark" :options="reasonList" label="流单原因" :dense="false" class="col-12 q-pb-lg"
emit-value map-options multiple />
</template>
</div>
</div>
</q-card-section>
<q-separator />
<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="saveYueke" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
export default {
props: {
ChoiceType: {
type: Number,
default: null
}
},
data() {
return {
persistent: true,
saveLoading: false,
msg: {
remark: ''
},
chooseLiudan:[],
reasonList: [{
Id: 1,
Name: '教学环境'
}, {
Id: 2,
Name: '教学内容'
}, {
Id: 3,
Name: '讲师'
}, {
Id: 4,
Name: '价格'
}, {
Id: 5,
Name: '销售跟进'
}, {
Id: 6,
Name: '同行竞争'
}, {
Id: 7,
Name: '其他'
}]
}
},
mounted() {},
methods: {
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
//保存菜单
saveYueke() {
this.saveLoading = true;
if(this.ChoiceType==2){
this.msg.remark = this.chooseLiudan.toString();
}
console.log(this.msg,'msg');
},
}
}
</script>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<q-input v-if="objOption.AccountId==0" filled stack-label maxlength="20" :dense="false" <q-input v-if="objOption.AccountId==0" filled stack-label maxlength="20" :dense="false"
v-model="objOption.Password" ref="Password" class="col-6 q-pr-lg q-pb-lg" label="密码" v-model="objOption.Password" ref="Password" class="col-6 q-pr-lg q-pb-lg" label="密码"
:rules="[val => !!val || '密码']" /> :rules="[val => !!val || '密码']" />
<q-select filled stack-label option-value="Id" option-label="Name" v-model="objOption.LeaveStatus" <q-select filled stack-label option-value="Id" option-label="Name" v-model="objOption.LeaveStatus" @input='getLeave'
ref="Education" :options="LeaveStatusList" label="在职状态" :dense="false" class="col-6 q-pr-lg q-pb-lg" ref="Education" :options="LeaveStatusList" label="在职状态" :dense="false" class="col-6 q-pr-lg q-pb-lg"
emit-value map-options /> emit-value map-options />
<q-input v-show="objOption.AccountId>0 && objOption.LeaveStatus==4" filled v-model="objOption.LeaveTime" <q-input v-show="objOption.AccountId>0 && objOption.LeaveStatus==4" filled v-model="objOption.LeaveTime"
...@@ -100,7 +100,8 @@ ...@@ -100,7 +100,8 @@
saveManager, saveManager,
queryEmployeeInfo, queryEmployeeInfo,
getEducation, getEducation,
GetLeaveStatus GetLeaveStatus,
getUserLeaveOrderCommission
} from '../../../api/school/index' } from '../../../api/school/index'
//部门 //部门
import { import {
...@@ -185,6 +186,7 @@ ...@@ -185,6 +186,7 @@
}, },
], ],
EmployeeList: [], //员工列表 EmployeeList: [], //员工列表
errdata:'',//提示语言
} }
}, },
created() { created() {
...@@ -224,6 +226,7 @@ ...@@ -224,6 +226,7 @@
this.PostList = []; this.PostList = [];
this.queryDeptTree(); this.queryDeptTree();
}, },
//部门改变 //部门改变
deptChange() { deptChange() {
this.objOption.Post_Id = 0; this.objOption.Post_Id = 0;
...@@ -274,6 +277,22 @@ ...@@ -274,6 +277,22 @@
} }
}) })
}, },
GetUserLeave(UserId){
getUserLeaveOrderCommission({UserId:UserId}).then(res => {
if(res.Code == 1){
this.errdata= ''
}
}).catch(err=>{
if(err.Code == 0){///返回来是0 的时候保存提示语言
this.errdata = err.Message;
}
})
},
getLeave(val){
if(val == 4){
this.GetUserLeave(this.saveObj.EmAccountId)
}
},
initObj() { initObj() {
if (this.saveObj) { if (this.saveObj) {
this.optionTitle = "修改员工信息" this.optionTitle = "修改员工信息"
...@@ -397,6 +416,16 @@ ...@@ -397,6 +416,16 @@
}) })
return; return;
} }
if(this.objOption.LeaveStatus==4 && this.errdata!=''){//选择离职的时候看接口返回是否可以离职
this.$q.notify({
type: 'negative',
position: "top",
message: this.errdata,
})
return
}
this.saveLoading = true; this.saveLoading = true;
saveManager(this.objOption).then(res => { saveManager(this.objOption).then(res => {
this.saveLoading = false this.saveLoading = false
......
...@@ -17,11 +17,19 @@ ...@@ -17,11 +17,19 @@
</div> </div>
<q-select class="col-6 q-pr-lg" v-model="objOption.MenuType" :options="MenuTypeOpts" emit-value map-options <q-select class="col-6 q-pr-lg" v-model="objOption.MenuType" :options="MenuTypeOpts" emit-value map-options
label="菜单类型" @input="queryMenuList()" /> label="菜单类型" @input="queryMenuList()" />
<q-select class="col-6 q-pr-lg q-pb-lg" v-if="objOption.IsUserCenter==0" v-model="objOption.MenuLevel" :options="MenuLevelOpts" emit-value map-options <q-select class="col-6 q-pr-lg q-pb-lg" v-if="objOption.IsUserCenter==0" v-model="objOption.MenuLevel"
label="菜单等级" @input="queryMenuList()" /> :options="MenuLevelOpts" emit-value map-options label="菜单等级" @input="queryMenuList()" />
<q-select v-if="objOption.IsUserCenter==0" :option-value="(item) => item === null ? null : item.MenuId" option-label="MenuName" <q-select v-if="objOption.IsUserCenter==0" filled clearable use-input option-value="MenuId"
v-model="objOption.ParentId" :options="MenuList" label="上级菜单" :dense="false" emit-value map-options option-label="MenuName" v-model="objOption.ParentId" :options="MenuList" label="上级菜单" :dense="false"
class="col-6 q-pr-lg q-pb-lg" /> emit-value map-options class="col-6 q-pr-lg q-pb-lg" @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
<q-input stack-label maxlength="60" :dense="false" v-model="objOption.MenuIcon" class="col-6 q-pr-lg q-pb-lg" <q-input stack-label maxlength="60" :dense="false" v-model="objOption.MenuIcon" class="col-6 q-pr-lg q-pb-lg"
label="图标" /> label="图标" />
<q-input filled stack-label maxlength="10" :dense="false" v-model="objOption.SortNum" <q-input filled stack-label maxlength="10" :dense="false" v-model="objOption.SortNum"
...@@ -31,7 +39,7 @@ ...@@ -31,7 +39,7 @@
v-model="objOption.Status" /> v-model="objOption.Status" />
<div class="text-grey-6 text-caption">注意:关闭后,菜单将无法正常使用.</div> <div class="text-grey-6 text-caption">注意:关闭后,菜单将无法正常使用.</div>
</div> </div>
<q-select class="col-6 q-pr-lg" v-model="objOption.TeamType" :options="TeamTypeOpts" emit-value map-options <q-select class="col-6 q-pr-lg" v-model="objOption.TeamType" :options="TeamTypeOpts" emit-value map-options
label="项目类型" /> label="项目类型" />
</div> </div>
</q-card-section> </q-card-section>
...@@ -66,15 +74,15 @@ ...@@ -66,15 +74,15 @@
MenuLevelOpts: [], MenuLevelOpts: [],
//菜单类型 //菜单类型
MenuTypeOpts: [], MenuTypeOpts: [],
TeamTypeOpts: [ TeamTypeOpts: [{
{
label: '教育菜单', label: '教育菜单',
value: 1 value: 1
}, },
{ {
label: '资产菜单', label: '资产菜单',
value: 2 value: 2
}], }
],
persistent: true, persistent: true,
objOption: { objOption: {
MenuId: 0, //菜单编号 MenuId: 0, //菜单编号
...@@ -92,6 +100,7 @@ ...@@ -92,6 +100,7 @@
optionTitle: "", optionTitle: "",
//菜单列表 //菜单列表
MenuList: [], MenuList: [],
AllMenuList: [],
saveLoading: false, saveLoading: false,
} }
}, },
...@@ -100,9 +109,21 @@ ...@@ -100,9 +109,21 @@
this.initObj() this.initObj()
}, },
methods: { methods: {
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.MenuList = JSON.parse(JSON.stringify(this.AllMenuList))
} else {
const needle = val.toLowerCase();
this.MenuList = this.AllMenuList.filter(v => v.MenuName.toLowerCase().indexOf(needle) > -1);
}
})
},
//获取菜单列表 //获取菜单列表
queryMenuList() { queryMenuList() {
this.MenuList = []; this.MenuList = [];
this.AllMenuList = [];
var qMsg = { var qMsg = {
MenuLevel: Number(this.objOption.MenuLevel - 1), MenuLevel: Number(this.objOption.MenuLevel - 1),
MenuType: this.objOption.MenuType MenuType: this.objOption.MenuType
...@@ -119,6 +140,7 @@ ...@@ -119,6 +140,7 @@
}); });
} }
this.MenuList = tempArray; this.MenuList = tempArray;
this.AllMenuList = tempArray;
this.$forceUpdate(); this.$forceUpdate();
}) })
}, },
...@@ -148,7 +170,7 @@ ...@@ -148,7 +170,7 @@
this.objOption.TeamType = res.Data.TeamType; this.objOption.TeamType = res.Data.TeamType;
this.objOption.SortNum = res.Data.SortNum; this.objOption.SortNum = res.Data.SortNum;
this.objOption.Status = res.Data.Status; this.objOption.Status = res.Data.Status;
this.objOption.IsUserCenter=res.Data.IsUserCenter; this.objOption.IsUserCenter = res.Data.IsUserCenter;
}) })
this.optionTitle = "修改菜单信息" this.optionTitle = "修改菜单信息"
} else { } else {
...@@ -163,7 +185,7 @@ ...@@ -163,7 +185,7 @@
this.objOption.TeamType = 1; this.objOption.TeamType = 1;
this.objOption.SortNum = 0; this.objOption.SortNum = 0;
this.objOption.Status = 0; this.objOption.Status = 0;
this.objOption.IsUserCenter=0; this.objOption.IsUserCenter = 0;
} }
}, },
//关闭弹窗 //关闭弹窗
......
...@@ -53,22 +53,28 @@ ...@@ -53,22 +53,28 @@
<div class="col-3"> <div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" /> <q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" />
</div> --> </div> -->
<div class="col-3">
<q-btn  color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px"/>
</div>
</div> </div>
</div> </div>
<template > <template >
<el-table <el-table
ref="filterTable" ref="filterTable"
:data="tableData" :data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border border
style="width: 100%"> style="width: 100%">
<el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler"></el-table-column> <el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler"></el-table-column>
<el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler"></el-table-column> <el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler"></el-table-column>
<el-table-column prop="UserName" label="用户" :filters='UserNamelist' :filter-method="filterHandler"> </el-table-column> <el-table-column prop="UserName" label="销售" :filters='UserNamelist' :filter-method="filterHandler"> </el-table-column>
<el-table-column prop="StudentCount" label="学生数量" sortable :sort-method="StudentCount"> </el-table-column> <el-table-column prop="StudentCount" label="学生数量" sortable :sort-method="StudentCount"> </el-table-column>
<el-table-column prop="CurrentPeriodMoney" label="提成金额" sortable :sort-method="CurrentPeriodMoney"> </el-table-column> <el-table-column prop="CurrentPeriodMoney" label="提成金额" sortable :sort-method="CurrentPeriodMoney"> </el-table-column>
<el-table-column prop="CurrentExtraMoney" label="奖励金额" sortable :sort-method="CurrentExtraMoney"> </el-table-column> <el-table-column prop="CurrentExtraMoney" label="奖励金额" sortable :sort-method="CurrentExtraMoney"> </el-table-column>
<el-table-column prop="CommissionMoney" label="最终提成" sortable :sort-method="CommissionMoney"> </el-table-column> <el-table-column prop="CommissionMoney" label="最终提成" sortable :sort-method="CommissionMoney"> </el-table-column>
<el-table-column prop="Periods" label="周期"> </el-table-column> <!-- <el-table-column prop="Periods" label="周期"> </el-table-column> -->
<el-table-column label="操作" > <el-table-column label="操作" >
<template slot-scope="scope"> <template slot-scope="scope">
<div class="_icon_btn"> <div class="_icon_btn">
...@@ -109,6 +115,7 @@ ...@@ -109,6 +115,7 @@
UserId: 0, UserId: 0,
ClassId:0, ClassId:0,
OrderId:'', OrderId:'',
School_Id:'-1',
}, },
pageCount: 0, pageCount: 0,
persistent: false, persistent: false,
...@@ -141,6 +148,9 @@ ...@@ -141,6 +148,9 @@
if(this.$route.query && this.$route.query.id){ if(this.$route.query && this.$route.query.id){
this.msg.PeriodId = this.$route.query.id this.msg.PeriodId = this.$route.query.id
} }
if(this.$route.query && this.$route.query.School_Id){
this.msg.School_Id = this.$route.query.School_Id
}
this.getList() this.getList()
this.setClass() this.setClass()
}, },
...@@ -151,6 +161,7 @@ ...@@ -151,6 +161,7 @@
this.loading = true; this.loading = true;
getSellCommissionUserList(this.msg).then(res => { getSellCommissionUserList(this.msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data; this.tableData = res.Data;
this.SchoolNamelist = []; this.SchoolNamelist = [];
this.DeptNamelist = []; this.DeptNamelist = [];
...@@ -229,6 +240,9 @@ ...@@ -229,6 +240,9 @@
}, },
CommissionMoney(a,b){ CommissionMoney(a,b){
return a.CommissionMoney - b.CommissionMoney; return a.CommissionMoney - b.CommissionMoney;
},
goreturn(){
this.$router.go(-1);
} }
}, },
......
This diff is collapsed.
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<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-btn  color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px"/>
</div> </div>
</div> </div>
</div> </div>
...@@ -46,11 +46,14 @@ ...@@ -46,11 +46,14 @@
<el-table <el-table
ref="filterTable" ref="filterTable"
:data="tableData" :data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border border
style="width: 100%"> style="width: 100%">
<el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler"></el-table-column> <el-table-column prop="SchoolName" label="校区" :filters='SchoolNamelist' :filter-method="filterHandler"></el-table-column>
<el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler"></el-table-column> <el-table-column prop="DeptName" label="部门" :filters='DeptNamelist' :filter-method="filterHandler"></el-table-column>
<el-table-column prop="UserName" label="用户" :filters='UserNamelist' :filter-method="filterHandler"> </el-table-column> <el-table-column prop="UserName" label="销售" :filters='UserNamelist' :filter-method="filterHandler"> </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" > <el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div> <div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
...@@ -145,9 +148,21 @@ ...@@ -145,9 +148,21 @@
SchoolNamelist:[], SchoolNamelist:[],
DeptNamelist:[], DeptNamelist:[],
UserNamelist:[], UserNamelist:[],
see_tcdetailed:false,
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "see_tcdetailed"){//判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if(this.see_tcdetailed == false){
this.msg.UserId = userinfo.Id
} }
}, },
created() {},
mounted() { mounted() {
if(this.$route.query && this.$route.query.OrderId){ if(this.$route.query && this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId this.msg.OrderId = this.$route.query.OrderId
...@@ -163,6 +178,8 @@ ...@@ -163,6 +178,8 @@
this.loading = true; this.loading = true;
getSellCommissionForOrderList(this.msg).then(res => { getSellCommissionForOrderList(this.msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data this.tableData = res.Data
this.SchoolNamelist = []; this.SchoolNamelist = [];
this.DeptNamelist = []; this.DeptNamelist = [];
...@@ -233,6 +250,9 @@ ...@@ -233,6 +250,9 @@
console.log(a,b) console.log(a,b)
return a.StudentCount - b.StudentCount; return a.StudentCount - b.StudentCount;
}, },
goreturn(){
this.$router.go(-1);
}
......
...@@ -529,9 +529,12 @@ ...@@ -529,9 +529,12 @@
}, },
goDetail: function (url, id) { goDetail: function (url, id) {
// this.$router.push({ name: url,query:{id: id, blank: 'y', tab: '资金调拨详情'}}) // this.$router.push({ name: url,query:{id: id, blank: 'y', tab: '资金调拨详情'}})
var tempStr = '/financial/financalDocument/' + url + '?id=' + id; // var tempStr = '/financial/financalDocument/' + url + '?id=' + id;
this.$router.push({ // this.$router.push({
path: tempStr // path: tempStr
// });
this.OpenNewUrl("/financial/financalDocument/"+url, {
id: id
}); });
}, },
Financial_post_GetFinancLogList: function (id) { // 获取单据日志 Financial_post_GetFinancLogList: function (id) { // 获取单据日志
......
...@@ -2156,7 +2156,7 @@ ...@@ -2156,7 +2156,7 @@
}else if(OtherType==33){ }else if(OtherType==33){
tempStr = '/financial/financalDocument/InAndOutDdetails?id='+ID; tempStr = '/financial/financalDocument/InAndOutDdetails?id='+ID;
}else if(OtherType==39){ }else if(OtherType==39){
tempStr = '/financial/CommissionDetail?id='+ID; tempStr = '/financial/CommissionDetail?id='+ID+'&School_Id='+this.GetDetail.RB_Branch_Id;
} }
this.$router.push({ this.$router.push({
......
...@@ -1761,15 +1761,18 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue'; ...@@ -1761,15 +1761,18 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
this.currentPage = 1; this.currentPage = 1;
}, },
goUrl(path, rowData, Conditon, pageIndex) { goUrl(path, rowData, Conditon, pageIndex) {
this.$router.push({ // this.$router.push({
path: '/financial/financalDocument/' + path, // path: '/financial/financalDocument/' + path,
query: { // query: {
"id": rowData.FrID, // "id": rowData.FrID,
blank: 'y', // blank: 'y',
tab: '单据详情' // tab: '单据详情'
} // }
}) // })
this.OpenNewUrl("/financial/financalDocument/"+path, {
id: rowData.FrID
});
}, },
goEit(path, type, id, edit, Conditon, pageIndex) { goEit(path, type, id, edit, Conditon, pageIndex) {
this.$router.push({ this.$router.push({
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="col-3" v-if='isgenerate==true'> <div v-if='isgenerate==true'>
<div class="block" style="display:flex"> <div class="block" style="display:flex">
<span style="margin-right: 5px;">选择月份</span> <span style="margin-right: 5px;">选择月份</span>
<el-date-picker <el-date-picker
...@@ -68,10 +68,11 @@ ...@@ -68,10 +68,11 @@
<el-table <el-table
ref="filterTable" ref="filterTable"
:data="tableData" :data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}" :header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border border
style="width: 100%"> style="width: 100%">
<el-table-column prop="Id" label="ID" ></el-table-column> <!-- <el-table-column prop="Id" label="ID" ></el-table-column> -->
<el-table-column prop="Periods" label="周期" ></el-table-column> <el-table-column prop="Periods" label="周期" ></el-table-column>
<el-table-column prop="SumPrice" label="提成总金额" > </el-table-column> <el-table-column prop="SumPrice" label="提成总金额" > </el-table-column>
<el-table-column prop="SchooldCommission" label="校区提成总金额" > <el-table-column prop="SchooldCommission" label="校区提成总金额" >
...@@ -183,6 +184,7 @@ ...@@ -183,6 +184,7 @@
this.loading = true; this.loading = true;
getSellCommissionPeriodsPageList(this.msg).then(res => { getSellCommissionPeriodsPageList(this.msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData this.tableData = res.Data.PageData
this.total = res.Data.Count this.total = res.Data.Count
} }
...@@ -225,13 +227,9 @@ ...@@ -225,13 +227,9 @@
}) })
}, },
gocaiwuxiangq(id){ gocaiwuxiangq(id){
this.$router.push({ this.OpenNewUrl("/financial/financalDocument/FinancialDocumentsDetail", {
path: '/financial/financalDocument/FinancialDocumentsDetail', id: id
query: { });
"id": id,
blank: 'y',
}
})
}, },
generalFinancacls(item) { generalFinancacls(item) {
if(this.msg.SchoolId == -1){ if(this.msg.SchoolId == -1){
......
...@@ -92,8 +92,8 @@ ...@@ -92,8 +92,8 @@
</q-tr> </q-tr>
</template> </template>
<template v-slot:bottom> <template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="tabeMsg.pageIndex" color="primary" :max="1" <!-- <q-pagination class="full-width justify-end" v-model="tabeMsg.pageIndex" color="primary" :max="1"
:input="true" @input="changePage" /> :input="true" @input="changePage" /> -->
</template> </template>
</q-table> </q-table>
......
...@@ -36,6 +36,9 @@ ...@@ -36,6 +36,9 @@
<template> <template>
<div class="page-body userCommissionDetails"> <div class="page-body userCommissionDetails">
<div class="page-search row items-center"> <div class="page-search row items-center">
<div style="margin-right: 10px;">
<q-btn color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px"/>
</div>
<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-select filled stack-label use-input input-debounce="0" option-value="ClassId" clearable @input="getList" <q-select filled stack-label use-input input-debounce="0" option-value="ClassId" clearable @input="getList"
...@@ -59,11 +62,14 @@ ...@@ -59,11 +62,14 @@
<el-table <el-table
ref="filterTable" ref="filterTable"
:data="tableData" :data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border border
style="width: 100%"> style="width: 100%">
<el-table-column prop="SchoolName" label="校区" ></el-table-column> <el-table-column prop="SchoolName" label="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column> <el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="用户" > </el-table-column> <el-table-column prop="UserName" label="销售" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" > <el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div> <div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
...@@ -172,6 +178,7 @@ ...@@ -172,6 +178,7 @@
this.loading = true; this.loading = true;
getSellCommissionUserDetailList(this.msg).then(res => { getSellCommissionUserDetailList(this.msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data this.tableData = res.Data
} }
}) })
...@@ -231,6 +238,9 @@ ...@@ -231,6 +238,9 @@
blank: 'y', blank: 'y',
} }
}) })
},
goreturn(){
this.$router.go(-1);
} }
}, },
......
<template>
<div class="page-body">
<q-table :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">约课管理</div>
<q-space />
</template>
<template v-slot:body-cell-Id="props">
<q-td :props="props">
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="OperateVitior(props.row,1)">
<q-item-section>
<q-item-label>转订单</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="OperateVitior(props.row,2)">
<q-item-section>
<q-item-label>流单</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="OperateVitior(props.row,3)" >
<q-item-section>
<q-item-label>取消</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</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>
<yuekeForm v-if="isShowYue" :ChoiceType="ChoiceType" @close="closeYuekeForm" @success="refreshPage"></yuekeForm>
</div>
</template>
<script>
import {
queryVisitorReservePage
} from '../../api/scheduling/schedu'
import yuekeForm from '../../components/schedul/yueke-form'
export default {
meta: {
title: "约课管理"
},
components: {
yuekeForm
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 10
},
dataList: [],
loading: false,
PageCount: 0,
columns: [{
name: 'VisitorName',
label: '客户名称',
field: 'VisitorName',
align: 'left'
},
{
name: 'ClassDateStr',
label: '日期',
field: 'ClassDateStr',
align: 'left'
},
{
name: 'ClassTime',
label: '时间',
field: 'ClassTime',
align: 'left'
},
{
name: 'TeacherName',
label: '老师',
field: 'TeacherName',
align: 'left'
},
{
name: 'RoomName',
label: '教室',
field: 'RoomName',
align: 'left'
},
{
name: 'ClassContent',
label: '主讲内容',
field: 'ClassContent',
align: 'left'
},
{
name: 'ReserveStatusStr',
label: '状态',
field: 'ReserveStatusStr',
align: 'left'
},
{
name: 'Id',
label: '操作',
field: 'Id'
}
],
isShowYue:false,
ChoiceType:0
}
},
mounted() {
this.getList()
},
methods: {
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
//获取课程系列分页列表
getList() {
queryVisitorReservePage(this.msg).then(res => {
console.log(res, '数据');
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
}
})
},
//预约操作按钮
OperateVitior(item,type)
{
this.ChoiceType = type;
this.isShowYue = true;
},
//关闭弹窗
closeYuekeForm() {
this.isShowYue = false
},
//刷新页面
refreshPage() {
this.getList();
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<style>
.Sysuser_Date .el-input__inner {
background: transparent !important;
border: 0 !important;
}
</style>
<template>
<div class="page-body">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-4">
<div class="col-4 Sysuser_Date">
<q-field filled>
 <template v-slot:control>
<el-date-picker v-model="msg.StartClassDate" value-format="yyyy-MM-dd" type="date" placeholder="开始时间" size="small"
style="width:47%;" @change="resetSearch" clear-icon="iconfont icon-guanbi">
</el-date-picker>
<el-date-picker v-model="msg.EndClassDate" value-format="yyyy-MM-dd" type="date" placeholder="结束时间" size="small"
style="width:47%;" @change="resetSearch" clear-icon="iconfont icon-guanbi">
</el-date-picker>
</template>
</q-field>
</div>
</div>
<div class="col-3">
<q-select @input="resetSearch" filled option-value="TId" option-label="TeacherName"
v-model="msg.TeacherId" :options="TeacherList" emit-value map-options label="老师" clearable />
</div>
<div class="col-3">
<q-select @input="resetSearch" filled stack-label option-value="RoomId" option-label="RoomName" v-model="msg.ClassRoomId"
ref="ClassRoomId" :options="ClassRoomList" label="关联教室" clearable :dense="false" class="col-6 q-pb-lg" emit-value
map-options />
</div>
</div>
</div>
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table sticky-right-column-table"
separator="none" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">试听课管理</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" class="q-mr-md" icon="add" label="添加试听" @click="editVisitor(null)" />
</div>
</template>
<template v-slot:body-cell-TeacherId="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" color="accent" @click="editVisitor(props.row)" style="font-weight:400" label="修改" />
<q-btn flat size="xs" icon="delete" @click="deleteReserve(props.row)" color="negative" style="font-weight:400" label="删除" />
</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>
<reserveForm v-if="isShowReserve" :save-obj="reserveObj" @close="closeReserveForm" @success="refreshPage"></reserveForm>
</div>
</template>
<script>
import {
GetReserveClassPage,
RemoveReserveClass
} from '../../api/scheduling/schedu'
import {
getTeacherDropDownList,
queryClassRoomList
} from "../../api/school/index";
import reserveForm from '../../components/schedul/reserve-form'
export default {
meta: {
title: "试听课管理"
},
components: {
reserveForm
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 10,
rowsPerPage: 10,
StartClassDate: "", //开始时间
EndClassDate: "", //结束时间
TeacherId: "", //教师编号
ClassRoomId: "", //教室编号
},
dataList: [],
loading: false,
PageCount: 0,
columns: [{
name: 'TeacherName',
label: '老师',
field: 'TeacherName',
align: 'left'
},
{
name: 'ClassDateStr',
label: '日期',
align: 'left',
field: 'ClassDateStr',
},
{
name: 'ClassTime',
label: '上课时间',
align: 'left',
field: 'ClassTime',
},
{
name: 'RoomName',
label: '教室',
align: 'left',
field: 'RoomName',
},
{
name: 'RoomNum',
label: '人数',
align: 'left',
field: 'RoomNum',
},
{
name: 'JoinNum',
label: '报名人数',
align: 'left',
field: 'JoinNum',
},
{
name: 'ClassContent',
label: '主讲内容',
align: 'left',
field: 'ClassContent',
},
{
name: 'TeacherId',
label: '操作',
field: 'TeacherId'
}
],
TeacherList: [],
ClassRoomList: [],
isShowReserve:false,
reserveObj: {}
}
},
mounted() {
this.GetTeacherList();
this.getClassRoomList();
this.getList()
},
methods: {
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
this.getList();
},
changePage(val) {
this.msg.pageIndex = val;
this.getList()
},
//获取课程系列分页列表
getList() {
GetReserveClassPage(this.msg).then(res => {
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
}
})
},
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
}
});
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
}
})
},
//编辑试听
editVisitor(obj){
if (obj) {
this.reserveObj = obj
} else {
this.reserveObj = null
}
this.isShowReserve = true;
},
//删除试听课
deleteReserve(item){
let delMsg = {
ReserveClassId: item.ReserveClassId,
};
this.$q.dialog({
title: '提示信息',
message: '是否确定删除该试听课?',
cancel: true,
persistent: true,
ok: "确定",
cancel: "取消",
}).onOk(() => {
RemoveReserveClass(delMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '删除成功!',
position: 'top'
})
this.getList();
}
})
}).onCancel(() => {
});
},
//关闭弹窗
closeReserveForm() {
this.isShowReserve = false
},
//刷新页面
refreshPage() {
this.getList();
}
}
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
...@@ -38,8 +38,13 @@ ...@@ -38,8 +38,13 @@
</template> </template>
<template v-slot:body-cell-Id="props"> <template v-slot:body-cell-Id="props">
<q-td :props="props"> <q-td :props="props">
<q-btn flat size="xs" @click="editVisitor(props.row)" icon="edit" color="accent" style="font-weight:400" label="编辑" /> <q-btn flat size="xs" @click="editVisitor(props.row)" icon="edit" color="accent" style="font-weight:400"
<q-btn flat size="xs" @click="getDetail(props.row)" icon="iconfont icon-View" color="accent" style="font-weight:400" label="详情" /> label="编辑" />
<q-btn flat size="xs" @click="getDetail(props.row)" icon="iconfont icon-View" color="accent"
style="font-weight:400" label="详情" />
<q-btn flat size="xs" @click="getAppointment(props.row)" icon="iconfont icon-ziyuan1" color="accent"
style="font-weight:400;display:none;" label="申请约课" />
</q-td> </q-td>
</template> </template>
<template v-slot:bottom> <template v-slot:bottom>
...@@ -48,11 +53,10 @@ ...@@ -48,11 +53,10 @@
</template> </template>
</q-table> </q-table>
</div> </div>
<schedulFanke v-if="isShowDetail" @close="closeDetail" :save-obj="sendObj"></schedulFanke> <visitor-form v-if="isShowVisitor" :save-obj="visitObjOption" @close="closeVisitorForm" @success="refreshPage">
<visitor-form v-if="isShowVisitor" :save-obj="visitObjOption" @close="closeVisitorForm"
@success="refreshPage">
</visitor-form> </visitor-form>
<schedulFanke v-if="isShowDetail" @close="closeDetail" :save-obj="sendObj"></schedulFanke>
<appoint-form v-if="isShowFangke" :save-obj="visitObjOption" @close="closeAppoint" @success="refreshPage"></appoint-form>
</div> </div>
</template> </template>
...@@ -62,13 +66,15 @@ ...@@ -62,13 +66,15 @@
} from '../../api/scheduling/schedu' } from '../../api/scheduling/schedu'
import schedulFanke from '../../components/schedul/schedul-fanke' import schedulFanke from '../../components/schedul/schedul-fanke'
import visitorForm from '../../components/schedul/visitor-form' import visitorForm from '../../components/schedul/visitor-form'
import appointForm from '../../components/schedul/appoint-form'
export default { export default {
meta: { meta: {
title: "访客登记" title: "访客登记"
}, },
components: { components: {
schedulFanke, schedulFanke,
visitorForm visitorForm,
appointForm
}, },
data() { data() {
return { return {
...@@ -159,10 +165,11 @@ ...@@ -159,10 +165,11 @@
label: '操作', label: '操作',
} }
], ],
sendObj:{}, sendObj: {},
isShowDetail:false, isShowDetail: false,
isShowVisitor:false, isShowVisitor: false,
visitObjOption:null visitObjOption: null,
isShowFangke: false, //是否显示填写预约
} }
}, },
mounted() { mounted() {
...@@ -173,9 +180,7 @@ ...@@ -173,9 +180,7 @@
}, },
methods: { methods: {
//新增访客 //新增访客
editVisitor(obj){ editVisitor(obj) {
console.log(obj);
if (obj) { if (obj) {
this.visitObjOption = obj; this.visitObjOption = obj;
} else { } else {
...@@ -202,24 +207,24 @@ ...@@ -202,24 +207,24 @@
this.getVisitoryPage(); this.getVisitoryPage();
}, },
//过滤备注显示 //过滤备注显示
getRemarks(remark){ getRemarks(remark) {
if(remark.length>10){ if (remark.length > 10) {
return remark.substring(0,10)+'...'; return remark.substring(0, 10) + '...';
}else{ } else {
return remark; return remark;
} }
}, },
//获取详情 //获取详情
getDetail(obj){ getDetail(obj) {
this.sendObj = obj; this.sendObj = obj;
this.isShowDetail=true; this.isShowDetail = true;
}, },
//关闭 //关闭
closeDetail(){ closeDetail() {
this.isShowDetail=false; this.isShowDetail = false;
}, },
//关闭访客弹窗 //关闭访客弹窗
closeVisitorForm(){ closeVisitorForm() {
this.isShowVisitor = false; this.isShowVisitor = false;
this.isShowDetail = false; this.isShowDetail = false;
}, },
...@@ -229,7 +234,14 @@ ...@@ -229,7 +234,14 @@
this.isShowDetail = false; this.isShowDetail = false;
this.getList(); this.getList();
}, },
//打开约课
getAppointment(item) {
this.visitObjOption=item;
this.isShowFangke = true;
},
closeAppoint() {
this.isShowFangke = false;
}
} }
} }
......
...@@ -263,7 +263,11 @@ const routes = [{ ...@@ -263,7 +263,11 @@ const routes = [{
component: () => component: () =>
import("pages/financial/cycleOrderList.vue") import("pages/financial/cycleOrderList.vue")
}, },
{
path: "/financial/cycleList", //销售提成统计
component: () =>
import("pages/financial/cycleList.vue")
},
{ {
path: "/financial/TeamRevenueReport", //营收报表 path: "/financial/TeamRevenueReport", //营收报表
...@@ -647,6 +651,7 @@ const routes = [{ ...@@ -647,6 +651,7 @@ const routes = [{
import("pages/sale/visitorRegistrat.vue") import("pages/sale/visitorRegistrat.vue")
}, },
{ {
<<<<<<< HEAD
path: "/activity/activeType", //活动 活动类型 path: "/activity/activeType", //活动 活动类型
component: () => component: () =>
import("pages/activity/activeType.vue") import("pages/activity/activeType.vue")
...@@ -670,6 +675,16 @@ const routes = [{ ...@@ -670,6 +675,16 @@ const routes = [{
path: "/activity/materialMan", //活动 活动图片与视频 path: "/activity/materialMan", //活动 活动图片与视频
component: () => component: () =>
import("pages/activity/materialMan.vue") import("pages/activity/materialMan.vue")
=======
path: "/sale/appointManagement", //销售 约课管理
component: () =>
import("pages/sale/appointManagement.vue")
},
{
path: "/sale/reserveClass", //销售 约课班级管理
component: () =>
import("pages/sale/reserveClass.vue")
>>>>>>> 17aa2574ae5325e01bd1752d815f8d667cb683e2
}, },
{ {
path: "/course/teacherHours", //教学奖励 教师课时统计 path: "/course/teacherHours", //教学奖励 教师课时统计
......
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