RaoMeng 7 лет назад
Родитель
Сommit
bb22f84273
36 измененных файлов с 518 добавлено и 123 удалено
  1. 13 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/ClassController.java
  2. 7 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/ClassService.java
  3. 45 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/ClassServiceImpl.java
  4. 3 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java
  5. 39 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ClassForm.java
  6. 9 0
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/TeacherDetail.java
  7. 16 0
      applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml
  8. 52 0
      frontend/pc-web/app/view/Interaction/access/Access.js
  9. 91 0
      frontend/pc-web/app/view/Interaction/homework/Release.js
  10. 86 0
      frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js
  11. 1 10
      frontend/pc-web/app/view/basic/school/SchoolInfo.js
  12. 6 6
      frontend/pc-web/resources/json/navigation.json
  13. 1 1
      frontend/wechat-web/runtime/nginx/default.conf
  14. 4 4
      frontend/wechat-web/src/components/RefreshLayout.jsx
  15. 28 17
      frontend/wechat-web/src/configs/api.config.js
  16. 0 3
      frontend/wechat-web/src/configs/router.config.js
  17. 1 1
      frontend/wechat-web/src/modules/accountBind/BindMenu.jsx
  18. 9 6
      frontend/wechat-web/src/modules/hiPages/LeaveDetail/LeaveDetail.js
  19. 2 2
      frontend/wechat-web/src/modules/hiPages/access-notice/AccessNotice.js
  20. 1 1
      frontend/wechat-web/src/modules/hiPages/approvel-detail/ApprovelDetail.js
  21. 2 2
      frontend/wechat-web/src/modules/hiPages/approvel/Approvel.js
  22. 1 1
      frontend/wechat-web/src/modules/hiPages/class-schedule/ClassSchedule.css
  23. 2 2
      frontend/wechat-web/src/modules/hiPages/class-schedule/ClassSchedule.js
  24. 3 3
      frontend/wechat-web/src/modules/hiPages/field-trip/FieldTrip.js
  25. 4 4
      frontend/wechat-web/src/modules/hiPages/meet-detail/MeetDetail.js
  26. 3 3
      frontend/wechat-web/src/modules/hiPages/res_apply/ResApply.js
  27. 3 3
      frontend/wechat-web/src/modules/hiPages/score-inquiry/ScoreInquiry.js
  28. 7 7
      frontend/wechat-web/src/modules/hiPages/scorenotification/ScoreNotification.js
  29. 2 4
      frontend/wechat-web/src/modules/hiPages/sendMeetting/SendMeet.js
  30. 3 3
      frontend/wechat-web/src/modules/leave/LeaveAddCPage.js
  31. 62 28
      frontend/wechat-web/src/modules/leave/LeaveAddPage.js
  32. 6 5
      frontend/wechat-web/src/modules/leave/LeaveListPage.js
  33. 2 2
      frontend/wechat-web/src/modules/vote/VoteDetailPage.js
  34. 1 1
      frontend/wechat-web/src/modules/vote/VoteListParent.jsx
  35. 2 2
      frontend/wechat-web/src/modules/vote/VoteListTeacher.jsx
  36. 1 1
      frontend/wechat-web/src/utils/homePage.constants.js

+ 13 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/controller/ClassController.java

@@ -1,5 +1,10 @@
 package com.usoftchina.smartschool.school.basic.controller;
 
+import com.usoftchina.smartschool.base.Result;
+import com.usoftchina.smartschool.school.basic.service.ClassService;
+import com.usoftchina.smartschool.school.po.ClassForm;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -11,5 +16,12 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/class")
 public class ClassController {
 
-    
+    @Autowired
+    private ClassService classService;
+
+    @RequestMapping("/read/{id}")
+    public Result getClass(@PathVariable("id") Long id) {
+        ClassForm classForm = classService.getFormdata(id);
+        return Result.success(classForm);
+    }
 }

+ 7 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/ClassService.java

@@ -0,0 +1,7 @@
+package com.usoftchina.smartschool.school.basic.service;
+
+import com.usoftchina.smartschool.school.po.ClassForm;
+
+public interface ClassService {
+    ClassForm getFormdata(Long id);
+}

+ 45 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/ClassServiceImpl.java

@@ -0,0 +1,45 @@
+package com.usoftchina.smartschool.school.basic.service.impl;
+
+import com.usoftchina.smartschool.context.BaseContextHolder;
+import com.usoftchina.smartschool.exception.BizException;
+import com.usoftchina.smartschool.school.basic.service.ClassService;
+import com.usoftchina.smartschool.school.exception.BizExceptionCode;
+import com.usoftchina.smartschool.school.mapper.SysClazzMapper;
+import com.usoftchina.smartschool.school.mapper.SysStudentMapper;
+import com.usoftchina.smartschool.school.po.ClassForm;
+import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.SysStudent;
+import com.usoftchina.smartschool.school.po.TeacherDetail;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-23 16:57
+ **/
+@Service
+public class ClassServiceImpl implements ClassService{
+
+    @Autowired
+    private SysClazzMapper sysClazzMapper;
+    @Autowired
+    private SysStudentMapper sysStudentMapper;
+
+    @Override
+    public ClassForm getFormdata(Long id) {
+        if (null == id || "0".equals(id)) {
+            throw new BizException(BizExceptionCode.USELESS_DATA);
+        }
+        Long school_id = BaseContextHolder.getSchoolId();
+        ClassForm cf = new ClassForm();
+        SysClazz clazz = sysClazzMapper.selectByPrimaryKey(id);
+        List<SysStudent> students = sysStudentMapper.selectByConditon("clazz_id=" + id, school_id);
+        List<TeacherDetail> teacherDetails = sysClazzMapper.selectTeacher(id);
+        cf.setMain(clazz);
+        cf.setItems1(students);
+        cf.setItems2(teacherDetails);
+        return cf;
+    }
+}

