child-edit.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // pages/child-edit/child-edit.js
  2. Page({
  3. data: {
  4. childId: 0,
  5. child: null,
  6. loading: false,
  7. danLevels: [
  8. { value: 'A1', label: 'A1 - 幼儿园小班' },
  9. { value: 'A2', label: 'A2 - 幼儿园中班' },
  10. { value: 'A3', label: 'A3 - 幼儿园大班' },
  11. { value: 'B1', label: 'B1 - 小学一年级' },
  12. { value: 'B2', label: 'B2 - 小学二年级' },
  13. { value: 'B3', label: 'B3 - 小学三年级' },
  14. { value: 'B4', label: 'B4 - 小学四年级' },
  15. { value: 'B5', label: 'B5 - 小学五年级' },
  16. { value: 'B6', label: 'B6 - 小学六年级' }
  17. ],
  18. themes: [
  19. { value: 'default', label: '默认主题' },
  20. { value: 'space', label: '太空主题' },
  21. { value: 'ocean', label: '海洋主题' },
  22. { value: 'forest', label: '森林主题' }
  23. ]
  24. },
  25. onLoad(options) {
  26. const childId = options.id || 0;
  27. this.setData({ childId });
  28. this.loadChildInfo();
  29. },
  30. loadChildInfo() {
  31. this.setData({ loading: true });
  32. // 模拟数据
  33. const mockChild = {
  34. id: this.data.childId,
  35. name: '小明',
  36. age: 8,
  37. grade: '小学二年级',
  38. danLevel: 'B2',
  39. theme: 'default',
  40. penaltyEnabled: true
  41. };
  42. setTimeout(() => {
  43. this.setData({
  44. child: mockChild,
  45. loading: false
  46. });
  47. }, 500);
  48. },
  49. onNameInput(e) {
  50. this.setData({ 'child.name': e.detail.value });
  51. },
  52. onAgeInput(e) {
  53. this.setData({ 'child.age': parseInt(e.detail.value) || 0 });
  54. },
  55. onGradeInput(e) {
  56. this.setData({ 'child.grade': e.detail.value });
  57. },
  58. onDanLevelChange(e) {
  59. this.setData({ 'child.danLevel': e.detail.value });
  60. },
  61. onThemeChange(e) {
  62. this.setData({ 'child.theme': e.detail.value });
  63. },
  64. onPenaltyEnabledChange(e) {
  65. this.setData({ 'child.penaltyEnabled': e.detail.value });
  66. },
  67. onSave() {
  68. if (!this.data.child.name.trim()) {
  69. wx.showToast({ title: '请输入孩子姓名', icon: 'none' });
  70. return;
  71. }
  72. wx.showModal({
  73. title: '确认保存',
  74. content: '确定要保存孩子信息吗?',
  75. success: (res) => {
  76. if (res.confirm) {
  77. this.doSave();
  78. }
  79. }
  80. });
  81. },
  82. doSave() {
  83. wx.showLoading({ title: '保存中...' });
  84. setTimeout(() => {
  85. wx.hideLoading();
  86. wx.showToast({
  87. title: '保存成功',
  88. icon: 'success'
  89. });
  90. setTimeout(() => {
  91. wx.navigateBack();
  92. }, 1500);
  93. }, 1000);
  94. }
  95. });