Browse Source

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

RaoMeng 6 years ago
parent
commit
75bdce3fa4
21 changed files with 156 additions and 53 deletions
  1. 1 1
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/CurriculumServiceImpl.java
  2. 2 2
      applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/StudentServiceImpl.java
  3. 1 9
      frontend/pc-web/app/view/Interaction/homework/Release.js
  4. 15 0
      frontend/pc-web/app/view/Interaction/homework/ReleaseModel.js
  5. 7 1
      frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js
  6. 15 0
      frontend/pc-web/app/view/Interaction/notice/SchoolNoticeModel.js
  7. 25 3
      frontend/pc-web/app/view/Interaction/timetable/Detail.js
  8. 7 9
      frontend/pc-web/app/view/Interaction/timetable/DetailModel.js
  9. 10 2
      frontend/pc-web/app/view/Interaction/timetable/List.js
  10. 2 2
      frontend/pc-web/app/view/basic/staff/StaffDetail.js
  11. 1 1
      frontend/pc-web/app/view/basic/student/StudentDetail.js
  12. 5 1
      frontend/pc-web/app/view/core/form/field/DetailGridField.js
  13. 1 0
      frontend/pc-web/app/view/core/form/field/FileField.js
  14. 6 15
      frontend/pc-web/app/view/setting/operatelog/OperateLog.js
  15. 53 3
      frontend/pc-web/overrides/form/field/ComboBox.js
  16. 1 0
      frontend/wechat-web/src/modules/hiPages/approvel/Approvel.css
  17. 1 1
      frontend/wechat-web/src/modules/hiPages/approvel/Approvel.js
  18. 1 2
      frontend/wechat-web/src/modules/home/HomePage.jsx
  19. 1 0
      frontend/wechat-web/src/modules/leave/LeaveListPage.css
  20. 1 1
      frontend/wechat-web/src/modules/leave/LeaveListPage.js
  21. BIN
      frontend/wechat-web/src/style/imgs/no_data.png

+ 1 - 1
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/CurriculumServiceImpl.java