+ 3 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/mapper/SysClazzMapper.java

@@ -1,6 +1,7 @@
 package com.usoftchina.smartschool.school.mapper;
 
 import com.usoftchina.smartschool.school.po.SysClazz;
+import com.usoftchina.smartschool.school.po.TeacherDetail;
 
 import java.util.List;
 
@@ -18,4 +19,6 @@ public interface SysClazzMapper {
     int updateByPrimaryKey(SysClazz record);
 
     List<SysClazz> selectBygrade(Long id);
+
+    List<TeacherDetail> selectTeacher(Long id);
 }

+ 39 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/ClassForm.java

@@ -0,0 +1,39 @@
+package com.usoftchina.smartschool.school.po;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: guq
+ * @create: 2019-01-23 17:03
+ **/
+public class ClassForm implements Serializable{
+    private SysClazz main;
+    private List<SysStudent> items1;
+    private List<TeacherDetail> items2;
+
+
+    public SysClazz getMain() {
+        return main;
+    }
+
+    public void setMain(SysClazz main) {
+        this.main = main;
+    }
+
+    public List<SysStudent> getItems1() {
+        return items1;
+    }
+
+    public void setItems1(List<SysStudent> items1) {
+        this.items1 = items1;
+    }
+
+    public List<TeacherDetail> getItems2() {
+        return items2;
+    }
+
+    public void setItems2(List<TeacherDetail> items2) {
+        this.items2 = items2;
+    }
+}

+ 9 - 0
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/po/TeacherDetail.java

