Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/modifyPatientOfForeignTousseInfoForm.js =================================================================== diff -u -r33421 -r33433 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/modifyPatientOfForeignTousseInfoForm.js (.../modifyPatientOfForeignTousseInfoForm.js) (revision 33421) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/modifyPatientOfForeignTousseInfoForm.js (.../modifyPatientOfForeignTousseInfoForm.js) (revision 33433) @@ -469,35 +469,55 @@ showResult("外来器械申请单id参数不能为空"); } } + var printForeignTousseForReceivedWindow; //打开打印待接收外来器械包的界面 function openPrintForeignTousseWindow() { - var orgUnitGroupStore = new Ext4.data.Store({ - proxy: { - type: 'ajax', + var orgUnitGroupStore = new top.Ext.data.Store({ + proxy: new Ext.data.HttpProxy({ url: WWWROOT + '/disinfectSystem/orgUnitGroupAction!findOrgUnitGroupList.do', - reader: { - root: 'data' - } - }, - fields: [ + method: 'POST' + }), + reader: new Ext.data.JsonReader({ + totalProperty: 'totalCount', + root: 'data' + }, [ { name: 'id', mapping: 'id' }, { 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 (thiz.getCount() > 1) { + var departRecord = top.Ext.data.Record.create([ + { name: 'id' }, + { name: 'name' } + ]); + thiz.insert(0, new departRecord({ id: '-1', name: '全部' })); + } + } + } + }); + orgUnitGroupStore.load(); - var form = new top.Ext4.form.Panel({ + + var form = new top.Ext.FormPanel({ id: 'configForm', region: 'north', buttonAlign: 'center', border: 0, frame: true, bodyStyle: 'padding:0px auto;margin:0px', height: 100, - fieldDefaults: { - labelAlign: 'right', - labelWidth: 70 - }, + labelWidth: 70, + labelAlign: 'right', items: [{ layout: 'column', autoHeight: true, @@ -537,22 +557,58 @@ }] }, { layout: 'form', - columnWidth: 0.96, + columnWidth: 0.98, border: 0, style: 'margin-bottom:10px', items: [{ - xtype: 'combo', + xtype: 'multiSelect', + id: 'orgUnitGroupIds', + name: 'orgUnitGroupIds', + queryParam: 'spell', fieldLabel: "科室分组", valueField: 'id', displayField: 'name', store: orgUnitGroupStore, - allowBlank: false, - editable: false, triggerAction: 'all', - queryParam: 'spell', - name: "orgUnitGroupID", - id: "orgUnitGroupID", - anchor: '95%' + forceSelection: false, + lazyInit: false, + editable: true, + hideTrigger: false, + typeAhead: false, + allowBlank: true, + anchor: '95%', + listeners: { + render: function (thiz) { + thiz.selectAll(); + }, + select: function (combo, record, index) { + //1、如果选中“全部”的项,则把所有的项选中,反之全部取消选择 + if (record.get('name') == '全部') { + if (record.get('checked')) { + combo.selectAll(); + } else { + combo.deselectAll(); + } + } + + //2、如果已经选中所有的项,则把“全部”项选中,反之把“全部”项取消选择 + var selectAll = true; + combo.store.each(function (record) { + if (record.get('name') != '全部' && !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()); + } + } }] }] }], @@ -577,7 +633,7 @@ }] }); - printForeignTousseForReceivedWindow = new top.Ext4.window.Window({ + printForeignTousseForReceivedWindow = new top.Ext.Window({ id: 'printForeignTousseForReceivedWindow', title: '打印待接收外来器械包', height: 150, @@ -592,20 +648,20 @@ printForeignTousseForReceivedWindow.show(); - Ext4.Ajax.request({ + Ext.Ajax.request({ url: WWWROOT + '/system/serverTimeAction!getCurrentTime.do', params: { dateformat: 'yyyy-MM-dd' }, success: function (response, options) { var result = Ext.decode(response.responseText); if (result.success) { var startDateTime = result.data.startDateTime; - startDateTime = startDateTime.replace(/-/g,"/") + startDateTime = startDateTime.replace(/-/g, "/") var startTime = new Date(startDateTime); startTime.setTime(startTime.getTime() - 24 * 60 * 60 * 1000); var start = new Date(startTime).toCommonStr(); var end = result.data.startDateTime; - top.Ext4.getCmp('startTime').setRawValue(start + ' 12:00'); - top.Ext4.getCmp('endTime').setRawValue(end + ' 12:00'); + top.Ext.getCmp('startTime').setRawValue(start + ' 12:00'); + top.Ext.getCmp('endTime').setRawValue(end + ' 12:00'); } else { showResult(result.message); } @@ -618,37 +674,43 @@ //获取待接收外来器械包数据 function getForeignTousseForReceivedData(printType) { - top.Ext4.MessageBox.show({ + top.Ext.MessageBox.show({ title: '请等待', msg: '打印中……', width: 350, progress: false, closable: false }); - var startDate = top.Ext4.getCmp('startTime').getRawValue(); - var endDate = top.Ext4.getCmp('endTime').getRawValue(); - var orgUnitGroupID = top.Ext4.getCmp('orgUnitGroupID').getValue(); - Ext4.Ajax.request({ + var startDate = top.Ext.getCmp('startTime').getRawValue(); + var endDate = top.Ext.getCmp('endTime').getRawValue(); + var orgUnitGroupIds = top.Ext.getCmp('orgUnitGroupIds').getValue(); + if (orgUnitGroupIds !== '') { + var arr = orgUnitGroupIds.split(','); + if (arr[0] == '-1') { + orgUnitGroupIds = ''; + } + } + Ext.Ajax.request({ url: WWWROOT + '/disinfectSystem/foreigntousseapplication/foreignTousseApplicationAction!printWaitReceiveForeignTousse.do', params: { startDate: startDate + ':00', endDate: endDate + ':00', - orgUnitGroupID: orgUnitGroupID + orgUnitGroupID: orgUnitGroupIds }, success: function (response, options) { var result = Ext.decode(response.responseText); if (result.success) { result.startDate = startDate; result.endDate = endDate; - if(result.data.length > 0){ + if (result.data.length > 0) { printForeignTousseForReceived(result, printType) - }else { + } else { showResult('查询不到打印数据!'); } } else { showResult(result.message); } - hideMessageBox4(true); + hideMessageBox(true); }, failure: function (response, options) { showResult('获取服务器时间失败!'); Index: ssts-web/src/main/webapp/ext/js/multiSelectComboTop.js =================================================================== diff -u -r28384 -r33433 --- ssts-web/src/main/webapp/ext/js/multiSelectComboTop.js (.../multiSelectComboTop.js) (revision 28384) +++ ssts-web/src/main/webapp/ext/js/multiSelectComboTop.js (.../multiSelectComboTop.js) (revision 33433) @@ -1,238 +1,207 @@ -if ('function' !== typeof RegExp.escape) -{ - RegExp.escape = function (s) - { - if ('string' !== typeof s) - { - return s; - } - return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); - }; -} - -top.Ext.ns('top.Ext.form'); - -top.Ext.form.MultiSelect = Ext.extend(top.Ext.form.ComboBox, -{ - checkField: 'checked', - multi: true, - separator: ',', - initComponent: function () - { - if (!this.tpl) - { - this.tpl = '' + '' - + '' - + '{[values.' + this.displayField + ']}' - + '' - + ''; - } - - top.Ext.form.MultiSelect.superclass.initComponent.apply(this, arguments); - - this.on( - { - scope: this, - beforequery: this.onBeforeQuery, - blur: this.onRealBlur - }); - - this.onLoad = this.onLoad.createSequence(function () - { - if (this.el) - { - var v = this.el.dom.value; - this.el.dom.value = ''; - this.el.dom.value = v; - } - }); - }, - initEvents: function () - { - top.Ext.form.MultiSelect.superclass.initEvents.apply(this, arguments); - this.keyNav.tab = false; - }, - beforeBlur: function () - { - }, - postBlur: function () - { - }, - - clearValue: function () - { - this.value = ''; - this.setRawValue(this.value); - this.store.clearFilter(); - this.store.each(function (r) - { - r.set(this.checkField, false); - }, this); - if (this.hiddenField) - { - this.hiddenField.value = ''; - } - this.applyEmptyText(); - }, - getCheckedDisplay: function () - { - var re = new RegExp(this.separator, "g"); - return this.getCheckedValue(this.displayField).replace(re, this.separator + ' '); - }, - getCheckedValue: function (field) - { - field = field || this.valueField; - var c = []; - var snapshot = this.store.snapshot || this.store.data; - snapshot.each(function (r) - { - if (r.get(this.checkField)) - { - c.push(r.get(field)); - } - }, this); - - return c.join(this.separator); - }, - getCheckedCount: function () - { - var count = 0; - var c = []; - var snapshot = this.store.snapshot || this.store.data; - snapshot.each(function (r) - { - if (r.get(this.checkField)) - { - ++count; - } - }, this); - - return count; - }, - onBeforeQuery: function (qe) - { - qe.query = qe.query.replace(new RegExp(RegExp.escape(this.getCheckedDisplay()) + '[ ' + this.separator + ']*'), ''); - }, - onRealBlur: function () - { - this.list.hide(); - var rv = this.getRawValue(); - var rva = rv.split(new RegExp(RegExp.escape(this.separator) + ' *')); - var va = []; - var snapshot = this.store.snapshot || this.store.data; - - top.Ext.each(rva, function (v) - { - snapshot.each(function (r) - { - if (v === r.get(this.displayField)) - { - va.push(r.get(this.valueField)); - } - }, this); - }, this); - this.setValue(va.join(this.separator)); - this.store.clearFilter(); - }, - onSelect: function (record, index) - { - if (this.fireEvent('beforeselect', this, record, index) !== false) - { - record.set(this.checkField, !record.get(this.checkField)); - - if (this.store.isFiltered()) - { - this.doQuery(this.allQuery); - } - - if (this.multi) - { - if (record.get("key") == "---" && record.get(this.checkField)) - { - this.setValue("---"); - } - else - { - this.setValue(this.getCheckedValue()); - } - } - else - { - this.clearValue(); - this.value = record.get(this.valueField); - this.setRawValue(record.get(this.displayField)); - this.list.hide(); - } - - this.fireEvent('select', this, record, index); - } - }, - setValue: function (v) - { - if (v) - { - v = '' + v; - if (this.valueField) - { - this.store.clearFilter(); - this.store.each(function (r) - { - var checked = !(!v.match('(^|' + this.separator + ')' - + RegExp.escape(r.get(this.valueField)) - + '(' + this.separator + '|$)')); - r.set(this.checkField, checked); - }, this); - this.value = this.getCheckedValue(); - this.setRawValue(this.getCheckedDisplay()); - if (this.hiddenField) - { - this.hiddenField.value = this.value; - } - } - else - { - this.value = v; - this.setRawValue(v); - if (this.hiddenField) - { - this.hiddenField.value = v; - } - } - if (this.el) - { - this.el.removeClass(this.emptyClass); - } - } - else - { - this.clearValue(); - } - }, - select: function (v) - { - this.store.each(function (record) - { - if (v === record.get(this.displayField)) { - record.set(this.checkField, true); - } - }, this); - this.setValue(this.getCheckedValue()); - }, - selectAll: function () - { - this.store.each(function (record) - { - record.set(this.checkField, true); - }, this); - this.doQuery(this.allQuery); - this.setValue(this.getCheckedValue()); - }, - deselectAll: function () - { - this.clearValue(); - } -}); +if ('function' !== typeof RegExp.escape) { + RegExp.escape = function (s) { + if ('string' !== typeof s) { + return s; + } + return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); + }; +} + +top.Ext.ns('top.Ext.form'); + +top.Ext.form.MultiSelect = Ext.extend(top.Ext.form.ComboBox, + { + checkField: 'checked', + multi: true, + separator: ',', + showRawValue: this.showRawValue ? this.showRawValue : true, + initComponent: function () { + if (!this.tpl) { + this.tpl = '' + '' + + '' + + '{[values.' + this.displayField + ']}' + + '' + + ''; + } + + top.Ext.form.MultiSelect.superclass.initComponent.apply(this, arguments); + + this.on( + { + scope: this, + beforequery: this.onBeforeQuery, + blur: this.onRealBlur + }); + + this.onLoad = this.onLoad.createSequence(function () { + if (this.el) { + var v = this.el.dom.value; + this.el.dom.value = ''; + this.el.dom.value = v; + } + }); + }, + initEvents: function () { + top.Ext.form.MultiSelect.superclass.initEvents.apply(this, arguments); + this.keyNav.tab = false; + }, + beforeBlur: function () { + }, + postBlur: function () { + }, + + clearValue: function () { + this.value = ''; + this.setRawValue(this.value); + this.store.clearFilter(); + this.store.each(function (r) { + r.set(this.checkField, false); + }, this); + if (this.hiddenField) { + this.hiddenField.value = ''; + } + this.applyEmptyText(); + }, + getCheckedDisplay: function () { + if (this.showRawValue) { + var re = new RegExp(this.separator, "g"); + if (this.getCheckedValue(this.displayField).split(',')[0] !== '全部') { + return this.getCheckedValue(this.displayField).replace(re, this.separator + ' '); + } else { + return '全部' + } + } else { + return ''; + } + }, + getCheckedValue: function (field) { + field = field || this.valueField; + var c = []; + var snapshot = this.store.snapshot || this.store.data; + snapshot.each(function (r) { + if (r.get(this.checkField)) { + c.push(r.get(field)); + } + }, this); + + return c.join(this.separator); + }, + getCheckedCount: function () { + var count = 0; + var c = []; + var snapshot = this.store.snapshot || this.store.data; + snapshot.each(function (r) { + if (r.get(this.checkField)) { + ++count; + } + }, this); + + return count; + }, + onBeforeQuery: function (qe) { + qe.query = qe.query.replace(new RegExp(RegExp.escape(this.getCheckedDisplay()) + '[ ' + this.separator + ']*'), ''); + }, + onRealBlur: function () { + this.list.hide(); + var rv = this.getRawValue(); + var rva = rv.split(new RegExp(RegExp.escape(this.separator) + ' *')); + var va = []; + var snapshot = this.store.snapshot || this.store.data; + + top.Ext.each(rva, function (v) { + if (v == '全部') { + snapshot.each(function (r) { + va.push(r.get(this.valueField)); + }, this); + } else { + snapshot.each(function (r) { + if (v === r.get(this.displayField)) { + va.push(r.get(this.valueField)); + } + }, this); + } + }, this); + this.setValue(va.join(this.separator)); + this.store.clearFilter(); + }, + onSelect: function (record, index) { + if (this.fireEvent('beforeselect', this, record, index) !== false) { + record.set(this.checkField, !record.get(this.checkField)); + + if (this.store.isFiltered()) { + this.doQuery(this.allQuery); + } + + if (this.multi) { + if (record.get("key") == "---" && record.get(this.checkField)) { + this.setValue("---"); + } + else { + this.setValue(this.getCheckedValue()); + } + } + else { + this.clearValue(); + this.value = record.get(this.valueField); + this.setRawValue(record.get(this.displayField)); + this.list.hide(); + } + + this.fireEvent('select', this, record, index); + } + }, + setValue: function (v) { + if (v) { + v = '' + v; + if (this.valueField) { + this.store.clearFilter(); + this.store.each(function (r) { + var checked = !(!v.match('(^|' + this.separator + ')' + + RegExp.escape(r.get(this.valueField)) + + '(' + this.separator + '|$)')); + r.set(this.checkField, checked); + }, this); + this.value = this.getCheckedValue(); + this.setRawValue(this.getCheckedDisplay()); + if (this.hiddenField) { + this.hiddenField.value = this.value; + } + } + else { + this.value = v; + this.setRawValue(v); + if (this.hiddenField) { + this.hiddenField.value = v; + } + } + if (this.el) { + this.el.removeClass(this.emptyClass); + } + } + else { + this.clearValue(); + } + }, + select: function (v) { + this.store.each(function (record) { + if (v === record.get(this.displayField)) { + record.set(this.checkField, true); + } + }, this); + this.setValue(this.getCheckedValue()); + }, + selectAll: function () { + this.store.each(function (record) { + record.set(this.checkField, true); + }, this); + this.doQuery(this.allQuery); + this.setValue(this.getCheckedValue()); + }, + deselectAll: function () { + this.clearValue(); + } + }); top.Ext.reg('multiSelect', top.Ext.form.MultiSelect); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp =================================================================== diff -u -r32705 -r33433 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 32705) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.jsp (.../foreignTousseApplicationView.jsp) (revision 33433) @@ -160,6 +160,10 @@ + + + +