Commit 22c73014 authored by 罗超's avatar 罗超

2

parent 99363e06
...@@ -150,4 +150,14 @@ export function setAdminScrollAppointment_V2(data) { ...@@ -150,4 +150,14 @@ export function setAdminScrollAppointment_V2(data) {
method: 'post', method: 'post',
data data
}) })
}
/**
* 补录约课
*/
export function setAdminScrollMakeUp(data) {
return request({
url: '/Scroll/SetAdminScrollMakeUp',
method: 'post',
data
})
} }
\ No newline at end of file
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
<div> <div>
<span v-if="saveObj.ClassType == 1">{{ saveObj.Ranks }}/{{ saveObj.TotalPlanNum }}</span> <span v-if="saveObj.ClassType == 1">{{ saveObj.Ranks }}/{{ saveObj.TotalPlanNum }}</span>
<span v-if="saveObj.ClassType == 3">{{ saveObj.Ranks||0 }}次课</span> <span v-if="saveObj.ClassType == 3">{{ saveObj.Ranks||0 }}次课</span>
<span class="q-ml-sm" v-if="saveObj.ClassType == 3&&saveObj.CourseGradeName">({{ saveObj.CourseGradeName }})</span> <span class="q-ml-sm"
v-if="saveObj.ClassType == 3&&saveObj.CourseGradeName">({{ saveObj.CourseGradeName }})</span>
</div> </div>
</template> </template>
</q-field> </q-field>
...@@ -90,9 +91,6 @@ ...@@ -90,9 +91,6 @@
class="q-mr-sm" /> class="q-mr-sm" />
<q-btn color="accent" size="xs" label="取消预约" @click="cancelSub()" :disable="checkStuType2.length == 0" <q-btn color="accent" size="xs" label="取消预约" @click="cancelSub()" :disable="checkStuType2.length == 0"
class="q-mr-sm" /> class="q-mr-sm" />
<q-btn color="accent" size="xs" label="补录" @click="showMakeUpDig = true" style="margin-left:440px" />
<!-- <q-btn color="accent" size="xs" label="补课" @click="showRelenishDig = true" style="margin-left:440px" />
<q-btn color="accent" size="xs" label="重学" @click="showReStudyDig = true" class="q-ml-sm" /> -->
</div> </div>
<div class="row"> <div class="row">
...@@ -103,7 +101,10 @@ ...@@ -103,7 +101,10 @@
</q-checkbox> </q-checkbox>
</div> </div>
</div> </div>
<div v-else> <div class="row col-12 relative-position" v-else >
<div class="absolute" style="top:-20px;right:0" v-if="auth.IsEdit">
<q-btn color="accent" size="xs" label="补录" @click="showMakeUpDig = true" />
</div>
<span v-for="(x, y) in saveObj.GuestList" :key="y"> <span v-for="(x, y) in saveObj.GuestList" :key="y">
{{ x.GuestName }} {{ x.GuestName }}
<span v-if="x.AppointType == 2">(补)</span> <span v-if="x.AppointType == 2">(补)</span>
...@@ -125,9 +126,7 @@ ...@@ -125,9 +126,7 @@
</q-field> </q-field>
</div> </div>
<ChangeCourse v-model="showChangeDig" :saveObj="CourseObj" @success="ChangeCourseSuccessHandle" /> <ChangeCourse v-model="showChangeDig" :saveObj="CourseObj" @success="ChangeCourseSuccessHandle" />
<ReStudy v-model="showReStudyDig" :saveObj="saveObj" :date="dateObj.date" @success="ReStudyHandle"></ReStudy> <MakeUp v-model="showMakeUpDig" :saveObj="saveObj" :date="dateObj.date" @success="makeUpHandle"></MakeUp>
<Relenish v-model="showRelenishDig" :saveObj="saveObj" :date="dateObj.date" @success="RelenishHandle"></Relenish>
<MakeUp v-model="showMakeUpDig" :saveObj="saveObj" :date="dateObj.date" @success="RelenishHandle"></MakeUp>
</div> </div>
</template> </template>
<script> <script>
...@@ -136,14 +135,10 @@ ...@@ -136,14 +135,10 @@
SetSureAppointment SetSureAppointment
} from "../../../api/studyabroad/subscribe.js"; } from "../../../api/studyabroad/subscribe.js";
import ChangeCourse from "./changeCourse"; import ChangeCourse from "./changeCourse";
import ReStudy from "./reStudy";
import Relenish from "./replenish.vue";
import MakeUp from "./makeUp.vue" import MakeUp from "./makeUp.vue"
export default { export default {
components: { components: {
ChangeCourse, ChangeCourse,
ReStudy,
Relenish,
MakeUp MakeUp
}, },
props: { props: {
...@@ -168,8 +163,6 @@ ...@@ -168,8 +163,6 @@
return { return {
checkStuType2: [], // checkStuType2: [], //
showChangeDig: false, showChangeDig: false,
showReStudyDig: false,
showRelenishDig: false,
showMakeUpDig: false, showMakeUpDig: false,
CourseObj: {} CourseObj: {}
}; };
...@@ -235,7 +228,6 @@ ...@@ -235,7 +228,6 @@
position: "top", position: "top",
type: "positive" type: "positive"
}); });
// this.saveObj.AppointState = 2
this.$emit("close"); this.$emit("close");
} }
}); });
...@@ -251,13 +243,7 @@ ...@@ -251,13 +243,7 @@
ChangeCourseSuccessHandle() { ChangeCourseSuccessHandle() {
this.$emit("close"); this.$emit("close");
}, },
ReStudyHandle(val) { makeUpHandle(val) {
let arr = this.saveObj.GuestList || [];
arr.push(val);
this.$set(this.saveObj, "GuestList", arr);
this.$emit("success");
},
RelenishHandle(val) {
let arr = this.saveObj.GuestList || []; let arr = this.saveObj.GuestList || [];
arr.push(val); arr.push(val);
this.$set(this.saveObj, "GuestList", arr); this.$set(this.saveObj, "GuestList", arr);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<q-input <q-input
filled filled
stack-label stack-label
v-model="reStuMsg.StuName" v-model="msg.StuName"
label="学员姓名" label="学员姓名"
class="col-10" class="col-10"
hint="提示:需输入学员姓名查询学员列表" hint="提示:需输入学员姓名查询学员列表"
...@@ -52,6 +52,17 @@ ...@@ -52,6 +52,17 @@
</q-item-section> </q-item-section>
</q-item> </q-item>
</template> </template>
<template v-slot:option="scope">
<q-item v-bind="scope.itemProps" v-on="scope.itemEvents">
<q-item-section >
<div class="flex">
<span>{{ scope.opt.StuName }}</span>
<span v-if="scope.opt.State===3">(重)</span>
<span class="q-ml-sm">{{ scope.opt.CourseName }}</span>
</div>
</q-item-section>
</q-item>
</template>
</q-select> </q-select>
<div class="col-2 q-pt-md"> <div class="col-2 q-pt-md">
<q-btn <q-btn
...@@ -75,8 +86,8 @@ ...@@ -75,8 +86,8 @@
</template> </template>
<script> <script>
import { import {
getCanAppointmentAgainList, getCanAppointmentStuList_V2,
setAppointmentAgain setAdminScrollMakeUp
} from "../../../api/studyabroad/subscribe.js"; } from "../../../api/studyabroad/subscribe.js";
export default { export default {
model: { model: {
...@@ -106,9 +117,9 @@ export default { ...@@ -106,9 +117,9 @@ export default {
}, },
data() { data() {
return { return {
reStuMsg: { msg: {
StuName: "", StuName: "",
CourseGradeNo: 0, NextCourseGradeNo: 0,
CourseGradeId: 0 CourseGradeId: 0
}, },
stuInfo: "", stuInfo: "",
...@@ -121,16 +132,16 @@ export default { ...@@ -121,16 +132,16 @@ export default {
this.$emit("changeshow", val); this.$emit("changeshow", val);
}, },
getStu() { getStu() {
if (!this.reStuMsg.StuName) { if (!this.msg.StuName) {
this.$q.notify({ this.$q.notify({
message: "请输入学生姓名", message: "请输入学生姓名",
position: "top" position: "top"
}); });
return; return;
} }
this.reStuMsg.CourseGradeNo=this.saveObj.Ranks, this.msg.NextCourseGradeNo=this.saveObj.Ranks,
this.reStuMsg.CourseGradeId = this.saveObj.CourseGradeId; this.msg.CourseGradeId = this.saveObj.CourseGradeId;
getCanAppointmentAgainList(this.reStuMsg).then(res => { getCanAppointmentStuList_V2(this.msg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.stuOptions = res.Data; this.stuOptions = res.Data;
} }
...@@ -154,7 +165,7 @@ export default { ...@@ -154,7 +165,7 @@ export default {
CourseGradeNo:this.saveObj.Ranks, CourseGradeNo:this.saveObj.Ranks,
CourseGradeId: this.saveObj.CourseGradeId CourseGradeId: this.saveObj.CourseGradeId
}; };
setAppointmentAgain(saveMsg).then(res => { setAdminScrollMakeUp(saveMsg).then(res => {
if (res.Code == 1) { if (res.Code == 1) {
this.$q.notify({ this.$q.notify({
message: "操作成功", message: "操作成功",
...@@ -162,12 +173,12 @@ export default { ...@@ -162,12 +173,12 @@ export default {
}); });
this.$emit("success", { this.$emit("success", {
GuestName: this.stuInfo.StuName, GuestName: this.stuInfo.StuName,
AppointType: 3, AppointType: 1,
AppointmentId: res.Data AppointmentId: res.Data
}); });
this.msg.StuName=[]
this.stuInfo = ""; this.stuInfo = "";
this.stuOptions = []; this.stuOptions = [];
this.getStu();
} }
}); });
} }
......
<template>
<div>
<q-dialog
v-model="show"
persistent
transition-show="scale"
transition-hide="scale"
@input="changeDig"
>
<q-card style="width: 600px;max-width:900px;">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">重学</div>
<q-space />
<q-btn icon="close" flat round dense @click="changeDig(false)" />
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row col q-mr-lg q-col-gutter-md changeCourse">
<div class="row col-12">
<q-input
filled
stack-label
v-model="reStuMsg.StuName"
label="学员姓名"
class="col-10"
hint="提示:需输入学员姓名查询学员列表"
/>
<div class="col-2 q-pt-md">
<q-btn
size="sm"
color="accent"
label="查询"
@click="getStu"
class="q-ml-md"
/>
</div>
</div>
<div class="row col-12">
<q-select
filled
v-model="stuInfo"
stack-label
option-value="StuId"
option-label="StuName"
:options="stuOptions"
label="学员列表"
class="col-10"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
<div class="col-2 q-pt-md">
<q-btn
size="sm"
color="accent"
label="添加"
@click="save"
class="q-ml-md"
/>
</div>
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" @click="changeDig(false)" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<script>
import {
getCanAppointmentAgainList,
setAppointmentAgain
} from "../../../api/studyabroad/subscribe.js";
export default {
model: {
prop: "show",
event: "changeshow"
},
props: {
saveObj: {
type: Object,
default: null
},
date: {
type: String,
default: ""
},
show: {
type: Boolean,
default: false
}
},
watch: {
show(val) {
if (val) {
this.stuOptions = [];
}
}
},
data() {
return {
reStuMsg: {
StuName: "",
CourseGradeNo: 0,
CourseGradeId: 0
},
stuInfo: "",
stuOptions: []
};
},
methods: {
//开关弹窗
changeDig(val) {
this.$emit("changeshow", val);
},
getStu() {
if (!this.reStuMsg.StuName) {
this.$q.notify({
message: "请输入学生姓名",
position: "top"
});
return;
}
this.reStuMsg.CourseGradeNo=this.saveObj.Ranks,
this.reStuMsg.CourseGradeId = this.saveObj.CourseGradeId;
getCanAppointmentAgainList(this.reStuMsg).then(res => {
if (res.Code == 1) {
this.stuOptions = res.Data;
}
});
},
save() {
if (!this.stuInfo.StuId) {
this.$q.notify({
message: "请选择学生",
position: "top"
});
return;
}
const saveMsg = {
Date: this.date,
TeacherId: this.saveObj.Tid,
ShiftSort: this.saveObj.ShiftSort,
StuId: this.stuInfo.StuId,
GuestId: this.stuInfo.GuestId,
CourseId: this.saveObj.CourseId,
CourseGradeNo:this.saveObj.Ranks,
CourseGradeId: this.saveObj.CourseGradeId
};
setAppointmentAgain(saveMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
message: "操作成功",
position: "top"
});
this.$emit("success", {
GuestName: this.stuInfo.StuName,
AppointType: 3,
AppointmentId: res.Data
});
this.stuInfo = "";
this.stuOptions = [];
this.getStu();
}
});
}
}
};
</script>
<template>
<div>
<q-dialog
v-model="show"
persistent
transition-show="scale"
transition-hide="scale"
@input="changeDig"
>
<q-card style="width: 600px;max-width:900px;">
<q-card-section class="row items-center q-pb-none">
<div class="text-h6">补课</div>
<q-space />
<q-btn icon="close" flat round dense @click="changeDig(false)" />
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row col q-mr-lg q-col-gutter-md changeCourse">
<div class="row col-12">
<q-select
filled
v-model="stuInfo"
use-input
stack-label
option-value="StuId"
option-label="StuName"
:options="stuOptions"
label="学员列表"
class="col-10"
@filter="filterStu"
>
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
<div class="col-2 q-pt-md">
<q-btn
size="sm"
color="accent"
label="添加"
@click="save"
class="q-ml-md"
/>
</div>
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" @click="changeDig(false)" />
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<script>
import {
getCanMakeupStuList,
setAppointmentMakeup
} from "../../../api/studyabroad/subscribe.js";
export default {
model: {
prop: "show",
event: "changeshow"
},
props: {
saveObj: {
type: Object,
default: null
},
date: {
type: String,
default: ""
},
show: {
type: Boolean,
default: false
}
},
watch: {
show(val) {
if (val) {
this.getStu();
this.stuOptions = [];
this.AllStuOptions = [];
}
}
},
data() {
return {
reStuMsg: {
ChapterNo: 0
},
stuInfo: "请选择",
stuOptions: [],
AllStuOptions: []
};
},
methods: {
//开关弹窗
changeDig(val) {
this.$emit("changeshow", val);
},
getStu() {
const msg = {
CourseGradeNo:this.saveObj.Ranks,
CourseGradeId:this.saveObj.CourseGradeId
};
getCanMakeupStuList(msg).then(res => {
if (res.Code == 1) {
this.stuOptions = JSON.parse(JSON.stringify(res.Data));
this.AllStuOptions = JSON.parse(JSON.stringify(res.Data));
}
});
},
//筛选学生
filterStu(val, update) {
update(() => {
if (val === "") {
this.stuOptions = JSON.parse(JSON.stringify(this.AllStuOptions));
} else {
const needle = val.toLowerCase();
this.stuOptions = this.AllStuOptions.filter(
v => v.StuName.toLowerCase().indexOf(needle) > -1
);
}
});
},
save() {
if (!this.stuInfo.StuId) {
this.$q.notify({
message: "请选择学生",
position: "top"
});
return;
}
const saveMsg = {
Date: this.date,
TeacherId: this.saveObj.Tid,
ShiftSort: this.saveObj.ShiftSort,
StuId: this.stuInfo.StuId,
GuestId: this.stuInfo.GuestId,
CourseId: this.saveObj.CourseId,
CourseGradeNo:this.saveObj.Ranks,
CourseGradeId: this.saveObj.CourseGradeId
};
setAppointmentMakeup(saveMsg).then(res => {
if (res.Code == 1) {
this.$q.notify({
message: "操作成功",
position: "top"
});
this.$emit("success", {
GuestName: this.stuInfo.StuName,
AppointType: 2,
AppointmentId: res.Data
});
this.stuInfo = "";
this.stuOptions = [];
this.AllStuOptions = [];
this.getStu();
}
});
}
}
};
</script>
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
<div class="flex"> <div class="flex">
<span>{{ scope.opt.StuName }}</span> <span>{{ scope.opt.StuName }}</span>
<span v-if="scope.opt.State===3">(重)</span> <span v-if="scope.opt.State===3">(重)</span>
<span>-{{ scope.opt.CourseName }}</span> <span class="q-ml-sm">{{ scope.opt.CourseName }}</span>
</div> </div>
</q-item-section> </q-item-section>
</q-item> </q-item>
...@@ -135,8 +135,6 @@ ...@@ -135,8 +135,6 @@
<script> <script>
import { import {
GetCanTeacherClassTimeList, GetCanTeacherClassTimeList,
GetCanAppointmentStuList,
// SetAdminScrollAppointment,
getCanAppointmentStuList_V2, getCanAppointmentStuList_V2,
setAdminScrollAppointment_V2 setAdminScrollAppointment_V2
} from "../../../api/studyabroad/subscribe.js"; } from "../../../api/studyabroad/subscribe.js";
...@@ -201,9 +199,6 @@ ...@@ -201,9 +199,6 @@
this.stuList = []; this.stuList = [];
this.allStuList = []; this.allStuList = [];
this.stuMsg_v2.StuName="" this.stuMsg_v2.StuName=""
// if (this.editType == 2 && this.saveObj.ClassType == 3) {
// this.getStu_V2();
// }
} }
} }
}, },
...@@ -219,10 +214,6 @@ ...@@ -219,10 +214,6 @@
}, },
stuList: [], stuList: [],
allStuList: [], allStuList: [],
stuMsg: {
CourseId: 0,
NextCourseGradeNo: 0
},
stuMsg_v2: { stuMsg_v2: {
StuName: "", StuName: "",
NextCourseGradeNo: 0, NextCourseGradeNo: 0,
...@@ -240,7 +231,6 @@ ...@@ -240,7 +231,6 @@
StuId: 0, StuId: 0,
GuestId: 0, GuestId: 0,
CourseId: 0, CourseId: 0,
// ChapterNo: 0,
CourseGradeId: 0, CourseGradeId: 0,
CourseGradeNo: 0 CourseGradeNo: 0
}, },
...@@ -255,7 +245,6 @@ ...@@ -255,7 +245,6 @@
}; };
}, },
mounted() { mounted() {
this.getCourseList(); this.getCourseList();
}, },
methods: { methods: {
...@@ -316,24 +305,6 @@ ...@@ -316,24 +305,6 @@
this.teacherTimeList = res.Data; this.teacherTimeList = res.Data;
}); });
}, },
//获取学生列表
getStu() {
console.log(this.checkChapter)
return
this.stuMsg.CourseId = this.teaClassMsg.CourseId || 0;
if (this.editType == 1) {
this.stuMsg.CourseGradeId = this.checkChapter.CourseRate || 0;
this.stuMsg.NextCourseGradeNo = this.checkChapter.ChapterGradeNo || 0;
}
if (this.editType == 2) {
this.stuMsg.CourseGradeId = this.saveObj.CourseGradeId || 0;
this.stuMsg.NextCourseGradeNo = this.saveObj.Ranks || 0;
}
GetCanAppointmentStuList(this.stuMsg).then(res => {
this.stuList = JSON.parse(JSON.stringify(res.Data));
this.allStuList = JSON.parse(JSON.stringify(res.Data));
});
},
//筛选学生 //筛选学生
filterStu(val, update) { filterStu(val, update) {
update(() => { update(() => {
...@@ -366,7 +337,6 @@ ...@@ -366,7 +337,6 @@
this.stuMsg_v2.CourseGradeId = this.saveObj.CourseGradeId this.stuMsg_v2.CourseGradeId = this.saveObj.CourseGradeId
} }
getCanAppointmentStuList_V2(this.stuMsg_v2).then(res => { getCanAppointmentStuList_V2(this.stuMsg_v2).then(res => {
console.log(337, res)
this.stuList = JSON.parse(JSON.stringify(res.Data)); this.stuList = JSON.parse(JSON.stringify(res.Data));
this.allStuList = JSON.parse(JSON.stringify(res.Data)); this.allStuList = JSON.parse(JSON.stringify(res.Data));
}) })
...@@ -403,9 +373,6 @@ ...@@ -403,9 +373,6 @@
return; return;
} }
}); });
if (this.checkChapter.CourseRate && this.checkChapter.ChapterNo) {
// this.getStu();
}
this.teaClassMsg.TeacherId = 0; this.teaClassMsg.TeacherId = 0;
this.teacherTimeList = []; this.teacherTimeList = [];
}, },
...@@ -511,7 +478,7 @@ ...@@ -511,7 +478,7 @@
}); });
} }
this.stuInfo = ""; this.stuInfo = "";
this.getStu_V2(); this.stuMsg_v2.StuName=""
this.$emit("success"); this.$emit("success");
} }
}) })
......
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