@@ -7,10 +7,19 @@ package com.usoftchina.smartschool.school.po;
 public class TeacherDetail {
 
     private Long teacher_id;
+    private String teacher;
     private String grade;
     private String classes;
     private String subject;
 
+    public String getTeacher() {
+        return teacher;
+    }
+
+    public void setTeacher(String teacher) {
+        this.teacher = teacher;
+    }
+
     public Long getTeacher_id() {
         return teacher_id;
     }

+ 16 - 0
applications/school/school-server/src/main/resources/mapper/SysClazzMapper.xml

@@ -108,4 +108,20 @@
   <select id="selectBygrade" parameterType="java.lang.Long" resultMap="BaseResultMap">
     select * from sys_clazz where grade_id = #{id}
   </select>
+
+  <resultMap id="teacherMap" type="com.usoftchina.smartschool.school.po.TeacherDetail" >
+    <result column="teacher" property="teacher" jdbcType="VARCHAR" />
+    <result column="grade" property="grade" jdbcType="VARCHAR" />
+    <result column="subject" property="subject" jdbcType="INTEGER" />
+    <result column="classes" property="classes" jdbcType="VARCHAR" />
+  </resultMap>
+
+  <select id="selectTeacher" parameterType="long" resultMap="teacherMap">
+    select  sys_teacher.teacher_name teacher,sys_grade.grade_name grade,sys_clazz.clazz_name classes,subject.subject_name subject
+from sys_teacher_clazz left join subject on sys_teacher_clazz.subject_id = subject.subject_id
+left join sys_clazz on sys_teacher_clazz.clazz_id = sys_clazz.clazz_id
+left join sys_grade on sys_grade.grade_id=sys_clazz.grade_id
+left join sys_teacher on sys_teacher.teacher_id = sys_teacher_clazz.teacher_id
+where sys_teacher_clazz.clazz_id=#{id};
+  </select>
 </mapper>

+ 52 - 0
frontend/pc-web/app/view/Interaction/access/Access.js

@@ -0,0 +1,52 @@
+/**
+ * 出入校记录
+ */
+Ext.define('school.view.Interaction.access.Access',{
+    // extend: 'school.view.core.form.FormPanel',
+    extend: 'Ext.grid.Panel',
+    xtype: 'interaction-access-access',
+
+    //字段属性
+    _title: '出入校记录',
+    _idField: 'id',
+    _codeField: 'pu_code',
+    _statusField: 'pu_status',
+    _statusCodeField: 'pu_statuscode',
+    _auditmanField: 'pu_auditman',
+    _auditdateField: 'pu_auditdate',
+    _relationColumn: 'pd_puid',
+    _readUrl: '/api/purchase/purchase/read',
+    _saveUrl: '/api/purchase/purchase/save',
+    _auditUrl: '/api/purchase/purchase/audit',
+    _unAuditUrl: '/api/purchase/purchase/unAudit',
+    _deleteUrl: '/api/purchase/purchase/delete',
+    _turnInUrl: '/api/purchase/purchase/turnProdin',
+    initId: 0,
+
+    initComponent: function () {
+        Ext.apply(this, {
+            title: '出入校记录',
+            store: Ext.create('Ext.data.Store', {
+                fields:['portrait', 'name', 'sex', 'class', 'StudentID', 'state', 'time'],
+                data:[
+                    {portrait:"头像1", name:"张三", sex:'男', class:'三年级二班', StudentID:'0001', state:'出校', time:"01/10/2004 16:00"},
+                    {portrait:"头像2", name:"李四", sex:'男', class:'三年级二班', StudentID:'0002', state:'出校', time:"04/01/2004 8:00"},
+                    {portrait:"头像3", name:"红红", sex:'女', class:'三年级二班', StudentID:'0003', state:'在校', time:"04/01/2004 19:00"},
+                    {portrait:"头像4", name:"王五", sex:'男', class:'三年级二班', StudentID:'0004', state:'出校', time:"04/01/2004 22:50"},
+                    {portrait:"头像5", name:"六六", sex:'男', class:'三年级二班', StudentID:'0005', state:'出校', time:"04/01/2004 9:00"},
+                ]
+            }),
+            columns: [
+                {text: '头像',  dataIndex:'portrait'},
+                {text: '姓名',  dataIndex:'name'},
+                {text: '性别',  dataIndex:'sex'},
+                {text: '班级',  dataIndex:'class'},
+                {text: '学号',  dataIndex:'StudentID'},
+                {text: '状态',  dataIndex:'state'},
+                {text: '时间',  dataIndex:'time', xtype: 'datecolumn', format:'Y-m-d H:i'},
+            ],
+            forceFit: true,
+        });
+        this.callParent();
+    }
+});

+ 91 - 0
frontend/pc-web/app/view/Interaction/homework/Release.js

@@ -0,0 +1,91 @@
+/**
+ * 作业发布
+ */
+Ext.define('school.view.Interaction.homework.Release', {
+    extend: 'school.view.core.form.FormPanel',
+    xtype: 'interaction-homework-release',
+
+    // controller: 'purchase-purchase-formpanel',
+    // viewModel: 'purchase-purchase-formpanel',
+
+    //字段属性
+    _title: '作业发布',
+    _idField: 'id',
+    _codeField: 'pu_code',
+    _statusField: 'pu_status',
+    _statusCodeField: 'pu_statuscode',
+    _auditmanField: 'pu_auditman',
+    _auditdateField: 'pu_auditdate',
+    _relationColumn: 'pd_puid',
+    _readUrl: '/api/purchase/purchase/read',
+    _saveUrl: '/api/purchase/purchase/save',
+    _auditUrl: '/api/purchase/purchase/audit',
+    _unAuditUrl: '/api/purchase/purchase/unAudit',
+    _deleteUrl: '/api/purchase/purchase/delete',
+    _turnInUrl: '/api/purchase/purchase/turnProdin',
+    initId: 0,
+    initComponent: function () {
+        Ext.apply(this, {
+            defaultItems: [{
+                xtype: 'hidden',
+                name: 'id',
+                fieldLabel: 'id'
+            }, {
+                xtype: "textfield",
+                name: "Publisher",
+                fieldLabel: "发布人",
+                columnWidth: 0.5
+            }, {
+                xtype: 'textfield',
+                name: 'time',
+                fieldLabel: '发布时间',
+                columnWidth: 0.5
+            }, {
+                xtype: 'combobox',
+                name: 'Notifications',
+                fieldLabel: '通知人',
+                columnWidth: 0.5,
+                queryMode: 'local',
+                displayField: 'name',
+                valueField: 'abbr',
+                store:Ext.create('Ext.data.Store', {
+                    fields: ['abbr', 'name'],
+                    data : [
+                        {"abbr":"AL", "name":"Alabama"},
+                        {"abbr":"AK", "name":"Alaska"},
+                        {"abbr":"AZ", "name":"Arizona"}
+                    ]
+                })
+            }, {
+                xtype: 'textfield',
+                name: 'Deadline',
+                fieldLabel: '截止时间',
+                columnWidth: 0.5
+            }, {
+                xtype: "textfield",
+                name: "title",
+                fieldLabel: "标题",
+                columnWidth: 1
+            }, {
+                xtype: "textareafield",
+                name: 'content',
+                fieldLabel: "内容",
+                columnWidth: 1,
+            }, {
+                xtype: 'button',
+                text : '发布',
+                style: {
+                    left: '50%',
+                    transform: 'translateX(-50%)',
+                    borderRadius: '4px'
+                },
+                listeners: {
+                    click: function() {
+                        // 点击后做的事情
+                    },
+                }
+            }]
+        });
+        this.callParent();
+    }
+});

+ 86 - 0
frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js

@@ -0,0 +1,86 @@
+/**
+ * 学校通知
+ */
+Ext.define('school.view.Interaction.notice.SchoolNotice', {
+    extend: 'school.view.core.form.FormPanel',
+    xtype: 'interaction-notice-schoolnotice',
+
+    // controller: 'purchase-purchase-formpanel',
+    // viewModel: 'purchase-purchase-formpanel',
+
+    //字段属性
+    _title: '学校通知',
+    _idField: 'id',
+    _codeField: 'pu_code',
+    _statusField: 'pu_status',
+    _statusCodeField: 'pu_statuscode',
+    _auditmanField: 'pu_auditman',
+    _auditdateField: 'pu_auditdate',
+    _relationColumn: 'pd_puid',
+    _readUrl: '/api/purchase/purchase/read',
+    _saveUrl: '/api/purchase/purchase/save',
+    _auditUrl: '/api/purchase/purchase/audit',
+    _unAuditUrl: '/api/purchase/purchase/unAudit',
+    _deleteUrl: '/api/purchase/purchase/delete',
+    _turnInUrl: '/api/purchase/purchase/turnProdin',
+    initId: 0,
+    initComponent: function () {
+        Ext.apply(this, {
+            defaultItems: [{
+                xtype: 'hidden',
+                name: 'id',
+                fieldLabel: 'id'
+            }, {
+                xtype: "textfield",
+                name: "Publisher",
+                fieldLabel: "发布人",
+                columnWidth: 0.5
+            }, {
+                xtype: 'textfield',
+                name: 'time',
+                fieldLabel: '发布时间',
+                columnWidth: 0.5
+            }, {
+                xtype: 'combobox',
+                name: 'Notifications',
+                fieldLabel: '通知人',
+                columnWidth: 0.5,
+                queryMode: 'local',
+                displayField: 'name',
+                valueField: 'abbr',
+                forceSelection: 'true',//阻止输入非列表内容
+                store:Ext.create('Ext.data.Store', {
+                    fields: ['abbr', 'name'],
+                    data : [
+                        {"abbr":"AL", "name":"Alabama"},
+                        {"abbr":"AK", "name":"Alaska"},
+                        {"abbr":"AZ", "name":"Arizona"}
+                    ]
+                })
+            }, {
+                xtype: "textfield",
+                name: "title",
+                fieldLabel: "标题",
+                columnWidth: 1
+            }, {
+                xtype: "textareafield",//文本域
+                name: 'content',
+                fieldLabel: "内容",
+                columnWidth: 1,
+            }, {
+                xtype: 'button',
+                text : '发布',
+                style: {
+                    left: '50%',
+                    transform: 'translateX(-50%)',
+                },
+                listeners: {
+                    click: function() {
+                        // 点击后做的事情
+                    },
+                }
+            }]
+        });
+        this.callParent();
+    }
+});

+ 1 - 10
frontend/pc-web/app/view/basic/school/SchoolInfo.js

@@ -59,14 +59,5 @@ Ext.define('school.view.basic.school.SchoolInfo', {
             }]
         });
         this.callParent();
