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

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

parents fdc06738 fd82d8f2
......@@ -232,4 +232,16 @@ export function GetReserveClass(data) {
method: 'post',
data
})
}
/**
* 修改预约状态
* @param {JSON参数} data
*/
export function setVisitorReserveStatus(data) {
return request({
url: '/VisitorReserve/UpdateVisitorReserveStatus',
method: 'post',
data
})
}
\ No newline at end of file
This diff is collapsed.
......@@ -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;
......
This diff is collapsed.
......@@ -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){
this.msg.remark = this.chooseLiudan.toString();
if (this.ChoiceType == 2) {
this.msg.ReserveStatus = 2;
}
console.log(this.msg,'msg');
if (this.ChoiceType == 3) {
this.msg.ReserveStatus = 3;
}
if (this.ChoiceType == 2) {
this.msg.remark = this.chooseLiudan.toString();
}
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,8 +223,7 @@
uploadFile(files) {
UploadSelfFile('studentIcon', files, res => {
if (res.Code == 1) {
console.log(211,res)
this.objOption.RoomPicList.push(res.FileUrl);
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]);
......
<template>
<q-dialog v-model="persistent" maximized full-height position="right" ref="historyDialog" @hide="" class="flex ">
<div class="con">
<div class="header">
<div class="header">
<img class="img-head" src="../../../assets/images/logo.png" mode="" />
<div class="head-title">
{{details.ErrorTitle}}
</div>
<img class="img-head-close" src="../../../assets/images/classroom/close.png" mode="" @click="hideDialog"/>
<img class="img-head" src="../../../assets/images/logo.png" mode="" />
<div class="head-title">
{{details.ErrorTitle}}
</div>
<div class="info-box">
<div class="user-info">
<div class="user-item">
<div class="user-label">姓名:</div><span class="user-con">{{details.ManageName}}</span>
</div>
<div class="user-item">
<div class="user-label">值班时间:</div><span class="user-con">{{details.StartTime}}-{{details.EndTime}}</span>
</div>
</div>
<div class="use">
<!-- <div class="use-title">用途</div> -->
<div class="use-con">{{details.ErrorContent}}</div>
</div>
<div class="use">
<div class="use-title">现场照片</div>
<div class="img-con">
<div v-for="(item,index) in details.LogPicList" :key="index" class="classroom-img-item">
<el-image :src="item" fit="contain" />
</div>
</div>
<img class="img-head-close" src="../../../assets/images/classroom/close.png" mode="" @click="hideDialog" />
</div>
<div class="info-box">
<div class="user-info">
<div class="user-item">
<div class="user-label">姓名:</div><span class="user-con">{{details.ManageName}}</span>
</div>
<div class="user-item">
<div class="user-label">值班时间:</div><span class="user-con">{{details.StartTime}}-{{details.EndTime}}</span>
</div>
</div>
<div class="use">
<!-- <div class="use-title">用途</div> -->
<div class="use-con">{{details.ErrorContent}}</div>
</div>
<div class="use">
<div class="use-title">现场照片</div>
<div class="img-con">
<div v-for="(item,index) in details.LogPicList" :key="index" class="classroom-img-item">
<el-image :src="item" fit="contain" />
</div>
<div class="use">
<div class="use-title">参与人员</div>
<div class="img-con">
<div v-for="(item,index) in details.ParticipantsList" :key="index" class="classroom-img-item">
<el-image :src="item" fit="contain" />
</div>
</div>
</div>
</div>
<div class="use">
<div class="use-title">参与人员</div>
<div class="img-con">
<div v-for="(item,index) in details.ParticipantsList" :key="index" class="classroom-img-item">
<el-image :src="item" fit="contain" />
</div>
</div>
</div>
</div>
</div>
</q-dialog>
</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:{}
persistent: false,
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,101 +133,118 @@
font-size: 12px;
color: #2961FE;
}
.con{
box-sizing: border-box;
width: 500px;
height: 1080px;
background: #FFFFFF;
box-shadow: 0px 0px 76px 0px rgba(2, 44, 66, 0.2);
.header{
width: 500px;
height: 56px;
background-color: #F0F5FB;
padding: 0 20px;
display: flex;
align-items: center;
position: relative;
.img-head{
width: 35px;
height: 35px;
// border-radius: 50%;
background-color: #B0C9FC;
margin-right: 10px;
object-fit: fill;
}
.head-title{
white-space: nowrap;
overflow: hidden;
text-overflow:ellipsis;
}
.img-head-close{
width: 15px;
height: 15px;
margin-right: 10px;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 15px;
}
}
.info-box{
box-sizing: border-box;
padding: 20px;
.user-info{
height: 100px;
border-bottom: 1px solid #E2E2E2;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
.user-item{
display: flex;
margin-top: 20px;
.user-label{
width: 100px;
color: #999999;
}
.user-con{
color: #111111;
}
}
.con {
box-sizing: border-box;
width: 500px;
height: 1080px;
background: #FFFFFF;
box-shadow: 0px 0px 76px 0px rgba(2, 44, 66, 0.2);
.header {
width: 500px;
height: 56px;
background-color: #F0F5FB;
padding: 0 20px;
display: flex;
align-items: center;
position: relative;
.img-head {
width: 35px;
height: 35px;
// border-radius: 50%;
background-color: #B0C9FC;
margin-right: 10px;
object-fit: fill;
}
.head-title {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.img-head-close {
width: 15px;
height: 15px;
margin-right: 10px;
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 15px;
}
}
.info-box {
box-sizing: border-box;
padding: 20px;
.user-info {
height: 100px;
border-bottom: 1px solid #E2E2E2;
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
.user-item {
display: flex;
margin-top: 20px;
.user-label {
width: 100px;
color: #999999;
}
.use{
padding: 30px 0;
border-bottom: 1px solid #E2E2E2;
.use-title{
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: bold;
.user-con {
color: #111111;
margin-bottom: 20px;
}
.use-con{
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
}
.img-con{
}
}
.use {
padding: 30px 0;
border-bottom: 1px solid #E2E2E2;
.use-title {
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: bold;
color: #111111;
margin-bottom: 20px;
}
.use-con {
font-size: 12px;
font-family: Microsoft YaHei;
font-weight: 400;
color: #999999;
}
.img-con {
display: flex;
.classroom-img-item {
display: flex;
.classroom-img-item{
display: flex;
width: 145px;
height: 80px;
border-radius: 4px;
margin-right: 10px;
margin-bottom: 10px;
.classroom-img{
width: 145px;
height: 80px;
border-radius: 4px;
margin-right: 10px;
margin-bottom: 10px;
.classroom-img {
width: 100%;
height: 100%;
}
}
}
}
}
}
}
}
</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;
},
//跳转至备课
......
This diff is collapsed.
This diff is collapsed.
......@@ -2532,7 +2532,6 @@
})
},
getAccountListtype(AccountId){
console.log(AccountId)
this.accountList2.map(x=>{
if(x.ID == AccountId){
this.FinanceTrabeMsg.Type = x.BankType
......
This diff is collapsed.
<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