Commit 5fd55cbf authored by liudong1993's avatar liudong1993
parents 4bdbd0e2 c3ae3960
...@@ -211,7 +211,17 @@ export function SetVisitorReserve(data) { ...@@ -211,7 +211,17 @@ export function SetVisitorReserve(data) {
data data
}) })
} }
/**
* 新增留学需求
* @param {JSON参数} data
*/
export function SetStudyAbroad(data) {
return request({
url: '/VisitorReserve/SetStudyAbroad',
method: 'post',
data
})
}
/** /**
* 约课管理 * 约课管理
* @param {JSON参数} data * @param {JSON参数} data
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
.courseMainTbale td { .courseMainTbale td {
padding: 0 3px; padding: 0 3px;
} }
</style> </style>
<template> <template>
<q-dialog v-model="persistent" persistent content-class="bg-grey-1" transition-show="scale" transition-hide="scale"> <q-dialog v-model="persistent" persistent content-class="bg-grey-1" transition-show="scale" transition-hide="scale">
...@@ -31,55 +32,21 @@ ...@@ -31,55 +32,21 @@
<span class="course_Line"></span> <span class="course_Line"></span>
基础价格设置 基础价格设置
</div> </div>
<div> <div class="row">
<table style="margin-left:10px;"> <q-select filled stack-label dense class="col-2 q-pr-lg q-pb-lg" v-model="priceObj.courseObj.SellPriceType"
<tr> :options="PriceTypeList" emit-value map-options option-value="Id" option-label="Name" label="价格类型" />
<td style="width:110px;text-align:right;"> <q-input filled stack-label dense class="col-2 q-pr-lg q-pb-lg" maxlength="8"
<el-select v-model="priceObj.courseObj.SellPriceType" placeholder="请选择报价类型"> v-model="priceObj.courseObj.SellPrice" ref="SellPrice"
<el-option :label="priceObj.courseObj.SellPriceType==1?'课程总价':'课时单价'"
v-for="item in PriceTypeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</td>
<td colspan="2">
<q-input filled stack-label maxlength="8" style="padding-bottom:0;width:390px;margin-left:10px;" dense
v-model="priceObj.courseObj.SellPrice" ref="SellPrice" label="卖价"
@keyup.native="checkPrice(priceObj.courseObj, 'SellPrice')" :rules="[val => !!val || '请填写卖价']" /> @keyup.native="checkPrice(priceObj.courseObj, 'SellPrice')" :rules="[val => !!val || '请填写卖价']" />
</td> <template v-if="priceObj.courseObj.SellPriceType==1">
</tr> <q-input filled stack-label class="col-2 q-pr-lg q-pb-lg" maxlength="8" dense
</table> v-model="priceObj.courseObj.TextbookFee" ref="TextbookFee" label="教材费"
</div> @keyup.native="checkPrice(priceObj.courseObj, 'TextbookFee')" />
<q-input filled stack-label class="col-2 q-pr-lg q-pb-lg" maxlength="8" dense
<div class="text-caption q-mb-lg q-mt-lg text-grey-6 row wrap"> v-model="priceObj.courseObj.CoursewareFee" ref="CoursewareFee" label="课件费"
<span class="course_Line"></span> @keyup.native="checkPrice(priceObj.courseObj, 'CoursewareFee')" />
其他价格设置 </template>
</div>
<div>
<table style="margin-left:10px;">
<tr>
<td style="width:110px;text-align:right;">
教材费
</td>
<td colspan="2">
<q-input filled stack-label maxlength="8" style="padding-bottom:0;width:390px;margin-left:10px;" dense
v-model="priceObj.courseObj.TextbookFee" ref="TextbookFee" label="价格"
@keyup.native="checkPrice(priceObj.courseObj, 'TextbookFee')" :rules="[val => !!val || '请填写教材费价格']" />
</td>
</tr>
<tr>
<td style="width:110px;text-align:right;">
课件费
</td>
<td colspan="2">
<q-input filled stack-label maxlength="8" style="padding-bottom:0;width:390px;margin-left:10px;" dense
v-model="priceObj.courseObj.CoursewareFee" ref="CoursewareFee" label="价格"
@keyup.native="checkPrice(priceObj.courseObj, 'CoursewareFee')" :rules="[val => !!val || '请填写课件费价格']" />
</td>
</tr>
</table>
</div> </div>
<div class="text-caption q-mb-lg q-mt-lg text-grey-6" v-if="false"> <div class="text-caption q-mb-lg q-mt-lg text-grey-6" v-if="false">
<span class="course_Line"></span> <span class="course_Line"></span>
...@@ -122,7 +89,7 @@ ...@@ -122,7 +89,7 @@
<div class="text-caption q-mb-lg q-mt-lg text-grey-6 row wrap" style="align-items:center;"> <div class="text-caption q-mb-lg q-mt-lg text-grey-6 row wrap" style="align-items:center;">
<div> <div>
<span class="course_Line"></span> <span class="course_Line"></span>
返佣 返佣设置
</div> </div>
<!--只保留内部介绍返佣和学员介绍返佣。--> <!--只保留内部介绍返佣和学员介绍返佣。-->
<q-select style="width:200px;margin-left:35px;" filled dense v-model="priceObj.courseObj.CommissionReType" <q-select style="width:200px;margin-left:35px;" filled dense v-model="priceObj.courseObj.CommissionReType"
...@@ -130,8 +97,7 @@ ...@@ -130,8 +97,7 @@
</div> </div>
<table style="border-collapse: collapse;width:100%;" class="coursePrice_table courseMainTbale"> <table style="border-collapse: collapse;width:100%;" class="coursePrice_table courseMainTbale">
<tr style="height:40px;"> <tr style="height:40px;">
<th>同行 <th>返佣类型</th>
</th>
<th> <th>
首报名返佣比例 首报名返佣比例
</th> </th>
...@@ -400,12 +366,12 @@ ...@@ -400,12 +366,12 @@
}, },
data() { data() {
return { return {
PriceTypeList:[{ PriceTypeList: [{
value: 1, Id: 1,
label: '课程总价' Name: '课程总价'
}, { }, {
value: 2, Id: 2,
label: '课时单价' Name: '课时单价'
}], }],
persistent: true, persistent: true,
optionTitle: "", optionTitle: "",
...@@ -416,9 +382,9 @@ ...@@ -416,9 +382,9 @@
CourseId: 0, //课程编号 CourseId: 0, //课程编号
OriginalPrice: 0, //原价 OriginalPrice: 0, //原价
SellPrice: 0, //售价 SellPrice: 0, //售价
SellPriceType:1,//价格类型:基础售价1/课时售价2 SellPriceType: 1, //价格类型:基础售价1/课时售价2
TextbookFee:0,//教材费 TextbookFee: 0, //教材费
CoursewareFee:0,//课件费 CoursewareFee: 0, //课件费
CommissionReType: 1, //返佣类型(1比例返佣,2-固定金额返佣) CommissionReType: 1, //返佣类型(1比例返佣,2-固定金额返佣)
B2CRatio: 0, //直客首次报名优惠比例 B2CRatio: 0, //直客首次报名优惠比例
B2CReNewRatio: 0, //直客续费优惠比例 B2CReNewRatio: 0, //直客续费优惠比例
...@@ -728,4 +694,5 @@ ...@@ -728,4 +694,5 @@
} }
} }
}; };
</script> </script>
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
<q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.EmployeeName" ref="EmployeeName" <q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.EmployeeName" ref="EmployeeName"
class="col-6 q-pr-lg q-pb-lg" label="员工姓名" :rules="[val => !!val || '请填写员工姓名']" /> class="col-6 q-pr-lg q-pb-lg" label="员工姓名" :rules="[val => !!val || '请填写员工姓名']" />
<q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.IDCard" ref="IDCard" <q-input filled stack-label maxlength="20" :dense="false" v-model="objOption.IDCard"
class="col-6 q-pr-lg q-pb-lg" label="身份证号码" :rules="[val => !!val || '请填写身份证号码']" /> class="col-6 q-pr-lg q-pb-lg" label="身份证号码" />
<q-select filled stack-label option-value="Id" option-label="Name" ref="ID" v-model="objOption.Sex" <q-select filled stack-label option-value="Id" option-label="Name" ref="ID" v-model="objOption.Sex"
:options="SexList" label="性别" :dense="false" class="col-6 q-pr-lg q-pb-lg" emit-value map-options /> :options="SexList" label="性别" :dense="false" class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<q-chip color="primary" size="xs" text-color="white" style="position:absolute;:top:0;right:0" v-if="tItem.ReserveType==1"> <q-chip color="primary" size="xs" text-color="white" style="position:absolute;:top:0;right:0" v-if="tItem.ReserveType==1">
跟班 跟班
</q-chip> </q-chip>
<div v-if="tItem.ReservationDate&&tItem.ReservationDate.length>0"> <div v-if="tItem.ReservationDate&&tItem.ReservationDate.length>0&&tItem.ReservationDate!='0001-01-01T00:00:00'">
试听日期:{{ timeFormatSeconds(tItem.ReservationDate) }} 试听日期:{{ timeFormatSeconds(tItem.ReservationDate) }}
</div> </div>
<div v-if="tItem.Demand&&tItem.Demand.length>0"> <div v-if="tItem.Demand&&tItem.Demand.length>0">
...@@ -106,7 +106,8 @@ ...@@ -106,7 +106,8 @@
qMsg: { qMsg: {
pageIndex: 1, pageIndex: 1,
pageSize: 12, pageSize: 12,
Visitor_Id: 0 Visitor_Id: 0,
IsReserve:1,
}, },
dataList: [], dataList: [],
page_Count: 0, page_Count: 0,
...@@ -127,6 +128,9 @@ ...@@ -127,6 +128,9 @@
//传入日期//例:2020-10-27T14:36:23 //传入日期//例:2020-10-27T14:36:23
timeFormatSeconds(time,type) { timeFormatSeconds(time,type) {
let timeStr=""; let timeStr="";
if(time==='0001-01-01T00:00:00'){
return timeStr;
}
var d = time ? new Date(time) : new Date(); var d = time ? new Date(time) : new Date();
var year = d.getFullYear(); var year = d.getFullYear();
var month = d.getMonth() + 1; var month = d.getMonth() + 1;
......
<style></style> <style></style>
<template> <template>
<div> <div>
<studyabroad :saveObj="saveObj" @close="closeReserveForm" @success="closeReserveForm"
v-if="!saveObj.IsHaveCurseManager || userInfo.IsCourseConsultant == 1"></studyabroad>
<div style="display:flex;flex:1;flex-direction: column;overflow:hidden;"> <div style="display:flex;flex:1;flex-direction: column;overflow:hidden;">
<div class="TimeLineDiv"> <div class="TimeLineDiv">
<q-timeline color="primary"> <q-timeline color="primary">
...@@ -9,29 +10,11 @@ ...@@ -9,29 +10,11 @@
<template v-slot:title> <template v-slot:title>
<div class="visit_Cont"> <div class="visit_Cont">
<div class="Log_Content"> <div class="Log_Content">
<q-chip color="primary" size="xs" text-color="white" style="position:absolute;:top:0;right:0" v-if="tItem.ReserveType==1">
跟班 <div >
</q-chip> 留学需求:{{ tItem.Remark }}
<div v-if="tItem.ReservationDate&&tItem.ReservationDate.length>0">
试听日期:{{ timeFormatSeconds(tItem.ReservationDate) }}
</div>
<div v-if="tItem.Demand&&tItem.Demand.length>0">
试听需求:{{ tItem.Demand }}
</div>
<div>
预约时间:{{ tItem.ClassDateStr }} {{ tItem.ClassTime }}
<template v-if="tItem.ClassDateStr&&tItem.ClassDateStr.length>0">-</template>
{{ tItem.EndTime }}
</div>
<div class="StuCom_Remark" v-if="false">
<div style="flex-shrink:0">主讲内容:</div>
<div class="StuCom_Inner">{{ tItem.ClassContent }}</div>
</div>
<div>主讲老师:{{ tItem.TeacherName }}</div>
<div>课程名称:{{ tItem.LessonName }}</div>
<div class="StuCom_Remark">
<span class="StuCom_Left">教室</span>:{{ tItem.RoomName }}
</div> </div>
</div> </div>
<div @click="DeleteVisitorReserve(tItem.Id)" style="margin-top:10px;" <div @click="DeleteVisitorReserve(tItem.Id)" style="margin-top:10px;"
class="visit_delete text-negative"> class="visit_delete text-negative">
...@@ -67,13 +50,13 @@ ...@@ -67,13 +50,13 @@
queryClassRoomList, queryClassRoomList,
GetTrialLessonList GetTrialLessonList
} from "../../../api/school/index"; } from "../../../api/school/index";
// import reserveclassForm from "./reserveclass-form"; import studyabroad from "./studyabroad";
export default { export default {
meta: { meta: {
title: "" title: ""
}, },
components: { components: {
// reserveclassForm studyabroad
}, },
props: { props: {
saveObj: { saveObj: {
...@@ -87,7 +70,8 @@ ...@@ -87,7 +70,8 @@
qMsg: { qMsg: {
pageIndex: 1, pageIndex: 1,
pageSize: 12, pageSize: 12,
Visitor_Id: 0 Visitor_Id: 0,
IsReserve:2,
}, },
dataList: [], dataList: [],
page_Count: 0, page_Count: 0,
......
...@@ -76,8 +76,8 @@ ...@@ -76,8 +76,8 @@
:save-obj="baseObj" v-if="secondType == 3" @success="refreshStudentPage"></student-genjin> :save-obj="baseObj" v-if="secondType == 3" @success="refreshStudentPage"></student-genjin>
<student-shiting :save-obj="baseObj" v-if="secondType == 4" @success="refreshStudentPage"> <student-shiting :save-obj="baseObj" v-if="secondType == 4" @success="refreshStudentPage">
</student-shiting> </student-shiting>
<!-- <student-studyabroad :save-obj="baseObj" v-if="secondType == 6" @success="refreshStudentPage"> <studentstudyabroad :save-obj="baseObj" v-if="secondType == 6" @success="refreshStudentPage">
</student-studyabroad> --> </studentstudyabroad>
<student-consult :save-obj="baseObj" v-if="secondType == 5" @success="refreshStudentPage"> <student-consult :save-obj="baseObj" v-if="secondType == 5" @success="refreshStudentPage">
</student-consult> </student-consult>
</div> </div>
......
<style scoped>
.Student_Date .el-input__inner {
background: transparent !important;
border: 0 !important;
padding-right: 0 !important;
}
</style>
<template>
<div>
<div class="row wrap">
<q-btn label="新增留学需求" color="accent q-mb-lg" size="sm" @click="isShowReserve = true" />
</div>
<template v-if="isShowReserve">
<div class="row studentDate" >
<q-input
style="width:257px;"
v-model="addMsg.Remark"
placeholder="留学需求"
filled
type="textarea"
/>
</div>
<div class="row wrap justify-end q-pr-lg" style="margin-bottom:10px;">
<q-btn label="关闭" flat color="accent q-mb-lg" size="md" style="margin-right:10px;" @click="closeClassForm" />
<q-btn label="保存" color="accent q-mb-lg" size="md" @click="saveAppointForm()" />
</div>
</template>
</div>
</template>
<script>
import {
SetStudyAbroad
} from "../../../api/scheduling/schedu";
import {
getTeacherDropDownList,
queryClassRoomList,
GetTrialLessonList
} from "../../../api/school/index";
// import auditionForm from "../../schedul/audition-form";
export default {
components: {
// auditionForm,
},
props: {
saveObj: {
type: Object,
default: null
}
},
data() {
return {
isShowReserve: false,
addMsg: {
Id: 0, //编号
Visitor_Id: 0, //访客编号
ReserveClassId: 0, //选中的班级编号
ClassDate: "", //预约日期
ClassTime: "", //预约开始时间
EndTime: "", //预约结束时间
TeacherId: 0, //教师编号
ClassRoomId: 0, //教室编号
ClassContent: "", //主讲内容
TrialLessonId: "",
ReserveType: 0,
ClassPlanId: 0,
Demand:"",
},
isShowTeacher: false, //是否显示试听课弹窗
showObj:{
className:"",
courseName:"",
}
};
},
created() {
},
mounted() {
if (this.saveObj) {
this.addMsg.Visitor_Id = this.saveObj.StuId;
}
},
methods: {
//关闭窗口
closeClassForm() {
this.clearMsg()
this.isShowReserve = false;
this.$emit("success");
},
//清除
clearMsg() {
this.addMsg.Id = 0;
this.addMsg.ReserveClassId = 0;
this.addMsg.ClassDate = "";
this.addMsg.ClassTime = "";
this.addMsg.EndTime = "";
this.addMsg.TeacherId = 0;
this.addMsg.ClassRoomId = 0;
this.addMsg.ClassContent = "";
this.addMsg.TrialLessonId = "";
this.addMsg.ReserveType = 0;
this.addMsg.ClassPlanId = 0;
this.addMsg.Demand="";
},
//保存
saveAppointForm() {
if (this.addMsg.Remark == "") {
this.$q.notify({
type: "negative",
position: "top",
timeout: 2000,
message: "请输入留学需求!"
});
return;
}
SetStudyAbroad(this.addMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
icon: "iconfont icon-chenggong",
color: "accent",
timeout: 2000,
message: res.Message,
position: "top"
});
this.$emit("success");
} else {
this.$q.notify({
type: "negative",
position: "top",
timeout: 2000,
message: res.Message
});
}
this.clearMsg();
this.isShowReserve = false;
});
},
closeAuditForm() {
this.isShowTeacher = false;
},
//子组件选中传值
getchildInfo(obj) {
if (obj) {
this.addMsg.ReserveType = obj.ReserveType;
this.addMsg.ClassPlanId = obj.ClassPlanId;
this.addMsg.TeacherId = obj.TeacherId;
this.addMsg.ClassRoomId = obj.ClassRoomId;
this.addMsg.ReserveClassId = obj.ReserveClassId;
this.addMsg.ClassDate = obj.ClassDateStr;
this.addMsg.ClassTime = obj.ClassTime;
this.addMsg.EndTime = obj.EndTime;
this.addMsg.ClassContent = obj.ClassContent;
this.addMsg.TrialLessonId = obj.TrialLessonId;
this.isShowReserve = true;
}
}
}
};
</script>
...@@ -74,9 +74,9 @@ ...@@ -74,9 +74,9 @@
<!-- <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问" <!-- <q-btn color="accent" outline class="q-mr-md" size="sm" icon="swap_horiz" label="推送课程顾问"
v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" /> --> v-if="userInfo.IsCourseConsultant == 0" @click="pushMode = true" /> -->
<q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转订单" <q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转订单"
:disable="selection.length === 0" @click="transferOrder" /> :disable="selection.length === 0" @click="transferOrder" v-if="StudentType!=2"/>
<q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转留学" <q-btn color="accent" class="q-mr-md" size="sm" icon="swap_horiz" label="转留学"
:disable="selection.length === 0" @click="transferAbroad" /> :disable="selection.length === 0" @click="transferAbroad" v-if="StudentType==2"/>
<q-btn color="accent" class="q-mr-md" size="sm" icon="add" label="新增学员" @click="EditStudent(null)" /> <q-btn color="accent" class="q-mr-md" size="sm" icon="add" label="新增学员" @click="EditStudent(null)" />
<q-btn v-if="authObj && authObj.isShowDownload&&IsDownLoadStu()" color="accent" class="q-mr-md" size="sm" <q-btn v-if="authObj && authObj.isShowDownload&&IsDownLoadStu()" color="accent" class="q-mr-md" size="sm"
icon="download" label="下载" @click="downloadStudent" /> icon="download" label="下载" @click="downloadStudent" />
...@@ -314,6 +314,10 @@ ...@@ -314,6 +314,10 @@
type: Number, type: Number,
default: null default: null
}, },
StudentType: {
type: Number,
default: null
},
loading: { loading: {
type: Boolean, type: Boolean,
default: false default: false
......
...@@ -347,8 +347,17 @@ var commonUtils = { ...@@ -347,8 +347,17 @@ var commonUtils = {
//获取当前日期 //获取当前日期
getCurrentDate() { getCurrentDate() {
var myDate = new Date(); var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 1 && day <= 9) {
day = "0" + day;
}
//返回年月日 //返回年月日
return myDate.getFullYear() + '-' + parseInt(myDate.getMonth() + 1) + "-" + myDate.getDate() return year + '-' + month + "-" + day;
}, },
//格式化日期 //格式化日期
getFormatDate(dateStr) { getFormatDate(dateStr) {
......
...@@ -68,7 +68,8 @@ ...@@ -68,7 +68,8 @@
label="学习课程" @clear="getClassList" maxlength="20" /> label="学习课程" @clear="getClassList" maxlength="20" />
</div> </div>
<div class="col-3"> <div class="col-3">
<q-input v-model="msg.StartTime" mask="date" label="开班时间" standout="bg-primary text-white" @update:model-value="()=>getClassList"> <q-input v-model="msg.StartTime" mask="date" label="开班时间" standout="bg-primary text-white"
@update:model-value="()=>getClassList">
<template v-slot:append> <template v-slot:append>
<q-icon name="event" class="cursor-pointer"> <q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qCStartTime" transition-show="scale" transition-hide="scale"> <q-popup-proxy ref="qCStartTime" transition-show="scale" transition-hide="scale">
...@@ -152,6 +153,7 @@ ...@@ -152,6 +153,7 @@
if (this.$route.query && this.$route.query.ClassName) { if (this.$route.query && this.$route.query.ClassName) {
this.msg.ClassName = decodeURI(this.$route.query.ClassName) this.msg.ClassName = decodeURI(this.$route.query.ClassName)
} }
this.msg.StartTime = this.$commonUtils.getCurrentDate();
this.getClassStatus(); this.getClassStatus();
this.getSchool(); this.getSchool();
this.GetTeacherList(); this.GetTeacherList();
...@@ -161,10 +163,9 @@ ...@@ -161,10 +163,9 @@
this.getClassList(); this.getClassList();
}, },
methods: { methods: {
changeDate() changeDate() {
{ this.$refs.qCStartTime.hide();
this.$refs.qCStartTime.hide(); this.getClassList();
this.getClassList();
}, },
queryCourseSubject() { queryCourseSubject() {
getCourseSubject({}).then(res => { getCourseSubject({}).then(res => {
......
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