-    },
-    toolBtns: [{
-        xtype: 'button',
-        text: '转采购验收单',
-        hidden: true,
-        bind: {
-            hidden: '{turnHidden}'
-        },
-        handler: 'turnIn'
-    }]
+    }
 });

+ 6 - 6
frontend/pc-web/resources/json/navigation.json

@@ -38,13 +38,13 @@
     "text": "家校互动",
     "iconCls": "x-sa sa-setting",
     "items": [{
-        "id": "notice",
+        "id": "interaction-notice-schoolnotice", 
         "text": "学校通知",
-        "view": "notice"
+        "view": "interaction-notice-schoolnotice"
     }, {
-        "id": "homework",
+        "id": "interaction-homework-release",
         "text": "作业发布",
-        "view": "homework"
+        "view": "interaction-homework-release"
     }, {
         "id": "interact-timetable-list",
         "text": "课程表",
@@ -58,8 +58,8 @@
         "text": "校长信箱",
         "view": "mailbox"
     }, {
-        "id": "crossing-record",
+        "id": "interaction-access-access",
         "text": "出入校记录",
-        "view": "crossing-record"
+        "view": "interaction-access-access"
     }]
 }]

+ 1 - 1
frontend/wechat-web/runtime/nginx/default.conf

@@ -4,7 +4,7 @@ server {
 
     charset utf-8;
 
-    location / {
+    location /smart-school {
         root   /usr/share/nginx/html;
         index  index.html index.htm;
     }

+ 4 - 4
frontend/wechat-web/src/components/RefreshLayout.jsx

@@ -41,10 +41,10 @@ export default class RefreshLayout extends Component {
                     height: this.props.height,
                 })
             } else {
-                const hei = this.state.height - ReactDOM.findDOMNode(this.ptr).offsetTop;
-                this.setState({
-                    height: hei
-                })
+                // const hei = this.state.height - ReactDOM.findDOMNode(this.ptr).offsetTop;
+                // this.setState({
+                //     height: hei
+                // })
             }
         }, 0);
     }

+ 28 - 17
frontend/wechat-web/src/configs/api.config.js

