Эх сурвалжийг харах

Merge branch 'dev' of ssh://10.10.100.21/source/smartschool-platform into dev

RaoMeng 6 жил өмнө
parent
commit
e35e85860d

+ 2 - 2
frontend/pc-web/app.json

@@ -321,8 +321,8 @@
             "delay": 250
         },
         "server": {
-            "basePath": "http://10.1.81.61:8560",
-            "urlPattern": "^\/api\/"
+            "basePath": "https://school-api.ubtob.com/api/school",
+            "urlPattern": "^\/"
         }
     },
 

+ 16 - 0
frontend/pc-web/app/model/Score.js

@@ -0,0 +1,16 @@
+/**
+ * 年级
+ */
+Ext.define('school.model.Score', {
+    extend: 'school.model.Base',
+    fields: [{
+        name: 'number', // 学号
+        type: 'int'
+    }, {
+        name: 'name', // 姓名
+        type: 'string'
+    }, {
+        name: 'score', // 成绩
+        type: 'float'
+    }]
+});

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

@@ -1,52 +0,0 @@
-/**
- * 出入校记录
- */
-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();
-    }
-});

+ 140 - 0
frontend/pc-web/app/view/Interaction/access/List.js

@@ -0,0 +1,140 @@
+/**
+ * 出入校记录
+ */
+Ext.define('school.view.interaction.access.List', {
+    extend: 'school.view.core.base.BasePanel',
+    xtype: 'interaction-access-list',
+
+    dataUrl: '/api/interaction/access/list',
+    initComponent: function () {
+        var me = this;
+        Ext.apply(this, {
+            searchField: [{
+                xtype: 'textfield',
+                name: 'keyword',
+                fieldLabel: '姓名'
+            }, {
+                xtype: 'condatefield',
+                name: 'term',
+                columnWidth: 0.5,
+                fieldLabel: '日期'
+            }],
+
+            caller: null,
+            _formXtype: null,
+            _title: null,
+            _deleteUrl: null,
+            _batchOpenUrl: null,
+            _batchCloseUrl: null,
+            _batchDeleteUrl: null,
+
+            gridConfig: {
+                idField: null,
+                codeField: null,
+                statusCodeField: null,
+                dataUrl: me.dataUrl,
+                caller: null,
+                rootProperty: 'data.list',
+                totalProperty: 'data.total',
+                actionColumn: [],
+                selModel: {
+                    checkOnly: true,
+                    type: 'checkboxmodel',
+                    mode: "MULTI",
+                    ignoreRightMouseSelection: false
+                },
+                hiddenTools: true,
+                toolBtns: [],
+                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'
+                }, ]
+            },
+        });
+        this.callParent(arguments);
+    },
+
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
+                return v.value;
+            }).join(',') : '';
+        } else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    },
+
+    getExtraParams: function (store, op, condition) {
+        var temp = {};
+
+        for (let x = 0; x < condition.length; x++) {
+            let c = condition[x];
+            if (c.field == 'keyword') {
+                temp.keyword = c.value;
+            } else if (c.field == 'date') {
+                temp.fromDate = new Date(c.value.split(',')[0]).getTime();
+                temp.endDate = new Date(c.value.split(',')[1]).getTime();
+            } else if (c.field == 'quoted') {
+                temp.quoted = c.value == 'all' ? null : c.value;
+            } else if (c.field == 'closed') {
+                // temp.endDate = c.value == 'all' ? null : (
+                //     c.value == '0' ? 
+                // );
+            }
+        }
+        let obj = {
+            pageNumber: store.exportNumber ? store.exportNumber : op._page,
+            pageSize: store.exportPageSize ? store.exportPageSize : store.pageSize
+        };
+        for (let k in temp) {
+            if (!!temp[k]) {
+                obj[k] = temp[k];
+            }
+        }
+        return obj;
+    },
+});

+ 4 - 13
frontend/pc-web/app/view/Interaction/homework/Release.js

@@ -1,7 +1,7 @@
 /**
  * 作业发布
  */
