Commit 4119b68b authored by 罗超's avatar 罗超

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

parents fdc06738 fd82d8f2
......@@ -233,3 +233,15 @@ export function GetReserveClass(data) {
data
})
}
/**
* 修改预约状态
* @param {JSON参数} data
*/
export function setVisitorReserveStatus(data) {
return request({
url: '/VisitorReserve/UpdateVisitorReserveStatus',
method: 'post',
data
})
}
\ No newline at end of file
<template>
<div>
<q-dialog v-model="persistent" persistent content-class="bg-grey-1" transition-show="scale" transition-hide="scale" class="addactivetype">
<div>
<q-dialog v-model="persistent" persistent content-class="bg-grey-1" transition-show="scale" transition-hide="scale"
class="addactivetype">
<q-card style="width: 450px;max-width:500px;">
<q-card-section>
<div class="text-h6">{{(saveObj&&saveObj.Id>0)?"修改活动":"新增活动"}}</div>
......@@ -14,7 +15,8 @@
</div>
<div class="row wrap">
<div class="col-12">
<q-input filled v-model="addMsg.StartTime" mask="date" label="开始时间" ref="StartTime" :rules="[val => !!val || '请选择开始时间']">
<q-input filled v-model="addMsg.StartTime" mask="date" label="开始时间" ref="StartTime"
:rules="[val => !!val || '请选择开始时间']">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
......@@ -31,7 +33,8 @@
</div>
<div class="row wrap">
<div class="col-12">
<q-input filled v-model="addMsg.EndTime" mask="date" label="结束时间" ref="EndTime" :rules="[val => !!val || '请选择结束时间']">
<q-input filled v-model="addMsg.EndTime" mask="date" label="结束时间" ref="EndTime"
:rules="[val => !!val || '请选择结束时间']">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
......@@ -48,15 +51,16 @@
</div>
<div class="row wrap">
<div class="col-12">
<q-input filled v-model="addMsg.SignStartTime" mask="####-##-## ##:##:##" ref="SignStartTime" label="报名开始时间" :rules="[val => !!val || '请选择报名开始时间']">
<q-input filled v-model="addMsg.SignStartTime" mask="####-##-## ##:##:##" ref="SignStartTime"
label="报名开始时间" :rules="[val => !!val || '请选择报名开始时间']">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
<div class="q-gutter-md row items-start">
<q-date v-model="addMsg.SignStartTimeStr" mask="YYYY-MM-DD HH:mm:ss" @input="date"/>
<q-time v-model="addMsg.SignStartTimeStr" format24h mask="YYYY-MM-DD HH:mm:ss" @input="time"/>
<q-date v-model="addMsg.SignStartTimeStr" mask="YYYY-MM-DD HH:mm:ss" @input="date" />
<q-time v-model="addMsg.SignStartTimeStr" format24h mask="YYYY-MM-DD HH:mm:ss" @input="time" />
</div>
<q-btn v-close-popup label="关闭" color="primary" flat style="float:right"/>
<q-btn v-close-popup label="关闭" color="primary" flat style="float:right" />
</q-popup-proxy>
</q-icon>
</template>
......@@ -65,15 +69,16 @@
</div>
<div class="row wrap">
<div class="col-12">
<q-input filled v-model="addMsg.SignEndTime" mask="####-##-## ##:##:##" ref="SignEndTime" label="报名结束时间" :rules="[val => !!val || '请选择报名开始时间']">
<q-input filled v-model="addMsg.SignEndTime" mask="####-##-## ##:##:##" ref="SignEndTime" label="报名结束时间"
:rules="[val => !!val || '请选择报名开始时间']">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy" transition-show="scale" transition-hide="scale">
<div class="q-gutter-md row items-start">
<q-date v-model="addMsg.SignEndTimeStr" mask="YYYY-MM-DD HH:mm:ss" @input="endDate"/>
<q-time v-model="addMsg.SignEndTimeStr" format24h mask="YYYY-MM-DD HH:mm:ss" @input="endTime"/>
<q-date v-model="addMsg.SignEndTimeStr" mask="YYYY-MM-DD HH:mm:ss" @input="endDate" />
<q-time v-model="addMsg.SignEndTimeStr" format24h mask="YYYY-MM-DD HH:mm:ss" @input="endTime" />
</div>
<q-btn v-close-popup label="关闭" color="primary" flat style="float:right"/>
<q-btn v-close-popup label="关闭" color="primary" flat style="float:right" />
</q-popup-proxy>
</q-icon>
</template>
......@@ -82,97 +87,94 @@
</div>
<div class="row wrap">
<div class="col-12">
<q-select stack-label color="primary" filled clearable label="选择活动类型" option-value="Id" option-label="TypeName"
:options="activeTypeOptions" v-model="addMsg.ActivityType" ref="ActivityType" emit-value map-options
:rules="[val => !!val || '请选择活动类型']" />
<q-select stack-label color="primary" filled clearable label="选择活动类型" option-value="Id"
option-label="TypeName" :options="activeTypeOptions" v-model="addMsg.ActivityType" ref="ActivityType"
emit-value map-options :rules="[val => !!val || '请选择活动类型']" />
</div>
</div>
<div class="row wrap">
<div class="col-12">
<q-uploader :style="{ backgroundImage: 'url(' + addMsg.CoverImg + ')' }" style="width:auto;height:300px;background-repeat:no-repeat;background-size:cover; border:1px solid #eee" flat
hide-upload-btn max-files="1" label="封面图" accept=".jpg, image/*" :factory="uploadFile" auto-upload>
<q-uploader :style="{ backgroundImage: 'url(' + addMsg.CoverImg + ')' }"
style="width:auto;height:300px;background-repeat:no-repeat;background-size:cover; border:1px solid #eee"
flat hide-upload-btn max-files="1" label="封面图" accept=".jpg, image/*" :factory="uploadFile" auto-upload>
</q-uploader>
</div>
</div>
<div class="row wrap">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>是否免费:</div>
<q-toggle v-model="addMsg.IsFree" :true-value="1" :false-value="2" @input='addMsg.Price=0,addMsg.PointNum=0'/>
<q-toggle v-model="addMsg.IsFree" :true-value="1" :false-value="2"
@input='addMsg.Price=0,addMsg.PointNum=0' />
</div>
</div>
<div class="row wrap" v-if="addMsg.IsFree==2">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :step="0.01" :dense="false" v-model="addMsg.Price" ref="Price"
class="col-12 q-pb-lg" label="现金价格" :rules="[val => !!val || '请填写现金价格']" suffix="元">
<q-input filled stack-label maxlength="20" type="number" :step="0.01" :dense="false"
v-model="addMsg.Price" ref="Price" class="col-12 q-pb-lg" label="现金价格"
:rules="[val => !!val || '请填写现金价格']" suffix="元">
</q-input>
</div>
</div>
<div class="row wrap" v-if="addMsg.IsFree==2">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.PointNum" ref="PointNum"
class="col-12 q-pb-lg" label="点数" :rules="[val => !!val || '请填写点数']" suffix="点">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.PointNum"
ref="PointNum" class="col-12 q-pb-lg" label="点数" :rules="[val => !!val || '请填写点数']" suffix="点">
</q-input>
</div>
</div>
<div class="row wrap">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>是否区分性别:</div>
<q-toggle v-model="addMsg.Distinguish" :true-value="0" :false-value="1" @input='addMsg.ManNum=0,addMsg.WoManNum=0'/>
<q-toggle v-model="addMsg.Distinguish" :true-value="0" :false-value="1"
@input='addMsg.ManNum=0,addMsg.WoManNum=0' />
</div>
</div>
<div class="row wrap" v-if="addMsg.Distinguish==0">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.ManNum" ref="ManNum"
class="col-12 q-pb-lg" label="男性" :rules="[val => !!val || '请填写男性人数']" suffix="人">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.ManNum"
ref="ManNum" class="col-12 q-pb-lg" label="男性" :rules="[val => !!val || '请填写男性人数']" suffix="人">
</q-input>
</div>
</div>
<div class="row wrap" v-if="addMsg.Distinguish==0">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.WoManNum" ref="WoManNum"
class="col-12 q-pb-lg" label="女性" :rules="[val => !!val || '请填写女性人数']" suffix="人">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.WoManNum"
ref="WoManNum" class="col-12 q-pb-lg" label="女性" :rules="[val => !!val || '请填写女性人数']" suffix="人">
</q-input>
</div>
</div>
<div class="row wrap" v-if="addMsg.Distinguish==1">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.ManNum" ref="ManNum"
class="col-12 q-pb-lg" label="总人数" :rules="[val => !!val || '请填写总人数']" suffix="人">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.ManNum"
ref="ManNum" class="col-12 q-pb-lg" label="总人数" :rules="[val => !!val || '请填写总人数']" suffix="人">
</q-input>
</div>
</div>
<div class="row wrap">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>是否区分年龄:</div>
<q-toggle v-model="addMsg.AgeLimit" :true-value="0" :false-value="1" @change='addMsg.StartAge=0,addMsg.EndAge=0'/>
<q-toggle v-model="addMsg.AgeLimit" :true-value="0" :false-value="1"
@change='addMsg.StartAge=0,addMsg.EndAge=0' />
</div>
</div>
<div class="row wrap" v-if="addMsg.AgeLimit==0">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>年龄范围:</div>
<q-range
v-model="labelAge"
:min="0"
:max="50"
:step="1"
label-always
:left-label-value="labelAge.min + '岁'"
:right-label-value="labelAge.max + '岁'"
color="brown"
@change ="changeAge"
/>
<q-range v-model="labelAge" :min="0" :max="50" :step="1" label-always
:left-label-value="labelAge.min + '岁'" :right-label-value="labelAge.max + '岁'" color="brown"
@change="changeAge" />
</div>
</div>
<div class="row wrap">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>是否内部限制:</div>
<q-toggle v-model="addMsg.LnsideLimit" :true-value="1" :false-value="0"/>
<q-toggle v-model="addMsg.LnsideLimit" :true-value="1" :false-value="0" />
</div>
</div>
<div class="row wrap">
<div class="col-12 q-mt-sm q-mb-sm flex " style="align-items:center">
<div>报名取消确认:</div>
<q-toggle v-model="addMsg.IsCancelConfirm" :true-value="1" :false-value="2"/>
<q-toggle v-model="addMsg.IsCancelConfirm" :true-value="1" :false-value="2" />
</div>
</div>
<div class="row wrap">
......@@ -187,7 +189,7 @@
<q-input filled stack-label maxlength="40" disable :dense="false" v-model="addMsg.LonLat" ref="LonLat"
class="col-12 q-pb-lg" label="门店经纬度" :rules="[val => !!val || '请填写门店经纬度']">
<template v-slot:after>
<q-btn round color="black" icon="my_location" @click="getMapShow"/>
<q-btn round color="black" icon="my_location" @click="getMapShow" />
</template>
</q-input>
<!-- 地图选址 -->
......@@ -199,16 +201,8 @@
<div class="row wrap">
<div class="q-mt-lg q-mb-sm">活动详情</div>
<div class="col-12">
<Ueditor
:value="ueditor.value"
:config="ueditor.config"
@input="setVal"
ref="ue"
no-margin
:isShowInsertImage="false"
:isShowAttachment="false"
:isShowVoice="false"
></Ueditor>
<Ueditor :value="ueditor.value" :config="ueditor.config" @input="setVal" ref="ue" no-margin
:isShowInsertImage="false" :isShowAttachment="false" :isShowVoice="false"></Ueditor>
</div>
</div>
</q-card-section>
......@@ -223,7 +217,7 @@
</template>
<script>
import {
import {
UploadSelfFile
} from "../../api/common/common";
import Ueditor from "../editor/UeEditor";
......@@ -234,19 +228,22 @@ import {
type: Object,
default: null
},
activeTypeOptions:{
activeTypeOptions: {
type: Array,
default: null
}
},
components: { Ueditor,Map },
components: {
Ueditor,
Map
},
data() {
return {
labelAge:{
labelAge: {
min: 0,
max: 0
},//年龄范围
}, //年龄范围
addMsg: {
Id: 0, //活动编号(主键)
ActivityName: "", //活动名称
......@@ -259,17 +256,17 @@ import {
SignEndTime: "", //报名截止时间
IsFree: 1, //是否免费 1是 2否
Price: 0, //价格
PointNum:0,//点数
PointNum: 0, //点数
IsCancelConfirm: 1, //取消确定1是 2否
Distinguish:1,//是否区别性别 0区分 1不区分
ManNum:0,//男数量
WoManNum:0,//女数量
AgeLimit:1,//是否区别年龄 0区分 1不区分
StartAge:0,//最小年龄
EndAge:0,//最大年龄
LnsideLimit:1,//内部限制0-否,1-是
LonLat:'',//经纬度(逗号分隔)
LocationName:'',//位置名称
Distinguish: 1, //是否区别性别 0区分 1不区分
ManNum: 0, //男数量
WoManNum: 0, //女数量
AgeLimit: 1, //是否区别年龄 0区分 1不区分
StartAge: 0, //最小年龄
EndAge: 0, //最大年龄
LnsideLimit: 1, //内部限制0-否,1-是
LonLat: '', //经纬度(逗号分隔)
LocationName: '', //位置名称
},
persistent: true,
isShowMap: false, //是否显示地图弹窗
......@@ -286,40 +283,39 @@ import {
}
},
mounted() {
console.log(135,this.saveObj)
if (this.saveObj && this.saveObj.Id > 0) {
this.addMsg.Id=this.saveObj.Id
this.addMsg.ActivityName=this.saveObj.ActivityName
this.addMsg.StartTime=this.saveObj.StartTime
this.addMsg.EndTime=this.saveObj.EndTime
this.addMsg.CoverImg=this.saveObj.CoverImg
this.addMsg.ActivityType=this.saveObj.ActivityType
this.addMsg.ActivityInfo=this.saveObj.ActivityInfo
this.addMsg.SignStartTime=this.saveObj.SignStartTime
this.addMsg.SignStartTimeStr=this.saveObj.SignStartTimeStr
this.addMsg.SignEndTime=this.saveObj.SignEndTime
this.addMsg.SignEndTimeStr=this.saveObj.SignEndTimeStr
this.addMsg.IsFree=this.saveObj.IsFree
this.addMsg.Price=this.saveObj.Price
this.addMsg.PointNum=this.saveObj.PointNum
this.addMsg.IsCancelConfirm=this.saveObj.IsCancelConfirm
this.addMsg.Distinguish=this.saveObj.Distinguish
this.addMsg.ManNum=this.saveObj.ManNum
this.addMsg.WoManNum=this.saveObj.WoManNum
this.addMsg.AgeLimit=this.saveObj.AgeLimit
this.addMsg.StartAge=this.saveObj.StartAge
this.addMsg.EndAge=this.saveObj.EndAge
this.labelAge.max=this.saveObj.StartAge
this.labelAge.min=this.saveObj.EndAge
this.addMsg.LnsideLimit=this.saveObj.LnsideLimit
this.addMsg.LonLat=this.saveObj.LonLat
this.addMsg.LocationName=this.saveObj.LocationName
this.addMsg.Id = this.saveObj.Id
this.addMsg.ActivityName = this.saveObj.ActivityName
this.addMsg.StartTime = this.saveObj.StartTime
this.addMsg.EndTime = this.saveObj.EndTime
this.addMsg.CoverImg = this.saveObj.CoverImg
this.addMsg.ActivityType = this.saveObj.ActivityType
this.addMsg.ActivityInfo = this.saveObj.ActivityInfo
this.addMsg.SignStartTime = this.saveObj.SignStartTime
this.addMsg.SignStartTimeStr = this.saveObj.SignStartTimeStr
this.addMsg.SignEndTime = this.saveObj.SignEndTime
this.addMsg.SignEndTimeStr = this.saveObj.SignEndTimeStr
this.addMsg.IsFree = this.saveObj.IsFree
this.addMsg.Price = this.saveObj.Price
this.addMsg.PointNum = this.saveObj.PointNum
this.addMsg.IsCancelConfirm = this.saveObj.IsCancelConfirm
this.addMsg.Distinguish = this.saveObj.Distinguish
this.addMsg.ManNum = this.saveObj.ManNum
this.addMsg.WoManNum = this.saveObj.WoManNum
this.addMsg.AgeLimit = this.saveObj.AgeLimit
this.addMsg.StartAge = this.saveObj.StartAge
this.addMsg.EndAge = this.saveObj.EndAge
this.labelAge.max = this.saveObj.StartAge
this.labelAge.min = this.saveObj.EndAge
this.addMsg.LnsideLimit = this.saveObj.LnsideLimit
this.addMsg.LonLat = this.saveObj.LonLat
this.addMsg.LocationName = this.saveObj.LocationName
// this.addMsg.ActivityName=this.saveObj.ActivityName
// this.addMsg.ActivityName=this.saveObj.ActivityName
// this.addMsg.TypeContent=this.saveObj.TypeContent
this.setVal(this.addMsg.ActivityInfo);
}else{
this.addMsg= {
} else {
this.addMsg = {
Id: 0, //活动编号(主键)
ActivityName: "", //活动名称
StartTime: "", //开始时间
......@@ -331,40 +327,40 @@ import {
SignEndTime: "", //报名截止时间
IsFree: 1, //是否免费 1是 2否
Price: 0, //价格
PointNum:0,//点数
PointNum: 0, //点数
IsCancelConfirm: 1, //取消确定1是 2否
Distinguish:1,//是否区别性别 0区分 1不区分
ManNum:0,//男数量
WoManNum:0,//女数量
AgeLimit:1,//是否区别年龄 0区分 1不区分
StartAge:0,//最小年龄
EndAge:0,//最大年龄
LnsideLimit:1,//内部限制0-否,1-是
LonLat:'',//经纬度(逗号分隔)
LocationName:'',//位置名称
Distinguish: 1, //是否区别性别 0区分 1不区分
ManNum: 0, //男数量
WoManNum: 0, //女数量
AgeLimit: 1, //是否区别年龄 0区分 1不区分
StartAge: 0, //最小年龄
EndAge: 0, //最大年龄
LnsideLimit: 1, //内部限制0-否,1-是
LonLat: '', //经纬度(逗号分隔)
LocationName: '', //位置名称
},
this.setVal("");
}
},
methods: {
// 选择报名开始时间
date(val){
this.addMsg.SignStartTime=val
date(val) {
this.addMsg.SignStartTime = val
},
time(val){
this.addMsg.SignStartTime=val
time(val) {
this.addMsg.SignStartTime = val
},
// 选择报名结束时间
endDate(val){
this.addMsg.SignEndTime=val
endDate(val) {
this.addMsg.SignEndTime = val
},
endTime(val){
this.addMsg.SignEndTime=val
endTime(val) {
this.addMsg.SignEndTime = val
},
// 选择年龄范围
changeAge(val){
this.addMsg.StartAge=val.min
this.addMsg.EndAge=val.max
changeAge(val) {
this.addMsg.StartAge = val.min
this.addMsg.EndAge = val.max
},
uploadFile(files) {
UploadSelfFile("course", files[0], res => {
......@@ -375,24 +371,23 @@ import {
},
//保存信息
saveRule() {
console.log(this.addMsg)
this.$refs.Name.validate();
this.$refs.StartTime.validate();
this.$refs.EndTime.validate();
this.$refs.SignStartTime.validate();
this.$refs.SignEndTime.validate();
if (!this.$refs.Name.hasError
&&!this.$refs.StartTime.hasError
&&!this.$refs.EndTime.hasError
&&!this.$refs.SignStartTime.hasError
&&!this.$refs.SignEndTime.hasError) {
if (!this.$refs.Name.hasError &&
!this.$refs.StartTime.hasError &&
!this.$refs.EndTime.hasError &&
!this.$refs.SignStartTime.hasError &&
!this.$refs.SignEndTime.hasError) {
this.apipostDS("/api/Education/SetActivity",this.addMsg,(res)=>{
if(res.data.resultCode===1){
this.apipostDS("/api/Education/SetActivity", this.addMsg, (res) => {
if (res.data.resultCode === 1) {
this.Success(res.data.message);
this.closeRuleForm();
this.$emit('success');
}else{
} else {
this.Error(res.data.message);
}
})
......@@ -416,10 +411,8 @@ import {
},
getMapShow() {
this.isShowMap = true;
console.log(this.isShowMap)
},
},
}
</script>
......@@ -434,14 +427,17 @@ import {
.el-tag {
margin-right: 5px;
}
.el-form-item__content {
line-height: 0;
}
.el-button{
.el-button {
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
height: 32px;
margin-top: 8px;
}
</style>
......@@ -276,7 +276,6 @@
this.msg.ClassId = this.setingObj.ClassId;
this.msg.TeacherId = this.setingObj.Teacher_Id;
GetClassPlanLogPageList(this.msg).then(res => {
console.log("res,", res.Data)
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.pageCount = res.Data.PageCount;
......
......@@ -246,7 +246,6 @@
getSchoolDropdown({}).then(res => {
if (res.Code == 1) {
this.schoolOptions = res.Data;
console.log(this.schoolOptions,'schoolOptions');
}
})
},
......
......@@ -456,7 +456,6 @@
GetSelectClassOrderList(qMsg).then(res => {
if (res.Code == 1) {
this.beforeOrderList = res.Data;
console.log(res, '前置数据');
}
})
},
......
......@@ -192,11 +192,9 @@
},
//子组件选中传值
getchildInfo(obj){
console.log(obj,'来了');
this.addMsg.TeacherId = obj.TeacherId;
this.addMsg.ClassRoomId = obj.ClassRoomId;
this.addMsg.ReserveClassId = obj.ReserveClassId;
}
}
}
......
......@@ -113,7 +113,6 @@
//获取课程系列分页列表
getList() {
GetReserveClassPage(this.msg).then(res => {
console.log(res,'数据');
if(res.Code==1){
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
......
<style>
.editOrderDrawerTop {
width: 100%;
height: 50px;
display: flex;
justify-content: space-between;
background-color: #f0f5fb;
padding: 5px 10px;
align-items: center;
}
</style>
<!--订单操作-->
<template>
<q-dialog v-model="IsShowEditOrder" maximized full-height seamless position="right">
<q-card style="margin-top:61px;width:500px" class="no-border-radius classinfo_Dialog">
<div class="editOrderDrawerTop">
<div style="display:flex;align-items:center;margin-left:10px;">
<span class="drawer_Span">转订单</span>
</div>
</div>
<div style="padding:20px 15px;">
<q-input filled stack-label maxlength="100" :dense="false" @keyup.native="checkInteger(OrderMsg,'GuestNum')"
v-model="OrderMsg.GuestNum" @input="changePrice(),countPrice()" class="col-12" label="人数"
:rules="[val => !!val || '请填写人数']" />
<q-select filled v-model="OrderMsg.ClassId" class="q-pb-lg" ref="ClassId"
:options="classList" option-label="ClassName" option-value="ClassId" emit-value map-options
:rules="[val => !!val || '请选择班级']" label="选择班级" @input="getClassList(OrderMsg.ClassId)"/>
<q-select filled option-value="CourseId" option-label="CourseName"
ref="CourseId" v-model="OrderMsg.CourseId" :options="CourseList" emit-value map-options class="q-pb-lg"
:rules="[val => !!val || '请选择课程']" label="选择课程" @input="changePrice" />
<q-input filled stack-label :dense="false" v-model="OrderMsg.Unit_Price"
:disable="IsShowUpPrice==true?false:true" @blur="countPrice" class="col-12" label="成交单价"
:rules="[val => !!val || '请填成交单价']" />
<q-toggle v-model="IsShowUpPrice" label="高于定价收生" class="q-mb-md" />
<q-input filled stack-label :dense="false" maxlength="10"
@keyup.native="checkPrice(OrderMsg,'PreferPrice')" v-model="OrderMsg.PreferPrice" class="col-12 q-pb-lg"
label="应收" />
<q-select standout="bg-primary text-white" option-value="Id" option-label="Name"
v-model="OrderMsg.OrderSource" :options="SourceEnumList" emit-value map-options class="q-pb-lg"
label="客人来源" />
<q-select v-model="OrderMsg.HelpEnterId" :options="EmployeeList" filled
use-input label="协助人员" option-label="EmployeeName" option-value="Id" ref="EmployeeName" class="col-6 q-pb-lg"
emit-value map-options @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 v-if="OrderMsg.OrderSource==3" filled stack-label :dense="false"
maxlength="50" v-model="OrderMsg.GeneralOccupation" class="col-12 q-pb-lg" label="一般同行" />
<q-input v-if="OrderMsg.OrderSource==7" filled stack-label :dense="false"
maxlength="50" v-model="OrderMsg.EduOccupation" class="col-12 q-pb-lg" label="教育同行" />
<q-toggle v-model="OrderMsg.IsLessPrice" :false-value="0" :true-value="1"
label="是否少价" class="q-mb-md" />
<q-input v-if="OrderMsg.IsLessPrice==1"
@keyup.native="checkPrice(OrderMsg,'LessPrice')" maxlength="10" filled stack-label :dense="false"
v-model="OrderMsg.LessPrice" class="col-12" label="少价金额" />
<q-input filled stack-label :dense="false" v-model="OrderMsg.SaleRemark" style="margin-top: 20px"
type="textarea" class="col-12" label="备注" />
<div style="margin:30px 10px 70px 0;">
<q-btn class="q-mr-md" label="取消" @click="closeEditOrder" />
<q-btn color="accent" class="q-mr-md" label="保存" @click="saveOrderInfo()" />
</div>
</div>
</q-card>
<div class="dialog-out-close" @click="closeEditOrder"
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>
</q-dialog>
</template>
<script>
import {
getOrderSourceEnumList, //获取订单来源 枚举
setClassOrder, //修改订单
queryChaClassInfo,
GetSelectClassOrderList //获取前置下拉
} from '../../api/sale/sale'
import {
queryEmployee
} from '../../api/users/user'; //获取员工
import {
getClassPage_ck
} from '../../api/school/index';//获取校区列表
import {
mapState
} from "vuex";
export default {
name: "editOrder-form",
props: {
saveObj: {
type: Object,
default: null,
}
},
data() {
return {
IsShowEditOrder: true,
classList:[],
OrderMsg: {
VisitorReserveId:0,
ClassId: 0, //班级编号
GuestNum: 1, //人数
Unit_Price: 0,
PreferPrice: 0,
OrderSource: 0,
SaleRemark: "",
Class_Price: 0,
OrderId: 0,
OrderType: 1, //订单类型(1-班级课程订单,2-留学就业订单)
SourceId: 0, //来源编号
HelpEnterId: 0, //协助人员编号
GeneralOccupation: "", //一般同行
EduOccupation: "", //教育同行
IsLessPrice: 0, //是否少价 0 不少 1 少
LessPrice: 0, //少价金额
OrderNature: 1, //订单性质
OldPreferPrice: 0, //原实际应收
IsChaBan: 0, //是否插班报入(1-是)
CourseId: '', //课程编号
StartClassHours: 0, //已上课时
EffectTime: '', //生效时间
UpOrderId: 0, //前置订单编号
},
IsShowUpPrice: false, //是否显示高于定价
UnitPrice: 0,
SourceEnumList: [], //订单来源
EmployeeList: [], //员工列表
AllemployeeList: [], //所有员工列表
CourseList: [], //课程列表
courseObj: {}, //选择的课程
}
},
created() {
this.getOrderSEList();
this.getEmployee();
var localStorageData = window.localStorage["loginUserInfo"];
let ActionMenuList = JSON.parse(localStorageData).data.ActionMenuList
if (ActionMenuList && ActionMenuList.length > 0) {
ActionMenuList.forEach(x => {
if (x.FunctionCode == 'E_ModifyStudyOrderPrice') {
}
})
}
},
mounted() {
this.getClass();
},
watch: {
},
methods: {
//获取课程信息
getClassList(ClassId) {
this.OrderMsg.CourseId='';
this.CourseList = [];
var qMsg = {
ClassId: ClassId
};
queryChaClassInfo(qMsg).then(res => {
if (res.Code == 1) {
this.CourseList = res.Data.otherCourse;
}
});
},
//获取班级列表
getClass() {
getClassPage_ck({}).then(res => {
if (res.Code == 1) {
let tempArray = res.Data;
if (!tempArray) {
tempArray = [];
}
tempArray.unshift({
ClassId: 0,
ClassName: "不限"
})
this.classList = tempArray;
}
})
},
//选择课程切换价格
changePrice() {
let temp = this.CourseList.find(x => x.CourseId == this.OrderMsg.CourseId);
if (temp) {
this.courseObj = temp;
if (this.OrderMsg.GuestNum == 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[0].PriceType == 0) {
let DisCount = (100 - temp.CoursePriceList[0].PriceMoney) / 100;
this.OrderMsg.Unit_Price = temp.SellPrice * DisCount;
this.UnitPrice = temp.SellPrice * DisCount;
} else {
this.OrderMsg.Unit_Price = temp.SellPrice - item.CoursePriceList[0].PriceMoney;
this.UnitPrice = temp.SellPrice - item.CoursePriceList[0].PriceMoney;
}
} else {
this.OrderMsg.Unit_Price = temp.SellPrice;
this.UnitPrice = temp.SellPrice;
}
}
if (this.OrderMsg.GuestNum > 1) {
if (temp.CoursePriceList && temp.CoursePriceList.length > 0) {
if (temp.CoursePriceList[1].PriceType == 0) {
let DisCount = (100 - temp.CoursePriceList[1].PriceMoney) / 100;
this.OrderMsg.Unit_Price = temp.SellPrice * DisCount;
this.UnitPrice = temp.SellPrice * DisCount;
} else {
this.OrderMsg.Unit_Price = temp.SellPrice - item.CoursePriceList[1].PriceMoney;
this.UnitPrice = temp.SellPrice - item.CoursePriceList[1].PriceMoney;
}
} else {
this.OrderMsg.Unit_Price = temp.SellPrice;
this.UnitPrice = temp.SellPrice;
}
}
} else {
this.OrderMsg.Unit_Price = 0;
this.UnitPrice = 0;
this.courseObj = {};
}
this.countPrice();
},
//筛选员工
filterFn(val, update) {
update(() => {
if (val === '') {
this.EmployeeList = JSON.parse(JSON.stringify(this.AllemployeeList))
} else {
const needle = val.toLowerCase();
this.EmployeeList = this.AllemployeeList.filter(v => v.EmployeeName.toLowerCase().indexOf(needle) > -1);
}
})
},
//获取业务员
getEmployee() {
var qMsg = {
Dept_Id: 0
}
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
this.EmployeeList = res.Data;
this.AllemployeeList = res.Data;
let obj = {
Id: 0,
EmployeeName: '不限'
}
this.EmployeeList.unshift(obj);
this.AllemployeeList.unshift(obj);
}
}).catch(() => {})
},
//关闭弹窗
closeEditOrder() {
this.IsShowEditOrder = false;
this.$emit('close')
},
//获取订单来源
getOrderSEList() {
getOrderSourceEnumList({}).then(res => {
if (res.Code == 1) {
var tempArray = res.Data;
this.SourceEnumList = tempArray;
this.OrderMsg.OrderSource = tempArray[0].Id;
}
})
},
//计算价格
countPrice() {
var guestNum = 0;
var unit_price = 0;
if (this.OrderMsg.GuestNum && this.OrderMsg.GuestNum > 0) {
guestNum = Number(this.OrderMsg.GuestNum);
}
if (this.OrderMsg.Unit_Price && this.OrderMsg.Unit_Price > 0) {
unit_price = Number(this.OrderMsg.Unit_Price);
}
//计算应收价格
if (this.OrderMsg.IsChaBan == 1) {
var newPreferPrice = 0;
if (this.courseObj && this.courseObj.CourseId && this.courseObj.CourseId > 0) {
newPreferPrice = (this.UnitPrice / this.courseObj.ClassHours) * (this.courseObj.ClassHours - this
.OrderMsg.StartClassHours) * guestNum
}
this.OrderMsg.PreferPrice = Number(newPreferPrice).toFixed(2);
} else {
this.OrderMsg.PreferPrice = Number(guestNum * unit_price).toFixed(2);
}
if (this.OrderMsg.OrderType == 2) {
this.OrderMsg.OldPreferPrice = Number(guestNum * unit_price).toFixed(2);
}
},
//修改订单
saveOrderInfo() {
this.OrderMsg.PreferPrice = (this.OrderMsg.GuestNum * this.OrderMsg.Unit_Price) - this.OrderMsg.LessPrice;
this.OrderMsg.VisitorReserveId = this.saveObj.Id;
setClassOrder(this.OrderMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: 'iconfont icon-chenggong',
color: 'accent',
timeout: 2000,
message: '操作成功!',
position: 'top'
})
//调用父页面成功方法
this.$emit('success');
this.IsShowEditOrder = false
} else {
this.$q.notify({
type: 'negative',
position: "top",
message: res.Message
})
}
}).catch(() => {})
}
}
}
</script>
......@@ -4,18 +4,18 @@
<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>
<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="备注" />
<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 />
<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>
......@@ -30,10 +30,17 @@
</q-dialog>
</template>
<script>
import {
setVisitorReserveStatus
} from '../../api/scheduling/schedu'
export default {
props: {
ChoiceType: {
type: Number,
default: 2
},
saveObj: {
type: Object,
default: null
}
},
......@@ -42,49 +49,77 @@
persistent: true,
saveLoading: false,
msg: {
remark: ''
Id: 0,
ReserveStatus: 0,
Remark: '',
},
chooseLiudan:[],
chooseLiudan: [],
reasonList: [{
Id: 1,
Id: "教学环境",
Name: '教学环境'
}, {
Id: 2,
Id: "教学内容",
Name: '教学内容'
}, {
Id: 3,
Id: "讲师",
Name: '讲师'
}, {
Id: 4,
Id: "价格",
Name: '价格'
}, {
Id: 5,
Id: "销售跟进",
Name: '销售跟进'
}, {
Id: 6,
Id: "同行竞争",
Name: '同行竞争'
}, {
Id: 7,
Id: "其他",
Name: '其他'
}]
}
},
mounted() {},
mounted() {
if (this.saveObj) {
if (this.saveObj.Id) {
this.msg.Id = this.saveObj.Id;
}
}
},
methods: {
//关闭弹窗
closeSaveForm() {
this.$emit('close')
this.persistent = false
this.persistent = false;
},
//保存菜单
saveYueke() {
this.saveLoading = true;
if(this.ChoiceType==2){
if (this.ChoiceType == 2) {
this.msg.ReserveStatus = 2;
}
if (this.ChoiceType == 3) {
this.msg.ReserveStatus = 3;
}
if (this.ChoiceType == 2) {
this.msg.remark = this.chooseLiudan.toString();
}
console.log(this.msg,'msg');
setVisitorReserveStatus(this.msg).then(res => {
if (res.Code == 1) {
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
});
},
}
}
......
......@@ -223,7 +223,6 @@
uploadFile(files) {
UploadSelfFile('studentIcon', files, res => {
if (res.Code == 1) {
console.log(211,res)
this.objOption.RoomPicList.push(res.FileUrl);
}
})
......@@ -236,17 +235,7 @@
}
</script>
<style>
/* .avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 143px;
height: 82px;
line-height: 82px;
text-align: center;
} */
.avatar-uploader .el-upload {
border-radius: 6px;
cursor: pointer;
......
......@@ -239,8 +239,6 @@ import ActiveTypeForm from '../../components/activity/activeType-from'
this.data = res.data.data.pageData;
this.pageCount = res.data.data.pageCount;
}
console.log(257,res)
})
},
delType(item){
......
......@@ -422,8 +422,6 @@ import ActiveForm from '../../components/activity/active-from'
this.data = res.data.data.pageData;
this.pageCount = res.data.data.pageCount;
}
console.log(257,res)
})
},
delActive(item){
......
......@@ -77,7 +77,6 @@
methods:{
showNav(val,id){
this.schoolId=id
console.log(id)
},
chooseNav(i){
this.currentNav=i.RoomId
......
......@@ -204,7 +204,6 @@ var lunarCalendar = {
var objDate = new Date();
var endDate = new Date();
if (dateStr) {
console.log(dateStr)
let d = Date.parse(dateStr)
let res = new Date(d);
......@@ -216,15 +215,6 @@ var lunarCalendar = {
endDate.setDate(endDate.getDate() + dayNum);
// let x1 = objDate.getTime();
// console.log(211, x1, objDate)
// let x2 = endDate.getTime();
// console.log(222, x2, endDate)
// let x = x2 - x1
// console.log(x1 == x2, x, 'time');
//修正ymd参数
var m = objDate.getMonth() + 1, d = objDate.getDate();
var totalMonthDay = lunarCalendar.solarDays(yearStr, m);
......
......@@ -398,7 +398,6 @@ export default {
this.QStartDate = data[0].CurrentDate;
this.QEndDate = data[data.length - 1].CurrentDate;
this.Calendar = this.CalendarDataArray.slice(0,7);
console.log("初始化",this.Calendar)
},
//左侧点击
......@@ -445,45 +444,18 @@ export default {
this.msg.EndDate = d.Format("yyyy-MM-dd");
},
getDayInfo(Y, M, D) {
console.log(148,Y, M, D)
// let StartDate = Y + "-" + M + "-" + D;
// let msg = {
// StartDate: StartDate
// };
// this.apipost(
// "ticketcoupons_get_GetTicketCouponsSummaryDay",
// msg,
// res => {
// if (res.data.resultCode == 1) {
// this.dayList = res.data.data;
// }
// },
// null
// );
},
getOffSet(index){
let el=document.getElementsByClassName('el-timeline-item')[index]
let top=el.getBoundingClientRect().top
return top
},
// timeDifference(startTime,endTime){
// var start1=startTime.split(":");
// var startAll=parseInt(start1[0]*60)+parseInt(start1[1]);
// var end1=endTime.split(":");
// var endAll=parseInt(end1[0]*60)+parseInt(end1[1]);
// let res=Math.ceil((endAll-startAll)/15)
// console.log("时间差===",res);
// return res
// }
},
mounted() {
this.initData();
this.getEndDay();
// this.getList();
let nowDate = new Date().Format("yyyy-MM-dd");
this.nowYear = nowDate.split("-")[0];
this.nowMonth = parseInt(nowDate.split("-")[1]);
......
......@@ -8,7 +8,7 @@
{{details.ErrorTitle}}
</div>
<img class="img-head-close" src="../../../assets/images/classroom/close.png" mode="" @click="hideDialog"/>
<img class="img-head-close" src="../../../assets/images/classroom/close.png" mode="" @click="hideDialog" />
</div>
<div class="info-box">
<div class="user-info">
......@@ -46,52 +46,47 @@
</template>
<script>
import {getClassRoomLogDetail} from '../../../api/classroom/index';
import {
getClassRoomLogDetail
} from '../../../api/classroom/index';
export default {
props: {
classroomId:{
type:[Number,String]
classroomId: {
type: [Number, String]
},
},
watch:{
classroomId(val,oldVal){
if(val!==oldVal){
watch: {
classroomId(val, oldVal) {
if (val !== oldVal) {
this.getClassRoomDetail(val)
}
},
},
components: {
},
data() {
return {
persistent: false,
details:{}
details: {}
}
},
methods: {
getClassRoomDetail(id){
getClassRoomLogDetail({ID:id}).then((res)=>{
console.log(51,res)
if(res.Code===1){
this.details=res.Data
getClassRoomDetail(id) {
getClassRoomLogDetail({
ID: id
}).then((res) => {
if (res.Code === 1) {
this.details = res.Data
}
})
},
changeShow(){
this.persistent=true
changeShow() {
this.persistent = true
},
hideDialog(){
hideDialog() {
this.$refs.historyDialog.hide()
}
},
}
......@@ -138,13 +133,15 @@
font-size: 12px;
color: #2961FE;
}
.con{
.con {
box-sizing: border-box;
width: 500px;
height: 1080px;
background: #FFFFFF;
box-shadow: 0px 0px 76px 0px rgba(2, 44, 66, 0.2);
.header{
.header {
width: 500px;
height: 56px;
background-color: #F0F5FB;
......@@ -152,7 +149,8 @@
display: flex;
align-items: center;
position: relative;
.img-head{
.img-head {
width: 35px;
height: 35px;
// border-radius: 50%;
......@@ -160,12 +158,14 @@
margin-right: 10px;
object-fit: fill;
}
.head-title{
.head-title {
white-space: nowrap;
overflow: hidden;
text-overflow:ellipsis;
text-overflow: ellipsis;
}
.img-head-close{
.img-head-close {
width: 15px;
height: 15px;
margin-right: 10px;
......@@ -175,54 +175,65 @@
right: 15px;
}
}
.info-box{
.info-box {
box-sizing: border-box;
padding: 20px;
.user-info{
.user-info {
height: 100px;
border-bottom: 1px solid #E2E2E2;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
.user-item{
.user-item {
display: flex;
margin-top: 20px;
.user-label{
.user-label {
width: 100px;
color: #999999;
}
.user-con{
.user-con {
color: #111111;
}
}
}
.use{
.use {
padding: 30px 0;
border-bottom: 1px solid #E2E2E2;
.use-title{
.use-title {
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #111111;
margin-bottom: 20px;
}
.use-con{
.use-con {
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
}
.img-con{
.img-con {
display: flex;
.classroom-img-item{
.classroom-img-item {
display: flex;
width: 145px;
height: 80px;
border-radius: 4px;
margin-right: 10px;
margin-bottom: 10px;
.classroom-img{
.classroom-img {
width: 100%;
height: 100%;
......@@ -235,4 +246,5 @@
}
}
</style>
......@@ -336,8 +336,7 @@
"cover":cover,
"playauth":auth,
}, function (player) {
console.log(321,player)
console.log("The player is created");
}
);
},
......
......@@ -128,14 +128,14 @@
},
//选择校区教室导航
successNav(val){
console.log(114,val)
this.msg.RoomId=val.RoomId
this.msg.SchoolId=val.schoolId
this.getClassRoomTimeList();
this.$forceUpdate()
},
dateChoose(value, reason, details){
// console.log(112,this.dateModel)
},
//获取结束日期
getEndTime(date){
......
......@@ -419,7 +419,6 @@
}
}
})
console.log()
return Str;
},
//跳转至备课
......
......@@ -4,17 +4,23 @@
padding: 18px 0 0 16px;
text-align: right;
}
.CommissionDetail .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.CommissionDetail .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
.CommissionDetail .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.CommissionDetail ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.CommissionDetail ._icon_btn i {
width: 26px;
height: 26px;
......@@ -27,13 +33,14 @@
cursor: pointer;
outline: none;
}
.CommissionDetail .el-table td,.el-table th{
.CommissionDetail .el-table td,
.el-table th {
padding: 5px 0;
}
</style>
<template>
</style>
<template>
<div class="page-body CommissionDetail">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
......@@ -54,33 +61,31 @@
<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"/>
<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>
<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="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="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 label="操作" >
<el-table-column label="操作">
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('userCommissionDetails',scope.row.UserId)"></i>
<i class="iconfont icon-sousuo" @click="goUrl('userCommissionDetails',scope.row.UserId)"></i>
</el-tooltip>
</div>
</template>
......@@ -89,12 +94,12 @@
</template>
</div>
</template>
<script>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
import {
getSellCommissionUserList,
} from '../../api/finance/index'
import {
......@@ -113,51 +118,48 @@
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
School_Id:'-1',
ClassId: 0,
OrderId: '',
School_Id: '-1',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
see_tcdetailed:false,
SchoolNamelist:[],
DeptNamelist:[],
UserNamelist:[],
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
see_tcdetailed: false,
SchoolNamelist: [],
DeptNamelist: [],
UserNamelist: [],
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "see_tcdetailed"){//判断是否可以查看其他明细
userinfo.ActionMenuList.map(x => { //判断权限
if (x.FunctionCode == "see_tcdetailed") { //判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if(this.see_tcdetailed == false){
console.log(userinfo)
if (this.see_tcdetailed == false) {
this.msg.UserId = userinfo.Id
}
},
mounted() {
console.log(this.$route.query)
if(this.$route.query && this.$route.query.id){
if (this.$route.query && this.$route.query.id) {
this.msg.PeriodId = this.$route.query.id
}
if(this.$route.query && this.$route.query.School_Id){
if (this.$route.query && this.$route.query.School_Id) {
this.msg.School_Id = this.$route.query.School_Id
}
this.getList()
this.setClass()
},
methods: {
getList(){
if(this.msg)
getList() {
if (this.msg)
this.loading = true;
getSellCommissionUserList(this.msg).then(res => {
if (res.Code == 1) {
......@@ -166,10 +168,19 @@
this.SchoolNamelist = [];
this.DeptNamelist = [];
this.UserNamelist = [];
this.tableData.forEach(x=>{
let obj = {text: x.SchoolName, value: x.SchoolName}
let obj2 = {text: x.DeptName, value: x.DeptName}
let obj3 = {text: x.UserName, value: x.UserName}
this.tableData.forEach(x => {
let obj = {
text: x.SchoolName,
value: x.SchoolName
}
let obj2 = {
text: x.DeptName,
value: x.DeptName
}
let obj3 = {
text: x.UserName,
value: x.UserName
}
this.SchoolNamelist.push(obj)
this.DeptNamelist.push(obj2)
this.UserNamelist.push(obj3)
......@@ -180,7 +191,7 @@
}
})
},
unique(arr,Name){//数组去重
unique(arr, Name) { //数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
......@@ -214,12 +225,12 @@
})
},
goUrl(path, id ) {
goUrl(path, id) {
this.$router.push({
path: '/financial/' + path,
query: {
userId: id,
preriodId:this.$route.query.id,
preriodId: this.$route.query.id,
blank: 'y',
}
})
......@@ -228,29 +239,27 @@
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b,c){
console.log(a,b,c)
StudentCount(a, b, c) {
return a.StudentCount - b.StudentCount;
},
CurrentPeriodMoney(a,b){
CurrentPeriodMoney(a, b) {
return a.CurrentPeriodMoney - b.CurrentPeriodMoney;
},
CurrentExtraMoney(a,b){
CurrentExtraMoney(a, b) {
return a.CurrentExtraMoney - b.CurrentExtraMoney;
},
CommissionMoney(a,b){
CommissionMoney(a, b) {
return a.CommissionMoney - b.CommissionMoney;
},
goreturn(){
goreturn() {
this.$router.go(-1);
}
},
}
</script>
<style lang="sass">
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
</style>
......@@ -4,17 +4,23 @@
padding: 18px 0 0 16px;
text-align: right;
}
.cycleOrderList .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.cycleOrderList .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
.cycleOrderList .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.cycleOrderList ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.cycleOrderList ._icon_btn i {
width: 30px;
height: 30px;
......@@ -27,42 +33,41 @@
cursor: pointer;
outline: none;
}
.cycleOrderList .el-table td,.el-table th{
.cycleOrderList .el-table td,
.el-table th {
padding: 5px 0;
}
</style>
<template>
</style>
<template>
<div class="page-body cycleOrderList">
<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"/>
<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 width='170' prop="ClassName" label="班级信息" >
<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 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>
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<el-table-column prop="OrderId" label="订单号">
<template slot-scope="scope">
<div style="cursor: pointer;" >{{scope.row.OrderId}} </div>
<div style="cursor: pointer;">{{scope.row.OrderId}} </div>
</template>
</el-table-column>
......@@ -109,12 +114,12 @@
</template>
</div>
</template>
<script>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
import {
getSellCommissionForOrderList,
} from '../../api/finance/index'
import {
......@@ -133,38 +138,38 @@
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
ClassId: 0,
OrderId: '',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
SchoolNamelist:[],
DeptNamelist:[],
UserNamelist:[],
see_tcdetailed:false,
SchoolNamelist: [],
DeptNamelist: [],
UserNamelist: [],
see_tcdetailed: false,
}
},
created() {
let userinfo = this.getLocalStorage();
userinfo.ActionMenuList.map(x=>{//判断权限
if(x.FunctionCode == "see_tcdetailed"){//判断是否可以查看其他明细
userinfo.ActionMenuList.map(x => { //判断权限
if (x.FunctionCode == "see_tcdetailed") { //判断是否可以查看其他明细
this.see_tcdetailed = true;
}
})
if(this.see_tcdetailed == false){
if (this.see_tcdetailed == false) {
this.msg.UserId = userinfo.Id
}
},
mounted() {
if(this.$route.query && this.$route.query.OrderId){
if (this.$route.query && this.$route.query.OrderId) {
this.msg.OrderId = this.$route.query.OrderId
}
......@@ -173,8 +178,8 @@
},
methods: {
getList(){
if(this.msg)
getList() {
if (this.msg)
this.loading = true;
getSellCommissionForOrderList(this.msg).then(res => {
if (res.Code == 1) {
......@@ -184,10 +189,19 @@
this.SchoolNamelist = [];
this.DeptNamelist = [];
this.UserNamelist = [];
this.tableData.forEach(x=>{
let obj = {text: x.SchoolName, value: x.SchoolName}
let obj2 = {text: x.DeptName, value: x.DeptName}
let obj3 = {text: x.UserName, value: x.UserName}
this.tableData.forEach(x => {
let obj = {
text: x.SchoolName,
value: x.SchoolName
}
let obj2 = {
text: x.DeptName,
value: x.DeptName
}
let obj3 = {
text: x.UserName,
value: x.UserName
}
this.SchoolNamelist.push(obj)
this.DeptNamelist.push(obj2)
this.UserNamelist.push(obj3)
......@@ -198,7 +212,7 @@
}
})
},
unique(arr,Name){//数组去重
unique(arr, Name) { //数组去重
const res = new Map();
return arr.filter(
(list) => !res.has(list.text) && res.set(list.text, 1)
......@@ -232,7 +246,7 @@
})
},
goUrl(path, id ) {
goUrl(path, id) {
this.$router.push({
path: '/financial/' + path,
query: {
......@@ -246,11 +260,10 @@
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b){
console.log(a,b)
StudentCount(a, b) {
return a.StudentCount - b.StudentCount;
},
goreturn(){
goreturn() {
this.$router.go(-1);
}
......@@ -259,9 +272,8 @@
},
}
</script>
<style lang="sass">
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
</style>
......@@ -2532,7 +2532,6 @@
})
},
getAccountListtype(AccountId){
console.log(AccountId)
this.accountList2.map(x=>{
if(x.ID == AccountId){
this.FinanceTrabeMsg.Type = x.BankType
......
......@@ -4,27 +4,31 @@
padding: 18px 0 0 16px;
text-align: right;
}
.salesRules .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.salesRules .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
}
.salesRules .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
</style>
<template>
</style>
<template>
<div class="page-body salesRules">
<div class="page-search row items-center">
<div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input filled v-model="listData.FirstRate" :min='0' :max='100' @input="getFirsrate" label="首次发放比例" type="number"/>
<q-input filled v-model="listData.FirstRate" :min='0' :max='100' @input="getFirsrate" label="首次发放比例"
type="number" />
</div>
</div>
</div>
<template >
<template>
<q-table :loading="loading" :pagination="tabeMsg" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="horizontal" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
......@@ -51,7 +55,8 @@
<div v-for="(item,index) in col.value" :key='index'>
<div class="border-bottom">
<el-input v-model="item.SalesRate" style='width:180px' type="number" :min='1' :max='100' placeholder="请输入内容" @blur='xiaoshou(props.pageIndex,index)' size="small">
<el-input v-model="item.SalesRate" style='width:180px' type="number" :min='1' :max='100'
placeholder="请输入内容" @blur='xiaoshou(props.pageIndex,index)' size="small">
<template slot="append">%</template>
</el-input>
</div>
......@@ -59,7 +64,7 @@
</q-td>
<q-td v-if="col.name == 'assistant'" style="width: 100px;text-align: center;">
<div v-for="item in col.value">
<div class="text-bottom" >
<div class="text-bottom">
{{100-item.SalesRate}}%
</div>
</div>
......@@ -68,7 +73,8 @@
<div v-for="(item,index) in col.value" :key='index'>
<div class="border-bottom">
<span style="margin-right: 10px;">其中( 老师:</span>
<el-input v-model="item.TeacherRate" style='width:180px' type="number" :min='0' :max='100' placeholder="请输入内容" @blur='teacherinput(props.pageIndex,index)' size="small">
<el-input v-model="item.TeacherRate" style='width:180px' type="number" :min='0' :max='100'
placeholder="请输入内容" @blur='teacherinput(props.pageIndex,index)' size="small">
<template slot="append">%</template>
</el-input>
</div>
......@@ -79,7 +85,8 @@
<div class="border-bottom">
<span style="margin-right: 10px;">助教:</span>
<el-input v-model="item.AssistantRate" style='width:180px' type="number" :min='0' :max='100' placeholder="请输入内容" @blur='assistantinput(props.pageIndex,index)' size="small">
<el-input v-model="item.AssistantRate" style='width:180px' type="number" :min='0' :max='100'
placeholder="请输入内容" @blur='assistantinput(props.pageIndex,index)' size="small">
<template slot="append">%</template>
</el-input>
<span style="margin-left: 10px;"></span>
......@@ -100,12 +107,12 @@
</template>
</div>
</template>
<script>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
import {
getSellCommissionRuleList,
setSellCommissionRule
} from '../../api/finance/index'
......@@ -119,8 +126,7 @@
return {
columns: [
{
columns: [{
name: 'CTypeName',
label: '班级类型',
field: 'CTypeName',
......@@ -174,24 +180,24 @@
},
pageCount: 0,
persistent: false,
listData:{},
listData: {},
}
},
created() {},
mounted() {
this.getRuleList();//获取规则
this.getRuleList(); //获取规则
},
methods: {
getRuleList(){
getRuleList() {
this.loading = true;
getSellCommissionRuleList({}).then(res => {
if (res.Code == 1) {
this.listData = res.Data
this.GetClassTypePageList();//获取班级类型列表数据
this.GetClassTypePageList(); //获取班级类型列表数据
}
})
},
......@@ -201,25 +207,38 @@
this.loading = false;
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.dataList.forEach((x,i)=>{
x.List=[]
this.listData.List.forEach(j=>{
if(x.CTypeId == j.ClassType){
this.dataList.forEach((x, i) => {
x.List = []
this.listData.List.forEach(j => {
if (x.CTypeId == j.ClassType) {
x.List.push(j)
}
})
//如果没有相同的但是 班级类型又有 给予默认的值
//注 由于 JavaScript 的限制,Vue 不能检测以下变动的数组:这里使用this.$set方法
if(x.List && x.List.length==0){
if (x.List && x.List.length == 0) {
let obj = {
CTypeName:x.CTypeName,
CTypeId:x.CTypeId,
List:[
{Id:0,ClassType:x.CTypeId,EnrollType:2,SalesRate:1,TeacherRate:0,AssistantRate:0},
{Id:0,ClassType:x.CTypeId,EnrollType:1,SalesRate:1,TeacherRate:0,AssistantRate:0},
CTypeName: x.CTypeName,
CTypeId: x.CTypeId,
List: [{
Id: 0,
ClassType: x.CTypeId,
EnrollType: 2,
SalesRate: 1,
TeacherRate: 0,
AssistantRate: 0
},
{
Id: 0,
ClassType: x.CTypeId,
EnrollType: 1,
SalesRate: 1,
TeacherRate: 0,
AssistantRate: 0
},
]
}
this.$set(this.dataList,i,obj)
this.$set(this.dataList, i, obj)
}
})
......@@ -227,55 +246,54 @@
})
},
xiaoshou(pageIndex,index){
xiaoshou(pageIndex, index) {
let that = this
if(that.dataList[pageIndex].List[index].SalesRate=='' || that.dataList[pageIndex].List[index].SalesRate<0){
if (that.dataList[pageIndex].List[index].SalesRate == '' || that.dataList[pageIndex].List[index].SalesRate <
0) {
that.dataList[pageIndex].List[index].SalesRate = 1
}else if(that.dataList[pageIndex].List[index].SalesRate>100){
} else if (that.dataList[pageIndex].List[index].SalesRate > 100) {
that.dataList[pageIndex].List[index].SalesRate = 100
}
},
teacherinput(pageIndex,index){//老师输入的时候input
if(this.dataList[pageIndex].List[index].TeacherRate==''){
teacherinput(pageIndex, index) { //老师输入的时候input
if (this.dataList[pageIndex].List[index].TeacherRate == '') {
this.dataList[pageIndex].List[index].TeacherRate = 100 - this.dataList[pageIndex].List[index].AssistantRate
}else if(this.dataList[pageIndex].List[index].TeacherRate>100 || this.dataList[pageIndex].List[index].TeacherRate<0){
} else if (this.dataList[pageIndex].List[index].TeacherRate > 100 || this.dataList[pageIndex].List[index]
.TeacherRate < 0) {
this.dataList[pageIndex].List[index].TeacherRate = 0;
this.dataList[pageIndex].List[index].AssistantRate = 100;
}else{
} else {
this.dataList[pageIndex].List[index].AssistantRate = 100 - this.dataList[pageIndex].List[index].TeacherRate
}
},
assistantinput(pageIndex,index){//助教输入的时候input
if(this.dataList[pageIndex].List[index].AssistantRate==''){
assistantinput(pageIndex, index) { //助教输入的时候input
if (this.dataList[pageIndex].List[index].AssistantRate == '') {
this.dataList[pageIndex].List[index].AssistantRate = 100 - this.dataList[pageIndex].List[index].TeacherRate
}else if(this.dataList[pageIndex].List[index].AssistantRate>100 || this.dataList[pageIndex].List[index].AssistantRate < 0){
} else if (this.dataList[pageIndex].List[index].AssistantRate > 100 || this.dataList[pageIndex].List[index]
.AssistantRate < 0) {
this.dataList[pageIndex].List[index].AssistantRate = 0;
this.dataList[pageIndex].List[index].TeacherRate = 100;
}else{
} else {
this.dataList[pageIndex].List[index].TeacherRate = 100 - this.dataList[pageIndex].List[index].AssistantRate
}
},
getFirsrate(){
if(this.listData.FirstRate>100){
getFirsrate() {
if (this.listData.FirstRate > 100) {
this.listData.FirstRate = 100
}else if(this.listData.FirstRate<0){
} else if (this.listData.FirstRate < 0) {
this.listData.FirstRate = 0
}
},
preservation() {//保存规则
console.log( this.listData)
preservation() { //保存规则
let addMsg = {
FirstRate:this.listData.FirstRate,
List:[],
FirstRate: this.listData.FirstRate,
List: [],
}
this.dataList.forEach(x=>{
x.List.forEach(j=>{
this.dataList.forEach(x => {
x.List.forEach(j => {
addMsg.List.push(j)
})
})
console.log(addMsg)
setSellCommissionRule(addMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
......@@ -288,16 +306,15 @@
}
})
},
changePage(){
changePage() {
}
},
}
</script>
<style lang="sass">
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
</style>
......@@ -4,17 +4,23 @@
padding: 18px 0 0 16px;
text-align: right;
}
.userCommissionDetails .border-bottom {
/* border-bottom: 1px dashed #EEE; */
padding-bottom: 5px;
margin-bottom: 5px;
}
.userCommissionDetails .text-bottom{
height: 32px;line-height: 32px; margin-bottom: 10px;
.userCommissionDetails .text-bottom {
height: 32px;
line-height: 32px;
margin-bottom: 10px;
}
.userCommissionDetails ._icon_btn i.icon-sousuo {
background-color: #47BF8C;
}
.userCommissionDetails ._icon_btn i {
width: 30px;
height: 30px;
......@@ -27,23 +33,24 @@
cursor: pointer;
outline: none;
}
.userCommissionDetails .el-table td,.el-table th{
.userCommissionDetails .el-table td,
.el-table th {
padding: 5px 0;
}
</style>
<template>
</style>
<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"/>
<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"
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false"
emit-value map-options @filter="filterFn">
option-label="ClassName" v-model="msg.ClassId" :options="ClassList" label="班级" :dense="false" emit-value
map-options @filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
......@@ -58,27 +65,23 @@
</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="校区" ></el-table-column>
<el-table-column prop="DeptName" label="部门" ></el-table-column>
<el-table-column prop="UserName" label="销售" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<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="校区"></el-table-column>
<el-table-column prop="DeptName" 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>
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;"
v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<el-table-column prop="OrderId" label="订单号">
<template slot-scope="scope">
<div style="cursor: pointer;text-decoration: underline;" @click='goorderUrl(scope.row.OrderId)'>{{scope.row.OrderId}} </div>
<div style="cursor: pointer;text-decoration: underline;" @click='goorderUrl(scope.row.OrderId)'>
{{scope.row.OrderId}} </div>
</template>
</el-table-column>
......@@ -123,12 +126,12 @@
</template>
</div>
</template>
<script>
</template>
<script>
import {
GetClassTypePageList,
} from '../../api/system/index';
import{
import {
getSellCommissionUserDetailList,
} from '../../api/finance/index'
import {
......@@ -147,25 +150,25 @@
msg: {
PeriodId: 0,
UserId: 0,
ClassId:0,
OrderId:'',
ClassId: 0,
OrderId: '',
},
pageCount: 0,
persistent: false,
listData:{},
tableData:[],
company:[],
department:[],
ClassList:[],
allClassList:[],
listData: {},
tableData: [],
company: [],
department: [],
ClassList: [],
allClassList: [],
}
},
created() {},
mounted() {
if(this.$route.query && this.$route.query.userId){
if (this.$route.query && this.$route.query.userId) {
this.msg.UserId = this.$route.query.userId
}
if(this.$route.query && this.$route.query.preriodId){
if (this.$route.query && this.$route.query.preriodId) {
this.msg.PeriodId = this.$route.query.preriodId
}
this.getList()
......@@ -173,8 +176,8 @@
},
methods: {
getList(){
if(this.msg)
getList() {
if (this.msg)
this.loading = true;
getSellCommissionUserDetailList(this.msg).then(res => {
if (res.Code == 1) {
......@@ -211,7 +214,7 @@
})
},
goUrl(path, id ) {
goUrl(path, id) {
this.$router.push({
path: '/financial/' + path,
query: {
......@@ -225,30 +228,25 @@
const property = column['property'];
return row[property] === value;
},
StudentCount(a,b){
console.log(a,b)
StudentCount(a, b) {
return a.StudentCount - b.StudentCount;
},
goorderUrl(id){
console.log(id)
goorderUrl(id) {
this.$router.push({
path: '/financial/cycleOrderList' ,
path: '/financial/cycleOrderList',
query: {
OrderId: id,
blank: 'y',
}
})
},
goreturn(){
goreturn() {
this.$router.go(-1);
}
},
}
</script>
<style lang="sass">
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
\ No newline at end of file
</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 :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">
......@@ -11,7 +39,7 @@
<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 clickable v-close-popup @click="ExchangeOrder(props.row)">
<q-item-section>
<q-item-label>转订单</q-item-label>
</q-item-section>
......@@ -21,7 +49,7 @@
<q-item-label>流单</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="OperateVitior(props.row,3)" >
<q-item clickable v-close-popup @click="OperateVitior(props.row,3)">
<q-item-section>
<q-item-label>取消</q-item-label>
</q-item-section>
......@@ -35,7 +63,8 @@
:input="true" @input="changePage" />
</template>
</q-table>
<yuekeForm v-if="isShowYue" :ChoiceType="ChoiceType" @close="closeYuekeForm" @success="refreshPage"></yuekeForm>
<yuekeForm v-if="isShowYue" :ChoiceType="ChoiceType" :save-obj="visitorItem" @close="closeYuekeForm" @success="refreshPage"></yuekeForm>
<exorderForm v-if="isShowExOrder" :save-obj="visitorItem" @close="closeOrderForm" @success="refreshPage"></exorderForm>
</div>
</template>
......@@ -43,20 +72,31 @@
import {
queryVisitorReservePage
} from '../../api/scheduling/schedu'
import {
getTeacherDropDownList,
queryClassRoomList
} from "../../api/school/index";
import yuekeForm from '../../components/schedul/yueke-form'
import exorderForm from '../../components/schedul/exorder-form'
export default {
meta: {
title: "约课管理"
},
components: {
yuekeForm
yuekeForm,
exorderForm
},
data() {
return {
msg: {
pageIndex: 1,
pageSize: 10
pageSize: 10,
rowsPerPage: 10,
StartClassDate: "", //开始日期
EndClassDate: "", //结束日期
TeacherId: "",
ClassRoomId: "",
},
dataList: [],
loading: false,
......@@ -110,14 +150,36 @@
}
],
isShowYue:false,
ChoiceType:0
ChoiceType:0,
visitorItem:{},//选中的对象
isShowExOrder:false,
}
},
created() {
this.GetTeacherList();
this.getClassRoomList();
},
mounted() {
this.getList()
},
methods: {
//获取教师下拉
GetTeacherList() {
getTeacherDropDownList({}).then(res => {
if (res.Code == 1) {
this.TeacherList = res.Data;
}
});
},
//获取教室下拉
getClassRoomList() {
queryClassRoomList({}).then(res => {
if (res.Code == 1) {
this.ClassRoomList = res.Data;
}
})
},
//重新查询
resetSearch() {
this.msg.pageIndex = 1;
......@@ -130,7 +192,6 @@
//获取课程系列分页列表
getList() {
queryVisitorReservePage(this.msg).then(res => {
console.log(res, '数据');
if (res.Code == 1) {
this.dataList = res.Data.PageData;
this.PageCount = res.Data.PageCount;
......@@ -138,20 +199,26 @@
})
},
//预约操作按钮
OperateVitior(item,type)
{
OperateVitior(item, type) {
this.ChoiceType = type;
this.isShowYue = true;
this.visitorItem = item;
},
//关闭弹窗
closeYuekeForm() {
this.isShowYue = false
},
closeOrderForm() {
this.isShowExOrder = false
},
//刷新页面
refreshPage() {
this.getList();
},
ExchangeOrder(item){
this.visitorItem = item;
this.isShowExOrder=true;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment