Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.jsp =================================================================== diff -u -r16966 -r25232 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.jsp (.../yearWorkloadReportView2.jsp) (revision 16966) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.jsp (.../yearWorkloadReportView2.jsp) (revision 25232) @@ -30,5 +30,19 @@ + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.js =================================================================== diff -u -r25158 -r25232 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.js (.../yearWorkloadReportView2.js) (revision 25158) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/yearWorkloadReportView2.js (.../yearWorkloadReportView2.js) (revision 25232) @@ -1,36 +1,71 @@ var entityName = "年度消毒供应中心工作量统计报表"; var grid; -var supplyRoomStore; -var rd = new Ext.data.JsonReader( { - fields : [ - {name : 'id'}, - {name : 'departId'}, - {name : 'name'} - ] -}); - -supplyRoomStore = new Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', - method : 'POST' - }), - baseParams :{type:"12"}, - reader : rd, - listeners:{ - load:function(thiz,records,options){ - if(records.length > 0){ - Ext.getCmp('querySupplyRoom').setValue(records[0].data.departId); - } - } - } -}); - var myMask; Ext.onReady(function() { Ext.QuickTips.init(); // 记录cookie(3步) + var supplyRoomRecord = Ext.data.Record.create([ + {name: 'departCode', type: 'string'}, + {name: 'name', type: 'string'} + ]); + + var supplyRoomStore = new Ext.data.SimpleStore({ + fields : ['departCode','name'] + }); + var supplyRoomRemoteStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', + method : 'POST' + }), + baseParams :{type:"12"}, + // reader : rd, + reader : new Ext.data.JsonReader({ + fields : [ + {name : 'id', mapping : 'id'}, + {name : 'departCode', mapping : 'departId'}, + {name : 'name', mapping : 'name'} + ] + }), + listeners:{ + beforeload : function(){ + loadMask = new Ext.LoadMask(Ext.getBody(), { + msg: '正在加载供应室...,请稍候!',removeMask: true + }); + loadMask.show(); + }, + load :function (thiz,records,options ){ + loadMask.hide(); + var currentOrgUnitIsSupplyRoom = false; + if(records && records.length > 0){ + for (var i = 0; i < records.length; i++) { + var supplyRoomData = records[i].data; + var departCodeTemp = supplyRoomData.departCode; + //如果没有查看其它供应室权限时,只显示是当前用户的科室 + if(SSTS_View_All_Supply_Room_Report){ + if(departCodeTemp == currentOrgUnitCoding){ + supplyRoomStore.add(new supplyRoomRecord({'departCode':departCodeTemp,'name':supplyRoomData.name})); + currentOrgUnitIsSupplyRoom = true; + } + }else{ + supplyRoomStore.add(new supplyRoomRecord({'departCode':departCodeTemp,'name':supplyRoomData.name})); + if(departCodeTemp == currentOrgUnitCoding){ + currentOrgUnitIsSupplyRoom = true; + } + } + } + } + if(supplyRoomStore.getCount() > 1){ + supplyRoomStore.insert(0 , new supplyRoomRecord({'departCode':ALL,'name':ALL})); + } + //最后使供应室下拉框默认选中用户所属的当前的科室(前提是用户所属的当前的科室也在选项中) + if(currentOrgUnitIsSupplyRoom){ + Ext.getCmp('querySupplyRoom').setValue(currentOrgUnitCoding); + } + } + } + }); function reloadReport(){ var monthSearch= $Id('year').value; @@ -94,19 +129,53 @@ labelWidth : 80, labelSeparator : '选择供应室:', items : [{ - xtype : 'combo', - id : 'querySupplyRoom', - name : 'querySupplyRoom', - valueField : 'departId', - displayField : 'name', - allowBlank : true, - editable : false, - store : supplyRoomStore, - forceSelection : true, - mode : 'local', - triggerAction : 'all', - anchor : '95%' - }] + xtype : 'multiSelect', + id : 'querySupplyRoom', + name : 'querySupplyRoom', + valueField : 'departCode', + displayField : 'name', + minChars : 0, + allowBlank : true, + editable : false, + store : supplyRoomStore, + forceSelection : false, + mode : 'local', + triggerAction : 'all', + lazyInit : true, + typeAhead : false, + anchor : '95%', + listeners: { + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('departCode') == ALL) { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function(record) { + if (record.get('departCode') != ALL && !record.get(this.checkField)) { + selectAll = false; + return; + } + }, combo); + + var all = combo.store.getAt(0); + if (selectAll) { + all.set(combo.checkField, true); + } else { + all.set(combo.checkField, false); + } + combo.setValue(combo.getCheckedValue()); + } + } + + + }] }] }], @@ -147,5 +216,5 @@ items : reportForm }] }); - supplyRoomStore.load(); + supplyRoomRemoteStore.load(); }); \ No newline at end of file