-Ext.define('school.view.Interaction.homework.Release', {
+Ext.define('school.view.interaction.homework.Release', {
     extend: 'school.view.core.form.FormPanel',
     xtype: 'interaction-homework-release',
 
@@ -71,19 +71,10 @@ Ext.define('school.view.Interaction.homework.Release', {
                 name: 'content',
                 fieldLabel: "内容",
                 columnWidth: 1,
-            }, {
+            }],
+            toolBtns: [{
                 xtype: 'button',
-                text : '发布',
-                style: {
-                    left: '50%',
-                    transform: 'translateX(-50%)',
-                    borderRadius: '4px'
-                },
-                listeners: {
-                    click: function() {
-                        // 点击后做的事情
-                    },
-                }
+                text: '发布',
             }]
         });
         this.callParent();

+ 151 - 0
frontend/pc-web/app/view/Interaction/mailbox/List.js

@@ -0,0 +1,151 @@
+/**
+ * 校长信箱
+ */
+Ext.define('school.view.interaction.mailbox.List', {
+    extend: 'school.view.core.base.BasePanel',
+    xtype: 'interaction-mailbox-list',
+
+    dataUrl: '/api/interaction/mailbox/list',
+    initComponent: function() {
+        var me = this;
+        Ext.apply(this, {
+            searchField: [{
+                xtype: 'textfield',
+                name: 'keyword',
+                fieldLabel: '关键字'
+            }, {
+                xtype: 'condatefield',
+                name: 'term',
+                columnWidth: 0.5,
+                fieldLabel: '日期'
+            }],
+
+            caller: null,
+            _formXtype: null,
+            _title: null,
+            _deleteUrl: null,
+            _batchOpenUrl: null,
+            _batchCloseUrl: null,
+            _batchDeleteUrl: null,
+        
+            gridConfig: {
+                idField: null,
+                codeField: null,
+                statusCodeField: null,
+                dataUrl: me.dataUrl,
+                caller: null,
+                rootProperty: 'data.list',
+                totalProperty: 'data.total',
+                actionColumn: [],
+                selModel: {
+                    checkOnly:true,
+                    type:'checkboxmodel',
+                    mode : "MULTI" ,
+                    ignoreRightMouseSelection : false
+                },
+                hiddenTools: false,
+                toolBtns: [{
+                    xtype: 'button',
+                    text: '导出'
+                }, {
+                    xtype: 'button',
+                    text: '批量回复'
+                }, {
+                    xtype: 'button',
+                    text: '删除'
+                }],
+                columns : [{
+                    text: '编号',
+                    dataIndex: 'code',
+                    width: 150
+                }, {
+                    text: '标题',
+                    dataIndex: 'name',
+                    width: 120
+                }, {
+                    text: '内容',
+                    dataIndex: 'gender',
+                    width: 120
+                }, {
+                    text: '附件',
+                    dataIndex: 'grade'
+                }, {
+                    text: '日期',
+                    dataIndex: 'class'
+                }, {
+                    text: '提出人',
+                    dataIndex: 'birth',
+                    width: 120
+                }, {
+                    text: '处理',
+                    dataIndex: 'open'
+                }]
+            },
+        });
+        this.callParent(arguments);
+    },
+
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
+                return v.value;
+            }).join(',') : '';
+        } else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    },
+
+    getExtraParams: function(store, op, condition) {
+        var temp = {};
+
+        for(let x = 0; x < condition.length; x++) {
+            let c = condition[x];
+            if(c.field == 'keyword') {
+                temp.keyword = c.value;
+            }else if(c.field == 'date') {
+                temp.fromDate = new Date(c.value.split(',')[0]).getTime();
+                temp.endDate = new Date(c.value.split(',')[1]).getTime();
+            }else if(c.field == 'quoted') {
+                temp.quoted = c.value == 'all' ? null : c.value;
+            }else if(c.field == 'closed') {
+                // temp.endDate = c.value == 'all' ? null : (
+                //     c.value == '0' ? 
+                // );
+            }
+        }
+        let obj = {
+            pageNumber: store.exportNumber?store.exportNumber:op._page,
+            pageSize: store.exportPageSize?store.exportPageSize:store.pageSize
+        };
+        for(let k in temp) {
+            if(!!temp[k]) {
+                obj[k] = temp[k];
+            }
+        }
+        return obj;
+     },
+});

