2025-06-06 15:17:30 +08:00
|
|
|
|
const { getHomeWorkType ,getClassList, creatHomeWork, getStudentList} = require("../../../utils/serve/teacher")
|
|
|
|
|
|
|
|
|
|
|
|
// subpackage/teacher/new-work/new-work.js
|
|
|
|
|
|
Page({
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
data: {
|
|
|
|
|
|
homeWorkName:'',
|
|
|
|
|
|
workModeTypeList:[],//项目类型列表
|
|
|
|
|
|
workModeType:{},//项目类型
|
|
|
|
|
|
workTypeList:[{
|
|
|
|
|
|
name:'定时计数',
|
|
|
|
|
|
id:1
|
|
|
|
|
|
},{
|
|
|
|
|
|
name:'定数计时',
|
|
|
|
|
|
id:2
|
|
|
|
|
|
}],
|
|
|
|
|
|
workType:{},
|
|
|
|
|
|
groupList:[1,2,3,4,5,6,7,8,9,10],
|
|
|
|
|
|
group:null,//组数
|
|
|
|
|
|
nowDate:'',
|
|
|
|
|
|
startTime:'', //开始时间
|
|
|
|
|
|
endTime:'',//结束时间
|
|
|
|
|
|
classList:[],
|
|
|
|
|
|
nowClass:{},
|
|
|
|
|
|
clickList:[], //选中学生列表
|
|
|
|
|
|
weekList: [
|
|
|
|
|
|
{value: 1, name: '周一'},
|
|
|
|
|
|
{value: 2, name: '周二'},
|
|
|
|
|
|
{value: 3, name: '周三'},
|
|
|
|
|
|
{value: 4, name: '周四'},
|
|
|
|
|
|
{value: 5, name: '周五'},
|
|
|
|
|
|
{value: 6, name: '周六'},
|
|
|
|
|
|
{value: 7, name: '周日'}
|
|
|
|
|
|
],
|
|
|
|
|
|
weekName:'仅一次',
|
|
|
|
|
|
show:'', //是否展示弹出框
|
|
|
|
|
|
checkWeekList:[], //选中重复列表
|
|
|
|
|
|
sureWeekList:[], //确认的重复列表
|
|
|
|
|
|
studentScope:1,//是否全部学生
|
|
|
|
|
|
multiArray:[
|
|
|
|
|
|
[0,1,2,3,4,5,6,7,8,9],
|
|
|
|
|
|
[0,1,2,3,4,5,6,7,8,9],
|
|
|
|
|
|
[0,1,2,3,4,5,6,7,8,9]
|
|
|
|
|
|
],
|
|
|
|
|
|
num:0, //数量
|
|
|
|
|
|
time:0, //时长
|
|
|
|
|
|
timeList:[
|
|
|
|
|
|
1,2,3,4,5,6,7,8,9,10,
|
|
|
|
|
|
11,12,13,14,15,16,17,18,19,20,
|
|
|
|
|
|
21,22,23,24,25,26,27,28,29,30,
|
|
|
|
|
|
31,32,33,34,35,36,37,38,39,40,
|
|
|
|
|
|
41,42,43,44,45,46,47,48,49,50,
|
|
|
|
|
|
51,52,53,54,55,56,57,58,59,60,
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
|
*/
|
|
|
|
|
|
async onLoad(options) {
|
|
|
|
|
|
const now = new Date();
|
|
|
|
|
|
const year = now.getFullYear();
|
|
|
|
|
|
const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
|
|
|
|
const day = String(now.getDate()).padStart(2, '0');
|
|
|
|
|
|
const res = await getHomeWorkType()
|
|
|
|
|
|
const res2 = await getClassList()
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
workModeTypeList:res.data,
|
|
|
|
|
|
nowDate: year + '-' + month + '-' + day,
|
|
|
|
|
|
classList:res2.data
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
showDialog(e){
|
|
|
|
|
|
const id = e.currentTarget.id
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
show:id
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
close(){
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
show:''
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
checkboxChange(e){
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
checkWeekList:e.detail.value,
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
sure(){
|
|
|
|
|
|
const listName =this.data.checkWeekList.length > 0 ? '每周' + this.data.checkWeekList.join('、').replace('1','一').replace('2','二').replace('3','三').replace('4','四').replace('5','五').replace('6','六').replace('7','日') :'仅一次'
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
sureWeekList:this.data.checkWeekList,
|
|
|
|
|
|
weekName:listName,
|
|
|
|
|
|
show:''
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
all(){
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
clickList:[]
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//picker改变
|
|
|
|
|
|
bindPickerChange(e){
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
if(e.target.id == 'nowClass'){
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
clickList:[],
|
|
|
|
|
|
studentScope:1
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
[e.target.id] : e.target.dataset.list== null ? e.detail.value : this.data[e.target.dataset.list][e.detail.value]
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
bindMultiPickerChange: function (e) {
|
|
|
|
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
multiIndex: e.detail.value,
|
|
|
|
|
|
num:Number(e.detail.value.join(''))
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//日期选择
|
|
|
|
|
|
bindDateChange(e){
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
[e.target.id] : e.detail.value
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
|
|
|
*/
|
|
|
|
|
|
onReady() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
changeName(e){
|
|
|
|
|
|
console.log(e)
|
|
|
|
|
|
this.setData({
|
|
|
|
|
|
homeWorkName:e.detail.value
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//去选择学生
|
|
|
|
|
|
checkStuent(e){
|
|
|
|
|
|
if(this.data.nowClass.classId == null) return wx.showToast({
|
|
|
|
|
|
title: '请选择正确的班级',
|
|
|
|
|
|
icon:'none'
|
|
|
|
|
|
})
|
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
|
url: '/subpackage/teacher/check-student/check-student?class='+JSON.stringify(this.data.nowClass),
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
//创建作业
|
|
|
|
|
|
async newWork(){
|
|
|
|
|
|
let app = getApp()
|
|
|
|
|
|
if(this.data.homeWorkName == '') return app.showToast('请输入作业名称')
|
|
|
|
|
|
if(this.data.workModeType.id == null) return app.showToast('请选择项目')
|
|
|
|
|
|
if(this.data.startTime == '') return app.showToast('请先选择开始时间')
|
|
|
|
|
|
if(this.data.endTime == '') return app.showToast('请选择结束时间')
|
|
|
|
|
|
if(this.data.nowClass.classId == null) return app.showToast('请选择班级')
|
|
|
|
|
|
if(this.data.workType.id == null) return app.showToast('请选择作业模式')
|
|
|
|
|
|
if(this.data.workType.id == 2 && this.data.num == 0) return app.showToast('请选择个数')
|
|
|
|
|
|
if(this.data.workType.id == 1 && this.data.time == 0) return app.showToast('请选择时长')
|
|
|
|
|
|
if(!this.data.group) return app.showToast('请选择组数')
|
|
|
|
|
|
wx.showLoading('作业创建中...')
|
2026-04-16 13:38:33 +08:00
|
|
|
|
console.log('参数========>', this.data)
|
2025-06-06 15:17:30 +08:00
|
|
|
|
|
|
|
|
|
|
let stuList = this.data.clickList
|
|
|
|
|
|
|
|
|
|
|
|
if(stuList.length <= 0 ){//全部学生
|
|
|
|
|
|
const stu =await getStudentList({
|
|
|
|
|
|
pageIndex:1,
|
|
|
|
|
|
pageSize:200,
|
|
|
|
|
|
classId:this.data.nowClass.classId
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
stuList = stu.data.datas
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let startTime = this.data.startTime
|
|
|
|
|
|
if(this.data.nowDate == this.data.startTime){
|
|
|
|
|
|
const now = new Date()
|
|
|
|
|
|
startTime += ' ' + now.toLocaleTimeString('zh-CN', {
|
|
|
|
|
|
hour: '2-digit',
|
|
|
|
|
|
minute: '2-digit',
|
|
|
|
|
|
second: '2-digit',
|
|
|
|
|
|
hour12: false // 使用24小时制
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
let params = {
|
|
|
|
|
|
"workName": this.data.homeWorkName,
|
|
|
|
|
|
"workType": this.data.workModeType.id,
|
|
|
|
|
|
"workModeType": this.data.workType.id,
|
|
|
|
|
|
"workModeTypeName": this.data.workType.name,
|
|
|
|
|
|
"workTypeName": this.data.workModeType.name,
|
|
|
|
|
|
"groupNumber": this.data.group,
|
|
|
|
|
|
"isRepeat": this.data.sureWeekList.length > 0 ? true : false,
|
|
|
|
|
|
"weekList": this.data.sureWeekList,
|
|
|
|
|
|
"studentScope": this.data.studentScope,
|
|
|
|
|
|
"gradeId": this.data.nowClass.gradeId,
|
|
|
|
|
|
"classId": this.data.nowClass.classId,
|
|
|
|
|
|
"gradeName": this.data.nowClass.name.split('-')[0],
|
|
|
|
|
|
"className": this.data.nowClass.name.split('-')[1],
|
|
|
|
|
|
"startTime": startTime,
|
|
|
|
|
|
"endTime": this.data.endTime + ' 23:59:59',
|
|
|
|
|
|
"homeWorkStudents": stuList
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(this.data.workType.id == 1){
|
|
|
|
|
|
params.duration = Number(this.data.time) * 60
|
|
|
|
|
|
}else if(this.data.workType.id == 2){
|
|
|
|
|
|
params.amount = this.data.num
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
const res = await creatHomeWork(params)
|
|
|
|
|
|
|
|
|
|
|
|
if(res.success) {
|
|
|
|
|
|
app.showToast('创建成功')
|
|
|
|
|
|
app.globalData.homeWorkRefresh = 1
|
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
|
wx.navigateBack()
|
|
|
|
|
|
}, 500);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
|
|
*/
|
|
|
|
|
|
onShow() {
|
|
|
|
|
|
console.log(this.data.clickList)
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
|
|
*/
|
|
|
|
|
|
onHide() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
|
|
*/
|
|
|
|
|
|
onUnload() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
|
|
*/
|
|
|
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
|
|
*/
|
|
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 用户点击右上角分享
|
|
|
|
|
|
*/
|
|
|
|
|
|
onShareAppMessage() {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|