@@ -243,7 +243,7 @@ public class CurriculumServiceImpl implements CurriculumService {
                     DataImportDetail singleDataImportDetail = dataImportMapper.selectMainBycode(key, id, schoolId);
                     CurriculumDTO curriculumDTO = JSON.parseObject(singleDataImportDetail.getDd_maindata(), CurriculumDTO.class);
                     //更新数据,将中文转换成ID
-                    curriculumDTO.setStatus("1");
+                    curriculumDTO.setStatus("0");
                     curriculumDTO.setCreateTime(new Date());
                     curriculumDTO.setClazzId(String.valueOf(clazzId));
                     curriculumDTO.setSchoolId(schoolId);

+ 2 - 2
applications/school/school-server/src/main/java/com/usoftchina/smartschool/school/basic/service/impl/StudentServiceImpl.java

@@ -197,9 +197,9 @@ public class StudentServiceImpl implements StudentService{
                 json = JSONObject.parseObject(main.getDd_maindata());
                 if (null != json) {
                     if ("男".equals(json.get("stu_sex"))) {
-                        json.put("stu_sex", 0);
-                    }else if ("女".equals(json.get("stu_sex"))) {
                         json.put("stu_sex", 1);
+                    }else if ("女".equals(json.get("stu_sex"))) {
+                        json.put("stu_sex", 2);
                     }else if(!"男".equals(json.get("stu_sex")) && !"女".equals(json.get("stu_sex"))){
                         throw new BizException(BizExceptionCode.ILLEGAL_Gender);
                     }

+ 1 - 9
frontend/pc-web/app/view/Interaction/homework/Release.js

@@ -6,7 +6,7 @@ Ext.define('school.view.interaction.homework.Release', {
     xtype: 'interaction-homework-release',
 
     controller: 'interaction-homework-release',
-    // viewModel: 'purchase-purchase-formpanel',
+    viewModel: 'interaction-homework-release',
 
     //字段属性
     _title: '作业发布',
@@ -121,14 +121,6 @@ Ext.define('school.view.interaction.homework.Release', {
                 name: 'accessory',
                 fieldLabel: '附件'
             }],
-            applyBtns: [{
-                apply: true,
-                text: '保存',
-                bind: {
-                    hidden: '{!showSaveBtn || task_status == 1}',
-                    disabled: '{!base.valid}'
-                }
-            }],
             applyBtns: [{
                 apply: true,
                 text: '删除',

+ 15 - 0
frontend/pc-web/app/view/Interaction/homework/ReleaseModel.js

@@ -0,0 +1,15 @@
+Ext.define('school.view.interaction.homework.SchoolNoticeModel', {
+    extend: 'school.view.core.form.FormPanelModel',
+    alias: 'viewmodel.interaction-homework-release',
+
+    formulas: {
+        task_status_change: {
+            bind: '{task_status}',
+            get: function(v) {
+                let view = this.getView();
+                view.setEditable(v != 1);
+            }
+        }
+    }
+
+});

+ 7 - 1
frontend/pc-web/app/view/Interaction/notice/SchoolNotice.js

@@ -6,7 +6,7 @@ Ext.define('school.view.interaction.notice.SchoolNotice', {
     xtype: 'interaction-notice-schoolnotice',
 
     controller: 'interaction-notice-schoolnotice',
-    // viewModel: 'purchase-purchase-formpanel',
+    viewModel: 'interaction-notice-schoolnotice',
 
     //字段属性
     _title: '学校通知',
@@ -85,6 +85,12 @@ Ext.define('school.view.interaction.notice.SchoolNotice', {
                     hidden: '{!showSaveBtn || notify_status == 1}',
                     disabled: '{!base.valid}'
                 }
+            }, {
+                apply: true,
+                text: '删除',
+                bind: {
+                    hidden: '{!showDeleteBtn || !notify_id || notify_status == 1}'
+                },
             }],
             toolBtns: [{
                 xtype: 'button',

+ 15 - 0
frontend/pc-web/app/view/Interaction/notice/SchoolNoticeModel.js

@@ -0,0 +1,15 @@
+Ext.define('school.view.interaction.notice.SchoolNoticeModel', {
+    extend: 'school.view.core.form.FormPanelModel',
+    alias: 'viewmodel.interaction-notice-schoolnotice',
+
+    formulas: {
+        notify_status_change: {
+            bind: '{notify_status}',
+            get: function(v) {
+                let view = this.getView();
+                view.setEditable(v != 1);
+            }
+        }
+    }
+
+});

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

@@ -35,7 +35,7 @@ Ext.define('school.view.interaction.timetable.Detail', {
                 xtype: 'textfield',
                 name: 'name',
                 fieldLabel: '课表名称',
-                emptyText: '请选择年级',
+                columnWidth: 0.5,
                 bind: {
                     emptyText: '{name_emptyText}'
                 }
@@ -115,10 +115,18 @@ Ext.define('school.view.interaction.timetable.Detail', {
                     let now = new Date();
                     let year = now.getFullYear();
                     let month = now.getMonth() + 1;
-                    let o1, o2;
+                    let o1, o2, termPart;
+                    
                     o1 = [(year - 1) + '-' + year];
                     o2 = [year + '-' + (year + 1)];
-                    return (month < 9) ? o1[0] : o2[0]
+
+                    if((month > 2 && month < 8) || (month == 2 && date > 15) || (month == 8 && date < 15)) {
+                        termPart = o1[0];
+                    }else {
+                        termPart = o2[0];
+                    }
+
+                    return termPart;
                 })()
             }, {
                 xtype: "combobox",
@@ -365,6 +373,20 @@ Ext.define('school.view.interaction.timetable.Detail', {
                     hidden: true
                 }]
             }],
+            applyBtns: [{
+                apply: true,
+                text: '删除',
+                bind: {
+                    hidden: '{!showDeleteBtn || !id || status == 1}'
+                },
+            }, {
+                apply: true,
+                text: '保存',
+                bind: {
+                    hidden: '{!showSaveBtn || status == 1}',
+                    disabled: '{!base.valid}'
+                }
+            }],
             toolBtns: [{
                 xtype: 'button',
                 text: '启用',

+ 7 - 9
frontend/pc-web/app/view/Interaction/timetable/DetailModel.js

@@ -12,18 +12,16 @@ Ext.define('school.view.interaction.timetable.DetailModel', {
 
             if(!!gradeName && !!clazzName && !!termPart && !!termName) {
                 text =  gradeName + clazzName + termPart.split('-')[0] + '学年' + termName + '课表';
-                // this.set('name', text);
-            }else if(!gradeName) {
-                text = '请选择年级';
-            }else if(!clazzName) {
-                text = '请选择班级';
-            }else if(!termPart) {
-                text = '请选择学年';
-            }else if(!termName) {
-                text = '请选择学期';
             }
 
             return text;
+        },
+        status_change: {
+            bind: '{status}',
+            get: function(v) {
+                let view = this.getView();
+                view.setEditable(v != 1);
+            }
         }
     }
 

+ 10 - 2
frontend/pc-web/app/view/Interaction/timetable/List.js

@@ -77,10 +77,18 @@ Ext.define('school.view.interaction.timetable.List', {
                     let now = new Date();
                     let year = now.getFullYear();
                     let month = now.getMonth() + 1;
-                    let o1, o2;
+                    let o1, o2, termPart;
+                    
                     o1 = [(year - 1) + '-' + year];
                     o2 = [year + '-' + (year + 1)];
-                    return (month < 9) ? o1[0] : o2[0]
+
+                    if((month > 2 && month < 8) || (month == 2 && date > 15) || (month == 8 && date < 15)) {
+                        termPart = o1[0];
+                    }else {
+                        termPart = o2[0];
+                    }
+
+                    return termPart;
                 })()
             }, {
                 xtype: "combobox",

+ 2 - 2
frontend/pc-web/app/view/basic/staff/StaffDetail.js

@@ -84,7 +84,7 @@ Ext.define('school.view.basic.staff.StaffDetail', {
                 fieldLabel: '政治面貌',
                 displayField: 'name',
                 valueField: 'name',
-                editable: false,
+                editable: true,
                 store: Ext.create('Ext.data.ArrayStore', {
                     fields: ['name'],
                     data: [['中共党员'], ['中共预备党员'], ['共青团员'], ['群众']]
@@ -101,7 +101,7 @@ Ext.define('school.view.basic.staff.StaffDetail', {
                 fieldLabel: '学历',
                 displayField: 'name',
                 valueField: 'name',
-                editable: false,
+                editable: true,
                 store: Ext.create('Ext.data.ArrayStore', {
                     fields: ['name'],
                     data: [['博士后'], ['博士'], ['硕士'], ['研究生'], ['本科(统招)'], ['本科(成人高考)'], ['本科(专升本)'], ['大专'], ['高中'], ['职高'], ['初中'], ['小学']]

+ 1 - 1
frontend/pc-web/app/view/basic/student/StudentDetail.js

@@ -64,7 +64,7 @@ Ext.define('school.view.basic.student.StudentDetail', {
                 fieldLabel: '政治面貌',
                 displayField: 'name',
                 valueField: 'name',
-                editable: false,
+                editable: true,
                 store: Ext.create('Ext.data.ArrayStore', {
                     fields: ['name'],
                     data: [

+ 5 - 1
frontend/pc-web/app/view/core/form/field/DetailGridField.js

@@ -64,7 +64,7 @@ Ext.define('school.view.core.form.field.DetailGridField', {
                     y: true
                 },
                 deferEmptyText: false,
-                emptyText: '<div style="width: 100%; text-align: center; cursor: pointer; color: green;" class="fa fa-plus" title="新增行" onclick="addRows(\'' + me.id + '\')"></div>',
+                emptyText: (me.readOnly || !me.editable) ? '' : '<div style="width: 100%; text-align: center; cursor: pointer; color: green;" class="fa fa-plus" title="新增行" onclick="addRows(\'' + me.id + '\')"></div>',
             },
             listeners: {
                 boxready: function(g) {
@@ -395,6 +395,10 @@ Ext.define('school.view.core.form.field.DetailGridField', {
 
         me.editable = able;
 
+        lockGridEmptyText = !me.readOnly && able ? '<div style="width: 100%; text-align: center; cursor: pointer; color: green;" class="fa fa-plus" title="新增行" onclick="addRows(\'' + me.id + '\')"></div>' : '';
+
+        me.lockedGrid.setEmptyText(lockGridEmptyText)
+
         Ext.Array.each(columns, function(c) {
             if(typeof c.getEditor != 'undefined'){
                 var e = c.getEditor();

+ 1 - 0
frontend/pc-web/app/view/core/form/field/FileField.js

@@ -8,6 +8,7 @@ Ext.define('school.view.core.form.field.FileField', {
 	collapsible: true,
 	multi: true,
 	allowBlank:true,
+	isFormField: true,
 	initComponent: function() {
 		this.columnWidth = 1;//强制占一行
 		this.cls = '';

+ 6 - 15
frontend/pc-web/app/view/setting/operatelog/OperateLog.js

@@ -11,19 +11,14 @@ Ext.define('school.view.setting.operatelog.OperateLog', {
         var me = this;
         Ext.apply(this, {
             searchField: [{
-                width: 110,
-                name: 'obj',
-                xtype: 'textfield',
-                emptyText : '对象',
+                columnWidth: 0.5,
+                name: 'createTime',
+                xtype: 'condatefield',
+                fieldLabel : '时间',
+                labelWidth: 50
             }, {
-            //     // columnWidth: 0.5,
-            //     // name: 'time',
-            //     // xtype: 'condatefield',
-            //     // fieldLabel : '时间',
-            //     // labelWidth: 50
-            // }, {
                 width: 110,
-                name: 'man',
+                name: 'ml_man',
                 xtype: 'textfield',
                 emptyText : '操作人员',
             }],
@@ -45,10 +40,6 @@ Ext.define('school.view.setting.operatelog.OperateLog', {
                     text:'单据类型',
                     dataIndex : "ml_name",
                     width : 110.0, 
-                }, {
-                    text : "单据编号", 
-                    width : 150.0, 
-                    dataIndex : "ml_code", 
                 }, {
                     text : "操作", 
                     dataIndex : "ml_content", 

+ 53 - 3
frontend/pc-web/overrides/form/field/ComboBox.js

@@ -9,18 +9,21 @@ Ext.define("school.override.form.field.ComboBox", {
                 weight: -1,
                 cls: 'fa-times',
                 hidden: true,
+                lazyVisible: true,
                 onFieldFocus: function() {
-                    if(this.field.clearable) {
+                    var field = this.field;
+                    if(!field.readOnly && field.clearable) {
                         this.setHidden(false);
                     }
                 },
                 onFieldBlur: function() {
-                    if(this.field.clearable) {
+                    var field = this.field;
+                    if(!field.readOnly && field.clearable) {
                         this.setHidden(true);
                     }
                 },
                 handler: function() {
-                    if(this.clearable) {
+                    if(!this.readOnly && this.clearable) {
                         this.setValue(null)
                         this.triggers.clear.setHidden(true)
                         this.fireEvent('clear', this);
@@ -35,4 +38,51 @@ Ext.define("school.override.form.field.ComboBox", {
         }
     },
 
+    setReadOnly: function(readOnly) {
+        var me = this,
+            triggers = me.getTriggers(),
+            hideTriggers = me.getHideTrigger(),
+            oVisible = {},
+            trigger,
+            id;
+ 
+        readOnly = !!readOnly;
+ 
+        if (triggers) {
+            for (id in triggers) {
+                oVisible[id] = triggers[id].isVisible();
+            }
+        }
+
+        me.callParent([readOnly]);
+        if (me.rendered) {
+            me.setReadOnlyAttr(readOnly || !me.editable);
+        }
+ 
+        if (triggers) {
+            for (id in triggers) {
+                trigger = triggers[id];
+
+                /**
+                 * if trigger's 'lazyVisible' is true,this trigger's 'visible' will not controlled beed 'setReadOnly'
+                 */
+                if(trigger.lazyVisible) {
+                    trigger.setVisible(oVisible[id]);
+                    continue;
+                }
+
+                /*
+                 * Controlled trigger visibility state is only managed fully when 'hideOnReadOnly' is falsy.
+                 * Truth table:
+                 *   - If the trigger is configured/defaulted as 'hideOnReadOnly : true', it's readOnly-visibility
+                 *     is determined solely by readOnly state of the Field.
+                 *   - If 'hideOnReadOnly : false/undefined', the Fields.{link #hideTrigger hideTrigger} is honored.
+                 */
+                if (trigger.hideOnReadOnly === true || (trigger.hideOnReadOnly !== false && !hideTriggers)) {
+                    trigger.setVisible(!readOnly);
+                }
+            }
+        }
+    },
+
 });

+ 1 - 0
frontend/wechat-web/src/modules/hiPages/approvel/Approvel.css

@@ -18,4 +18,5 @@
     background: #F4F4F4;
     background-size: 100% 100%;
     height: 100vh;
+    text-align: center;
 }

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

@@ -172,7 +172,7 @@ class Approvel extends Component {
                             {
                                 this.state.applyList.length > 0 ? isMyapplyItems
                                     :
-                                    <div className="no_data"><img src={nodata_img} alt="" style={{width:'100%',height:'auto'}}/></div>
+                                    <div className="no_data"><img src={nodata_img} alt="" style={{width:'100%',height:'100%'}}/></div>
                             }
                         </div>
                         <div className="swiper-slide">

+ 1 - 2
frontend/wechat-web/src/modules/home/HomePage.jsx

@@ -20,7 +20,7 @@ import 'css/home-page.css'
 import {fetchGet, fetchPost} from "../../utils/fetchRequest";
 import {_baseURL, API} from "../../configs/api.config";
 import icon_home_change from "../../style/imgs/icon_home_change.png";
-
+let holly = 0
 const operation = Modal.operation;
 
 class HomePage extends Component {
@@ -35,7 +35,6 @@ class HomePage extends Component {
     }
 
     componentWillMount() {
-
     }
 
     componentDidMount() {

+ 1 - 0
frontend/wechat-web/src/modules/leave/LeaveListPage.css

@@ -18,4 +18,5 @@
     background: #F4F4F4;
     background-size: 100% 100%;
     height: 100vh;
+    text-align: center;
 }

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

@@ -88,7 +88,7 @@ class LeaveListPage extends React.Component{
                         </Skeleton>
                     </RefreshLayout>
                     :
-                    <div className="no_data"><img src={nodata_img} alt="" style={{width:'100%',height:'auto'}}/></div>
+                    <div className="no_data"><img src={nodata_img} alt="" style={{width:'100%',height:'100%'}}/></div>
             }
 
                     {

BIN
frontend/wechat-web/src/style/imgs/no_data.png