// pages/addStudent/addStudent.js Page({ data: { className:"K班", input: "", students:[ ] }, onLoad: function(options) { console.log(options); // options 参数包含了从上一个页面传递过来的数据 const receivedClassName = options.className; // 获取传递过来的 className,默认为空字符串 // 更新页面的数据 this.setData({ className: receivedClassName // 将接收到的 className 赋值给页面的 data 属性 }); console.log(this.data.className); }, //获取输入框内容 onInput: function(e) { console.log(e.detail.value) this.setData({ input: e.detail.value//保存输入 }); }, // Excel文件导入 importExcel: function() { const that = this; wx.chooseMessageFile({ count: 1, // 默认为1,设置选择文件的数量 type: 'file', extension: ['xlsx'], // 指定文件的后缀名 success(res) { const tempFiles = res.tempFiles; // 临时文件路径 const filePath = tempFiles[0].path; // 获取文件的路径 console.log(tempFiles); that.readExcel(filePath); // 读取文件内容 }, fail(err) { console.error('选择文件失败:', err); } }); }, // 读取Excel文件内容 readExcel(filePath) { // 可以使用微信小程序的API或将文件上传到服务器解析 const that = this; wx.uploadFile({ url: 'http://192.168.152.1:8090/excel/import', // 你的服务器上传地址 filePath: filePath, name: 'file', success: uploadRes => { // 假设服务器返回解析后的 JSON 数据 const data = JSON.parse(uploadRes.data); that.addStudents(data.students); }, fail: uploadErr => { console.error('文件上传失败:', uploadErr); } }); }, // 将解析后的学生数据添加到现有数组中 addStudents(newStudents) { const currentStudents = this.data.students; const allStudents = currentStudents.concat(newStudents); // 合并数组 this.setData({ students: allStudents }); }, //点击输入框提示可以输入 focus: function(){ wx.showToast({ title: '可以开始输入了', icon: 'none', duration: 2000 }); }, cantNull: function(){ wx.showToast({ title: '输入框不可为空', icon: 'none', duration: 2000 }); }, addProcess: function(){ if(this.data.input != ""){ //分割字符串为数组 let firstArray = this.data.input.split("|"); console.log(firstArray); let secondArray = firstArray.map(str => str.split(" ")); console.log(secondArray) //遍历secondArray secondArray.forEach(subArray => { // 结构法从子数组中提取id和name //等同于 const id = subArray[0]; const name = subArray[1]; const { [0]: id, [1]: name } = subArray; // 创建一个新的对象来存储这些信息 const newStu = { id: id, name: name, point: 10, clazz: this.data.className, }; const isDuplicate = this.data.students.some(stu => stu.id === id); if(!isDuplicate){ // 将新对象发送到后端服务器 const classstu = newStu; //classstu.className = this.data.className;//此时 classstu = {id:"102201",name:"Jhon", className:`${this.data.className}` } wx.request({ url: 'http://192.168.152.1:8090/student/set', method: 'POST', // 请求方法,通常是POST用于发送数据 header: { 'Content-Type': 'application/json' // 设置请求头,指定数据格式为JSON }, data: newStu, // 要发送的数据,这里直接传入对象,wx.request会自动将其转换为JSON字符串(后端接收json字符串) success: function(res) { // 处理后端返回的响应 console.log('请求成功', res.data); // 根据需要更新小程序页面的数据或执行其他操作 }, fail: function(err) { // 处理请求失败的情况 console.error('请求失败', err); // 可以向用户显示错误信息或执行其他错误处理操作 } }); // 将新对象添加到data.stu数组中 this.setData({ ['students[' + this.data.students.length + ']']: newStu //直接将新对象加在数组后面 }); } else { console.log('id重复:${id}'); } }) console.log(this.data.students); } else { this.cantNull(); } }, goToclass_manage: function(){ wx.navigateTo({ url: '/pages/class_manage/class_manage' }); } });