Browse Source

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

- 添加学员选择功能
- 实现班级、课程、学员数据动态加载
- 新增作业发布接口调用- 优化作业类型选择逻辑
master
liutong 12 months 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> <fui-picker layer="1" :linkage="true" :options="options_class_arr" :show="show_class" @change="changeClass" @cancel="show_class=false"></fui-picker>
</view> </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> <view>
<fui-input required label="课程" borderTop placeholder="请选择课程" v-model="formData.course_name" @click="show_course=true"></fui-input> <fui-input required label="课程" borderTop placeholder="请选择课程" v-model="formData.course_name" @click="show_course=true"></fui-input>
<fui-picker <fui-picker
@ -41,7 +60,7 @@
<fui-textarea required flexStart label="作业" placeholder="请输入内容" v-model="formData.homework"></fui-textarea> <fui-textarea required flexStart label="作业" placeholder="请输入内容" v-model="formData.homework"></fui-textarea>
</view> </view>
<view class="submet_btn">提交</view> <view class="submet_btn" @click="submetForm">提交</view>
</view> </view>
<!-- 底部导航--> <!-- 底部导航-->
@ -61,34 +80,121 @@ export default {
return { return {
show_class:false, show_class:false,
show_course:false, show_course:false,
show_student:false,
//
options_class_arr:[ options_class_arr:[
{ value: 1, text: '班级1' }, // { value: 1, text: '1' },
{ value: 2, text: '班级2' },
{ value: 3, text: '班级3' }
], ],
//
options_course_arr:[ options_course_arr:[
{ value: 1, text: '课程1' }, // { value: 1, text: '1' },
{ value: 2, text: '课程2' }, ],
{ value: 3, text: '课程3' } //
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() { onLoad() {
},
onShow() {
this.init()
}, },
methods: { 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) { changeClass(e) {
console.log('选择器-班级', e); console.log('选择器-班级', e);
@ -103,14 +209,59 @@ export default {
this.formData.course_name = e.text; // course_name this.formData.course_name = e.text; // course_name
this.show_course = false; // 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) { changeType(e) {
console.log('选择器-作业类型', 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> </script>

Loading…
Cancel
Save