Browse Source

新增老师功能

lan 2 years ago
parent
commit
de4e3dab19
35 changed files with 1943 additions and 129 deletions
  1. 1 2
      miniprogram/app.json
  2. 1 0
      miniprogram/app.scss
  3. 79 37
      miniprogram/pages/classroom/classroom.ts
  4. 9 2
      miniprogram/pages/classroom/classroom.wxml
  5. 1 2
      miniprogram/pages/classroom/operateStudent.ts
  6. 9 3
      miniprogram/pages/createGarten/createGarten.ts
  7. 1 1
      miniprogram/pages/createGarten/createGarten.wxml
  8. 43 25
      miniprogram/pages/garten/bindGarten.ts
  9. 23 5
      miniprogram/pages/garten/bindGarten.wxml
  10. 2 1
      miniprogram/pages/garten/garten.ts
  11. 3 2
      miniprogram/pages/garten/garten.wxml
  12. 26 2
      miniprogram/pages/garten/garten.wxss
  13. 1 1
      miniprogram/pages/garten/searchGarten.wxml
  14. 3 1
      miniprogram/pages/main/main.json
  15. 21 4
      miniprogram/pages/main/main.ts
  16. 14 1
      miniprogram/pages/main/main.wxml
  17. 23 1
      miniprogram/pages/my/my.ts
  18. 19 3
      miniprogram/pages/my/my.wxml
  19. 1 1
      miniprogram/pages/teacher/operateTeacher.ts
  20. 4 0
      miniprogram/pages/teacher/recodeFace.json
  21. 154 0
      miniprogram/pages/teacher/recodeFace.ts
  22. 17 0
      miniprogram/pages/teacher/recodeFace.wxml
  23. 4 0
      miniprogram/pages/teacher/recodeFace.wxss
  24. 58 29
      miniprogram/pages/teacher/teacher.ts
  25. 8 1
      miniprogram/pages/teacher/teacher.wxml
  26. 4 0
      miniprogram/pages/teacher/updateHomeWork.json
  27. 74 0
      miniprogram/pages/teacher/updateHomeWork.ts
  28. 14 0
      miniprogram/pages/teacher/updateHomeWork.wxml
  29. 4 0
      miniprogram/pages/teacher/updateHomeWork.wxss
  30. 1 0
      miniprogram/script/config/GlobalConfig.ts
  31. 12 3
      miniprogram/script/config/HttpConfig.ts
  32. 1276 0
      miniprogram/script/config/SemeGirdCfg.ts
  33. 1 0
      miniprogram/script/data/GartenData.ts
  34. 23 2
      miniprogram/script/data/UserData.ts
  35. 9 0
      miniprogram/script/enums/Enum.ts

+ 1 - 2
miniprogram/app.json

@@ -20,8 +20,7 @@
         "selectedColor": "#3cc51f",
         "borderStyle": "white",
         "backgroundColor": "#ffffff",
