Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.jsp =================================================================== diff -u -r25108 -r25223 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.jsp (.../statisticalWorkloadView.jsp) (revision 25108) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.jsp (.../statisticalWorkloadView.jsp) (revision 25223) @@ -34,6 +34,14 @@ var PACKAGE_SIZE_BIG = '<%=TousseDefinition.PACKAGE_SIZE_BIG%>'; var PACKAGE_SIZE_CENTER = '<%=TousseDefinition.PACKAGE_SIZE_CENTER%>'; var PACKAGE_SIZE_SMALL = '<%=TousseDefinition.PACKAGE_SIZE_SMALL%>'; + + //当前用户所在的当前科室 + var currentOrgUnitCoding = '<%=AcegiHelper.getCurrentOrgUnitCode()%>'; + //查看所有供应室报表的权限 + var SSTS_View_All_Supply_Room_Report = true; + + SSTS_View_All_Supply_Room_Report = false; + Index: ssts-web/src/main/resources/systemset/operationDefine.xml =================================================================== diff -u -r25183 -r25223 --- ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 25183) +++ ssts-web/src/main/resources/systemset/operationDefine.xml (.../operationDefine.xml) (revision 25223) @@ -619,6 +619,8 @@ + + Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js =================================================================== diff -u -r25108 -r25223 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js (.../statisticalWorkloadView.js) (revision 25108) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/statisticalWorkloadView.js (.../statisticalWorkloadView.js) (revision 25223) @@ -16,6 +16,9 @@ var startTime= $Id('startTime').value; var endTime = $Id('endTime').value; var departCoding = Ext.getCmp('querySupplyRoom').getValue(); + if(departCoding.indexOf(ALL) == 0){ + departCoding = ""; + } var tousseTypes = Ext.getCmp('tousseType').getValue(); var packageSizes = Ext.getCmp('packageSize').getValue(); var jasperreportName = isStrengthen ? 'strengthenStatisticalWorkload.jasper' : 'statisticalWorkload.jasper'; @@ -38,35 +41,66 @@ } -/** - * “供应室combo”的store - */ -var supplyRoomStore = new Ext.data.Store({ - proxy : new Ext.data.HttpProxy({ - url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', - method : 'POST' - }), - baseParams :{type:"12"}, - reader : new Ext.data.JsonReader({ - fields : [ - {name : 'id', mapping : 'id'}, - {name : 'departCode', mapping : 'departId'}, - {name : 'name', mapping : 'name'} - ] - }), - listeners:{ - load :function (thiz,records,options ){ - if(records.length >0){ - Ext.getCmp('querySupplyRoom').setValue(records[0].data.departCode); - } - } - } -}); - Ext.onReady(function() { Ext.QuickTips.init(); + var supplyRoomRecord = Ext.data.Record.create([ + {name: 'departCode', type: 'string'}, + {name: 'name', type: 'string'} + ]); + var supplyRoomStore = new Ext.data.SimpleStore({ + fields : ['departCode','name'] + }); + + var loadMask; + /** + * “供应室combo”的store,仅用于普通的ajax请求的数据源 + */ + var supplyRoomRemoteStore = new Ext.data.Store({ + proxy : new Ext.data.HttpProxy({ + url : WWWROOT + '/disinfectSystem/baseData/supplyRoomConfigAction!loadSupplyRoomConfigRoom.do', + method : 'POST' + }), + baseParams :{type:"12"}, + 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(); + 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})); + } + }else{ + supplyRoomStore.add(new supplyRoomRecord({'departCode':departCodeTemp,'name':supplyRoomData.name})); + } + } + } + if(supplyRoomStore.getCount() > 1){ + supplyRoomStore.insert(0 , new supplyRoomRecord({'departCode':ALL,'name':ALL})); + } + } + } + }); + supplyRoomRemoteStore.load(); + var dt = new Date(); var startDayofMonth = dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/01"; @@ -167,23 +201,50 @@ labelWidth : 70, labelSeparator : '选择供应室:', items : [{ - xtype : 'combo', + xtype : 'multiSelect', id : 'querySupplyRoom', name : 'querySupplyRoom', valueField : 'departCode', displayField : 'name', + minChars : 0, allowBlank : true, editable : false, store : supplyRoomStore, - forceSelection : true, + forceSelection : false, mode : 'local', triggerAction : 'all', - listeners : { - render : function(_this) { - supplyRoomStore.load(); + 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()); } - }, - anchor : '95%' + } }] },{ width:250,