+ 4 - 12
frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js

@@ -1,7 +1,7 @@
 /**
  * 学校通知
  */
-Ext.define('school.view.Interaction.notice.SchoolNotice', {
+Ext.define('school.view.interaction.notice.SchoolNotice', {
     extend: 'school.view.core.form.FormPanel',
     xtype: 'interaction-notice-schoolnotice',
 
@@ -67,18 +67,10 @@ Ext.define('school.view.Interaction.notice.SchoolNotice', {
                 name: 'content',
                 fieldLabel: "内容",
                 columnWidth: 1,
-            }, {
+            }],
+            toolBtns: [{
                 xtype: 'button',
-                text : '发布',
-                style: {
-                    left: '50%',
-                    transform: 'translateX(-50%)',
-                },
-                listeners: {
-                    click: function() {
-                        // 点击后做的事情
-                    },
-                }
+                text: '发布',
             }]
         });
         this.callParent();

+ 69 - 0
frontend/pc-web/app/view/Interaction/score/Detail.js

@@ -0,0 +1,69 @@
+Ext.define('school.view.interaction.score.Detail', {
+    extend: 'school.view.core.form.FormPanel',
+    xtype: 'interaction-score-detail',
+
+    _title: '成绩录入',
+    _idField: 'student_id',
+    _codeField: 'student_number',
+    _statusField: null,
+    _statusCodeField: null,
+    _auditmanField: null,
+    _auditdateField: null,
+    // _readUrl: 'http://10.1.80.35:8560/api/sale/saledown/read',
+    _readUrl: '/api/sale/xxxx/read',
+    // _saveUrl: 'http://10.1.80.35:8560/api/sale/saledown/update',
+    _saveUrl: '/api/sale/sss/update',
+    // _toSaleUrl: 'http://10.1.80.35:8560/api/sale/saledown/toSale',
+    _toSaleUrl: '/api/sale/sss/toSale',
+    initId: 0,
+
+    codeInHeader: true,
+
+    initComponent: function () {
+        let me = this;
+        Ext.apply(this, {
+            defaultItems: [{
+                xtype: 'textfield',
+                name: 'number',
+                fieldLabel: '考试标题'
+            }, {
+                xtype: 'textfield',
+                name: 'name',
+                fieldLabel: '考试时间'
+            }, {
+                xtype: 'textfield',
+                name: 'grade',
+                fieldLabel: '考试范围'
+            }, {
+                xtype: 'textfield',
+                name: 'class',
+                fieldLabel: '总分'
+            }, {
+                xtype: "textfield",
+                name: "jg",
+                fieldLabel: "及格分"
+            }, {
+                name: "score",
+                xtype: "detailGridField",
+                detnoColumn: 'no',
+                storeModel: 'school.model.Score',
+                deleteDetailUrl: '/api/sale/sale/deleteDetail',
+                allowEmpty: true,
+                showCount: false,
+                emptyRows: 10,
+                rowViewModel: {},
+                columns: [{
+                    text: '学生编号',
+                    dataIndex: 'number'
+                }, {
+                    text: '姓名',
+                    dataIndex: 'name'
+                }, {
+                    text: '成绩',
+                    dataIndex: 'score'
+                }]
+            }],
+        });
+        this.callParent();
+    }
+});

+ 170 - 0
frontend/pc-web/app/view/Interaction/score/List.js

@@ -0,0 +1,170 @@
+/**
+ * 成绩发布
+ */
+Ext.define('school.view.interaction.score.List', {
+    extend: 'school.view.core.base.BasePanel',
+    xtype: 'interaction-score-list',
+
+    controller: 'interaction-score-list',
+
+    dataUrl: '/api/interaction/score/list',
+    initComponent: function() {
+        var me = this;
+        Ext.apply(this, {
+            searchField: [{
+                xtype: 'textfield',
+                name: 'term',
+                fieldLabel: '学期'
+            }, {
+                xtype: 'textfield',
+                name: 'grade',
+                fieldLabel: '年级'
+            }, {
+                xtype: 'textfield',
+                name: 'class',
+                fieldLabel: '班级'
+            }],
+        
+            caller: null,
+            _formXtype: null,
+            _title: null,
+            _deleteUrl: null,
+            _batchOpenUrl: null,
+            _batchCloseUrl: null,
+            _batchDeleteUrl: null,
+        
+            gridConfig: {
+                idField: null,
+                codeField: null,
+                statusCodeField: null,
+                dataUrl: me.dataUrl,
+                caller: null,
+                rootProperty: 'data.list',
+                totalProperty: 'data.total',
+                actionColumn: [],
+                selModel: {
+                    checkOnly:true,
+                    type:'checkboxmodel',
+                    mode : "MULTI" ,
+                    ignoreRightMouseSelection : false
+                },
+                hiddenTools: false,
+                toolBtns: [{
+                    xtype: 'button',
+                    text: '下载模板'
+                }, {
+                    xtype: 'button',
+                    text: '上传成绩'
+                }, {
+                    xtype: 'button',
+                    text: '添加',
+                    handler: 'onAddClick'
+                }, {
+                    xtype: 'button',
+                    text: '删除'
+                }],
+                columns : [{
+                    text: '编号',
+                    dataIndex: 'code',
+                    width: 150
+                }, {
+                    text: '标题',
+                    dataIndex: 'name',
+                    width: 120
+                }, {
+                    text: '时间',
+                    dataIndex: 'gender',
+                    width: 120
+                }, {
+                    text: '类型',
+                    dataIndex: 'grade'
+                }, {
+                    text: '录入人',
+                    dataIndex: 'class'
+                }, {
+                    text: '录入时间',
+                    dataIndex: 'birth',
+                    width: 120
+                }, {
+                    text: '状态',
+                    dataIndex: 'open'
+                }, {
+                    text: '操作',
+                    dataIndex: 'status'
+                }],
+                listeners: {
+                    itemclick: function(view, record, item, index, e, eOpts) {
+                        school.util.BaseUtil.openTab('interaction-score-detail', '课程表', 'interaction-score-detail'+record.get('id'), {
+                            initId: record.get('id')
+                        }); 
+                    }
+                }
+            },
+        });
+        this.callParent(arguments);
+    },
+
+    /**
+     * 处理部分字段值
+     */
+    getConditionValue: function (field, value) {
+        var me = this,
+            xtypes = field.getXTypes().split('/'),
+            conditionValue;
+        if (me.isContainsAny(xtypes, ['datefield'])) {
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
+        } else if (me.isContainsAny(xtypes, ['conmonthfield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = from + ',' + to;
+        } else if (me.isContainsAny(xtypes, ['condatefield'])) {
+            var from = value.from,
+                to = value.to;
+
+            conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
+        } else if (me.isContainsAny(xtypes, ['dbfindtrigger'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['combobox', 'combo'])) {
+            conditionValue = value;
+        } else if (me.isContainsAny(xtypes, ['multicombo'])) {
+            conditionValue = value.map ? value.map(function (v) {
+                return v.value;
+            }).join(',') : '';
+        } else {
+            conditionValue = value;
+        }
+
+        return conditionValue;
+    },
+
+    getExtraParams: function(store, op, condition) {
+        var temp = {};
+
+        for(let x = 0; x < condition.length; x++) {
+            let c = condition[x];
+            if(c.field == 'keyword') {
+                temp.keyword = c.value;
+            }else if(c.field == 'date') {
+                temp.fromDate = new Date(c.value.split(',')[0]).getTime();
+                temp.endDate = new Date(c.value.split(',')[1]).getTime();
+            }else if(c.field == 'quoted') {
+                temp.quoted = c.value == 'all' ? null : c.value;
+            }else if(c.field == 'closed') {
+                // temp.endDate = c.value == 'all' ? null : (
+                //     c.value == '0' ? 
+                // );
+            }
+        }
+        let obj = {
+            pageNumber: store.exportNumber?store.exportNumber:op._page,
+            pageSize: store.exportPageSize?store.exportPageSize:store.pageSize
+        };
+        for(let k in temp) {
+            if(!!temp[k]) {
+                obj[k] = temp[k];
+            }
+        }
+        return obj;
+     },
+});

+ 8 - 0
frontend/pc-web/app/view/Interaction/score/ListController.js

@@ -0,0 +1,8 @@
+Ext.define('school.view.interaction.score.ListController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.interaction-score-list',
+
+    onAddClick: function() {
+        school.util.BaseUtil.openTab('interaction-score-detail', '录入成绩', 'interaction-score-detail-add'); 
+    }
+});

+ 3 - 3
frontend/pc-web/app/view/interact/timetable/Detail.js → frontend/pc-web/app/view/Interaction/timetable/Detail.js

@@ -1,8 +1,8 @@
-Ext.define('school.view.interact.timetable.Detail', {
+Ext.define('school.view.interaction.timetable.Detail', {
     extend: 'school.view.core.form.FormPanel',
-    xtype: 'interact-timetable-detail',
+    xtype: 'interaction-timetable-detail',
 
-    _title: '学生信息',
+    _title: '课程表',
     _idField: 'student_id',
     _codeField: 'student_number',
     _statusField: null,

+ 0 - 0
frontend/pc-web/app/view/interact/timetable/Detail.scss → frontend/pc-web/app/view/Interaction/timetable/Detail.scss


+ 5 - 5
frontend/pc-web/app/view/interact/timetable/List.js → frontend/pc-web/app/view/Interaction/timetable/List.js

@@ -1,13 +1,13 @@
 /**
  * 课程表
  */
-Ext.define('school.view.interact.timetable.List', {
+Ext.define('school.view.interaction.timetable.List', {
     extend: 'school.view.core.base.BasePanel',
-    xtype: 'interact-timetable-list',
+    xtype: 'interaction-timetable-list',
 
-    controller: 'interact-timetable-list',
+    controller: 'interaction-timetable-list',
 
-    dataUrl: '/api/interact/timetable/list',
+    dataUrl: '/api/interaction/timetable/list',
     initComponent: function() {
         var me = this;
         Ext.apply(this, {
@@ -94,7 +94,7 @@ Ext.define('school.view.interact.timetable.List', {
                 }],
                 listeners: {
                     itemclick: function(view, record, item, index, e, eOpts) {
-                        school.util.BaseUtil.openTab('interact-timetable-detail', '课程表', 'interact-timetable-detail'+record.get('id'), {
+                        school.util.BaseUtil.openTab('interaction-timetable-detail', '课程表', 'interaction-timetable-detail'+record.get('id'), {
                             initId: record.get('id')
                         }); 
                     }

+ 8 - 0
frontend/pc-web/app/view/Interaction/timetable/ListController.js

@@ -0,0 +1,8 @@
+Ext.define('school.view.interaction.timetable.ListController', {
+    extend: 'Ext.app.ViewController',
+    alias: 'controller.interaction-timetable-list',
+
+    onAddClick: function() {
+        school.util.BaseUtil.openTab('interaction-timetable-detail', '新增课程表', 'interaction-timetable-detail-add'); 
+    }
+});

+ 1 - 1
frontend/pc-web/app/view/basic/class/ListCardController.js

@@ -6,7 +6,7 @@ Ext.define('school.view.basic.class.ListCardController', {
         var me = this,
         view = me.view,
         viewModel = me.getViewModel(),
-        grade = viewModel.get('grade');
+        grade = viewModel.get('store_grade');
 
         view.showNode(grade.getRootNode());
     },

+ 4 - 2
frontend/pc-web/app/view/basic/school/SchoolInfo.js

@@ -9,7 +9,8 @@ Ext.define('school.view.basic.school.SchoolInfo', {
     // controller: 'purchase-purchase-formpanel',
     // viewModel: 'purchase-purchase-formpanel',
 
-    readUrl: 'http://10.1.80.35:9560/school/read',
+    // readUrl: 'http://10.1.80.35:9560/school/read',
+    readUrl: '/school/read',
 
     layout: 'column',
     autoScroll: true,
@@ -89,7 +90,8 @@ Ext.define('school.view.basic.school.SchoolInfo', {
 
         me.setLoading(true);
         school.util.BaseUtil.request({
-            url: 'http://10.1.80.35:9560/school/save',
+            // url: 'http://10.1.80.35:9560/school/save',
+            url: '/school/save',
             method: 'POST',
             params: JSON.stringify(values)
         })

+ 18 - 0
frontend/pc-web/app/view/core/form/FormPanel.js

@@ -23,6 +23,7 @@ Ext.define('school.view.core.form.FormPanel', {
     },
 
     items: [],
+    toolBtns: [],
 
     invalidText: '表单校验有误,请检查后重试', // 校验未通过提示内容
     dirtyAuditText: '表单数据有修改,是否先保存修改?', // 有修改时点击审核提示内容
@@ -31,11 +32,28 @@ Ext.define('school.view.core.form.FormPanel', {
 
     initComponent: function () {
         let me = this;
+
+        Ext.apply(me, {
+            dockedItems: [{
+                xtype: 'toolbar',
+                dock: 'top',
+                hidden: me.toolBtns.length == 0,
+                items: me.getToolBarItems(),
+            }],
+        });
         me.callParent(arguments);
         me.initFormItems();
 
     },
 
+    getToolBarItems: function() {
+        let me = this, items = [];
+        
+        items = Ext.Array.merge(['->'], me.toolBtns);
+
+        return items;
+    },
+
     initFormItems: function() {
         let me = this;
         school.util.FormUtil.setItems(me);

+ 0 - 8
frontend/pc-web/app/view/interact/timetable/ListController.js

@@ -1,8 +0,0 @@
-Ext.define('school.view.interact.timetable.ListController', {
-    extend: 'Ext.app.ViewController',
-    alias: 'controller.interact-timetable-list',
-
-    onAddClick: function() {
-        school.util.BaseUtil.openTab('interact-timetable-detail', '新增课程表', 'interact-timetable-detail-add'); 
-    }
-});

+ 8 - 2
frontend/pc-web/app/view/viewport/ViewportController.js

@@ -40,7 +40,10 @@ Ext.define('school.view.viewport.ViewportController', {
     showAuth: function() {
         var me = this;
         //读取学校
-        school.util.BaseUtil.request({url:'http://10.1.80.35:9560/school/read/1'})
+        school.util.BaseUtil.request({
+            // url:'http://10.1.80.35:9560/school/read/1'
+            url:'/school/read/1'
+        })
         .then(function(res) {
             if(res.success) {
                 let d = {
@@ -65,7 +68,10 @@ Ext.define('school.view.viewport.ViewportController', {
     showMain: function() {
         var me = this;
         //读取学校
-        school.util.BaseUtil.request({url:'http://10.1.80.35:9560/school/read/1'})
+        school.util.BaseUtil.request({
+            // url:'http://10.1.80.35:9560/school/read/1'
+            url:'/api/school/read/1'
+        })
         .then(function(res) {
             if(res.success) {
                 debugger

+ 3 - 1
frontend/pc-web/app/view/viewport/ViewportModel.js

@@ -33,13 +33,15 @@ Ext.define('school.view.viewport.ViewportModel', {
         },
         store_grade: {
             type: 'tree',
+            autoLoad: true,
             // model: 'school.model.Grade',
             fields: [{
                 name: 'text'
             }],
             proxy: {
                 type: 'ajax',
-                url: 'http://10.1.80.35:9560/grade/read/1',
+                // url: 'http://10.1.80.35:9560/grade/read/1',
+                url: '/grade/read/1',
                 reader: {
                     type: 'json'
                 }

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

@@ -46,20 +46,20 @@
         "text": "作业发布",
         "view": "interaction-homework-release"
     }, {
-        "id": "interact-timetable-list",
+        "id": "interaction-timetable-list",
         "text": "课程表",
-        "view": "interact-timetable-list"
+        "view": "interaction-timetable-list"
     }, {
-        "id": "grade",
+        "id": "interaction-score-list",
         "text": "成绩发布",
-        "view": "grade"
+        "view": "interaction-score-list"
     }, {
-        "id": "interaction-mailbox-mailbox",
+        "id": "interaction-mailbox-list",
         "text": "校长信箱",
-        "view": "interaction-mailbox-mailbox"
+        "view": "interaction-mailbox-list"
     }, {
-        "id": "interaction-access-access",
+        "id": "interaction-access-list",
         "text": "出入校记录",
-        "view": "interaction-access-access"
+        "view": "interaction-access-list"
     }]
 }]