-        "list": [
-            {
+        "list": [{
                 "pagePath": "pages/main/main"
             },
             {

+ 1 - 0
miniprogram/app.scss

@@ -35,6 +35,7 @@ page {
 
 .text-overflow-clip,
 .student-name {
+    justify-content: start !important;
     text-overflow: clip;
     overflow: auto;
     white-space: nowrap;

+ 79 - 37
miniprogram/pages/classroom/classroom.ts

@@ -4,12 +4,11 @@ import { yearRangeStr } from '../../script/config/GlobalConfig';
 import { HttpUrl } from '../../script/config/HttpConfig';
 import { ShareAppMessageConfig } from '../../script/config/WxConfig';
 import { IClassInfo, IStudentInfo } from '../../script/data/GartenData';
-import { ROLE_TYPE } from '../../script/enums/Enum';
+import { ACTIVITY_TYPE, MANAGER_TYPE, ROLE_TYPE } from '../../script/enums/Enum';
 import { Data, Mgr } from '../../script/MainControl';
 import { ArrayUtils } from '../../script/utils/ArrayUtils';
 import { WxUtils } from '../../script/utils/WxUtils';
 import CommonPage from '../CommonPage';
-import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
 import { IUserInfo } from '../../script/data/UserData';
 const app = getApp();
 CommonPage({
@@ -27,6 +26,13 @@ CommonPage({
     yearRanges: yearRangeStr,
     yearRangeIndex: 0,
     CustomBar: app.globalData.CustomBar,
+    remark: '',
+    operateType: 0,
+    operateMessage: '',
+    showOperateDialog: false,
+    canChangeYearRange: true,
+    operateData: {},
+    operateStudentReqSure: null
   },
   onClassChange(e: any) {
     Data.garten.curClassId = e.currentTarget.dataset.classid
@@ -38,6 +44,7 @@ CommonPage({
       classIndex: this.data.classes.findIndex((item: any) => item.classId == Data.garten.curClassId)
     });
     this.selectComponent('#dropdown-item').toggle()
+    this.setShowChangeYearRange()
   },
   onStudentClick(e: any) {
     let dataset = e.currentTarget.dataset;
@@ -116,13 +123,9 @@ CommonPage({
     if (!classroom.classId) return
     let obj = { id: classroom.classId, name: classroom.className, yearRange: parseInt(e.detail.value) }
     Mgr.http.request({
-      url: HttpUrl.operateGarten,
+      url: HttpUrl.classUpdate,
       method: 'POST',
-      data: {
-        action: 1,
-        id: (Data.garten.curGarten && Data.garten.curGarten.id) ? Data.garten.curGarten.id : Data.user.curUser.organId,
-        classRooms: [obj]
-      },
+      data: obj,
       success: () => {
         let classes = Data.garten.classes.slice()
         classes.forEach((item: IClassInfo) => {
@@ -145,11 +148,24 @@ CommonPage({
       }
     })
   },
+  onOperateStudentReqclose() {
+    this.setData({
+      showOperateDialog: false,
+    });
+  },
+  onOperateStudentReqRemark(e: any) {
+    this.setData({
+      remark: e.detail,
+    });
+  },
   onLoad() {
     this.storeBindings = createStoreBindings(this, {
       fields: { students: () => Data.garten.curStudents, classes: () => Data.garten.classes, curClassId: () => Data.garten.curClassId, curGarten: () => Data.garten.curGarten, curUser: () => Data.user.curUser }
     });
     this.storeBindings.updateStoreBindings()
+    this.setData({
+      operateStudentReqSure: this.getOperateStudentReqSure
+    })
   },
   onUnload() {
     this.storeBindings.destroyStoreBindings()
@@ -167,7 +183,8 @@ CommonPage({
       data.organId = Data.garten.curGarten.id
     }
     this.setData({
-      classIndex: 0
+      classIndex: 0,
+      canChangeYearRange: false,
     })
     Mgr.http.request({
       url: HttpUrl.rolesList,
@@ -190,6 +207,7 @@ CommonPage({
           classroom.classId = element.id
           classroom.className = element.name
           classroom.yearRange = element.yearRange
+          classroom.activateType = element.activateType
           classroom.yearRangeName = yearRangeStr[element.yearRange]
           classroom.text = `${element.name}(${yearRangeStr[element.yearRange]})`
           classroom.value = element.id
@@ -203,6 +221,7 @@ CommonPage({
         });
         Data.garten.classes = classes
         Data.garten.students = students
+        this.setShowChangeYearRange()
       },
     })
   },
@@ -227,58 +246,74 @@ CommonPage({
       WxUtils.toast('未选择学生')
       return
     }
-    Dialog.confirm({
-      title: '提示',
-      message: `确认${message}吗?`,
+    let data: any = {}
+    data.action = action
+    data.roles = Data.garten.students.filter((item) => this.data.studentCheckIds.indexOf(item.id) >= 0)
+    data.roles.forEach((element: any) => {
+      if (classId) {
+        let classroom = Data.garten.classes.find((item: IClassInfo) => item.classId == classId) as IClassInfo
+        element.classId = classId
+        element.className = classroom.className
+      }
+      if (apply) element.pay = true
+    });
+    this.setData({
+      operateType: action,
+      operateMessage: '确认' + message + '吗?',
+      showOperateDialog: true,
+      remark: '',
+      operateData: data,
     })
-      .then(() => {
-        // on confirm
-        let data: any = {}
-        data.action = action
-        data.roles = Data.garten.students.filter((item) => this.data.studentCheckIds.indexOf(item.id) >= 0)
-        data.roles.forEach((element: any) => {
-          if (classId) {
-            let classroom = Data.garten.classes.find((item: IClassInfo) => item.classId == classId) as IClassInfo
-            element.classId = classId
-            element.className = classroom.className
-          }
-          if (apply) element.pay = true
-        });
+  },
+  getOperateStudentReqSure(action: string) {
+    return new Promise((resolve) => {
+      if (action === 'confirm') {
+        let isManager = Data.user.curUser.role == ROLE_TYPE.manager
+        if (!this.data.remark && this.data.operateType == 2 && !isManager) {
+          WxUtils.toast('请填写删除原因')
+          resolve(false)
+          return
+        }
+        this.data.operateData.remark = this.data.remark
         this.setData({
           loading: true
         });
         Mgr.http.request({
           url: HttpUrl.rolesAction,
           method: 'POST',
-          data,
+          data: this.data.operateData,
           success: (res) => {
-            this.setData({ loading: false });
+            resolve(true)
+            this.setData({ loading: false, showOperateDialog: false });
             let students = Data.garten.students.slice()
-            switch (action) {
+            switch (this.data.operateType) {
               case 2:
-                if (Data.user.curUser.role == ROLE_TYPE.manager) ArrayUtils.updateArrayByOperate(students, res.data.roles, 2, 'id')
-                WxUtils.toast('删除提交成功', 'success')
+                if (isManager) ArrayUtils.updateArrayByOperate(students, res.data.roles, 2, 'id')
+                WxUtils.toast(`删除${isManager ? '' : '提交'}成功`, 'success')
                 break
               case 3:
                 ArrayUtils.updateArrayByOperate(students, res.data.roles, 3, 'id')
                 WxUtils.toast('修改成功', 'success')
                 break
               case 4:
-                // ArrayUtils.updateArrayByOperate(students, res.data.roles, 3, 'id')
-                WxUtils.toast('激活提交成功', 'success')
+                if (isManager) ArrayUtils.updateArrayByOperate(students, res.data.roles, 3, 'id')
+                WxUtils.toast(`激活${isManager ? '' : '提交'}成功`, 'success')
                 break
               default:
                 break
             }
             Data.garten.students = students
           },
-          fail: this.httpFail
+          fail: () => {
+            resolve(false)
+            this.httpFail()
+          }
         })
-      })
-      .catch(() => {
-        // on cancel
-      });
+      } else {
+        resolve(false);
+      }
 
+    })
   },
   httpFail() {
     this.setData({ loading: false });
@@ -298,5 +333,12 @@ CommonPage({
     }
     data.studentCheckIds = studentCheckIds
     this.setData(data);
+  },
+  //弃用
+  setShowChangeYearRange() {
+    // let classHasActive: boolean = Data.garten.curStudents.filter((value) => value.activate).length > 0
+    // this.setData({
+    //   canChangeYearRange: (!classHasActive && (Data.user.curUser.role == ROLE_TYPE.teacher || Data.user.curUser.role == ROLE_TYPE.leader)) || (Data.user.curUser.role == ROLE_TYPE.manager && Data.user.managerType == MANAGER_TYPE.best),
+    // })
   }
 });

+ 9 - 2
miniprogram/pages/classroom/classroom.wxml

@@ -21,7 +21,7 @@
                 </view>
                 <view wx:if="{{item.pay}}" class="cu-tag radius bg-green sm">已报名</view>
                 <view wx:if="{{!item.pay}}" class="cu-tag radius bg-red sm">未报名</view>
-                <view wx:if="{{item.activate}}" class="cu-tag radius bg-green sm">已激活</view>
+                <view wx:if="{{item.activate}}" class="cu-tag radius bg-green sm">{{ classes[classIndex].activateType==1?"试用":"已激活"}}</view>
                 <view wx:if="{{!item.activate}}" class="cu-tag radius bg-red sm">未激活</view>
             </van-checkbox>
         </van-checkbox-group>
@@ -56,4 +56,11 @@
 </view>
 
 <operateStudent wx:if="{{showStudentInfo}}" idAddStudent="{{idAddStudent}}" student="{{curStudent}}" bindclose="onOperateStudentClose"></operateStudent>
-<van-dialog id="van-dialog" />
+<van-dialog id="van-dialog" />
+
+<van-dialog use-slot title="提示" show="{{ showOperateDialog }}" show-cancel-button beforeClose="{{operateStudentReqSure}}" bind:cancel="onOperateStudentReqclose">
+    <van-cell-group border="{{ false }}">
+        <view class="flex-center padding-tb">{{ operateMessage}}</view>
+        <van-field wx:if="{{ operateType==2 && curUser.role!=4}}" show-word-limit maxlength="{{20}}" value="{{ remark }}" label="删除原因" type="textarea" placeholder="请输入删除原因" autosize bindchange="onOperateStudentReqRemark" />
+    </van-cell-group>
+</van-dialog>

+ 1 - 2
miniprogram/pages/classroom/operateStudent.ts

@@ -1,4 +1,4 @@
-import { guardianArr, guardianStr} from "../../script/config/GlobalConfig";
+import { guardianArr, guardianStr } from "../../script/config/GlobalConfig";
 import { HttpUrl } from "../../script/config/HttpConfig";
 import { Mgr, Data } from "../../script/MainControl";
 import { ArrayUtils } from "../../script/utils/ArrayUtils";
@@ -39,7 +39,6 @@ Component({
                     inviteStr = `${invite.nickname}(${invite.roleName})的${accountType != GUARDIAN_TYPE.other ? guardianStr[accountType] : '监护人'}邀请您加入${classroom.className}`
                     this.data.student.name = invite.nickname
                     this.data.student.sex = invite.sex
-                    this.data.student.accountTel = this.data.student.tel
                     this.data.student.tel = invite.tel
                     this.data.student.id = invite.id
                 }

+ 9 - 3
miniprogram/pages/createGarten/createGarten.ts

@@ -5,7 +5,7 @@ import { WxUtils } from "../../script/utils/WxUtils";
 import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
 import { createStoreBindings } from "mobx-miniprogram-bindings";
 import CommonPage from "../CommonPage";
-import { ROLE_TYPE } from "../../script/enums/Enum";
+import { MANAGER_TYPE, ROLE_TYPE } from "../../script/enums/Enum";
 import { DateUtils } from "../../script/utils/DateUtils";
 import { isObservableObject, toJS } from "mobx-miniprogram";
 // pages/createGarten/createGarten.ts
@@ -196,9 +196,15 @@ CommonPage({
   },
   onShow() {
     this.setData({ stepValue: this.data.garten.classes.length })
-    let tempArr = Data.user.isMainManager ? activeAllDayArr : activeDayArr
+    let tempArr = Data.user.managerType == MANAGER_TYPE.best ? activeAllDayArr : activeDayArr
     let days: string[] = []
-    tempArr.forEach((item) => { days.push(item + '天') })
+    tempArr.forEach((item) => {
+      if (item != 180) {
+        days.push(item + '天')
+      } else {
+        days.push('学期版')
+      }
+    })
     this.setData({ days: days });
 
   },

+ 1 - 1
miniprogram/pages/createGarten/createGarten.wxml

@@ -29,7 +29,7 @@
     <van-cell wx:if="{{editGarten}}" title="建园时间">{{garten.createDateStr}}
     </van-cell>
 </van-cell-group>
-<van-cell-group wx:if="{{curUser.role==4}}" title="业务管理">
+<van-cell-group wx:if="{{curUser.role==4 && editGarten}}" title="业务管理">
     <view class="cu-bar bg-white solid-bottom">
         <view class="action">
             <text>设备数量:{{devices.length}}</text>

+ 43 - 25
miniprogram/pages/garten/bindGarten.ts

@@ -8,29 +8,50 @@ Page({
      * 页面的初始数据
      */
     data: {
-        device: { sn: '', code: '', organId: '' },
+        organId: '',
+        snList: [],
+        unBindCount: 0,
+        device: { sn: '', androidId: '', } as any,
+        showSnList: false,
     },
     onDeviceChange(e: any) {
-        this.data.device.sn = e.detail
-        this.setData({ device: this.data.device })
+        this.data.device[`${e.currentTarget.id}`] = e.detail.value != undefined ? e.detail.value : e.detail
+        this.setData({
+            device: this.data.device,
+        });
     },
     onSNGet() {
         wx.scanCode({
             onlyFromCamera: true,
             success: (res: any) => {
-                if (res.scanType == 'CODE_128' && res.result) {
-                    this.data.device.sn = res.result
+                if (res.scanType == 'QR_CODE' && res.result && res.result.length == 18) {
+                    this.data.device.sn = res.result.slice(0, 14)
                     this.setData({ device: this.data.device })
                 } else {
-                    WxUtils.toast('扫码失败,请对准产品查询号')
+                    WxUtils.toast('扫码失败,请对准产品查询号二维码')
                 }
 
             },
-            scanType: ['barCode']
+            scanType: ['qrCode']
+        })
+    },
+    onCodeGet() {
+        wx.scanCode({
+            onlyFromCamera: true,
+            success: (res: any) => {
+                if (res.scanType == 'QR_CODE' && res.result) {
+                    this.data.device.androidId = res.result
+                    this.setData({ device: this.data.device })
+                } else {
+                    WxUtils.toast('扫码失败,请对准设备二维号')
+                }
+
+            },
+            scanType: ['qrCode']
         })
     },
     onBindClick() {
-        if (!this.data.device.code || !this.data.device.sn || !this.data.device.organId) {
+        if (!this.data.device.androidId || !this.data.device.sn) {
             WxUtils.toast('信息为空')
             return
         }
@@ -40,37 +61,34 @@ Page({
             data: this.data.device,
             success: () => {
                 WxUtils.toast('绑定成功', 'success')
-                this.data.device.code = ''
+                this.data.device.androidId = ''
                 this.data.device.sn = ''
                 this.setData({ device: this.data.device })
-                this.requestDevice()
+                this.requestSnList()
             },
         });
     },
+    onSNListCheck() {
+        this.setData({ showSnList: true })
+    },
+    hideSnList() {
+        this.setData({ showSnList: false })
+    },
     onLoad() {
         const eventChannel = this.getOpenerEventChannel()
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('acceptDataFromOpenerPage', (data) => {
-            this.data.device.organId = data.garten.id
-            this.setData({ device: this.data.device })
-            this.requestDevice()
+            this.setData({ organId: data.garten.id })
+            this.requestSnList()
         })
     },
-    requestDevice() {
+    requestSnList() {
         Mgr.http.request({
-            url: HttpUrl.firstNoSn,
+            url: HttpUrl.snList,
             method: "POST",
-            data: this.data.device,
+            data: { organId: this.data.organId },
             success: (data) => {
-                let device = data.data
-                if (device) {
-                    this.data.device.code = device.code
-                    this.data.device.sn = ''
-                    this.setData({ device: this.data.device })
-                } else {
-                    WxUtils.toast('暂无待绑定设备')
-                    wx.navigateBack()
-                }
+                this.setData({ snList: data.data, unBindCount: data.data.filter((item: any) => item.androidId == '').length })
             },
         });
     }

+ 23 - 5
miniprogram/pages/garten/bindGarten.wxml

@@ -3,14 +3,32 @@
     <view slot="backText">返回</view>
     <view slot="content">设备绑定</view>
 </cu-custom>
-<van-cell-group title="设备信息">
-    <van-cell title="设备编码" type="number" title-width='4em'>
-        {{device.code}}
-    </van-cell>
+<van-cell-group title="SN码信息">
+    <view class="cu-bar bg-white padding-tb">
+        <view class="action">
+            待绑定SN码:{{unBindCount}}/{{snList.length}}
+        </view>
+        <view class="action">
+            <button class="cu-btn bg-blue shadow" bindtap="onSNListCheck">查看</button>
+        </view>
+    </view>
+</van-cell-group>
+<van-cell-group title="设备绑定">
+    <van-field id="androidId" value="{{device.androidId}}" bind:change="onDeviceChange" clearable label="设备二维码" use-button-slot title-width='10em'>
+        <van-button icon="scan" slot="button" bind:click="onCodeGet" size="small"></van-button>
+    </van-field>
     <van-field id="sn" value="{{device.sn}}" bind:change="onDeviceChange" clearable label="产品查询号(SN)" use-button-slot title-width='10em'>
         <van-button icon="scan" slot="button" bind:click="onSNGet" size="small"></van-button>
     </van-field>
 </van-cell-group>
 <view class="padding-tb flex">
     <button class="cu-btn round lines-blue shadow popup_btn" bindtap="onBindClick">绑定</button>
-</view>
+</view>
+<van-popup show="{{showSnList}}" round bind:close="hideSnList" custom-class="popup" custom-style="background-color:#f7f8fa">
+    <scroll-view scroll-y class="padding-tb-sm padding-lr-xs" style="height: 800rpx;">
+        <view wx:for="{{snList}}" class="text-sm padding-xs margin-bottom-xs radius shadow bg-white">
+            <view>SN码:{{item.snCode}}</view>
+            <view>设备码:{{item.androidId}}</view>
+        </view>
+    </scroll-view>
+</van-popup>

+ 2 - 1
miniprogram/pages/garten/garten.ts

@@ -232,8 +232,9 @@ CommonPage({
                     }
                     allApply += item.applyActivateCount
                 })
-                this.setData({ allApply, searchGartens: res.data, allGartens: res.data })
+                this.setData({ allApply, allGartens: res.data })
                 Data.garten.gartens = res.data
+                this.onSearchClick()
             },
         })
     },

+ 3 - 2
miniprogram/pages/garten/garten.wxml

@@ -19,7 +19,7 @@
         <view>当前园所数量:{{gartens.length}}</view>
         <view>当前报名总人数:{{allApply}}</view>
     </view>
-    <scroll-view scroll-y class="padding-tb-sm padding-left-xs garten-sv">
+    <scroll-view scroll-y class="padding-tb-sm padding-left-xs garten-sv" style="--CustomBar--:{{CustomBar}}px;">
         <van-checkbox-group direction="horizontal" value="{{ checkIds }}" bind:change="onGartencheck">
             <van-checkbox custom-class="padding-bottom-xs" wx:for="{{ searchGartens }}" wx:key="id" name="{{ item.id }}" label-disabled>
                 <view class='padding-xs flex justify-between  radius shadow bg-white  align-center' style="width: 660rpx;" bindtap="onGartenclick" data-garten="{{ item }}">
@@ -53,7 +53,7 @@
             </van-checkbox>
         </van-checkbox-group>
     </scroll-view>
-    <view wx:if="{{managers.length>0}}" class="student-bottom padding-tb  bg-white shadow">
+    <view wx:if="{{managers.length>0}}" class="operate-bottom padding-tb  bg-white shadow">
         <view class="padding-lr padding-bottom-xs flex align-center justify-between">
             <van-checkbox value="{{ allCheck }}" bind:change="onAllGartenCheck">全选</van-checkbox>
         </view>
@@ -75,6 +75,7 @@
                 <view wx:if="{{item.obj.role==0&&!item.obj.pay}}" class="cu-tag radius bg-red sm">未报名</view>
                 <view wx:if="{{item.obj.role==0&&item.obj.activate}}" class="cu-tag radius bg-green sm">已激活</view>
                 <view wx:if="{{item.obj.role==0&&!item.obj.activate}}" class="cu-tag radius bg-red sm">未激活</view>
+                <view wx:if="{{item.remark!=''}}" class="cu-tag radius bg-red sm">{{item.remark}}</view>
             </van-checkbox>
         </van-checkbox-group>
     </scroll-view>

+ 26 - 2
miniprogram/pages/garten/garten.wxss

@@ -1,13 +1,37 @@
+@import "../classroom/classroom.wxss";
+
+page {
+    --bottomHeight: calc(100rpx + env(safe-area-inset-bottom) / 2);
+    --operateHeight: 170rpx;
+}
+
+
 .garten-sv {
-    height: 800rpx;
+    height: calc(100vh - calc(75px + var(--CustomBar--) + var(--bottomHeight) + var(--operateHeight)));
 }
 
+
 .garten-name {
     width: 200rpx;
 }
 
 .address-name {
-    max-width: 200rpx;
+    max-width: 160px;
+}
+
+.team-name {
+    max-width: 140rpx;
+}
+
+.teammanager-name {
+    max-width: 60rpx;
+}
+
+.operate-bottom {
+    height: var(--operateHeight);
+    position: absolute;
+    bottom: var(--bottomHeight);
+    width: 100%;
 }
 
 .btns-view {

+ 1 - 1
miniprogram/pages/garten/searchGarten.wxml

@@ -15,7 +15,7 @@
   <block wx:for="{{list}}" wx:key>
     <view class="indexItem-{{list[index]}}" id="indexes-{{list[index]}}" data-index="{{list[index]}}"></view>
     <view class="cu-list no-padding">
-      <view wx:for="{{searchGartens[list[index]]}}" class="cu-item bg-white padding-tb-xs {{curGarten.id==item.id?'solids':''}}" bindtap="onGartenClick" data-garten="{{item}}">
+      <view wx:for="{{searchGartens[list[index]]}}" class="cu-item padding-tb-xs {{curGarten.id==item.id?'bg-blue':'bg-white'}}" bindtap="onGartenClick" data-garten="{{item}}">
         <text>{{item.company}}({{item.province_name}}{{item.city_name}}{{item.district_name}}{{item.address}})</text>
       </view>
     </view>

+ 3 - 1
miniprogram/pages/main/main.json

@@ -1,6 +1,8 @@
 {
   "usingComponents": {
     "operateStudent": "../classroom/operateStudent",
-    "operateTeacher": "../teacher/operateTeacher"
+    "operateTeacher": "../teacher/operateTeacher",
+    "updateHomeWork": "../teacher/updateHomeWork",
+    "recodeFace": "../teacher/recodeFace"
   }
 }

+ 21 - 4
miniprogram/pages/main/main.ts

@@ -6,6 +6,7 @@ import { Data, Mgr } from "../../script/MainControl";
 import { WxUtils } from "../../script/utils/WxUtils";
 import CommonPage from "../CommonPage";
 import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
+import { DateUtils } from "../../script/utils/DateUtils";
 CommonPage({
   data: {
     showAccountChange: false,
@@ -30,7 +31,9 @@ CommonPage({
     showApplyList: false,
     loading: false,
     applyList: [],
-    checkIds: []
+    checkIds: [],
+    showUpdateHomeWork: false,
+    showFaceRecode: false,
   },
   onGameClick() {
     wx.navigateTo({ url: "./game" })
@@ -134,6 +137,18 @@ CommonPage({
   onGartenRefuseClick() {
     this.requestActivateAudit('驳回', 2)
   },
+  onShowUpdateHomeWork() {
+    this.setData({ showUpdateHomeWork: true })
+  },
+  onUpdateHomeWorkClose() {
+    this.setData({ showUpdateHomeWork: false })
+  },
+  onFaceShowClick() {
+    this.setData({ showFaceRecode: true })
+  },
+  onFaceRecodeClose() {
+    this.setData({ showFaceRecode: false })
+  },
   onLoad() {
     this.storeBindings = createStoreBindings(this, {
       fields: { users: () => Data.user.users, curUser: () => Data.user.curUser }
@@ -153,6 +168,7 @@ CommonPage({
         name: '',
         sex: 1,
         tel: Data.user.curUser.tel,
+        accountTel: Data.user.curUser.accountTel,
         invite: JSON.parse(Data.user.loginQueryData.invite),
         accountName: '',
         accountType: 0,
@@ -286,7 +302,8 @@ CommonPage({
           applyList: data.deviceApplyActivateList
         })
         Data.user.managers = data.managers
-        Data.user.isMainManager = data.isMainManager
+        Data.user.managerType = data.managerType
+        Data.user.globalExpireDate = DateUtils.Format('yyyy-MM-dd', parseInt(data.globalExpireDate))
       }
     }
   },
@@ -312,7 +329,7 @@ CommonPage({
       }
     })
   },
-  requestActivateAudit(message: string, status: number = 0) {
+  requestActivateAudit(message: string, state: number = 0) {
     if (this.data.checkIds.length == 0) {
       WxUtils.toast('未选择幼儿园')
       return
@@ -325,7 +342,7 @@ CommonPage({
         this.setData({ loading: true })
         let data: any = {}
         data.ids = this.data.checkIds
-        data.status = status
+        data.state = state
         Mgr.http.request({
           url: HttpUrl.activateAudit,
           method: 'POST',

+ 14 - 1
miniprogram/pages/main/main.wxml

@@ -35,6 +35,18 @@
                     <text class="text-grey">未完成作业人人数:</text>
                     <text class="text-grey">{{unfinishedPeople}}</text>
                 </view>
+                <view class="action">
+                    <button class="cu-btn bg-blue shadow" bindtap="onShowUpdateHomeWork">布置作业</button>
+                </view>
+            </view>
+            <view class="cu-item">
+                <view class="content">
+                    <text class="cuIcon-rank text-brown"></text>
+                    <text class="text-grey">人脸采集</text>
+                </view>
+                <view class="action">
+                    <button class="cu-btn bg-blue shadow" bindtap="onFaceShowClick">采集</button>
+                </view>
             </view>
         </view>
     </view>
@@ -226,7 +238,8 @@
 
 <operateStudent wx:if="{{isInviteStudent}}" isInvite="true" student="{{curInviteStudent}}" bindclose="onOperateStudentClose" bindfresh="requestMain"></operateStudent>
 <operateTeacher wx:if="{{isInviteTeacher}}" isInvite="true" teacher="{{curInviteTeacher}}" curClasses="{{curInviteClasses}}" bindclose="onOperateTeacherClose" bindfresh="requestMain"></operateTeacher>
-
+<updateHomeWork wx:if="{{showUpdateHomeWork}}" bindclose="onUpdateHomeWorkClose"></updateHomeWork>
+<recodeFace wx:if="{{showFaceRecode}}" bindclose="onFaceRecodeClose"></recodeFace>
 <van-popup show="{{showApplyList}}" bind:close="onhideApplyListClick" custom-class="popup" round>
     <scroll-view scroll-y class="padding-tb-sm padding-left-xs" style="height: 600rpx;">
         <van-checkbox-group value="{{ checkIds }}" bind:change="onGartenCheck">

+ 23 - 1
miniprogram/pages/my/my.ts

@@ -109,12 +109,34 @@ CommonPage({
     Mgr.storage.delete(Mgr.storage.ONLY_TAG + Mgr.storage.RELEASE_TAG + 'mobile')
     wx.reLaunch({ url: '../login/login' })
   },
+  globalExpireDateChange(e: any) {
+    Mgr.http.request({
+      url: HttpUrl.updateGlobalExpireDate,
+      method: 'POST',
+      data: {
+        date: new Date(e.detail.value).getTime(),
+      },
+      success: () => {
+        Data.user.globalExpireDate = e.detail.value
+      },
+    })
+  },
   onOperateStudentClose() {
     this.setData({ isInviteStudent: false })
   },
+  onUnBindUserClick(e: any) {
+    Mgr.http.request({
+      url: HttpUrl.delAccount,
+      method: 'POST',
+      data: e.currentTarget.dataset.account,
+      success: () => {
+        this.requestUsers()
+      },
+    })
+  },
   onLoad() {
     this.storeBindings = createStoreBindings(this, {
-      fields: { curUser: () => Data.user.curUser }
+      fields: { curUser: () => Data.user.curUser, managerType: () => Data.user.managerType, globalExpireDate: () => Data.user.globalExpireDate }
     });
   },
   onUnload() {

+ 19 - 3
miniprogram/pages/my/my.wxml

@@ -48,12 +48,28 @@
         </view>
     </view>
     <view wx:if="{{curUser.role==0}}" class="cu-list menu sm-border">
-        <view class="cu-item">
+        <view wx:for="{{curUser.accountList}}" class="cu-item">
             <view class="content">
                 <text class="cuIcon-people text-blue"></text>
-                <text class="text-grey">{{curUser.currentAccount.typeName}}:</text>
-                <text class="text-grey">{{curUser.currentAccount.accountName}}</text>
+                <text class="text-grey">{{item.typeName}}{{item.isCreate?"(家庭管理员)":""}}:</text>
+                <!-- {{item.tel==curUser.accountTel?"(我)":""}} -->
+                <text class="text-grey">{{item.accountName}}</text>
             </view>
+            <view class="action" wx:if="{{(curUser.isCreate && item.tel!=curUser.accountTel) || (!curUser.isCreate && item.tel==curUser.accountTel)}}">
+                <button class="cu-btn bg-blue shadow" bindtap="onUnBindUserClick" data-account="{{item}}">解绑</button>
+            </view>
+        </view>
+    </view>
+    <view wx:if="{{curUser.role==4 && managerType==2}}" class="cu-bar bg-white solid-bottom">
+        <view class="action">
+            <text class="cuIcon-title text-blue "></text> 激活时间节点
+        </view>
+        <view class="action">
+            <picker mode="date" value="{{globalExpireDate}}" start="2022-02-21" end="2030-09-01" bindchange="globalExpireDateChange">
+                <view class="picker">
+                    {{globalExpireDate}}<text class="cuIcon-right"></text>
+                </view>
+            </picker>
         </view>
     </view>
     <view class='cu-tabbar-height'></view>

+ 1 - 1
miniprogram/pages/teacher/operateTeacher.ts

@@ -38,7 +38,7 @@ Component({
             if (this.data.teacher && this.data.teacher.garten) {
                 let garten = this.data.teacher.garten
                 let invite = this.data.teacher.invite
-                this.setData({ inviteStr: `${invite.nickname}(${invite.roleName})邀请您加入${garten.company}` })
+                this.setData({ inviteStr: `${invite.nickname}(${invite.roleName})邀请您加入${garten.company}教师团队` })
             }
 
         },

+ 4 - 0
miniprogram/pages/teacher/recodeFace.json

@@ -0,0 +1,4 @@
+{
+    "component": true,
+    "usingComponents": {}
+}

+ 154 - 0
miniprogram/pages/teacher/recodeFace.ts

@@ -0,0 +1,154 @@
+import { HttpUrl } from "../../script/config/HttpConfig"
+import { Data, Mgr } from "../../script/MainControl"
+import { WxUtils } from "../../script/utils/WxUtils"
+
+// pages/teacher/recodeFace.ts
+Component({
+    options: {
+        addGlobalClass: true,
+    },
+    /**
+     * 组件的属性列表
+     */
+    properties: {
+
+    },
+
+    /**
+     * 组件的初始数据
+     */
+    data: {
+        checkIds: '',
+        intervalId: [] as number[],
+        students: [] as any,
+    },
+    lifetimes: {
+        // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
+        attached: function () {
+            this.setData({ students: [] })
+            let data: any = {}
+            data.classId = Data.user.curUser.classId
+            let recodeFunc = () => {
+                Mgr.http.request({
+                    url: HttpUrl.rolesList,
+                    data,
+                    method: 'POST',
+                    success: (res) => {
+                        let resData = res.data
+                        let classes = resData.find((value: any) => value.id == Data.user.curUser.classId)
+                        if (classes) {
+                            this.setData({ students: classes.roles })
+                        }
+                        this.data.students.forEach((student: any, index: number) => {
+                            this.data.intervalId.push(setTimeout(() => {
+                                Mgr.http.request({
+                                    url: HttpUrl.faceGet + '?access_token=' + Data.user.baiduToken,
+                                    method: 'POST',
+                                    data: {
+                                        group_id: Data.user.curUser.appKey,
+                                        user_id: student.id,
+                                    },
+                                    success: (faceres) => {
+                                        if (faceres.error_code > 0) {
+                                            student.hasFace = false
+                                        } else {
+                                            student.hasFace = faceres.result.face_list.length > 0
+                                        }
+                                        this.setData({ students: this.data.students })
+                                    },
+                                })
+                            }, 100 * index))
+
+                        });
+
+                    },
+                })
+            }
+            if (Data.user.baiduToken) {
+                recodeFunc()
+            } else {
+                Mgr.http.request({
+                    url: HttpUrl.baiduToken,
+                    data: {},
+                    method: 'POST',
+                    success: (res) => {
+                        Data.user.baiduToken = res.access_token
+                        recodeFunc()
+                    },
+                })
+            }
+        },
+        moved: function () { },
+        detached: function () {
+            if (this.data.intervalId.length > 0) {
+                this.data.intervalId.forEach((item) => {
+                    clearTimeout(item)
+                })
+            }
+            this.data.intervalId = []
+        },
+    },
+    /**
+     * 组件的方法列表
+     */
+    methods: {
+        onhideClick() {
+            this.triggerEvent('close', {}, {})
+        },
+        onstudentCheck(e: any) {
+            this.setData({
+                checkIds: e.detail,
+            });
+        },
+        onPictureClick() {
+            if (!Data.user.baiduToken) {
+                WxUtils.toast('请稍后,查询人脸数据中')
+                return
+            }
+            if (!this.data.checkIds) {
+                WxUtils.toast('请选择学生')
+                return
+            }
+            let hasFace
+            this.data.students.forEach((student: any) => {
+                if (student.id == this.data.checkIds) hasFace = student.hasFace
+            });
+            if (hasFace == undefined) {
+                WxUtils.toast('请稍后,查询人脸数据中')
+                return
+            }
+            wx.chooseMedia({
+                count: 1,
+                mediaType: ['image'],
+                sourceType: ['album', 'camera'],
+                camera: 'back',
+                success: (res) => {
+                    Mgr.http.request({
+                        url: HttpUrl.faceAdd + '?access_token=' + Data.user.baiduToken,
+                        method: 'POST',
+                        data: {
+                            image: wx.getFileSystemManager().readFileSync(res.tempFiles[0].tempFilePath, 'base64', 0),
+                            image_type: 'BASE64',
+                            group_id: Data.user.curUser.appKey,
+                            user_id: this.data.checkIds,
+                            action_type: 'REPLACE',
+                        },
+                        success: (data) => {
+                            if (data.error_code > 0) {
+                                WxUtils.toast('人脸添加失败:' + data.error_code + ',' + data.error_msg)
+                            } else {
+                                WxUtils.toast('人脸添加成功')
+                                this.data.students.forEach((student: any) => {
+                                    if (student.id == this.data.checkIds) student.hasFace = true
+                                });
+                                this.setData({ students: this.data.students })
+                            }
+                        },
+                    })
+
+                }
+            })
+
+        }
+    }
+})

+ 17 - 0
miniprogram/pages/teacher/recodeFace.wxml

@@ -0,0 +1,17 @@
+<!--pages/teacher/recodeFace.wxml-->
+<van-popup show bind:close="onhideClick" custom-class="popup" round>
+    <scroll-view scroll-y class="padding-tb-sm student-sv padding-left-xs" style="height: 600rpx;">
+        <van-radio-group direction="horizontal" value="{{ checkIds }}" bind:change="onstudentCheck">
+            <van-radio wx:for="{{ students }}" wx:key="id" name="{{ item.id }}" label-disabled custom-class="van-checkbox-margin-right">
+                <view>
+                    <button class="cu-btn round line-black padding-lr-xs" data-student="{{item}}"><text class="student-name text-content">{{item.name}}</text></button>
+                </view>
+                <view wx:if="{{item.hasFace}}" class="cu-tag radius bg-green sm">已采集</view>
+                <view wx:if="{{!item.hasFace}}" class="cu-tag radius bg-red sm">未采集</view>
+            </van-radio>
+        </van-radio-group>
+    </scroll-view>
+    <view class="flex flex-center padding-tb  bg-white shadow">
+        <van-button color="#0081ff" plain size="small" bind:click="onPictureClick">采集</van-button>
+    </view>
+</van-popup>

+ 4 - 0
miniprogram/pages/teacher/recodeFace.wxss

@@ -0,0 +1,4 @@
+/* pages/teacher/recodeFace.wxss */
+.popup {
+    width: 80%;
+}

+ 58 - 29
miniprogram/pages/teacher/teacher.ts

@@ -8,7 +8,6 @@ import { Data, Mgr } from "../../script/MainControl";
 import { ArrayUtils } from "../../script/utils/ArrayUtils";
 import { WxUtils } from "../../script/utils/WxUtils";
 import CommonPage from '../CommonPage';
-import Dialog from '../../miniprogram_npm/@vant/weapp/dialog/dialog';
 // pages/teacher/teacher.ts
 const app = getApp();
 CommonPage({
@@ -25,6 +24,12 @@ CommonPage({
     loading: false,
     classIndex: 0,
     CustomBar: app.globalData.CustomBar,
+    remark: '',
+    operateType: 0,
+    operateMessage: '',
+    showOperateDialog: false,
+    operateData: {},
+    operateStudentReqSure: null
   },
 
   onTeacherClick(e: any) {
@@ -88,6 +93,14 @@ CommonPage({
   onChangeGartenClick() {
     wx.navigateTo({ url: '../garten/searchGarten' })
   },
+  onOperateTeacherReqclose() {
+    this.setData({ showOperateDialog: false });
+  },
+  onOperateTeacherReqRemark(e: any) {
+    this.setData({
+      remark: e.detail,
+    });
+  },
   /**
    * 生命周期函数--监听页面加载
    */
@@ -95,6 +108,9 @@ CommonPage({
     this.storeBindings = createStoreBindings(this, {
       fields: { teachers: () => Data.garten.teachers, classes: () => Data.garten.classes, curClassId: () => Data.garten.curClassId, curGarten: () => Data.garten.curGarten, curUser: () => Data.user.curUser }
     });
+    this.setData({
+      operateTeacherReqSure: this.getOperateTeacherReqSure
+    })
   },
   /**
    * 生命周期函数--监听页面卸载
@@ -165,39 +181,50 @@ CommonPage({
       WxUtils.toast('未选择老师')
       return
     }
-
-    Dialog.confirm({
-      title: '提示',
-      message: `确认${message}吗?`,
+    let data: any = {}
+    data.action = action
+    data.roles = Data.garten.teachers.filter((item) => this.data.checkIds.indexOf(item.id) >= 0)
+    if (classId) {
+      data.roles.forEach((element: any) => {
+        let classroom = Data.garten.classes.find((item: IClassInfo) => item.classId == classId) as IClassInfo
+        element.classId = classId
+        element.className = classroom.className
+      });
+    }
+    this.setData({
+      operateType: action,
+      operateMessage: '确认' + message + '吗?',
+      showOperateDialog: true,
+      remark: '',
+      operateData: data,
     })
-      .then(() => {
-        // on confirm
-        let data: any = {}
-        data.action = action
-
-        data.roles = Data.garten.teachers.filter((item) => this.data.checkIds.indexOf(item.id) >= 0)
-        if (classId) {
-          data.roles.forEach((element: any) => {
-            let classroom = Data.garten.classes.find((item: IClassInfo) => item.classId == classId) as IClassInfo
-            element.classId = classId
-            element.className = classroom.className
-          });
+  },
+  getOperateTeacherReqSure(action: string) {
+    return new Promise((resolve) => {
+      if (action === 'confirm') {
+        let isManager = Data.user.curUser.role == ROLE_TYPE.manager
+        if (!this.data.remark && this.data.operateType == 2 && !isManager) {
+          WxUtils.toast('请填写删除原因')
+          resolve(false)
+          return
         }
+        this.data.operateData.remark = this.data.remark
         this.setData({
           loading: true
         });
         Mgr.http.request({
           url: HttpUrl.rolesAction,
           method: 'POST',
-          data,
+          data: this.data.operateData,
           success: (res) => {
-            this.setData({ loading: false });
+            resolve(true)
+            this.setData({ loading: false, showOperateDialog: false });
             let teachers = Data.garten.teachers.slice()
-            switch (action) {
+            switch (this.data.operateType) {
               case 2:
-                WxUtils.toast('删除成功', 'success')
-                ArrayUtils.updateArrayByOperate(teachers, res.data.roles, 2, 'id')
-                Data.garten.teachers = teachers
+                WxUtils.toast('删除提交成功', 'success')
+                // ArrayUtils.updateArrayByOperate(teachers, res.data.roles, 2, 'id')
+                // Data.garten.teachers = teachers
                 break
               case 3:
                 ArrayUtils.updateArrayByOperate(teachers, res.data.roles, 3, 'id')
@@ -211,14 +238,16 @@ CommonPage({
                 break
             }
           },
-          fail: this.httpFail
+          fail: () => {
+            resolve(false)
+            this.httpFail()
+          }
         })
-      })
-      .catch(() => {
-        // on cancel
-      });
-
+      } else {
+        resolve(false);
+      }
 
+    })
   },
   httpFail() {
     this.setData({ loading: false });

+ 8 - 1
miniprogram/pages/teacher/teacher.wxml

@@ -38,4 +38,11 @@
     </view>
 </view>
 <operateTeacher wx:if="{{showTeacherInfo}}" idAdd="{{idAdd}}" teacher="{{curTeacher}}" curClasses="{{classes}}" bindclose="hideTeacherInfo"></operateTeacher>
-<van-dialog id="van-dialog" />
+<van-dialog id="van-dialog" />
+
+<van-dialog use-slot title="提示" show="{{ showOperateDialog }}" show-cancel-button beforeClose="{{operateTeacherReqSure}}" bind:cancel="onOperateTeacherReqclose">
+    <van-cell-group border="{{ false }}">
+        <view class="flex-center padding-tb">{{ operateMessage}}</view>
+        <van-field wx:if="{{ operateType==2 && curUser.role!=4}}" show-word-limit maxlength="{{20}}" value="{{ remark }}" label="删除原因" type="textarea" placeholder="请输入删除原因" autosize bindchange="onOperateTeacherReqRemark" />
+    </van-cell-group>
+</van-dialog>

+ 4 - 0
miniprogram/pages/teacher/updateHomeWork.json

@@ -0,0 +1,4 @@
+{
+    "component": true,
+    "usingComponents": {}
+}

+ 74 - 0
miniprogram/pages/teacher/updateHomeWork.ts

@@ -0,0 +1,74 @@
+import { yearRangeSeme } from "../../script/config/GlobalConfig";
+import { HttpUrl } from "../../script/config/HttpConfig";
+import { SemeGirdCfg } from "../../script/config/SemeGirdCfg";
+import { Data, Mgr } from "../../script/MainControl";
+import { WxUtils } from "../../script/utils/WxUtils";
+
+// pages/teacher/updateHomeWork.ts
+Component({
+    options: {
+        addGlobalClass: true,
+    },
+    /**
+     * 组件的属性列表
+     */
+    properties: {
+
+    },
+
+    /**
+     * 组件的初始数据
+     */
+    data: {
+        checkIds: [],
+        semeItemCfg: [] as any,
+    },
+    lifetimes: {
+        // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
+        attached: function () {
+            this.setData({
+                semeItemCfg: SemeGirdCfg.SemeCfg.find(value => value.id == yearRangeSeme[Data.user.curUser.yearRange])?.type
+            })
+            Mgr.http.request({
+                url: HttpUrl.getLockInfo,
+                method: 'POST',
+                data: { classId: Data.user.curUser.classId },
+                success: (res) => {
+                    this.data.checkIds = res.data
+                    this.setData({
+                        checkIds: res.data
+                    })
+                },
+            })
+        },
+        moved: function () { },
+        detached: function () { },
+    },
+    /**
+     * 组件的方法列表
+     */
+    methods: {
+        onCheck(e: any) {
+            this.setData({
+                checkIds: e.detail,
+            });
+        },
+        onSureClick() {
+            if (!this.data.checkIds.length) {
+                WxUtils.toast('请选择课程')
+                return
+            }
+            Mgr.http.request({
+                url: HttpUrl.updateLock,
+                method: 'POST',
+                data: { classId: Data.user.curUser.classId, gameIds: this.data.checkIds },
+                success: () => {
+                    WxUtils.toast('布置作业成功')
+                },
+            })
+        },
+        onhideClick() {
+            this.triggerEvent('close', {}, {})
+        },
+    }
+})

+ 14 - 0
miniprogram/pages/teacher/updateHomeWork.wxml

@@ -0,0 +1,14 @@
+<van-popup show bind:close="onhideClick" custom-class="popup" round>
+    <view class="padding-tb padding-left-xs">
+        <van-checkbox-group value="{{ checkIds }}" bind:change="onCheck" direction="horizontal">
+            <van-checkbox wx:for="{{ semeItemCfg }}" wx:key="id" name="{{ item.id }}">
+                <view class="padding-tb-xs">
+                    <button class="cu-btn line-black padding-lr-xs" data-seme="{{item}}"><text class="text-content">{{item.name}}</text></button>
+                </view>
+            </van-checkbox>
+        </van-checkbox-group>
+    </view>
+    <view class="flex flex-center padding-tb  bg-white shadow">
+        <van-button color="#0081ff" plain size="small" bind:click="onSureClick">确定</van-button>
+    </view>
+</van-popup>

+ 4 - 0
miniprogram/pages/teacher/updateHomeWork.wxss

@@ -0,0 +1,4 @@
+/* pages/teacher/updateHomeWork.wxss */
+.popup {
+    width: 80%;
+}

+ 1 - 0
miniprogram/script/config/GlobalConfig.ts

@@ -21,6 +21,7 @@ export let semeStr = {
     561: '5-6岁(上)',
     562: '5-6岁(下)',
 }
+export let yearRangeSeme = [231, 232, 341, 342, 451, 452, 561, 562]
 export let guardianStr = {
     0: '爸爸',
     1: '妈妈',

+ 12 - 3
miniprogram/script/config/HttpConfig.ts

@@ -1,5 +1,5 @@
-// const base = 'http://192.168.0.120/'
-const base = 'https://api.zhi-edu.com/'
+const base = 'https://dev.zhi-edu.com/'
+//const base = 'https://api.zhi-edu.com/'
 
 /**
  * 请求方法
@@ -22,10 +22,19 @@ export let HttpUrl = {
     delApplyList: base + 'wechat/organ/del_apply_list',
     activate: base + 'wechat/organ/activate',
     delApply: base + 'wechat/organ/deleteMember',
-    firstNoSn: base + 'wechat/device/firstNoSn',
+    snList: base + 'wechat/device/sn_list',
     snBind: base + 'wechat/device/sn_bind',
     changeManager: base + 'wechat/organ/changeManager',
     activateAudit: base + 'wechat/device/activate_audit',
     organManagerData: base + 'wechat/organ/organManagerData',
     activateApply: base + 'wechat/device/activate_apply',
+    updateGlobalExpireDate: base + 'wechat/organ/updateGlobalExpireDate',
+    classUpdate: base + 'wechat/class/update',
+    delAccount: base + 'wechat/user/delAccount',
+    updateLock: base + 'api/classGame/updateLock',
+    getLockInfo: base + 'api/classGame/getLockInfo',
+    baiduToken:
+        'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=XmAuyeXPotyieqoaKiAgajta&client_secret=nrak4G42ta3IwmbVF8FbS7bMMOGbeQoy',
+    faceAdd: 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add',
+    faceGet: 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/face/getlist',
 }

+ 1276 - 0
miniprogram/script/config/SemeGirdCfg.ts

@@ -0,0 +1,1276 @@
+/** @format */
+let TestSemeGirdCfg = [
+    {
+        id: 100,
+        name: '测试玩法',
+        type: [
+            {name: '拖拽类'},
+            {name: '选择类'},
+            {name: '连线类'},
+            {name: '滑动+'},
+            {name: '迷宫+'},
+            {name: '翻卡'},
+            {name: '画图'},
+        ],
+    },
+]
+let ChildSemeColor = [
+    '#58A95F',
+    '#E8723D',
+    '#81CD60',
+    '#FF898C',
+    '#FFA118',
+    '#51C6F1',
+    '#FFA118',
+    '#81509D',
+    '#7C76C9',
+    '#E8659D',
+    '#58A95F',
+    '#59BCC3',
+    '#FF898C',
+    '#13D392',
+    '#8C64C6',
+    '#477AFF',
+]
+let SemeCfg = [
+    {
+        id: 231,
+        name: '2-3上学期',
+        type: [
+            {
+                name: '色彩能力',
+                id: '23101',
+                des:
+                    '根据对颜色的感知,体验到颜色配色带来的乐趣。通过对颜色配色的探索,培养幼儿的观察能力。在观察、分析中获得成功感。',
+                guideTip: [
+                    '认识图中的三种水果,并说出每种水果是什么颜色的。',
+                    '请让小朋友按照水果的颜色,将水果放到对应颜色的柜子里。',
+                ],
+            },
+            {
+                name: '分类能力',
+                id: '23102',
+                des:
+                    '根据对物品的特征,能按其基本概念类别将物品分成两类。通过对物品特征的识别,培养幼儿的分类能力。发展幼儿逻辑思维能力。',
+                guideTip: [
+                    '请小朋友们认识图中的蔬菜和水果,并分别说说它们是什么蔬菜和水果。',
+                    '请让小朋友们准确找到小猴子爱吃的水果和小兔子爱吃的蔬菜是什么。',
+                ],
+            },
+            {
+                name: '图形认知',
+                id: '23103',
+                des:
+                    '认识一些简单的几何图形以及学习理解相关的基本概念和图形的性质。能够正确辨认图形,并说出物品是由哪几种图形组成的。萌发对图形能够组合成不同事物的乐趣,激发幼儿的探索欲望。',
+                guideTip: [
+                    '幼儿园新来了一些图形宝宝,请让小朋友们分别认识一下。',
+                    '每个图形宝宝都有和它形状相同的物品,请让小朋友们分别说说。',
+                ],
+            },
+            {
+                name: '常识认知',
+                id: '23104',
+                des:
+                    '了解更多贴近生活的知识。掌握更多实用性的知识来让他们的生活更加健康。培养幼儿大胆尝试、勇于探索与表达的精神。',
+                guideTip: [
+                    '小胖很喜欢吃面条,仔细思考,图中的三种餐具中,哪种餐具适合吃面呢?',
+                    '小胖用筷子大口大口的吃了起来,适合吃面的餐具是筷子。',
+                    '图中有三种物品,老师想要一束鲜花,应该选择哪个呢?',
+                    '请让小朋友分别认识一下图中的物品,选出老师需要的鲜花。',
+                    '小狗发现小主人生病了,需要去找到医生,请让小朋友帮助小狗找到医生吧!',
+                ],
+            },
+            {
+                name: '空间认知',
+                id: '23105',
+                des:
+                    '建立空间的方位概念。通过对物体空间位置的摆放,培养幼儿的动手能力。引导幼儿学习正确使用方位词来描述物体的位置。',
+                guideTip: [
+                    '图中有三种物品,请让小朋友分别指出在上面、中间、下面的物品。',
+                    '请根据上图中飞机、云朵、小狗的比赛结果为它们颁奖。',
+                ],
+            },
+            {
+                name: '数学识字',
+                id: '23106',
+                des:
+                    '让小孩子感知并识别10以内的数字。通过对数字进行形象化的比喻,加深幼儿对数字感知。引导幼儿发挥丰富的想象力。',
+                guideTip: ['伸出手指从数字1数到数字10,发挥想象力,这些数字像什么物品呢?'],
+            },
+            {
+                name: '数量认知',
+                id: '23107',
+                des:
+                    '正确感知数量,知道数字可以表示相应物品的数量。学会手口一致地点数数量物,并说出总数。引发幼儿对数学的兴趣,在游戏中,感受数学的魅力。',
+                guideTip: ['数字可以代表数量,数字1到数字6分别用多少个物品来表示数量呢?'],
+            },
+            {
+                name: '观察能力',
+                id: '23108',
+                des:
+                    '使幼儿能从几个不同物体中找出相同的物体。通过观察一组物品的色彩、图案等细节发现相同的物品。.培养幼儿的观察能力。',
+                guideTip: [
+                    '请仔细观察图中的袜子,找出形状一样的两只袜子。',
+                    '请仔细观察图中的雪人,找出形态一样的两个雪人。',
+                    '请仔细观察图中的青蛙,找出形态一样的两只青蛙。',
+                ],
+            },
+            {
+                name: '趣味路线',
+                id: '23109',
+                des:
+                    '通过走路线的游戏,引导幼儿大胆用手指画出正确的路线。锻炼幼儿独立思考问题和判断的能力。鼓励幼儿积极活动,体验参与游戏的乐趣。',
+                guideTip: ['小鸭子迷路了,请让小朋友帮助小鸭子一起找到它的家吧!'],
+            },
+            {
+                name: '运笔能力',
+                id: '23110',
+                des:
+                    '能用流畅的线条进行弧线练习,锻炼手腕灵活性和运笔能力。认识直线、曲折线、波浪线、螺旋线,对方形、圆形、线条等涂鸦感兴趣。能大胆画出各种线条,培养幼儿良好的作画习惯。',
+                guideTip: ['我们观察下方三个图片,里面都有什么样的线条呢?请让小朋友写一写,画一画吧!'],
+            },
+            {
+                name: '分析能力',
+                id: '23111',
+                des: '培养幼儿正确的思维习惯。让幼儿利用生活经验来理解已知和未知的关系。培养学生思维的系统性和条理性。',
+                guideTip: [
+                    '小聪和妈妈在公园玩耍,但是天忽然下雨了,小聪的妈妈去旁边的商店一定要买什么呢?请让小朋友帮助妈妈买到一个避雨的工具吧!',
+                ],
+            },
+            {
+                name: '关联事物',
+                id: '23112',
+                des: '根据提供的物品特征,找到对应的物品。通过观察物品,了解生活中各种物品之间的联系。',
+                guideTip: ['这里是乐乐的家,可是淘气的乐乐把家里搞得一团糟,请帮助小朋友把乐乐的家整理一下吧!'],
+            },
+            {
+                name: '分析推理',
+                id: '23113',
+                des:
+                    '通过猜一猜的游戏,使幼儿初步了解简单推理的过程。培养初步的分析能力,体会数学思想方法在生活中的用途。培养创新和合作意识,激发学习数学的信心。',
+                guideTip: ['粗心的小画家小聪画了一幅画,但是里面有很多不合理的地方,请帮助小朋友找出不合理的地方吧!'],
+            },
+            {
+                name: '专注能力',
+                id: '23114',
+                des:
+                    '培养小朋友观察能力,提高专注力。培养幼儿口语完整的表达能力,并在循序渐进的过程中,增强幼儿自信心和社交能力。',
+                guideTip: ['请让小朋友们仔细观察图片,找到图片丢失的部分。'],
+            },
+            {
+                name: '安全意识',
+                id: '23115',
+                des:
+                    '仔细观察画面,自主发现路上的危险因素。讨论自我保护的方法,增强自我保护的意识。加强幼儿判断是否安全的能力。',
+                guideTip: [
+                    '小聪放学回家的路上,发现有一间房子着火了,请让小朋友一起帮小聪想一想需要打什么电话来救火呢?',
+                    '小聪在晚上回家的路上遇到了一个偷东西的小偷,请让小朋友一起帮小聪想一想该怎么办呢?',
+                ],
+            },
+            {
+                name: '行为规范',
+                id: '23116',
+                des: '教育幼儿礼貌待人。幼儿用文明语言与人交往。学习在就餐、访友、交谈、聚会等场合的一般礼节。',
+                guideTip: [
+                    '小精灵今天来检查小朋友们的行为规范,请帮助小朋友一起判断一下图中小朋友们的行为是否是正确的吧!',
+                ],
+            },
+        ],
+    },
+    {
+        id: 232,
+        name: '2-3下学期',
+        type: [
+            {
+                name: '色彩能力',
+                id: '23201',
+                des:
+                    '引导幼儿感受色彩的美。熟练地区分红、黄、蓝、绿四种颜色,感受寻找颜色的快乐。激发幼儿学习兴趣,体验数学活动的快乐,并感受集体活动乐趣。',
+                guideTip: [
+                    '图中小明领了两本课本,仔细观察图中课本的颜色,请小朋友找到小明未领取的课本吧!',
+                    '图中小明领了两本课本,仔细观察图中课本的颜色,请小朋友找到小明未领取的课本吧!',
+                ],
+            },
+            {
+                name: '分类能力',
+                id: '23202',
+                des:
+                    '培养幼儿的辨别能力和归类能力。能够按照物体的种类属性进行正确分类,并能够正确表述。培养幼儿在日常生活中进行归类整理的好习惯。',
+                guideTip: [
+                    '草地上的小猴子和小狮子面前有很多食物,仔细观察有哪些食物,并且请小朋友分别找出小猴子和小狮子爱吃哪类食物吧!',
+                    '请小朋友在草地上找出小猴子和小狮子爱吃哪一类的食物,然后将它们放进各自的盘子里吧!',
+                ],
+            },
+            {
+                name: '图形认知',
+                id: '23203',
+                des:
+                    '认识一些简单的几何图形以及学习理解相关的基本概念和图形的性质。能够正确辨认图形,并说出物品是由哪几种图形组成的。萌发对图形能够组合成不同事物的乐趣,激发幼儿的探索欲望。',
+                guideTip: [
+                    '公主弄丢了皇冠上的宝石,请小朋友仔细观察皇冠上宝石的缺口,找出公主丢失的宝石吧!',
+                    '小松鼠找到的三颗宝石分别是什么形状的宝石呢!请小朋友在三颗宝石中找到公主丢失的宝石吧!',
+                ],
+            },
+            {
+                name: '常识认知',
+                id: '23204',
+                des:
+                    '了解更多贴近生活的知识。掌握更多实用性的知识来让他们的生活更加健康。培养幼儿大胆尝试、勇于探索与表达的精神。',
+                guideTip: [
+                    '小丽和小智要表演节目,请小朋友根据他们扮演的角色,在桌子上找出对应的帽子,并帮他们戴好吧!',
+                    '小丽和小智要表演节目,请小朋友根据他们扮演的角色,在桌子上找出对应的帽子,并帮他们戴好吧!',
+                ],
+            },
+            {
+                name: '空间认知',
+                id: '23205',
+                des:
+                    '建立空间的方位概念。通过对物体空间位置的摆放,培养幼儿的动手能力。引导幼儿学习正确使用方位词来描述物体的位置。',
+                guideTip: [
+                    '图中三个小朋友放风筝,他们放的风筝哪一个放最高呢?请小朋友指出来吧!',
+                    '图中三个小朋友放风筝,他们放的风筝哪一个放最高呢?请小朋友指出来吧!',
+                ],
+            },
+            {
+                name: '数学识字',
+                id: '23206',
+                des: '幼儿继续认识、熟悉、分辨数字1到10正确感知1到10之类数字的排序。培养幼儿对数字的兴趣',
+                guideTip: [
+                    '小红过生日,妈妈送了他一个非常大的蛋糕,小朋友仔细看一看蛋糕上面的蜡烛像什么数字吧!',
+                    '图中有一些数字,蛋糕上的蜡烛最想其中哪一个数字呢?请小朋友找出来吧!',
+                ],
+            },
+            {
+                name: '数量认知',
+                id: '23207',
+                des:
+                    '正确感知数量,知道数字可以表示相应物品的数量。学会手口一致地点数数量物,并说出总数。引发幼儿对数学的兴趣,在游戏中,感受数学的魅力。',
+                guideTip: [
+                    '明经过一家玩具店,发现橱窗上有很多玩具,请小朋友来数一数橱窗上有几个玩具吧!',
+                    '橱窗上有很多玩具,请小朋友来数一数橱窗上一共有几个玩具,并把正确数字圈出来吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '23208',
+                des:
+                    '能按照物体的某一外部特征找出不同的一个。学会用“一样”“不一样”等词来回答。发展幼儿 的观察力、空间想象能力,积极参与数学活动,体验数学活动中的乐趣。',
+                guideTip: [
+                    '今天平安夜,圣诞老人坐着雪橇来送礼物,都是送给小朋友的礼物!',
+                    '请小朋友仔细观察图中大圣诞树的特征,并从右侧的四个小圣诞树中,找出与大圣诞树一样的圣诞树吧!',
+                    '请小朋友仔细观察图中大圣诞树的特征,并从右侧的四个小圣诞树中,找出与大圣诞树一样的圣诞树吧!',
+                ],
+            },
+            {
+                name: '趣味路线',
+                id: '23209',
+                des:
+                    '通过走路线的游戏,引导幼儿大胆用手指画出正确的路线。锻炼幼儿独立思考问题和判断的能力。鼓励幼儿积极活动,体验参与游戏的乐趣。',
+                guideTip: [
+                    '小鼹鼠想要吃蚯蚓,它面前有两条路,请小朋友找到通往蚯蚓正确的路吧!',
+                    '小鼹鼠想要吃蚯蚓,它面前有两条路,请小朋友找到通往蚯蚓正确的路吧!',
+                ],
+            },
+            {
+                name: '运笔能力',
+                id: '23210',
+                des:
+                    '能用流畅的线条进行弧线练习,锻炼手腕灵活性和运笔能力。认识直线、曲折线、波浪线、螺旋线,对方形、圆形、线条等涂鸦感兴趣。能大胆画出各种线条,培养幼儿良好的作画习惯。',
+                guideTip: [
+                    '火箭要以红色五角星为起点,以蓝色五角星为终点围绕着星球一圈,请小朋友帮助火箭完成任务吧!',
+                    '火箭要以红色五角星为起点,以蓝色五角星为终点围绕着星球一圈,请小朋友帮助火箭完成任务吧!',
+                ],
+            },
+            {
+                name: '分析能力',
+                id: '23211',
+                des:
+                    '训练幼儿观察力比较,分析的能力。愿意大胆尝试,并与同伴分享自己的心得。发展合作探究与用符号记录实验结果的能力。',
+                guideTip: [
+                    '水下世界非常丰富精彩,不仅有绿色的海草和五颜六色的珊瑚,还有非常多不同种类的鱼,请小朋友仔细观察他们的花纹吧!',
+                    '请小朋友仔细观察左侧的鱼的花纹,并找出它所缺少的那一块花纹吧!',
+                    '请小朋友仔细观察左侧的鱼的花纹,并找出它所缺少的那一块花纹吧!',
+                ],
+            },
+            {
+                name: '关联事物',
+                id: '23212',
+                des:
+                    '能在同类物体中找出相关联的物体配成对。引导幼儿积极与材料互动,体验数学活动的乐趣。发展目测力、判断力。',
+                guideTip: [
+                    '以下六个物品,请小朋友来说一说分别是什么物品,并将有关联的物品连起来吧!',
+                    '以下六个物品,请小朋友来说一说分别是什么物品,并将有关联的物品连起来吧!',
+                ],
+            },
+            {
+                name: '分析推理',
+                id: '23213',
+                des:
+                    '通过猜一猜的游戏,使幼儿初步了解简单推理的过程。培养初步的分析能力,体会数学思想方法在生活中的用途。培养创新和合作意识,激发学习数学的信心。',
+                guideTip: [
+                    '小明要和爸爸妈妈出去玩,但是他们不知道乘坐什么交通工具最合适,小朋友能一起帮忙想一想吧!',
+                    '小朋友数一数以下三个交通工具,分别有几个座位,并圈出适合小明一家的交通工具吧!',
+                    '小朋友数一数以下三个交通工具,分别有几个座位,并圈出适合小明一家的交通工具吧!',
+                ],
+            },
+            {
+                name: '专注能力',
+                id: '23214',
+                des:
+                    '培养小朋友观察能力,提高专注力。培养幼儿口语完整的表达能力,并在循序渐进的过程中,增强幼儿自信心和社交能力。',
+                guideTip: [
+                    '小丽与妈妈一起比赛做蛋糕,请小朋友找出是谁做了三个蛋糕吧!',
+                    '小丽与妈妈一起比赛做蛋糕,请小朋友找出是谁做了三个蛋糕吧!',
+                ],
+            },
+            {
+                name: '安全意识',
+                id: '23215',
+                des:
+                    '提高幼儿自我保护意识,知道不能随便跟陌生人走。会用礼貌用语,老师叫到名字说"再见"再礼貌地离园。培养幼儿大胆发言,说完整话的好习惯。能积极参加游戏活动,并学会自我保护。',
+                guideTip: [
+                    ' 以下四个物品中,哪些物品是安全的,请小朋友找到并圈出来吧!',
+                    ' 以下四个物品中,哪些物品是安全的,请小朋友找到并圈出来吧!',
+                ],
+            },
+            {
+                name: '行为规范',
+                id: '23216',
+                des: '教育幼儿礼貌待人。幼儿用文明语言与人交往。学习在就餐、访友、交谈、聚会等场合的一般礼节。',
+                guideTip: [
+                    '下面图中有四个行为,哪些行为是不对的呢?请小朋友找到并圈出来吧!',
+                    '下面图中有四个行为,哪些行为是不对的呢?请小朋友找到并圈出来吧!',
+                ],
+            },
+        ],
+    },
+    {
+        id: 341,
+        name: '3-4上学期',
+        type: [
+            {
+                name: '分析能力',
+                id: '34101',
+                des:
+                    '观察物品位置,并找出物品对应的位置,增强对物品观察能力。运用自己已有经验,根据目标完成任务,并乐意分享自己的游戏心得。在观察、分析中获得成功感。',
+                guideTip: [
+                    '森林里来了很多小怪兽,他们按照老师的要求排好了队,请根据题目中小怪兽的特征,帮助小朋友判断出他们是如何排列的。',
+                    '森林里来了很多小怪兽,他们按照老师的要求排好了队,请根据题目中小怪兽的特征,帮助小朋友判断出他们是如何排列的。',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '34102',
+                des:
+                    '根据物品外形大小、高矮等特征相互比较。培养幼儿的初步分析、比较能力。引导幼儿用一一对应的方法,找出较大的物体,会比较大小。',
+                guideTip: [
+                    '明明和兰兰都有一个一模一样的玩具,可是丽丽的玩具比较大,他们玩耍的时候搞混了,请帮助小朋友找出丽丽的玩具吧。',
+                    '铅笔星球的人可以用铅笔制造出火箭。火箭越长,飞行的速度越快,图中有两家人一起去旅行,请帮助小朋友判断出哪家人先到达目的地。',
+                ],
+            },
+            {
+                name: '归纳能力',
+                id: '34103',
+                des:
+                    '观察物品颜色,并找到相同颜色的方框,增强对物品颜色归纳能力。在教师引导下,尝试从游戏中总结相关经验,锻炼分析、归纳能力。喜欢观察生活中常见物品的颜色。',
+                guideTip: [
+                    '红色鱼和蓝色鱼一起出门游玩,可是愚蠢的鱼站错了队伍,请帮助小朋友将他们分分类。',
+                    '小朋友们聚在一起玩找一找游戏,他们每个人身上都贴了种类,桌子上摆满了物品,请帮助小朋友按照自己身上的种类找到属于该种类的物品吧!',
+                ],
+            },
+            {
+                name: '想象能力',
+                id: '34104',
+                des:
+                    '根据物体的形状特征,找出物体的影子。大胆运用剪刀,剪出自己想象的图案。感受彩色和黑白两种图案带来的艺术效果。',
+                guideTip: [
+                    '三只小动物对出现的影子感觉到很好奇,请根据小动物和影子的特征,帮助小朋友找出每只小动物的影子吧。',
+                    '三只小动物对出现的影子感觉到很好奇,请根据小动物和影子的特征,帮助小朋友找出每只小动物的影子吧。',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '34105',
+                des:
+                    '辨识物品的颜色和组成形状特征,学习图像配对。根据物品的形状、颜色等特征,找到相同的物品,锻炼看图辨识的能力。不怕困难,认真、细致地观察',
+                guideTip: [
+                    '桌子上摆满了木马玩具,请根据桌子上木马玩具的特征,帮助小朋友找到两个一模一样的木马玩具吧!',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '34106',
+                des:
+                    '辨识物体的大小,学会从大到小或从小到大排列三个物体。初步认识大、小标记,并能按标记进行排序。幼儿对数学活动感兴趣。',
+                guideTip: [
+                    '神秘的小丑身上藏了三个数字,哪个数字最大?哪个数字最小呢?请帮助小朋友将数字依次按照小到大的顺序排序吧!',
+                    '动物园的三只动物在比身高,谁的身高最高?谁的身高最矮呢?请帮助小朋友将身高按照从高到矮的顺序依次排列吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '34107',
+                des:
+                    '观察物品特征,并找出相同的物品,增强对物品辨识能力。运用自己已有经验,根据目标完成任务,并乐意分享自己的游戏心得。在寻找、匹配中获得成功感。',
+                guideTip: ['老师给幼儿园的两对双胞胎准备了生日礼物,请帮助小朋友找出两组一模一样的生日礼物吧!'],
+            },
+            {
+                name: '分类能力',
+                id: '34108',
+                des:
+                    '通过对物体进行属性分类,培养幼儿的辨别能力和归类能力。使幼儿初步理解集合概念,能够按照物体的种类属性进行正确分类,并能够正确表述。通过操作活动培养幼儿对数学的兴趣,培养幼儿在日常生活中进行归类整理的好习惯。',
+                guideTip: [
+                    '宇宙中,有三位保卫星球的超人,他们每个人都有保护自己星球的一份责任,我们来看看他们是怎么做的吧!',
+                    '图中超人的任务是保卫玩具星球,不允许外来星球的人员进入,请让小朋友帮助超人一起找出外来星球的人员',
+                    '图中超人的任务是保卫海洋星球,不允许外来星球的人员进入,请让小朋友帮助超人一起找出外来星球的人员。',
+                    '图中超人的任务是保卫玩具星球,不允许外来星球的人员进入,请让小朋友帮助超人一起找出外来星球的人员。',
+                ],
+            },
+            {
+                name: '记忆能力',
+                id: '34109',
+                des:
+                    '善于对周围环境观察,获取重点。训练幼儿观察力、注意力及专注力。通过操作活动培养幼儿学习记忆方法,发展幼儿逻辑思维能力。',
+                guideTip: [
+                    '妈妈带着小朋友一起去森林公园玩,在公园里,看到了很多小动物,请让小朋友说一说他们遇到了哪些小动物吧!',
+                    '妈妈把昨天在动物园拍的照片挂在了墙上,粗心的小朋友把墨水撒上去了,请帮助小朋友回忆一下照片上有哪些小动物呢?',
+                    '仔细听一听都有哪些小动物,请帮助小朋友一起验证自己的答案是否正确。',
+                ],
+            },
+            {
+                name: '记忆能力',
+                id: '34110',
+                des:
+                    '集中幼儿注意力。训练幼儿观察力、注意力及专注力。通过操作活动培养幼儿学习记忆方法,发展幼儿逻辑思维能力。',
+                guideTip: [
+                    '魔术师在舞台上放了四张扑克牌,请小朋友记一记扑克牌正面的图案,根据魔术师移动扑克牌的顺序,帮助小朋友找出有相同图案的扑克牌吧。',
+                ],
+            },
+            {
+                name: '理解能力',
+                id: '34111',
+                des: '让幼儿感知数字,能用手指指出1-10。生活中,数清物品数量。感受数学的魅力。',
+                guideTip: [
+                    '请帮助小朋友说一说图中黑板上都是哪些数字。',
+                    '数字1小朋友像什么物品呢?数量1又代表什么呢?请让小朋友动一动脑筋说一下吧!',
+                    '数字2小朋友像什么物品呢?数量2又代表什么呢?请让小朋友动一动脑筋说一下吧!',
+                    '数字3小朋友像什么物品呢?数量3又代表什么呢?请让小朋友动一动脑筋说一下吧!',
+                    '数字4小朋友像什么物品呢?数量4又代表什么呢?请让小朋友动一动脑筋说一下吧!',
+                    '数字5小朋友像什么物品呢?数量5又代表什么呢?请让小朋友动一动脑筋说一下吧!',
+                ],
+            },
+            {
+                name: '理解能力',
+                id: '34112',
+                des:
+                    '观察物品数量,并匹配同等数量的物品,提高数量识别力。不受物品摆放方式的影响,正确判断物品数量。不受物品颜色和排列方式的影响,正确判断数量,锻炼数数的专注力。',
+                guideTip: [
+                    '乐乐一家人家庭聚会,妈妈给每个人都准备了一个蛋糕,请帮助小朋友找出哪一盘蛋糕是妈妈准备的吧!',
+                    '我们先来数一数第一盘蛋糕有几个呢?请帮助小朋友一起数一数吧!',
+                    '我们接来数一数第二盘蛋糕有几个呢?请帮助小朋友一起数一数吧!',
+                    '最后我们来数一数第三盘蛋糕有几个呢?请帮助小朋友一起数一数吧!',
+                    '妈妈为家庭聚会的每一个人都准备了一个蛋糕,因为家庭聚会里一共有6个人,所以妈妈应该准备了6个蛋糕,请帮助小朋友选出有6个蛋糕的那一盘吧!',
+                ],
+            },
+            {
+                name: '组合能力',
+                id: '34113',
+                des:
+                    '观察物品的颜色、图案等特征,分辨它的另一部分。通过说、看、用等多种方式,积累不同物品的相关认知经验。细心观察事物,对细微观察感兴趣。',
+                guideTip: [
+                    '四位小朋友手里都有一张食物的照片,想象一下,如果把食物的照片剪开,会发生什么呢?请让小朋友发挥想象力互相说一说吧!',
+                    '仔细观察食物照片被剪开的样子,请帮助小朋友一起验证自己的想法是否正确。',
+                ],
+            },
+            {
+                name: '迁移能力',
+                id: '34114',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: ['淘气的老鼠将相片其中的一部分藏了起来,请帮助小朋友一起找出缺失的碎片吧!'],
+            },
+            {
+                name: '关联能力',
+                id: '34115',
+                des:
+                    '根据图片,找到相关联的缺失物品,感受物与物之间的关系。尝试总结已有游戏经验并运用经验进行新游戏,同时获取新经验。与同伴友好合作。',
+                guideTip: [
+                    '小女孩在回家的路上,突然下起了暴雨,请让小朋友一起说一说小女孩最需要的物品是什么吧!',
+                    '小女孩在垃圾桶里找到了一个灭火器,他是否是小女孩最需要的物品呢?请帮助小朋友说一说吧!',
+                    '小女孩在垃圾桶里找到了一支铅笔,他是否是小女孩最需要的物品呢?请帮助小朋友说一说吧!',
+                    '小女孩在垃圾桶里找到了一把伞,他是否是小女孩最需要的物品呢?请帮助小朋友说一说吧!',
+                ],
+            },
+            {
+                name: '逻辑能力',
+                id: '34116',
+                des:
+                    '掌握逻辑推理的一般方法和思维过程。理解和掌握逻辑推理的四条基本规律:同一律、矛盾律、排中律、理由充足律。培养学生的逻辑思维思维能力。',
+                guideTip: ['可可森林的人发现森林里缺少了一颗钻石,请帮助小朋友找出那一颗缺少的钻石吧!'],
+            },
+        ],
+    },
+    {
+        id: 342,
+        name: '3-4下学期',
+        type: [
+            {
+                name: '分析能力',
+                id: '34201',
+                des:
+                    '观察物品位置,并找出物品对应的位置,增强对物品观察能力。运用自己已有经验,喜欢参加排序游戏,并乐意分享自己的游戏心得。感受规律排序的乐趣。',
+                guideTip: [
+                    '请帮助小朋友按照妈妈摆放花的规律将剩下的两盆花摆放在正确的位置上吧!',
+                    '请帮助小朋友将兔子警官找回来的三盏灯摆放在正确的位置上吧!',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '34202',
+                des:
+                    '根据物品外形大小、高矮等特征相互比较。培养幼儿的初步分析、比较能力。引导幼儿用一一对应的方法,找出较大的物体,会比较大小。',
+                guideTip: [
+                    '糖糖和小小在比较他们谁的奶瓶比较大,谁的比较大就可以得到数量比较多的胡萝卜,谁可以赢得数量多的胡萝卜呢?请帮助小朋友一起选出来吧!',
+                    '图中有两盘胡萝卜,哪一盘胡萝卜数量比较多呢?请帮助小朋友们一起数一数吧!',
+                ],
+            },
+            {
+                name: '归纳能力',
+                id: '34203',
+                des:
+                    '观察物品颜色,并找到相同颜色的方框,增强对物品颜色归纳能力。在教师引导下,尝试从游戏中总结相关经验,锻炼分析、归纳能力。喜欢观察生活中常见物品的颜色。',
+                guideTip: [
+                    '三个家族的鱼忘记了自己的家在哪里,请根据鱼和旗子的颜色,帮助小朋友找到鱼的家吧!',
+                    '嘟嘟开着拉货的小火车来帮森林的商铺送货,请让小朋友帮助嘟嘟把货送到对应的商铺里吧!',
+                ],
+            },
+            {
+                name: '想象能力',
+                id: '34204',
+                des:
+                    '根据物体的形状特征,找出物体的影子。大胆运用剪刀,剪出自己想象的图案。感受彩色和黑白两种图案带来的艺术效果。',
+                guideTip: [
+                    '这里有三个大小不一的影子,那哪个才是小怪兽果果的影子呢?请让小朋友帮助老虎们一起找一找吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '34205',
+                des:
+                    '辨识物品的颜色和组成形状特征,学习图像配对。根据物品的形状、颜色等特征,找到相同的物品,锻炼看图辨识的能力。不怕困难,认真、细致地观察。',
+                guideTip: [
+                    '大象乐乐要去服装店买两件一模一样的衣服送给自己的哥哥呜呜,请让小朋友帮助乐乐找到两件一模一样的衣服吧!',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '34206',
+                des:
+                    '辨识物体的大小,学会从大到小或从小到大排列三个物体。初步认识大、小标记,并能按标记进行排序。幼儿对数学活动感兴趣。',
+                guideTip: [
+                    '三只小熊要坐火车去动物园里表演节目,但是他们要按照自己裙子和车厢的颜色找到对应的位置,请让小朋友帮助小熊找到自己所对应的位置吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '34207',
+                des:
+                    '观察物品特征,并找出相同的物品,增强对物品辨识能力。运用自己已有经验,根据目标完成任务,并乐意分享自己的游戏心得。在寻找、匹配中获得成功感。',
+                guideTip: [
+                    '魔法森林里的两颗相同的宝石可以合成一个钻石,请帮助小朋友把木板上的宝石全部合成钻石吧!',
+                    '哥哥小明和妹妹丽丽在玩纸牌游戏,请让小朋友根据他们出牌的图案,帮助他们找到对应相同的牌吧!',
+                ],
+            },
+            {
+                name: '分类能力',
+                id: '34208',
+                des:
+                    '通过对物体进行属性分类,培养幼儿的辨别能力和归类能力。使幼儿初步理解集合概念,能够按照物体的种类属性进行正确分类,并能够正确表述。通过操作活动培养幼儿对数学的兴趣,培养幼儿在日常生活中进行归类整理的好习惯。',
+                guideTip: [
+                    '动物园又新来了一批动物,园长要把他们分分类,请让小朋友帮助园长把动物分分类吧!',
+                    '小朋友们来海边游玩,发现有很多交通工具,但是有很多不合常理的事情,请让小朋友们找出来吧!',
+                ],
+            },
+            {
+                name: '记忆能力',
+                id: '34209',
+                des:
+                    '善于对周围环境观察,获取重点。训练幼儿观察力、注意力及专注力。3.通过操作活动培养幼儿学习记忆方法,发展幼儿逻辑思维能力。',
+                guideTip: [
+                    '今天是动物园的颁奖大会,森林里来了很多小动物,主持人把三名得奖的动物喊到舞台上领奖,请让小朋友回忆一下得奖的三名小动物都有谁呢?',
+                    '领奖台上站着三名小动物,请帮助小朋友一起验证自己的答案是否正确。',
+                ],
+            },
+            {
+                name: '记忆能力',
+                id: '34210',
+                des:
+                    '集中幼儿注意力。训练幼儿观察力、注意力及专注力。3.通过操作活动培养幼儿学习记忆方法,发展幼儿逻辑思维能力。',
+                guideTip: [
+                    '淘气的老鼠把妈妈在桌子上摆的盘子都盖上了盖子,盘子下面都是水果,请帮助小朋友回忆一下哪些盘子下面的水果是一样的呢?',
+                ],
+            },
+            {
+                name: '理解能力',
+                id: '34211',
+                des: '让幼儿感知数字,能用手指指出1-10。生活中,数清物品数量。感受数学的魅力。',
+                guideTip: [
+                    '请帮助小朋友说一说图中黑板上都是哪些数字。',
+                    '数字6小朋友像什么物品呢?数量6又代表什么呢?请让小朋友动一动脑筋说一说吧!',
+                    '数字7小朋友像什么物品呢?数量7又代表什么呢?请让小朋友动一动脑筋说一说吧!',
+                    '数字8小朋友像什么物品呢?数量8又代表什么呢?请让小朋友动一动脑筋说一说吧!',
+                    '数字9小朋友像什么物品呢?数量9又代表什么呢?请让小朋友动一动脑筋说一说吧!',
+                ],
+            },
+            {
+                name: '理解能力',
+                id: '34212',
+                des:
+                    '观察物品数量,并匹配同等数量的物品,提高数量识别力。不受物品摆放方式的影响,正确判断物品数量。不受物品颜色和排列方式的影响,正确判断数量,锻炼数数的专注力。',
+                guideTip: [
+                    '今天是小朋友们的整理食物大会,请帮助小朋友说出图中的食物都是什么吧!并数一数他们各有几个呢?',
+                    '请帮助小朋友根据食物的数量把相同数量的食物放在同一个盘子里吧!',
+                ],
+            },
+            {
+                name: '组合能力',
+                id: '34213',
+                des:
+                    '观察物品的颜色、图案等特征,分辨它的另一部分。通过说、看、用等多种方式,积累不同物品的相关认知经验。3.细心观察事物,对细微观察感兴趣。',
+                guideTip: [
+                    '国王的皇冠摔成了两半,其中有一半的皇冠丢了,请让小朋友发挥想象力说一说国王的另一半皇冠是什么样子呢?',
+                    '城里的人拿来了各式各样的皇冠,仔细观察这些皇冠,请让小朋友选出哪个才是真正国王皇冠的另一半吧!',
+                ],
+            },
+            {
+                name: '迁移能力',
+                id: '34214',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: [
+                    '小女孩在沙滩上捡到了一幅拼图,但是缺少了一块,请根据图中的两块碎片,让小朋友帮助这个小女孩找到缺失的碎片吧!',
+                ],
+            },
+            {
+                name: '关联能力',
+                id: '34215',
+                des:
+                    '据图片,找到相关联的缺失物品,感受物与物之间的关系。尝试总结已有游戏经验并运用经验进行新游戏,同时获取新经验。与同伴友好合作。',
+                guideTip: [
+                    '森林里有三个物品找不到家了,到了动物园,他应该是谁的家呢?请让小朋友说一说哪个物品到家了呢?',
+                    '到了农民伯伯的果园,他应该是谁的家呢?请让小朋友说一说哪个物品到家了呢?',
+                    '接着到了上课的教室,他应该是谁的家呢?请让小朋友说一说哪个物品到家了呢?',
+                ],
+            },
+            {
+                name: '逻辑能力',
+                id: '34216',
+                des:
+                    '掌握逻辑推理的一般方法和思维过程。理解和掌握逻辑推理的四条基本规律:同一律、矛盾律、排中律、理由充足律。培养学生的逻辑思维思维能力。',
+                guideTip: ['请让小朋友根据横竖不能是一样的动物的规则,帮助长颈鹿找到空位置上的动物吧!'],
+            },
+        ],
+    },
+    {
+        id: 451,
+        name: '4-5上学期',
+        type: [
+            {
+                name: '观察能力',
+                id: '45101',
+                des:
+                    '观察物体,能按照物体的某一外部特征找出不同的一个。通过对物体观察,学会用“一样”“不一样”等词来回答。发展幼儿的观察力、空间想象能力。',
+                guideTip: [
+                    '仔细观察图中的两幅图片,让小朋友帮助小精灵找出这两幅图片的不同之处吧!',
+                    '仔细观察图中的两幅图片,让小朋友帮助小精灵找出这两幅图片的不同之处吧!',
+                ],
+            },
+            {
+                name: '色彩能力',
+                id: '45102',
+                des:
+                    '激发幼儿对周围生活中色彩的关注。能说出常见物体的颜色,对颜色变化感兴趣、喜欢实验活动。使幼儿在主动活动中认识颜色、使用颜色,同时充分感受颜色的丰富性。',
+                guideTip: [
+                    '请观察图中的色块,请小朋友们分别说说它们是什么颜色的吧!',
+                    '小朋友用红色、绿色、蓝色画好的画不小心和之前的画弄混了,请让小朋友帮忙找出由这三种颜色画笔画出来的画吧。',
+                ],
+            },
+            {
+                name: '分析能力',
+                id: '45103',
+                des:
+                    '通过活动,学习按某一特征有规律地间隔排列规律排列。在探索寻找活动中,选择不同的方法尝试有规律排序。培养幼儿有初步的推理能力,发展幼儿创造力。',
+                guideTip: [
+                    '乐乐在海边捡了许多宝石,做成了两条宝石项链。仔细观察,请小朋友说说这两条宝石项链有什么规律。',
+                    '乐乐在海边捡了许多宝石,做成了两条宝石项链。仔细观察,请小朋友说说这两条宝石项链有什么规律。',
+                    '乐乐在海边捡了许多宝石,做成了两条宝石项链。仔细观察,请小朋友说说这两条宝石项链有什么规律。',
+                ],
+            },
+            {
+                name: '运算能力',
+                id: '45104',
+                des:
+                    '引导幼儿探索、发现排列成封闭状物体的数数方法,初步积累相关数数的经验。发展幼儿思维的准确性、灵活性,激发幼儿参与数学活动的兴趣。对数学学习有兴趣。',
+                guideTip: [
+                    '图中有好多小朋友和热气球,请小朋友们数一数,有多少个热气球和小朋友吧!',
+                    '图中的小屋是按照数字的顺序排列的,根据小动物手上的号码牌,帮助它们找到对应的小屋吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '45105',
+                des:
+                    '喜欢走迷宫体会成功的喜悦。掌握走迷宫的一般方法,学会检查。考验小朋友们的反应能力,锻炼他们的个人能力。',
+                guideTip: [
+                    '小兔子在菜园里种了不同样的萝卜,请让小朋友们认识一下菜园里都有些什么萝卜吧!',
+                    '小兔子遇到了困难,它被困在了菜地里,小兔子需要按照萝卜的排列顺序才能走出菜园,请小朋友们帮帮它吧!',
+                ],
+            },
+            {
+                name: '想象能力',
+                id: '45106',
+                des:
+                    '观察物品的颜色、图案等特征,分辨它的另一部分。通过说、看、用等多种方式,积累不同物品的相关认知经验。细心观察事物,对细微观察感兴趣。',
+                guideTip: [
+                    '长颈鹿在花丛中看到了好多蝴蝶呀!请让小朋友们仔细观察,花丛中这些蝴蝶有什么特征呢?',
+                    '长颈鹿在纸上画了一半图案,没画完的一半与画好的部分对称,请让小朋友帮助长颈鹿补齐这个图案吧!',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '45107',
+                des:
+                    '学会运用不同方法,区分物体的厚薄、高矮、长短、粗细、大小。培养幼儿对身边事物的观察力、比较的能力。发现事物比较的快乐,学会相关的反义词。',
+                guideTip: [
+                    '小男孩正在思考一个问题,一本书和一叠书哪个比较厚?哪个比较薄呢?请小朋友也来思考一下吧!',
+                    '小男孩正在思考一个问题,一本书和一叠书哪个比较厚?哪个比较薄呢?请小朋友也来思考一下吧!',
+                ],
+            },
+            {
+                name: '时序能力',
+                id: '45108',
+                des:
+                    '了解事物发展的顺序,对事物有规划性。提高逻辑推理能力,养成有序做事的好习惯。能够自己安排事情,对自己生活安排有完整的规划。',
+                guideTip: [
+                    '请让小朋友们思考一下小鸡是怎么孵化出来的呢?',
+                    '请让小朋友们思考一下种子是如何发芽长大的呢?',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '45109',
+                des:
+                    '观察物体,能按照物体的外部特征找出相同的。通过对物体观察,学会用“一样”“不一样”等词来回答。发展幼儿的观察力、空间想象能力。',
+                guideTip: [
+                    '请让小朋友仔细观察小狮子和小鹿手中拿着的图画,并帮助它们在右边找出一模一样的图画。',
+                    '请让小朋友仔细观察小狮子和小鹿手中拿着的图画,并帮助它们在右边找出一模一样的图画。',
+                ],
+            },
+            {
+                name: '运算能力',
+                id: '45110',
+                des:
+                    '在游戏活动中,感受数学的乐趣。引导幼儿运用材料,体验加减法的乐趣。培养幼儿多项思维能力,对数学活动的兴趣。',
+                guideTip: [
+                    '伸出小手指算一算,三只小鸟加两只小鸟等于多少只小鸟呢?',
+                    '伸出小手指算一算,六只鸭子减去两只鸭子等于多少只鸭子呢?',
+                ],
+            },
+            {
+                name: '归纳能力',
+                id: '45111',
+                des:
+                    '观察物体,学会按照物体的某一特征进行分类。能够将生活中的物品分类收纳整理。发展幼儿的分类归纳能力。',
+                guideTip: [
+                    '魔法师要将乐器收入魔法瓶中,请让小朋友看看图中哪些物品可以收入魔法瓶,哪些物品不能收入魔法瓶。',
+                    '魔法师要将哺乳动物收入魔法瓶中,请让小朋友看看图中哪些物品可以收入魔法瓶,哪些物品不能收入魔法瓶。',
+                    '魔法师要将学习用品收入魔法瓶中,请让小朋友看看图中哪些物品可以收入魔法瓶,哪些物品不能收入魔法瓶。',
+                ],
+            },
+            {
+                name: '迁移能力',
+                id: '45112',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: [
+                    '请仔细观察图中的拼图,将拼图拖到对应的位置上。',
+                    '请仔细观察图中的拼图,将拼图拖到对应的位置上。',
+                ],
+            },
+            {
+                name: '色彩能力',
+                id: '45113',
+                des:
+                    '激发幼儿对周围生活中色彩的关注。能说出常见物体的颜色,对颜色变化感兴趣、喜欢实验活动。使幼儿在主动活动中认识颜色、使用颜色,同时充分感受颜色的丰富性。',
+                guideTip: [
+                    '请让小朋友们思考彩虹是怎么形成的,彩虹由哪些颜色组成呢?',
+                    '勤劳的园丁在花园里种植许多漂亮的花,请让小朋友们分别说说花园里有什么颜色的花。',
+                ],
+            },
+            {
+                name: '常识能力',
+                id: '45114',
+                des: '了解日常生活中的各种小常识。通过学习小常识,增强幼儿的生活知识。增强幼儿的课外知识。',
+                guideTip: [
+                    '请让小朋友们仔细思考,发生抢劫、交通事故等情况时,应该拨打什么电话呢?',
+                    '请让小朋友们仔细思考,发生房屋着火、汽车着火等情况时,应该拨打什么电话呢?',
+                    '请让小朋友们仔细思考,发生发烧、呕吐等情况时,应该拨打什么电话呢?',
+                ],
+            },
+            {
+                name: '关联能力',
+                id: '45115',
+                des: '了解日常生活中的各种小常识。通过学习小常识,增强幼儿的生活知识。增强幼儿的课外知识。',
+                guideTip: [
+                    '生活中会出现各种各样的图形,请仔细观察一下图中的场景,分别出现了哪些图形呢?',
+                    '贴纸上有各种各样的图形,这些分别是什么图形呢?并在右侧找出与贴纸相同的物品。',
+                ],
+            },
+            {
+                name: '空间能力',
+                id: '45116',
+                des:
+                    '通过实际的操作、观察、比较,体会从不同位置观察物体所看到的形状可能不一样的。学会根据看到的形状判断观察者的位置及物体与物体之间的位置关系。培养学生观察物体的兴趣,形成良好的探究学习的情感与态度。',
+                guideTip: [
+                    '仔细观察左侧的积木块,从上面看,会是什么样子呢?',
+                    '仔细观察左侧的积木块,从上面看,会是什么样子呢?',
+                ],
+            },
+        ],
+    },
+    {
+        id: 452,
+        name: '4-5下学期',
+        type: [
+            {
+                name: '观察能力',
+                id: '45201',
+                des:
+                    '观察物体,能按照物体的某一外部特征找出不同的一个。通过对物体观察,学会用“一样”“不一样”等词来回答。发展幼儿的观察力、空间想象能力。',
+                guideTip: [
+                    '请让小朋友仔细观察两只小鹿有哪里不同,并准确的说出具体位置。',
+                    '请让小朋友仔细观察两只正在开车的小狗有哪里不同,并准确的说出具体位置。',
+                ],
+            },
+            {
+                name: '色彩能力',
+                id: '45202',
+                des:
+                    '1、激发幼儿对周围生活中色彩的关注。2、能说出常见物体的颜色,对颜色变化感兴趣、喜欢实验活动。3、使幼儿在主动活动中认识颜色、使用颜色,同时充分感受颜色的丰富性。',
+                guideTip: ['请让小朋友帮助王子找到每把锁子对应颜色的钥匙,并打开大门,救出公主。'],
+            },
+            {
+                name: '分析能力',
+                id: '45203',
+                des:
+                    '通过活动,学习按某一特征有规律地间隔排列规律排列。在探索寻找活动中,选择不同的方法尝试有规律排序。培养幼儿有初步的推理能力,发展幼儿创造力。',
+                guideTip: [
+                    '仔细观察舞台上的彩旗和礼物盒,请小朋友们分别说说它们有什么规律。',
+                    '让小朋友根据彩旗的排列规律,说出空白处应该是哪个彩旗。',
+                    '让小朋友根据礼物盒的排列规律,说出空白处应该是哪个礼物盒。',
+                ],
+            },
+            {
+                name: '运算能力',
+                id: '45204',
+                des:
+                    '引导幼儿探索、发现排列成封闭状物体的数数方法,初步积累相关数数的经验。发展幼儿思维的准确性、灵活性,激发幼儿参与数学活动的兴趣。对数学学习有兴趣。',
+                guideTip: ['请让小朋友们有序的从数字1数到数字50。'],
+            },
+            {
+                name: '观察能力',
+                id: '45205',
+                des:
+                    '喜欢走迷宫体会成功的喜悦。掌握走迷宫的一般方法,学会检查。考验小朋友们的反应能力,锻炼他们的个人能力。',
+                guideTip: [
+                    '请让小朋友们根据木牌上图形的变化走出迷宫,帮助小猴子吃到更多的香蕉。',
+                    '请让小朋友根据邮票的顺序帮助飞机冲起点飞行到终点。',
+                ],
+            },
+            {
+                name: '想象能力',
+                id: '45206',
+                des:
+                    '根据物体的形状特征,找出物体的影子。大胆运用剪刀,剪出自己想象的图案。感受彩色和黑白两种图案带来的艺术效果。',
+                guideTip: [
+                    '仔细观察图中的折纸,将折纸展开会是什么图案呢?',
+                    '仔细观察图中的折纸,将折纸展开会是什么图案呢?',
+                    '仔细观察图中的折纸,将折纸展开会是什么图案呢?',
+                    '仔细观察图中的折纸,将折纸展开会是什么图案呢?',
+                ],
+            },
+            {
+                name: '判断能力',
+                id: '45207',
+                des:
+                    '学会运用不同方法,区分物体的厚薄、高矮、长短、粗细、大小。培养幼儿对身边事物的观察力、比较的能力。发现事物比较的快乐,学会相关的反义词。',
+                guideTip: [
+                    '请让小朋友们根据自己的常识,说说狮子和大象哪个重?哪个轻?',
+                    '请让小朋友根据狮子和大象摘的苹果数量,比一比,谁摘的多?谁摘的少?',
+                ],
+            },
+            {
+                name: '时序能力',
+                id: '45208',
+                des:
+                    '了解事物发展的顺序,对事物有规划性。提高逻辑推理能力,养成有序做事的好习惯。能够自己安排事情,对自己生活安排有完整的规划。',
+                guideTip: ['请让小朋友们分别说说自己一天的生活是什么样子的。'],
+            },
+            {
+                name: '观察能力',
+                id: '45209',
+                des:
+                    '观察物体,能按照物体的外部特征找出相同的。通过对物体观察,学会用“一样”“不一样”等词来回答。发展幼儿的观察力、空间想象能力。',
+                guideTip: ['请让小朋友们仔细观察装扮后的小熊,找出两只装扮一模一样的小熊。'],
+            },
+            {
+                name: '运算能力',
+                id: '45210',
+                des:
+                    '观察物体,能按照物体的某一外部特征找出不同的一个。通过对物体观察,学会用“一样”“不一样”等词来回答。发展幼儿的观察力、空间想象能力。',
+                guideTip: [
+                    '请让小朋友们伸出手指算一算,五朵蓝色花加多少朵蓝色花等于七朵蓝色花呢?',
+                    '请让小朋友们伸出手指算一算,八朵红色花减多少朵红色花等于四朵红色花呢?',
+                ],
+            },
+            {
+                name: '归纳能力',
+                id: '45211',
+                des:
+                    '观察物体,学会按照物体的某一特征进行分类。能够将生活中的物品分类收纳整理。发展幼儿的分类归纳能力。',
+                guideTip: ['请让小朋友正确分辨玩具和学习用品,并能将图中摆放位置错误的物品指出来。'],
+            },
+            {
+                name: '迁移能力',
+                id: '45212',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: [
+                    '请仔细观察图中的拼图,将拼图拖到对应的位置上。',
+                    '请仔细观察图中的拼图,将拼图拖到对应的位置上。',
+                ],
+            },
+            {
+                name: '色彩能力',
+                id: '45213',
+                des:
+                    '激发幼儿对周围生活中色彩的关注。能说出常见物体的颜色,对颜色变化感兴趣、喜欢实验活动。使幼儿在主动活动中认识颜色、使用颜色,同时充分感受颜色的丰富性。',
+                guideTip: ['仔细观察左侧的图画,让小朋友准确说出哪个位置用到了什么颜色,并在右侧同样位置画出来。'],
+            },
+            {
+                name: '常识能力',
+                id: '45214',
+                des: '了解日常生活中的各种小常识。通过学习小常识,增强幼儿的生活知识。增强幼儿的课外知识。',
+                guideTip: [
+                    '请让小朋友仔细观察图片,说出图片中的三个不合理的地方,并说出原因。',
+                    '请让小朋友们准确说出桌子上的食物分别是什么,是由什么原材料制作的。',
+                ],
+            },
+            {
+                name: '关联能力',
+                id: '45215',
+                des: '了解日常生活中的各种小常识。通过学习小常识,增强幼儿的生活知识。增强幼儿的课外知识。',
+                guideTip: ['请数出图中每个小朋友有多少纪念币,并准确说出纪念币数量对应的数字。'],
+            },
+            {
+                name: '空间能力',
+                id: '45216',
+                des:
+                    '通过实际的操作、观察、比较,体会从不同位置观察物体所看到的形状可能不一样的。学会根据看到的形状判断观察者的位置及物体与物体之间的位置关系。培养学生观察物体的兴趣,形成良好的探究学习的情感与态度。',
+                guideTip: [
+                    '仔细观察草坪上的积木块,从上面看,会是什么样子呢?',
+                    '仔细观察草坪上的积木块,从上面看,会是什么样子呢?',
+                ],
+            },
+        ],
+    },
+    {
+        id: 561,
+        name: '5-6上学期',
+        type: [
+            {
+                name: '推演能力',
+                id: '56101',
+                des:
+                    '发展幼儿数学逻辑推理自然探索。让幼儿尝试运用已有的生活经验,观察并发现事物间内在的联系,进行简单的推理与分析。体会数学的生活化,体验数学游戏的乐趣。',
+                guideTip: ['请让小朋友们按照由轻到重的顺序对下列动物进行排序吧!'],
+            },
+            {
+                name: '常识能力',
+                id: '56102',
+                des:
+                    '了解更多贴近生活的知识。通过这些知识可以帮助幼儿解决生活上一些简单的问题。与分析。掌握更多实用性的知识让幼儿的生活更加丰富多彩。乐趣。',
+                guideTip: [
+                    '请让小朋友根据图中的人物形态,找出老奶奶。',
+                    '奶奶想吃的水果不需要削皮,请让小朋友们找出哪些水果是奶奶想吃的呢?',
+                ],
+            },
+            {
+                name: '运算能力',
+                id: '56103',
+                des: '借助图画,进一步了解加减法的意义。初步感知加减法的运用结构。激发幼儿对数学的兴趣。',
+                guideTip: ['请让小朋友们根据图中水果数量的关系,在括号里填入正确的数字。'],
+            },
+            {
+                name: '分类能力',
+                id: '56104',
+                des:
+                    '观察物体,学会按照物体的某一特征进行分类。能够将生活中的物品分类收纳整理。发展幼儿的分类归纳能力。',
+                guideTip: ['乐乐帮爷爷种蔬菜,请让小朋友们指出哪些蔬菜是长在土壤里呢?'],
+            },
+            {
+                name: '想象能力',
+                id: '56105',
+                des:
+                    '让幼儿初步了解谜语,掌握谜语的特点,激发对猜谜语的兴趣。学会按物体主要特征猜谜语。发展幼儿的逻辑思维能力、想象力及大胆表达自己想法的能力。',
+                guideTip: ['请让小朋友们根据文字提示,猜出正确的谜底吧!'],
+            },
+            {
+                name: '分析能力',
+                id: '56106',
+                des: '认识各种图形。通过对图片的观察,找出图形组成。发展幼儿想象力、分析能力。',
+                guideTip: ['请让小朋友们根据路线帮小动物们找到各自的宝石,并且指出哪个宝石的边数最多?'],
+            },
+            {
+                name: '运算能力',
+                id: '56107',
+                des: '在游戏活动中,感受数学的乐趣。初步认识“>”“<”。培养幼儿多项思维能力,对数学活动的兴趣。',
+                guideTip: ['数一数黄框和蓝框里的物品数量,根据数量在○里填上“>”或“<”。'],
+            },
+            {
+                name: '分析能力',
+                id: '56108',
+                des:
+                    '使幼儿在各种情境中找出直观事物的规律。培养幼儿初步的观察和推理能力。发展幼儿思维的敏捷性、逻辑性。',
+                guideTip: [
+                    '仔细想一想,用小刀沿着虚线裁切图形,裁切后的图形会变成什么样子呢?',
+                    '根据图形排列的规律,将正确的宝石图案拖入圆圈内!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '56109',
+                des:
+                    '根据物体的形状特征,找出物体的影子。大胆运用剪刀,剪出自己想象的图案。感受彩色和黑白两种图案带来的艺术效果。',
+                guideTip: ['请让小朋友们根据图中的影子,找出每个影子对应的动物是什么?'],
+            },
+            {
+                name: '分析能力',
+                id: '56110',
+                des: '了解生活中的小常识,喜欢动脑。善于任何事物有思考。培养幼儿独立思考的能力。',
+                guideTip: ['请仔细想一想,图中哪些物品是可以漂浮在水面上?哪些物品会沉入水底呢?'],
+            },
+            {
+                name: '关联能力',
+                id: '56111',
+                des:
+                    '根据图片,感受物与物之间的关系。尝试总结已有游戏经验并运用经验进行新游戏,同时获取新经验。与同伴友好合作。',
+                guideTip: [
+                    '仔细观察图中每只小熊手里拿的生日礼物,请让小朋友说一说他们都是什么物品吧!',
+                    '仔细想一想,三堆玩具被扒开之后,最下面的都是谁的礼物呢?请让小朋友互相讨论一下吧!',
+                ],
+            },
+            {
+                name: '迁移能力',
+                id: '56112',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: [
+                    '仔细想一想,图中小鸟叼着的图形碎片中,哪两块碎片可以拼成一个正方形呢?',
+                    '仔细想一想,图中小鸟叼着的图形碎片中,哪两块碎片可以拼成一个六边形呢?',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '56113',
+                des:
+                    '根据形状特征,找到对应的图形,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的形状。3、提高图形形状分析能力。',
+                guideTip: ['图中的这几块碎片可以拼成一幅完整的图画,它们应该放在哪个位置上呢?'],
+            },
+            {
+                name: '抽象能力',
+                id: '56114',
+                des:
+                    '了解汉字的来源及发展,知道汉字是中国人发明的。能根据图画,象形字认读处对应的汉字。关注生活中的汉字,对汉字产生兴趣。',
+                guideTip: [
+                    '仔细想一想,三位小朋友手里的象形字都是哪个字呢?请让小朋友猜一猜吧!',
+                    '仔细想一想,图中摆放的糖果像哪个汉字呢?请让小朋友写一写,画一画吧!',
+                    '仔细想一想,图中这个人的动作像哪个汉字呢?请让小朋友写一写,画一画吧!',
+                    '仔细想一想,图中这只小鸡像哪个汉字呢?请让小朋友写一写,画一画吧!',
+                ],
+            },
+            {
+                name: '空间能力',
+                id: '56115',
+                des: '感知立体图形的空间存在形式。了解数形关系,有一定空间想象力。了解立体图形面与面之间的关系。',
+                guideTip: [
+                    '仔细想一想,图中的是三个立方体都是什么呢?他们被切开又是什么样子呢?请让小朋友发挥想象力说一说吧!',
+                    '正方体被切开可以得到什么图形呢?请帮助小朋友一起验证自己的想法是否正确。',
+                    '三棱柱被切开可以得到什么图形呢?请帮助小朋友一起验证自己的想法是否正确。',
+                    '长方体被切开可以得到什么图形呢?请帮助小朋友一起验证自己的想法是否正确。',
+                ],
+            },
+            {
+                name: '分析能力',
+                id: '56116',
+                des: '让幼儿初步认识英语,对简单的单词掌握发音。常见的英语词汇积累。简单的问好、常见物品单词会读。',
+                guideTip: [
+                    '图中有几个由不同形状组成的图案,仔细观察这些图案,哪两个图案用到的形状是一样的呢?',
+                    '这两个图案用到了相同的形状吗?分别是什么形状呢?',
+                ],
+            },
+        ],
+    },
+    {
+        id: 562,
+        name: '5-6下学期',
+        type: [
+            {
+                name: '推演能力',
+                id: '56201',
+                des:
+                    '发展幼儿数学逻辑推理自然探索。让幼儿尝试运用已有的生活经验,观察并发现事物间内在的联系,进行简单的推理与分析。体会数学的生活化,体验数学游戏的乐趣。',
+                guideTip: [
+                    '今天来到动物园,动物园里有好多动物,小朋友仔细看一看有哪些动物吧!',
+                    '老虎,狮子还有熊都喜欢吃肉,请小朋友根据它们每餐吃的肉,推算出每餐一共要出多少肉吧!',
+                    '老虎,狮子还有熊都喜欢吃肉,请小朋友根据它们每餐吃的肉,推算出每餐一共要出多少肉吧!',
+                ],
+            },
+            {
+                name: '常识能力',
+                id: '56202',
+                des:
+                    '了解更多贴近生活的知识。通过这些知识可以帮助幼儿解决生活上一些简单的问题。掌握更多实用性的知识让幼儿的生活更加丰富多彩。',
+                guideTip: [
+                    '在森林中有非常多的动物,请小朋友看图中来说一说哪些动物吧!',
+                    '图中的动物种,哪些动物是吃素的呢?请小朋友把它们找出来吧!',
+                    '图中的动物种,哪些动物是吃素的呢?请小朋友把它们找出来吧!',
+                ],
+            },
+            {
+                name: '运算能力',
+                id: '56203',
+                des: '借助图画,进一步了解加减法的意义。初步感知加减法的运用结构。激发幼儿对数学的兴趣。',
+                guideTip: [
+                    '蛋糕店的大厨正在做美味的蛋糕,小朋友来说一说蛋糕需要什么材料吧!',
+                    '制作图中的三个蛋糕需要不同数量的鸡蛋,请小朋友想一想下列两道题的答案,并把正确答案圈出来吧!',
+                    '制作图中的三个蛋糕需要不同数量的鸡蛋,请小朋友想一想下列两道题的答案,并把正确答案圈出来吧!',
+                ],
+            },
+            {
+                name: '分类能力',
+                id: '56204',
+                des:
+                    '观察物体,学会按照物体的某一特征进行分类。能够将生活中的物品分类收纳整理。发展幼儿的分类归纳能力。',
+                guideTip: [
+                    '小明的爸爸妈妈去超市购物,请小朋友也来说一说超市里有些什么物品吧!',
+                    '在图中的六个物品中,哪些物品是日常用品呢?请小朋友找到并圈出来吧!',
+                    '在图中的六个物品中,哪些物品是日常用品呢?请小朋友找到并圈出来吧!',
+                ],
+            },
+            {
+                name: '想象能力',
+                id: '56205',
+                des:
+                    '让幼儿初步了解谜语,掌握谜语的特点,激发对猜谜语的兴趣。学会按物体主要特征猜谜语。发展幼儿的逻辑思维能力、想象力及大胆表达自己想法的能力。',
+                guideTip: ['请帮助小朋友仔细分析题中的谜语,猜一猜谜底是什么动物吧!'],
+            },
+            {
+                name: '分析能力',
+                id: '56206',
+                des: '认识各种图形。通过对图片的观察,找出图形组成。了解立体图形于形状的组成关系。',
+                guideTip: ['请让小朋友们分别说说图中图形宝宝的特征,并说说组成了机器人的哪个部分。'],
+            },
+            {
+                name: '运算能力',
+                id: '56207',
+                des: '在游戏活动中,感受数学的乐趣。初步认识“>”“<”。培养幼儿多项思维能力,对数学活动的兴趣。',
+                guideTip: [
+                    '请让小朋友根据图中的文字提示,列出相应的算式。',
+                    '请让小朋友分步解析算式,在圆圈里填上相应的符号。',
+                ],
+            },
+            {
+                name: '分析能力',
+                id: '56208',
+                des:
+                    '使幼儿在各种情境中找出直观事物的规律。培养幼儿初步的观察和推理能力。发展幼儿思维的敏捷性、逻辑性。',
+                guideTip: [
+                    '仔细观察小熊妈妈是如何切正方形的饼干的,请帮助小朋友一起梳理一下步骤吧!',
+                    '请帮助小朋友按照小熊妈妈的方法切桌子上的圆形饼干吧!',
+                ],
+            },
+            {
+                name: '观察能力',
+                id: '56209',
+                des:
+                    '根据物体的形状特征,找出物体的影子。大胆运用剪刀,剪出自己想象的图案。感受彩色和黑白两种图案带来的艺术效果。',
+                guideTip: [
+                    '小朋友们一起和小鸟玩捉迷藏。',
+                    '请小朋友们一起来帮小鸟找出它的好朋友们,并说出它们的特征。',
+                ],
+            },
+            {
+                name: '分析能力',
+                id: '56210',
+                des: '了解生活中的小常识,喜欢动脑。善于任何事物有思考。培养幼儿独立思考的能力。',
+                guideTip: [
+                    '仔细想一想,方格中的图形左右对称之后会是什么样子呢?',
+                    '请让小朋友按照方格中的路线走一走,哪条路线能最快到达红色宝石处呢?',
+                ],
+            },
+            {
+                name: '关联能力',
+                id: '56211',
+                des:
+                    '根据图片,感受物与物之间的关系。尝试总结已有游戏经验并运用经验进行新游戏,同时获取新经验。与同伴友好合作。',
+                guideTip: [
+                    '图中的两个小朋友要找到他们脚下的图形,请让小朋友们仔细观察,这两个图形分别在哪个图形堆下面。',
+                ],
+            },
+            {
+                name: '迁移能力',
+                id: '56212',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: ['请根据地上摆放的碎片,让小朋友帮助乐乐和糖糖两个小朋友各找出三个图形,并组成一个图形吧!'],
+            },
+            {
+                name: '观察能力',
+                id: '56213',
+                des:
+                    '根据图像特征,找到缺失的部分,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的缺失部分。提高图像分析能力。',
+                guideTip: ['下面是魔方的三个面,小朋友们能找出相对应的那一面吗,是用什么方法找到的?'],
+            },
+            {
+                name: '抽象能力',
+                id: '56214',
+                des:
+                    '根据形状特征,找到对应的图形,并尝试自行验证结果。学习从颜色、线条等多方面,运用分析、推理等多种方法,判断图片的形状。提高图形形状分析能力。',
+                guideTip: [
+                    '仔细观察下图,请帮助小朋友找出三个象形字的事物吧!',
+                    '请仔细观察图中的山,它像哪个汉字呢?请让小朋友们发挥想象力说一说吧!',
+                    '请仔细观察图中的云,它像哪个汉字呢?请让小朋友们发挥想象力说一说吧!',
+                    '请仔细观察图中的果树,它像哪个汉字呢?请让小朋友们发挥想象力说一说吧!',
+                ],
+            },
+            {
+                name: '空间能力',
+                id: '56215',
+                des: '感知立体图形的空间存在形式。了解数形关系,有一定空间想象力。了解立体图形面与面之间的关系。',
+                guideTip: ['仔细观察图中被挖了洞的圆桶,哪个才是被挖的图形呢?请让小朋友帮忙一起找出来吧!'],
+            },
+            {
+                name: '分析能力',
+                id: '56216',
+                des: '让幼儿初步认识英语,对简单的单词掌握发音。常见的英语词汇积累。简单的问好、常见物品单词会读。',
+                guideTip: ['仔细观察图案,这个图案是由哪些图形组成的呢?'],
+            },
+        ],
+    },
+]
+export let SemeGirdCfg = {
+    ChildSemeColor: ChildSemeColor,
+    TestSemeGirdCfg: TestSemeGirdCfg,
+    SemeCfg: SemeCfg,
+}

+ 1 - 0
miniprogram/script/data/GartenData.ts

@@ -28,6 +28,7 @@ export interface IClassInfo {
     className: string
     yearRange: number
     yearRangeName: string
+    activateType?: number //1是试用版
     text?: string
     value?: number
 }

+ 23 - 2
miniprogram/script/data/UserData.ts

@@ -1,11 +1,13 @@
 import { observable, decorate, computed } from 'mobx-miniprogram'
 import { roleName, yearRangeStr, guardianStr } from '../config/GlobalConfig'
 import { TabBarConfig } from '../config/WxConfig'
-import { ROLE_TYPE } from '../enums/Enum'
+import { MANAGER_TYPE, ROLE_TYPE } from '../enums/Enum'
 export interface IAccount {
+    id: string
     accountName: string
     accountType: number
     typeName: string
+    isCreate: boolean
 }
 export interface IUserInfo {
     id: string
@@ -22,6 +24,7 @@ export interface IUserInfo {
     address: string
     garden: string
     organId: number
+    appKey: string
     birthDate: string
     subTestNum: number
     yearRange: number
@@ -30,6 +33,7 @@ export interface IUserInfo {
     activate: boolean
     accountList: IAccount[]
     currentAccount: IAccount
+    isCreate: boolean
 }
 export interface IManager {
     id: string
@@ -47,11 +51,19 @@ export class UserData {
         return list
     }
     loginQueryData: any = {}
-    isMainManager = false
+    managerType: MANAGER_TYPE = MANAGER_TYPE.normal
     managers: IManager[] = []
+    globalExpireDate: string = ''
+    baiduToken: string = ''
     updataServerUser(serverUser: any) {
         let tempFuc = (element: any) => {
             element.roleName = roleName[element.role]
+            if (this.managerType == MANAGER_TYPE.high) {
+                element.roleName = '主管'
+            }
+            if (this.managerType == MANAGER_TYPE.best) {
+                element.roleName = '超管'
+            }
             element.yearRangeName = yearRangeStr[element.yearRange]
             if (element.currentAccount) element.currentAccount.typeName = guardianStr[element.currentAccount.accountType]
             if (element.accountList) {
@@ -61,6 +73,13 @@ export class UserData {
             }
         }
         if (Array.isArray(serverUser)) {
+            serverUser.sort((a: any, b: any) => {
+                if (a.role == b.role) {
+                    return b.isCreate - a.isCreate
+                } else {
+                    return 1
+                }
+            })
             serverUser.forEach(tempFuc)
         } else {
             tempFuc(serverUser)
@@ -72,4 +91,6 @@ decorate(UserData, {
     curUserId: observable,
     curUser: computed,
     tabbarList: computed,
+    managerType: observable,
+    globalExpireDate: observable,
 })

+ 9 - 0
miniprogram/script/enums/Enum.ts

@@ -6,6 +6,11 @@ export enum ROLE_TYPE {
     leader, // 园长4
     manager, // 管理员4
 }
+export enum MANAGER_TYPE {
+    normal = 0, // 业务员
+    high, // 高管
+    best// 超管
+}
 export enum GUARDIAN_TYPE {
     father = 0, // 爸爸
     mother, // 妈妈
@@ -15,3 +20,7 @@ export enum GUARDIAN_TYPE {
     maternalgrandmother, // 外婆
     other = 20, //其他
 }
+export enum ACTIVITY_TYPE {
+    temp = 1, // 试用版
+    normal// 学期版
+}