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 {
<style>
@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,
body,
......
......@@ -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) {
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) {
method: 'post',
data
})
}
\ No newline at end of file
}
/**
* 验证用户是否有 需补交提成订单
*/
export function getUserLeaveOrderCommission(data) {
return request({
url: '/SellCommission/GetUserLeaveOrderCommission',
method: 'post',
data
});
}
......@@ -178,12 +178,14 @@
margin-right: 5px;
}
.lesson_Form .lessForm_Class{
border-bottom:1px dashed #EEE;
.lesson_Form .lessForm_Class {
border-bottom: 1px dashed #EEE;
}
.lesson_Form .q-btn__wrapper{
.lesson_Form .q-btn__wrapper {
padding: 4px 5px;
}
</style>
<template>
<div v-if="!isShowSign">
......@@ -348,7 +350,7 @@
<template slot="dateCell" slot-scope="{date, data}">
<!--自定义内容-->
<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 class="calendarTop">
<div>{{item.RoomName}}</div>
......@@ -470,7 +472,19 @@
</q-avatar>
<q-avatar size="sm" color="teal-10" style="margin:5px 0 5px 0" text-color="white"
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>
</q-td>
</template>
......
......@@ -50,7 +50,6 @@
//初始化表单
initObj() {
GetClassLessPlanList({}).then(res => {
if (res.Code == 1) {
this.tableData = res.Data;
this.tableData.forEach(x => {
......
......@@ -121,7 +121,6 @@
<div v-for="(item,index) in props.row.TimeList">
{{index+1}}节课 {{item.StartTime}}-{{item.EndTime}}
</div>
</q-td>
</template>
<template v-slot:body-cell-CheckNum="props">
......@@ -156,7 +155,6 @@
</q-popup-proxy>
</span>
</div>
</q-td>
</template>
<template v-slot:bottom>
......
......@@ -101,12 +101,12 @@
style="font-size:14px;">{{item.OfferId}}</span>
</div>
<template v-if="item.IsCommissionGive==1">
<div style="margin-top:30px;">提成:{{item.CommissionMoney}}</div>
</template>
<template>
<div style="margin-top:30px;color:red;" v-if="item.ExtraRewardMoney>0">额外奖励:{{item.ExtraRewardMoney}}
</div>
<div style="color:red" v-if="item.YFCommissionMoney>0">应发提成:{{item.YFCommissionMoney}}</div>
<div style="color:red;cursor: pointer;text-decoration: underline;" @click='gourltx(item.OrderId)'>已发提成:{{item.CommissionMoney}}</div>
<div style="color:red" v-if="item.ExtraCommissionMoney>0">额外奖励实发:{{item.ExtraCommissionMoney}}</div>
<div style="color:red;" v-if="item.ExtraRewardMoney>0">额外奖励:{{item.ExtraRewardMoney}}</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>
</td>
<td style="border:none">{{item.GuestNum}}人</td>
......@@ -210,11 +210,11 @@
</q-item-section>
</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-label>修改提成</q-item-label>
</q-item-section>
</q-item>
</q-item> -->
<q-item clickable v-close-popup v-if="AuthorityObj.isShowRewardEdit&&isShowReward">
<q-item-section @click="upDateMoney(item,2)">
<q-item-label>额外奖励</q-item-label>
......@@ -1287,6 +1287,11 @@
path: '/sale/contractManage',
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 @@
ref="VisitorStatus" v-model="objOption.VisitorStatus" :options="statusList"
: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"
label="兴趣课程" :rules="[val => !!val || '请输入兴趣课程']" />
label="意向评估" :rules="[val => !!val || '请输入意向评估']" />
</div>
<div class="row wrap">
<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 @@
<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="密码"
: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"
emit-value map-options />
<q-input v-show="objOption.AccountId>0 && objOption.LeaveStatus==4" filled v-model="objOption.LeaveTime"
......@@ -100,7 +100,8 @@
saveManager,
queryEmployeeInfo,
getEducation,
GetLeaveStatus
GetLeaveStatus,
getUserLeaveOrderCommission
} from '../../../api/school/index'
//部门
import {
......@@ -185,6 +186,7 @@
},
],
EmployeeList: [], //员工列表
errdata:'',//提示语言
}
},
created() {
......@@ -224,6 +226,7 @@
this.PostList = [];
this.queryDeptTree();
},
//部门改变
deptChange() {
this.objOption.Post_Id = 0;
......@@ -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() {
if (this.saveObj) {
this.optionTitle = "修改员工信息"
......@@ -397,6 +416,16 @@
})
return;
}
if(this.objOption.LeaveStatus==4 && this.errdata!=''){//选择离职的时候看接口返回是否可以离职
this.$q.notify({
type: 'negative',
position: "top",
message: this.errdata,
})
return
}
this.saveLoading = true;
saveManager(this.objOption).then(res => {
this.saveLoading = false
......
......@@ -17,11 +17,19 @@
</div>
<q-select class="col-6 q-pr-lg" v-model="objOption.MenuType" :options="MenuTypeOpts" emit-value map-options
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
label="菜单等级" @input="queryMenuList()" />
<q-select v-if="objOption.IsUserCenter==0" :option-value="(item) => item === null ? null : item.MenuId" option-label="MenuName"
v-model="objOption.ParentId" :options="MenuList" label="上级菜单" :dense="false" emit-value map-options
class="col-6 q-pr-lg q-pb-lg" />
<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 label="菜单等级" @input="queryMenuList()" />
<q-select v-if="objOption.IsUserCenter==0" filled clearable use-input option-value="MenuId"
option-label="MenuName" v-model="objOption.ParentId" :options="MenuList" label="上级菜单" :dense="false"
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"
label="图标" />
<q-input filled stack-label maxlength="10" :dense="false" v-model="objOption.SortNum"
......@@ -31,7 +39,7 @@
v-model="objOption.Status" />
<div class="text-grey-6 text-caption">注意:关闭后,菜单将无法正常使用.</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="项目类型" />
</div>
</q-card-section>
......@@ -66,15 +74,15 @@
MenuLevelOpts: [],
//菜单类型
MenuTypeOpts: [],
TeamTypeOpts: [
{
TeamTypeOpts: [{
label: '教育菜单',
value: 1
},
{
label: '资产菜单',
value: 2
}],
}
],
persistent: true,
objOption: {
MenuId: 0, //菜单编号
......@@ -92,6 +100,7 @@
optionTitle: "",
//菜单列表
MenuList: [],
AllMenuList: [],
saveLoading: false,
}
},
......@@ -100,9 +109,21 @@
this.initObj()
},
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() {
this.MenuList = [];
this.AllMenuList = [];
var qMsg = {
MenuLevel: Number(this.objOption.MenuLevel - 1),
MenuType: this.objOption.MenuType
......@@ -119,6 +140,7 @@
});
}
this.MenuList = tempArray;
this.AllMenuList = tempArray;
this.$forceUpdate();
})
},
......@@ -148,7 +170,7 @@
this.objOption.TeamType = res.Data.TeamType;
this.objOption.SortNum = res.Data.SortNum;
this.objOption.Status = res.Data.Status;
this.objOption.IsUserCenter=res.Data.IsUserCenter;
this.objOption.IsUserCenter = res.Data.IsUserCenter;
})
this.optionTitle = "修改菜单信息"
} else {
......@@ -163,7 +185,7 @@
this.objOption.TeamType = 1;
this.objOption.SortNum = 0;
this.objOption.Status = 0;
this.objOption.IsUserCenter=0;
this.objOption.IsUserCenter = 0;
}
},
//关闭弹窗
......
......@@ -53,22 +53,28 @@
<div class="col-3">
<q-input filled v-model="msg.OrderId" @keyup.enter.native="getList()" label="订单号" />
</div> -->
<div class="col-3">
<q-btn  color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px"/>
</div>
</div>
</div>
<template >
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<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="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="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="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="操作" >
<template slot-scope="scope">
<div class="_icon_btn">
......@@ -109,6 +115,7 @@
UserId: 0,
ClassId:0,
OrderId:'',
School_Id:'-1',
},
pageCount: 0,
persistent: false,
......@@ -141,6 +148,9 @@
if(this.$route.query && 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.setClass()
},
......@@ -151,6 +161,7 @@
this.loading = true;
getSellCommissionUserList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data;
this.SchoolNamelist = [];
this.DeptNamelist = [];
......@@ -229,6 +240,9 @@
},
CommissionMoney(a,b){
return a.CommissionMoney - b.CommissionMoney;
},
goreturn(){
this.$router.go(-1);
}
},
......
This diff is collapsed.
......@@ -38,7 +38,7 @@
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
周期提成 订单提成查询
<q-btn  color="primary" size="11px" label="返回" @click="goreturn" style="margin-left:10px"/>
</div>
</div>
</div>
......@@ -46,11 +46,14 @@
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<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="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="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
......@@ -145,9 +148,21 @@
SchoolNamelist:[],
DeptNamelist:[],
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() {
if(this.$route.query && this.$route.query.OrderId){
this.msg.OrderId = this.$route.query.OrderId
......@@ -163,6 +178,8 @@
this.loading = true;
getSellCommissionForOrderList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data
this.SchoolNamelist = [];
this.DeptNamelist = [];
......@@ -233,6 +250,9 @@
console.log(a,b)
return a.StudentCount - b.StudentCount;
},
goreturn(){
this.$router.go(-1);
}
......
......@@ -529,9 +529,12 @@
},
goDetail: function (url, id) {
// this.$router.push({ name: url,query:{id: id, blank: 'y', tab: '资金调拨详情'}})
var tempStr = '/financial/financalDocument/' + url + '?id=' + id;
this.$router.push({
path: tempStr
// var tempStr = '/financial/financalDocument/' + url + '?id=' + id;
// this.$router.push({
// path: tempStr
// });
this.OpenNewUrl("/financial/financalDocument/"+url, {
id: id
});
},
Financial_post_GetFinancLogList: function (id) { // 获取单据日志
......
......@@ -2156,7 +2156,7 @@
}else if(OtherType==33){
tempStr = '/financial/financalDocument/InAndOutDdetails?id='+ID;
}else if(OtherType==39){
tempStr = '/financial/CommissionDetail?id='+ID;
tempStr = '/financial/CommissionDetail?id='+ID+'&School_Id='+this.GetDetail.RB_Branch_Id;
}
this.$router.push({
......
......@@ -1761,15 +1761,18 @@ import treeItemVue from 'src/components/common/tree-table/tree-item.vue';
this.currentPage = 1;
},
goUrl(path, rowData, Conditon, pageIndex) {
this.$router.push({
path: '/financial/financalDocument/' + path,
query: {
"id": rowData.FrID,
blank: 'y',
tab: '单据详情'
}
})
// this.$router.push({
// path: '/financial/financalDocument/' + path,
// query: {
// "id": rowData.FrID,
// blank: 'y',
// tab: '单据详情'
// }
// })
this.OpenNewUrl("/financial/financalDocument/"+path, {
id: rowData.FrID
});
},
goEit(path, type, id, edit, Conditon, pageIndex) {
this.$router.push({
......
......@@ -50,7 +50,7 @@
</el-select>
</div>
</div>
<div class="col-3" v-if='isgenerate==true'>
<div v-if='isgenerate==true'>
<div class="block" style="display:flex">
<span style="margin-right: 5px;">选择月份</span>
<el-date-picker
......@@ -68,10 +68,11 @@
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
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="SumPrice" label="提成总金额" > </el-table-column>
<el-table-column prop="SchooldCommission" label="校区提成总金额" >
......@@ -183,6 +184,7 @@
this.loading = true;
getSellCommissionPeriodsPageList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data.PageData
this.total = res.Data.Count
}
......@@ -225,13 +227,9 @@
})
},
gocaiwuxiangq(id){
this.$router.push({
path: '/financial/financalDocument/FinancialDocumentsDetail',
query: {
"id": id,
blank: 'y',
}
})
this.OpenNewUrl("/financial/financalDocument/FinancialDocumentsDetail", {
id: id
});
},
generalFinancacls(item) {
if(this.msg.SchoolId == -1){
......
......@@ -92,8 +92,8 @@
</q-tr>
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="tabeMsg.pageIndex" color="primary" :max="1"
:input="true" @input="changePage" />
<!-- <q-pagination class="full-width justify-end" v-model="tabeMsg.pageIndex" color="primary" :max="1"
:input="true" @input="changePage" /> -->
</template>
</q-table>
......
......@@ -36,6 +36,9 @@
<template>
<div class="page-body userCommissionDetails">
<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-3">
<q-select filled stack-label use-input input-debounce="0" option-value="ClassId" clearable @input="getList"
......@@ -59,11 +62,14 @@
<el-table
ref="filterTable"
:data="tableData"
v-loading = 'loading'
:header-cell-style="{backgroundColor:'#f5f6f7', color: '#a8a8b3'}"
border
style="width: 100%">
<el-table-column prop="SchoolName" 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="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
......@@ -172,6 +178,7 @@
this.loading = true;
getSellCommissionUserDetailList(this.msg).then(res => {
if (res.Code == 1) {
this.loading = false;
this.tableData = res.Data
}
})
......@@ -231,6 +238,9 @@
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 @@
</template>
<template v-slot:body-cell-Id="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="getDetail(props.row)" icon="iconfont icon-View" color="accent" style="font-weight:400" label="详情" />
<q-btn flat size="xs" @click="editVisitor(props.row)" icon="edit" color="accent" style="font-weight:400"
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>
</template>
<template v-slot:bottom>
......@@ -48,11 +53,10 @@
</template>
</q-table>
</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>
<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>
</template>
......@@ -62,13 +66,15 @@
} from '../../api/scheduling/schedu'
import schedulFanke from '../../components/schedul/schedul-fanke'
import visitorForm from '../../components/schedul/visitor-form'
import appointForm from '../../components/schedul/appoint-form'
export default {
meta: {
title: "访客登记"
},
components: {
schedulFanke,
visitorForm
visitorForm,
appointForm
},
data() {
return {
......@@ -159,10 +165,11 @@
label: '操作',
}
],
sendObj:{},
isShowDetail:false,
isShowVisitor:false,
visitObjOption:null
sendObj: {},
isShowDetail: false,
isShowVisitor: false,
visitObjOption: null,
isShowFangke: false, //是否显示填写预约
}
},
mounted() {
......@@ -173,9 +180,7 @@
},
methods: {
//新增访客
editVisitor(obj){
console.log(obj);
editVisitor(obj) {
if (obj) {
this.visitObjOption = obj;
} else {
......@@ -202,24 +207,24 @@
this.getVisitoryPage();
},
//过滤备注显示
getRemarks(remark){
if(remark.length>10){
return remark.substring(0,10)+'...';
}else{
getRemarks(remark) {
if (remark.length > 10) {
return remark.substring(0, 10) + '...';
} else {
return remark;
}
},
//获取详情
getDetail(obj){
getDetail(obj) {
this.sendObj = obj;
this.isShowDetail=true;
this.isShowDetail = true;
},
//关闭
closeDetail(){
this.isShowDetail=false;
closeDetail() {
this.isShowDetail = false;
},
//关闭访客弹窗
closeVisitorForm(){
closeVisitorForm() {
this.isShowVisitor = false;
this.isShowDetail = false;
},
......@@ -229,7 +234,14 @@
this.isShowDetail = false;
this.getList();
},
//打开约课
getAppointment(item) {
this.visitObjOption=item;
this.isShowFangke = true;
},
closeAppoint() {
this.isShowFangke = false;
}
}
}
......
......@@ -263,7 +263,11 @@ const routes = [{
component: () =>
import("pages/financial/cycleOrderList.vue")
},
{
path: "/financial/cycleList", //销售提成统计
component: () =>
import("pages/financial/cycleList.vue")
},
{
path: "/financial/TeamRevenueReport", //营收报表
......@@ -647,6 +651,7 @@ const routes = [{
import("pages/sale/visitorRegistrat.vue")
},
{
<<<<<<< HEAD
path: "/activity/activeType", //活动 活动类型
component: () =>
import("pages/activity/activeType.vue")
......@@ -670,6 +675,16 @@ const routes = [{
path: "/activity/materialMan", //活动 活动图片与视频
component: () =>
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", //教学奖励 教师课时统计
......
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