@@ -55,32 +55,21 @@ export const API = {
 
 
     //根据学号取课程表
-    curriculumListByStuId: _baseURL + '/curriculum/curriculumListByStuId',
-    //查询学生出入校记录
-    RecordOutgoingList: _baseURL + '/recordOutgoing/RecordOutgoingList',
+    curriculumListByStuId: _baseURL + '/wxSchool/clazzCurriculum/curriculumListByStuId',
+
     //分页显示会议 /分页显示作业 /分页显示通知
     notifyMessage: _baseURL + '/notify/getMeetingList',
 
 
-    //创建投票单
-    voteCreate: _baseURL + '/wxSchool/vote/voteCreate',//投票创建
-    voteList: _baseURL + "/wxSchool/vote/voteListParent",//家长端
-    voteListTeacher: _baseURL + "/wxSchool/vote/voteListForTeacher",//教师端
-    voteDetail: _baseURL + "/vote/voteDetail",//投票详情
-    voteAction: _baseURL + "/vote/voteAction",//投票
+
     //发布作业
     homeWorkAdd: _baseURL + "/notify/issueNotification",
     homeWorkList: _baseURL + "/notify/getMeetingList",
     homeWorkDetail: _baseURL + "/notify/taskDetail",
-    //留言功能
-    messageCreate: _baseURL + "/leaveMessage/messageCreate",
+
     messageList: _baseURL + "/leaveMessage/getMessageListByNotifyId",
-    //学生请假
-    leaveCreate: _baseURL + "/leave/leaveCreate",
-    leaveListParent: _baseURL + "/leave/leaveListByStuId",
-    leaveListTeacher: _baseURL + "/leave/leaveListByUserId",
-    //学生请假单详情
-    leaveDetail: _baseURL + "/leave/lvDetail",
+
+
     //发布通知公告/发布作业/创建会议
     issueNotification: _baseURL + '/notify/issueNotification',
     //成绩查询
@@ -126,6 +115,28 @@ export const API = {
     getAllTeacher: _baseURL + '/wxSchool/user/getAllTeacher',
     //获取家长
     GET_ALL_PARENT: _baseURL + '/wxSchool/user/getParentsByTeacherId',
+    //学生请假
+    leaveCreate: _baseURL + "/wxSchool/oaLeave/leaveCreate",
+    //家长端请假单列表
+    leaveListParent: _baseURL + "/wxSchool/oaLeave/leaveListByStu",
+    //教师端请假列表
+    leaveListTeacher: _baseURL + "/wxSchool/oaLeave/leaveListByTeacher",
+    //学生请假单详情
+    leaveDetail: _baseURL + "/wxSchool/oaLeave/lvDetail",
+    //请假单回复
+    leaveReply: _baseURL + "/wxSchool/oaLeave/lvReply",
+    //查询学生出入校记录
+    RecordOutgoingList: _baseURL + '/wxSchool/outInRecord/getOutgoingList',
+    //创建投票单
+    voteCreate: _baseURL + '/wxSchool/vote/voteCreate',//投票创建
+    voteList: _baseURL + "/wxSchool/vote/voteListParent",//家长端
+    voteListTeacher: _baseURL + "/wxSchool/vote/voteListForTeacher",//教师端
+    voteDetailParent: _baseURL + "/wxSchool/vote/voteDetailParent",//家长投票单详情
+    voteDetailTeacher: _baseURL + "/wxSchool/vote/voteDetailTeacher",//教师端投票单详情
+
+    voteAction: _baseURL + "/wxSchool/vote/voteActionParent",//投票
+
+
 
     ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
     //获取用户是否绑定

+ 0 - 3
frontend/wechat-web/src/configs/router.config.js

@@ -137,12 +137,10 @@ export default class RouteConfig extends Component {
                     <Route path="/scorenotification/:stuId?" component={ScoreNotification}/> {/*成绩通知*/}
                     {/*<Route path="/accessnoticedetail/:stuId?" component={AccessNoticeDetail}/>     /!*出入校通知详情*!/*/}
                     <Route path="/accessnoticedetail" component={AccessNoticeDetail}/> {/*出入校通知详情*/}
-
                     <Route path='/leaveAddC' component={LeaveAddCPage}/>{/*老师请假*/}
                     <Route path='/leaveAdd' component={LeaveAddPage}/>   {/*学生请假*/}
                     <Route path='/leaveList/:role' component={LeaveListPage}/>{/*学生请假列表*/}
 
-
                     {/*刘杰*/}
                     <Route path={"/MobileUploadDemo"} component={MobileUploadDemo}/>
                     <Route path={"/MobileUpload"} component={MobileUpload}/>
@@ -150,7 +148,6 @@ export default class RouteConfig extends Component {
                     <Route path={"/TestImagesViewer"} component={TestImagesViewer}/>
                     <Route path={'/picturesWall'} component={PicturesWallItem}/>
                     <Route path='/leaveApproval' component={LeaveApprovalPage}/>
-
                 </div>
             </Router>
         );

+ 1 - 1
frontend/wechat-web/src/modules/accountBind/BindMenu.jsx

@@ -75,7 +75,7 @@ export default class BindMenu extends Component {
 
     obtainBindStatus = () => {
         fetchGet(API.USER_ISBINDING, {
-            openid: 'o8lZ9uJjHXWw2oaHBgSXXnP9pwpU',
+            openid: 'fanglonghai',
             schoolId: 1
         }).then(response => {
             if (response.data) {

+ 9 - 6
frontend/wechat-web/src/modules/hiPages/LeaveDetail/LeaveDetail.js

@@ -158,12 +158,15 @@ class LeaveDetail extends Component{
             return;
         }
         Toast.loading('回复中...', 0)
-        fetchPost(API.messageCreate,{
-            messName:'这是回复',
-            messContent:this.state.messageContent,
-            userId: this.props.userInfo.userId,
-            lvId:this.state.itemdetail.lvId,
-        }).then((response)=>{
+        const params = {
+            leaveReplyString:{
+                replyTitle:'请假单回复',
+                replyContent:this.state.messageContent,
+                teacherId: this.props.userInfo.user.userFunId,
+                lvId:this.state.itemdetail.lvId,
+            }
+        }
+        fetchPost(API.leaveReply,params).then((response)=>{
             console.log("response:"+JSON.stringify(response));
             if(response.success){
                 Toast.hide()

+ 2 - 2
frontend/wechat-web/src/modules/hiPages/access-notice/AccessNotice.js

@@ -29,10 +29,10 @@ class AccessNotice extends Component{
     componentDidMount() {
         let stuId = this.props.match.params.stuId
         if(stuId == null|| stuId.length == 0){
-            stuId = this.props.userInfo.stuId
+            stuId = this.props.userInfo.user.student.stuId
         }
         this.setState({
-            studentName:this.props.userInfo.stuName,
+            studentName:this.props.userInfo.user.student.stuId,
         })
         fetchPost(API.RecordOutgoingList,{
             stuId:stuId,

+ 1 - 1
frontend/wechat-web/src/modules/hiPages/approvel-detail/ApprovelDetail.js

@@ -169,7 +169,7 @@ class ApprovelDetail extends Component{
             return
         }
         let params = {
-            teacherId:this.props.userInfo.userId,
+            teacherId:this.props.userInfo.user.userFunId,
             approveId:this.state.approveId,
             status:this.state.handleStatus,
             approveOpinion:this.state.approveOpinion

+ 2 - 2
frontend/wechat-web/src/modules/hiPages/approvel/Approvel.js

@@ -166,7 +166,7 @@ class Approvel extends Component {
         }
 
         fetchGet(API.oaApproveList, {
-            teacherId: this.props.userInfo.userId,
+            teacherId: this.props.userInfo.user.userFunId,
             pageIndex: myApplypageIndex,
             pageSize: mPageSize
         }, {}).then((response) => {
@@ -213,7 +213,7 @@ class Approvel extends Component {
         // Toast.loading("获取数据中...", 0)
         // Toast.hide()
         fetchGet(API.oaApproveList, {
-            teacherId: this.props.userInfo.userId,
+            teacherId: this.props.userInfo.user.userFunId,
             pageIndex: myApprovepageIndex,
             pageSize: mPageSize
         }, {}).then((response) => {

+ 1 - 1
frontend/wechat-web/src/modules/hiPages/class-schedule/ClassSchedule.css

@@ -14,7 +14,7 @@
 .header_days_sty{display: flex;flex-direction: row;}
 .each_day_default{width: 20%;height: 36px;color: #CECECE;font-size: 15px;
     text-align: center;margin-top:15px;margin:10px 20px 10px 20px;
-    background-color: #333333; border-radius:100%;line-height: 36px;
+    border-radius:100%;line-height: 36px;
 }
 .isday_click{
     width: 20%;height: 36px;

+ 2 - 2
frontend/wechat-web/src/modules/hiPages/class-schedule/ClassSchedule.js

@@ -108,8 +108,8 @@ class ClassSchedule extends Component{
     }
     componentDidMount() {
         fetchGet(API.curriculumListByStuId,{
-            // stuId:this.props.userInfo.stuId,
-            stuId:10003,
+            stuId:this.props.userInfo.user.student.stuId,
+            // stuId:10003,
             curStatus:1
         },{}).then((response)=>{
             if(response.success && response.data){

+ 3 - 3
frontend/wechat-web/src/modules/hiPages/field-trip/FieldTrip.js

@@ -249,7 +249,7 @@ class FieldTrip extends Component {
             approveTitle: this.state.tripType[0] == 1 ? "外出申请":"出差申请",
             approveDetails: this.state.tripsReason,
             approveType: 1,
-            proposer: this.props.userInfo.userId,
+            proposer: this.props.userInfo.user.userFunId,
             approveStatus:1,
             approver: this.state.votePerson[0],
             startDate: moment(this.state.startValue).format('YYYY-MM-DD HH:mm:ss'),
@@ -284,8 +284,8 @@ class FieldTrip extends Component {
         Toast.loading('', 0)
 
         fetchGet(API.getAllTeacher, {
-            // schoolId: this.props.userInfo.schoolId,
-            schoolId:1
+            schoolId: this.props.userInfo.user.schoolId,
+            // schoolId:1
         }).then(response => {
             Toast.hide()
             const {targetData} = this.state

+ 4 - 4
frontend/wechat-web/src/modules/hiPages/meet-detail/MeetDetail.js

@@ -99,7 +99,7 @@ class MeetDetail extends Component {
 
     EndMeetting = () => {
         fetchPost(API.endMeeting, {
-            teacherId:this.props.userInfo.userId,
+            teacherId:this.props.userInfo.user.userFunId,
             meetingId: this.state.meetId
         }, {}).then((response) => {
             console.log('response', response)
@@ -133,7 +133,7 @@ class MeetDetail extends Component {
         if (meetId == null || meetId == '') {
             return
         }
-        console.log("teacherId:",this.props.userInfo.userId)
+        console.log("teacherId:",this.props.userInfo.user.userFunId)
         console.log('meetId', this.props.match.params.meetId)
         let meetBean = new MeetingBean()
         meetBean.createTime = ''
@@ -149,7 +149,7 @@ class MeetDetail extends Component {
         })
 
         let params = {
-            teacherId:this.props.userInfo.userId,
+            teacherId:this.props.userInfo.user.userFunId,
             meetingId: meetId
         }
         fetchPost(API.getMeetingDetails, params, {})
@@ -179,7 +179,7 @@ class MeetDetail extends Component {
                         notifyStatus: response.data.meetingStatus
                     })
                     this.setState({
-                        showEndBtn: this.props.userInfo.userId == "" ? false : this.props.userInfo.userId == response.data.meetingCreator ? true : false
+                        showEndBtn: this.props.userInfo.user.userFunId == "" ? false : this.props.userInfo.user.userFunId == response.data.meetingCreator ? true : false
                     }, function () {
                         console.log('showEndBtn', this.state.showEndBtn)
                     })

+ 3 - 3
frontend/wechat-web/src/modules/hiPages/res_apply/ResApply.js

@@ -158,8 +158,8 @@ class ResApply extends Component{
         Toast.loading('', 0)
 
         fetchGet(API.getAllTeacher, {
-            // schoolId: this.props.userInfo.schoolId,
-            schoolId:1
+            schoolId: this.props.userInfo.user.schoolId,
+            // schoolId:1
         }).then(response => {
             Toast.hide()
             const {targetData} = this.state
@@ -264,7 +264,7 @@ class ResApply extends Component{
             approveDetails:this.state.receivingSays,
             approveType: 2,
             appType:1,
-            proposer: this.props.userInfo.userId,
+            proposer: this.props.userInfo.user.userFunId,
             approveStatus:1,
             approver: this.state.votePerson[0],
             approveFiles:approveFiles,

+ 3 - 3
frontend/wechat-web/src/modules/hiPages/score-inquiry/ScoreInquiry.js

@@ -102,8 +102,8 @@ class ScoreInquiry extends Component{
     }
     getScoreData =(selectClas,selectTime)=>{
         let params = {
-            // stuId:this.props.userInfo.stuId,
-            stuId:10003,
+            stuId:this.props.userInfo.user.student.stuId,
+            // stuId:10003,
             scoreType:selectTime,
             scoreName:selectClas
         }
@@ -153,7 +153,7 @@ class ScoreInquiry extends Component{
     }
     componentDidMount() {
         let params = {
-            stuId:this.props.userInfo.stuId
+            stuId:this.props.userInfo.user.student.stuId
             // stuId:10003,
         }
         fetchGet(API.getCurr,params,{})

+ 7 - 7
frontend/wechat-web/src/modules/hiPages/scorenotification/ScoreNotification.js

@@ -21,9 +21,9 @@ class ScoreNotification extends Component{
     constructor(){
         super();
         this.state = {
-            stuId:null,
-            selectClass:null,
-            selectTime:null,
+            stuId:'',
+            selectClass:'',
+            selectTime:'',
             ScoreDataList:[
 
             ],
@@ -39,10 +39,10 @@ class ScoreNotification extends Component{
     }
     componentDidMount() {
         let stuId
-        if (this.props.match.params.stuId == null){
-            stuId = this.props.userInfo.stuId
-        }else {
+        if (this.props.match.params.stuId){
             stuId = this.props.match.params.stuId
+        }else {
+            stuId = this.props.userInfo.user.student.stuId
         }
         this.setState({
             stuId:stuId
@@ -75,7 +75,7 @@ class ScoreNotification extends Component{
         )
     }
     getScoreData =()=>{
-        if(this.state.stuId == null || this.state.stuId.trim().length == 0){
+        if(!isObjEmpty(this.state.stuId)){
             return
         }
         try {

+ 2 - 4
frontend/wechat-web/src/modules/hiPages/sendMeetting/SendMeet.js

@@ -37,8 +37,7 @@ class SendMeet extends Component {
         Toast.loading('', 0)
 
         fetchGet(API.getAllTeacher, {
-            // schoolId: this.props.userInfo.schoolId,
-            schoolId:1
+            schoolId: this.props.userInfo.user.schoolId,
         }).then(response => {
             Toast.hide()
             const {targetData} = this.state
@@ -242,8 +241,7 @@ class SendMeet extends Component {
         console.log('noticeT', new Date(noticeT))
 
         let params = {
-            // meetingCreator: this.props.userInfo.userId,
-            meetingCreator:this.props.userInfo.userId,
+            meetingCreator:this.props.userInfo.user.userFunId,
             meetingStatus: 1,
             meetingName: this.state.titleValue,
             meetingAddress: this.state.meetAddress,

+ 3 - 3
frontend/wechat-web/src/modules/leave/LeaveAddCPage.js

@@ -198,7 +198,7 @@ class LeaveAddCPage extends Component {
             approveTitle: this.state.leaveName,
             appType: this.state.leaveType[0],
             approveDetails: this.state.leaveReason,
-            proposer: this.props.userInfo.userId,
+            proposer: this.props.userInfo.user.userFunId,
             approveStatus:1,
             approver: JSON.stringify(this.state.votePerson[0]),
             approveFiles: approveFiles,
@@ -232,8 +232,8 @@ class LeaveAddCPage extends Component {
         Toast.loading('', 0)
 
         fetchGet(API.getAllTeacher, {
-            // schoolId: this.props.userInfo.schoolId,
-            schoolId:1
+            schoolId: this.props.userInfo.user.userFunId,
+            // schoolId:1
         }).then(response => {
             Toast.hide()
             const {targetData} = this.state

+ 62 - 28
frontend/wechat-web/src/modules/leave/LeaveAddPage.js

@@ -5,7 +5,7 @@
 
 import React,{Component} from 'react';
 import './LeaveAddPage.css';
-import {getOrganization} from "../../utils/api.request";
+// import {getOrganization} from "../../utils/api.request";
 import {connect} from 'react-redux';
 import {getIntValue, getStrValue, isObjEmpty} from "../../utils/common";
 import {ORGANIZATION_TEACHER} from "../../utils/api.constants";
@@ -35,7 +35,7 @@ class LeaveAddPage extends Component{
     }
     componentDidMount() {
         this.node.scrollIntoView();
-        getOrganization(ORGANIZATION_TEACHER, this.props.userInfo.stuId, false)
+        /*getOrganization(ORGANIZATION_TEACHER, this.props.userInfo.stuId, false)
             .then(organization => {
                 this.setState({
                     targetData: organization.teachers,
@@ -47,7 +47,8 @@ class LeaveAddPage extends Component{
             } else {
                 Toast.fail('请求异常', 2)
             }
-        })
+        })*/
+        this.getOrganization()
     }
      render(){
          const targetProps = {
@@ -76,7 +77,7 @@ class LeaveAddPage extends Component{
                     <img class="img-circle" id="margin_top_bottom_15"
                          src={"http://img5.imgtn.bdimg.com/it/u=1494163297,265276102&fm=26&gp=0.jpg"} width={60}
                          height={60}/>
-                    <span class="span_17 text_bold " id="row_margin">{this.props.userInfo.stuName}的请假条</span>
+                    <span class="span_17 text_bold " id="row_margin">{this.props.userInfo.user.student.stuName}的请假条</span>
                 </div>
                 <div className="comhline_sty"></div>
 
@@ -164,14 +165,19 @@ class LeaveAddPage extends Component{
                 approveFiles.push(value.picUrl)
             })
         }
+
+
         const params = {
-            lvProposer:this.props.userInfo.stuId,
-            lvName:this.props.userInfo.stuName+"的请假条",
-            lvNotifier:JSON.stringify(this.state.votePerson),
-            lvFiles:approveFiles,
+            lvTitle: "学生请假",
             lvDetails:this.state.leaveReason,
+            lvType: 1,
+            lvProposer:this.props.userInfo.user.student.stuId,
+            lvStatus:1,
             startDate: moment(this.state.startDate).format('YYYY-MM-DD HH:mm:ss'),
             endDate: moment(this.state.endDate).format('YYYY-MM-DD HH:mm:ss'),
+            lvRemarks: "备注",
+            lvNotifier:JSON.stringify(this.state.votePerson),
+            lvFiles:approveFiles,
         }
         console.log('param', params)
         fetchPost(API.leaveCreate, {
@@ -195,17 +201,57 @@ class LeaveAddPage extends Component{
             }
         })
     }
-
-    onTargetFocus = (e) => {
-        if (isObjEmpty(this.state.targetData)) {
-            getOrganization(ORGANIZATION_TEACHER, this.props.userInfo.stuId, false)
-                .then(organization => {
-                    this.setState({
-                        targetData: organization.teachers,
+    getOrganization = () => {
+        Toast.loading('', 0)
+        fetchGet(API.getAllTeacher, {
+            schoolId: this.props.userInfo.user.schoolId,
+        }).then(response => {
+            Toast.hide()
+            const {targetData} = this.state
+            targetData.length = 0
+            if (response && response.data) {
+                // const schoolArray = response.data.schools
+                const teacherArray = response.data
+
+                if (!isObjEmpty(teacherArray)) {
+                    const teacherData = []
+                    teacherArray.forEach((teacherObj, index) => {
+                        if (teacherObj) {
+                            teacherData.push({
+                                title: getStrValue(teacherObj, 'teacherName'),
+                                userId: getIntValue(teacherObj, 'teacherId'),
+                                userPhone: getStrValue(teacherObj, 'userPhone'),
+                                value: getStrValue(teacherObj, 'teacherName') + `-1-${index}`,
+                                key: `1-${index}`,
+                            })
+                        }
                     })
-                }).catch(error => {
 
+                    targetData.push({
+                        title: `全体老师`,
+                        value: `1`,
+                        key: `1`,
+                        children: teacherData,
+                    })
+                }
+            }
+            console.log('targetData', targetData)
+            this.setState({
+                targetData,
             })
+        }).catch(error => {
+            Toast.hide()
+
+            if (typeof error === 'string') {
+                Toast.fail(error, 2)
+            } else {
+                Toast.fail('请求异常', 2)
+            }
+        })
+    }
+    onTargetFocus = (e) => {
+        if (isObjEmpty(this.state.targetData)) {
+            this.getOrganization()
         }
     }
     onTargetChange = (value, label, checkNodes, count) => {
@@ -236,18 +282,6 @@ class LeaveAddPage extends Component{
         })
     }
 
-
-
-
-
-
-
-
-
-
-
-
-
 }
 
 let mapStateToProps = (state) => ({

+ 6 - 5
frontend/wechat-web/src/modules/leave/LeaveListPage.js

@@ -17,6 +17,7 @@ import {connect} from 'react-redux'
 import LeaveItem from './LeaveItem';
 import RefreshLayout from "../../components/RefreshLayout";
 
+let LEAVE_LIST_URL = ''
 /**
  * Created by Arison on 11:22.
  */
@@ -91,9 +92,9 @@ class LeaveListPage extends React.Component{
             hasMoreData:true,
         })
         if (this.state.role === "teacher") {
-            console.log("getLeaveListData()",this.props.userInfo.userId);
+            console.log("getLeaveListData()",this.props.userInfo.user.userFunId);
             fetchGet(API.leaveListTeacher, {
-                userId: this.props.userInfo.userId,
+                userId: this.props.userInfo.user.userFunId,
                 pageIndex: this.state.pageIndex,
                 pageSize: this.state.pageSize
             }).then((response) => {
@@ -131,7 +132,7 @@ class LeaveListPage extends React.Component{
         }
         if (this.state.role === "parent") {
             fetchGet(API.leaveListParent, {
-                stuId: this.props.userInfo.stuId,
+                stuId: this.props.userInfo.user.student.stuId,
                 pageIndex: this.state.pageIndex,
                 pageSize: this.state.pageSize
             }).then((response) => {
@@ -173,7 +174,7 @@ class LeaveListPage extends React.Component{
             this.state.pageIndex++;
             if (this.state.role === "teacher") {
                 fetchGet(API.leaveListTeacher, {
-                    userId: this.props.userInfo.userId,
+                    userId: this.props.userInfo.user.userFunId,
                     pageIndex: this.state.pageIndex,
                     pageSize: this.state.pageSize
                 }).then((response) => {
@@ -212,7 +213,7 @@ class LeaveListPage extends React.Component{
             }
             if (this.state.role === "parent") {
                 fetchGet(API.leaveListParent, {
-                    stuId: this.props.userInfo.stuId,
+                    stuId: this.props.userInfo.user.student.stuId,
                     pageIndex: this.state.pageIndex,
                     pageSize: this.state.pageSize
                 }).then((response) => {

+ 2 - 2
frontend/wechat-web/src/modules/vote/VoteDetailPage.js

@@ -48,9 +48,9 @@ class VoteDetailPage extends React.Component {
 
     getVoteDetail() {
         Toast.loading("", 0)
-        fetchGet(API.voteDetail, {
+        fetchGet(API.voteDetailParent, {
             voteId: this.state.id,
-            userId: this.props.userInfo.userId
+            teacherId: this.props.userInfo.user.userFunId,
         }).then((response) => {
             Toast.hide();
             if (response.data) {

+ 1 - 1
frontend/wechat-web/src/modules/vote/VoteListParent.jsx

@@ -92,7 +92,7 @@ class VoteListParent extends Component {
         }
 
         fetchPost(API.voteList, {
-            userId: this.props.userInfo.userId,
+            userId: this.props.userInfo.user.userFunId,
             pageIndex: mPageIndex,
             pageSize: mPageSize,
             voteType: '1',

+ 2 - 2
frontend/wechat-web/src/modules/vote/VoteListTeacher.jsx

@@ -162,7 +162,7 @@ class VoteListTeacher extends Component {
         }
 
         fetchPost(API.voteListTeacher, {
-            userId: this.props.userInfo.userId,
+            userId: this.props.userInfo.user.userFunId,
             voteType: '1',
             pageIndex: mReleaseIndex,
             pageSize: mPageSize
@@ -232,7 +232,7 @@ class VoteListTeacher extends Component {
         }
 
         fetchPost(API.voteListTeacher, {
-            userId: this.props.userInfo.userId,
+            userId: this.props.userInfo.user.userFunId,
             voteType: '1',
             pageIndex: mReceiveIndex,
             pageSize: mPageSize

+ 1 - 1
frontend/wechat-web/src/utils/homePage.constants.js

@@ -113,7 +113,7 @@ export const CONFIG_PARENT_MENU = [
             {
                 funcText: '成绩通知',
                 funcIcon: require('imgs/ic_score_notice.png'),
-                funcPage: '/score-inquiry'
+                funcPage: '/scorenotification'
             },
             {
                 funcText: '作业通知',