Browse Source

feat(coach): 教练端新增作业发布功能

- 添加学员选择功能
- 实现班级、课程、学员数据动态加载
- 新增作业发布接口调用- 优化作业类型选择逻辑
master
liutong 1 year ago
parent
commit
028d9db4d2
  1. 25
      api/member.js
  2. 181
      pages/coach/job/add.vue

25
api/member.js

@ -170,6 +170,31 @@ export default {
})
},
//教练端-获取班级列表
jlGetClassesList(data = {}) {
let url = '/member/get_classes_list'
return http.get(url, data).then(res => {
return res;
})
},
//教练端-获取班级列表
jlGetCoursesList(data = {}) {
let url = '/member/get_courses_list'
return http.get(url, data).then(res => {
return res;
})
},
//教练端-获取学员列表
jlGetStudentList(data = {}) {
let url = '/member/student_list'
return http.get(url, data).then(res => {
return res;
})
},

181
pages/coach/job/add.vue

@ -29,6 +29,25 @@
<fui-picker layer="1" :linkage="true" :options="options_class_arr" :show="show_class" @change="changeClass" @cancel="show_class=false"></fui-picker>
</view>
<view v-if="formData.type != 1">
<fui-input required label="学员" borderTop placeholder="请选择学员" v-model="formData.students_ids_name" @click="show_student=true"></fui-input>
<!--下拉多选-->
<fui-select
:show="show_student"
:options="options_student_arr"
title="请选择学员"
multiple
isReverse
checkboxColor="#FFC529"
btnBackground="#FFC529"
btnColor="#1A1D26"
closeColor="#6D758A"
@confirm="changeStudent"
@close="show_student=false">
</fui-select>
</view>
<view>
<fui-input required label="课程" borderTop placeholder="请选择课程" v-model="formData.course_name" @click="show_course=true"></fui-input>
<fui-picker
@ -41,7 +60,7 @@
<fui-textarea required flexStart label="作业" placeholder="请输入内容" v-model="formData.homework"></fui-textarea>
</view>
<view class="submet_btn">提交</view>
<view class="submet_btn" @click="submetForm">提交</view>
</view>
<!-- 底部导航-->
@ -61,34 +80,121 @@ export default {
return {
show_class:false,
show_course:false,
show_student:false,
//班级可选值列表
options_class_arr:[
{ value: 1, text: '班级1' },
{ value: 2, text: '班级2' },
{ value: 3, text: '班级3' }
// { value: 1, text: '班级1' },
],
//课程可选值列表
options_course_arr:[
{ value: 1, text: '课程1' },
{ value: 2, text: '课程2' },
{ value: 3, text: '课程3' }
// { value: 1, text: '课程1' },
],
//学员可选值列表
options_student_arr:[
// {
// text: '标签3',
// value: '3',
// checked: false,//是否选中
// }
],
formData:{
type:'1',//作业类型(单选)
class_name:'',//班级(下拉)
class_id:'',//班级(下拉)
course_name:'',//课程(下拉)
course_id:'',//课程(下拉)
homework:'',//作业(文本域)
//表单数据
formData: {
type: '1',//作业类型(单选)|1班级,2学员
course_id: '',//课程id(下拉)
course_id_name: '',//课程id(中文名字)
content_type: '',//作业类型(单选)|1图片,2视频
content_text: '',//文字作业内容
classes_id: '',//班级id(下拉)
classes_id_name: '',//班级id(中文名字)
students_ids: '',//学员id 逗号拼接
students_ids_name:'',//学员id数组(中文名字)
}
}
},
onLoad() {
},
onShow() {
this.init()
},
methods: {
//初始化
async init() {
// 获取班级-学员二级联动(用来获取班级列表)
this.getClassesList()
// 全部课程名称列表
this.getCoursesList()
// 学员列表
this.getStudentList()
},
//获取班级列表
async getClassesList(){
let res = await memberApi.jlGetClassesList({})
if(res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.options_class_arr = []
res.data.forEach((v,k)=>{
this.options_class_arr.push({
text: v.name,
value: v.id,
})
})
},
//获取课程列表
async getCoursesList(){
let res = await memberApi.jlGetCoursesList({})
if(res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.options_course_arr = []
res.data.forEach((v,k)=>{
this.options_course_arr.push({
text: v.name,
value: v.id,
})
})
},
//获取学员列表
async getStudentList() {
let res = await memberApi.jlGetStudentList({})
if (res.code != 1) {
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.options_student_arr = []
res.data.forEach((v, k) => {
this.options_student_arr.push({
text: v.name,
value: v.id,
checked: false,//是否选中
})
})
},
//监听选择器-班级
changeClass(e) {
console.log('选择器-班级', e);
@ -103,14 +209,59 @@ export default {
this.formData.course_name = e.text; // 更新 course_name
this.show_course = false; // 关闭选择器
},
//监听选择器-学员
changeStudent(e) {
console.log('选择器-学员', e);
let id_arr = []
let name_arr = []
e.options.forEach((v,k)=>{
id_arr.push(v.value)
name_arr.push(v.text)
})
//数组转字符
this.formData.students_ids = id_arr.join(',')
this.formData.students_ids_name = name_arr.join(',')
this.show_student = false; // 关闭选择器
},
//监听选择器-作业类型
changeType(e) {
console.log('选择器-作业类型', e);
this.formData.type = e.value; // 更新 type
this.formData.type = e.detail.value; // 更新 type
//1=班级作业
if(e.detail.value == 1){
//清空学员选择信息
this.formData.students_ids = ''
this.formData.students_ids_name = ''
}
},
//发布作业
async submetForm(){
let data = {...this.formData}
console.log('提交',data)
return
let res = await memberApi.jlPublishJob(data)
if (res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
uni.showToast({
title: res.msg,
icon: 'success'
})
//延迟1s
setTimeout(() => {
uni.navigateTo({
url: '/pages/coach/home/index'
})
}, 1000)
},
}
}
</script>

Loading…
Cancel
Save