Index: ssts-web/src/main/webapp/ext/js/multiSelectCombo.js =================================================================== diff -u -r33045 -r33400 --- ssts-web/src/main/webapp/ext/js/multiSelectCombo.js (.../multiSelectCombo.js) (revision 33045) +++ ssts-web/src/main/webapp/ext/js/multiSelectCombo.js (.../multiSelectCombo.js) (revision 33400) @@ -17,6 +17,7 @@ checkField: 'checked', multi: true, separator: ',', + showRawValue:this.showRawValue ? this.showRawValue : true, initComponent: function () { if (!this.tpl) @@ -79,11 +80,15 @@ }, getCheckedDisplay: function () { - var re = new RegExp(this.separator, "g"); - if(this.getCheckedValue(this.displayField).split(',')[0] !== '全部'){ - return this.getCheckedValue(this.displayField).replace(re, this.separator + ' '); + 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 '全部' + return ''; } }, getCheckedValue: function (field) @@ -150,13 +155,11 @@ { if (this.fireEvent('beforeselect', this, record, index) !== false) { - record.set(this.checkField, !record.get(this.checkField)); - + 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)) Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js =================================================================== diff -u -r33397 -r33400 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js (.../useRecordItemView.js) (revision 33397) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.js (.../useRecordItemView.js) (revision 33400) @@ -24,10 +24,9 @@ var showOther = $Id('othersGoods').value; //是否需要显示同单明细 var departSearch = (!isFirstRoomPeople ? currentOrgUnitName : $Id('departSearch').value); //不是一级供应室,只能查自己的 var barcode = $Id('barcodeSearch').value; //条码字符串 - var goodsId = Ext.getCmp('goodsSearch').getValue(); //物品id - if (!$Id('goodsSearch').value) { //用户删除了选择的物品,但是ext并不会实际的值清空,这里手工清空一下 - goodsId = ''; - } + var tousseInstanceIds = Ext.getCmp('tousseInstanceIds').getValue(); //器械包 id + var disposableGoodIds = Ext.getCmp('disposableGoodIds').getValue(); //一次性物品 id + var expensiveGoodIds = Ext.getCmp('expensiveGoodIds').getValue(); //高值耗材 id myMask = new Ext.LoadMask(Ext.getBody(), { msg: '正在加载,请稍候!', @@ -43,8 +42,9 @@ depart: departSearch, operatorSearch: operatorSearch, hospitalNum: hospitalNum, - goodsId: goodsId, - goodsType: Ext.getCmp('goodsType').getValue(), + tousseInstanceIds: tousseInstanceIds, + disposableGoodIds: disposableGoodIds, + expensiveGoodIds: expensiveGoodIds, showOther: showOther, barcode: barcode, reportName: 'useRecordItemView' @@ -53,6 +53,102 @@ searchReport(url, params); } +//获取物品的id +function getGoodsId(type, id, checked) { + if (type == '器械包') { + var tousseInstanceIds = Ext.getCmp('tousseInstanceIds').getValue(); + var tousseInstanceArray = tousseInstanceIds.split(','); + var index = tousseInstanceArray.indexOf(id.toString()); + if (checked) { + if (index == -1) { + if (tousseInstanceIds !== '') { + Ext.getCmp('tousseInstanceIds').setValue(tousseInstanceIds + ',' + id); + } else { + Ext.getCmp('tousseInstanceIds').setValue(id); + } + } + } else { + if (index >= 0) { + tousseInstanceArray.splice(index, 1); + if (tousseInstanceIds !== '') { + Ext.getCmp('tousseInstanceIds').setValue(tousseInstanceArray.join(',')); + } else { + Ext.getCmp('tousseInstanceIds').setValue(''); + } + } + } + } else if (type == '一次性物品') { + var disposableGoodIds = Ext.getCmp('disposableGoodIds').getValue(); + var disposableGoodIdsArray = disposableGoodIds.split(','); + var index = disposableGoodIdsArray.indexOf(id.toString()); + if (checked) { + if (index == -1) { + if (disposableGoodIds !== '') { + Ext.getCmp('disposableGoodIds').setValue(disposableGoodIds + ',' + id); + } else { + Ext.getCmp('disposableGoodIds').setValue(id); + } + } + } else { + if (index >= 0) { + disposableGoodIdsArray.splice(index, 1); + if (disposableGoodIds !== '') { + Ext.getCmp('disposableGoodIds').setValue(disposableGoodIdsArray.join(',')); + } else { + Ext.getCmp('disposableGoodIds').setValue(''); + } + } + } + } else { + var expensiveGoodIds = Ext.getCmp('expensiveGoodIds').getValue(); + var expensiveGoodIdsArray = expensiveGoodIds.split(','); + var index = expensiveGoodIdsArray.indexOf(id.toString()); + if (checked) { + if (index == -1) { + if (expensiveGoodIds !== '') { + Ext.getCmp('expensiveGoodIds').setValue(expensiveGoodIds + ',' + id); + } else { + Ext.getCmp('expensiveGoodIds').setValue(id); + } + } + } else { + if (index >= 0) { + expensiveGoodIdsArray.splice(index, 1); + if (expensiveGoodIds !== '') { + Ext.getCmp('expensiveGoodIds').setValue(expensiveGoodIdsArray.join(',')); + } else { + Ext.getCmp('expensiveGoodIds').setValue(''); + } + } + } + } +} + +//获取物品的名称 +function getGoodsName(showName, checked) { + var goodsSearchText = Ext.getCmp('goodsSearchText').getValue(); + var goodsSearchArr = goodsSearchText.split(','); + if (checked) { + if (goodsSearchArr.indexOf(showName) == -1) { + if (goodsSearchText == '') { + Ext.getCmp('goodsSearchText').setValue(showName); + } else { + Ext.getCmp('goodsSearchText').setValue(goodsSearchText + ',' + showName); + } + } + } else { + var index = goodsSearchArr.indexOf(showName); + if (index >= 0) { + goodsSearchArr.splice(index, 1); + if (goodsSearchArr.length > 0) { + Ext.getCmp('goodsSearchText').setValue(goodsSearchArr.join(',')); + } else { + Ext.getCmp('goodsSearchText').setValue(''); + } + } + } +} + Ext.onReady(function () { Ext.QuickTips.init(); @@ -91,7 +187,22 @@ }), reader: new Ext.data.JsonReader({ root: 'data' - }, comboGoodsRecord) + }, comboGoodsRecord), + listeners: { + load: function (thiz, records, options) { + thiz.insert(0, new departRecord({ id: "-1", showName: "全选", name: "全选" })); + var goodsSearchText = Ext.getCmp('goodsSearchText').getValue(); + var goodsSearchArr = goodsSearchText.split(','); + for (var i = 0; i < records.length; i++) { + for (var j = 0; j < goodsSearchArr.length; j++) { + var showName = records[i].get('showName').replace(/,/g, ","); + if (showName == goodsSearchArr[j]) { + records[i].set('checked', true) + } + } + } + } + } }); var readerDetail = Ext.data.Record.create([{ name: 'id' }, { name: 'name' }]); @@ -123,7 +234,7 @@ border: 0, frame: true, bodyStyle: 'padding:0px auto;margin:0px', - height: 140, + height: 170, labelWidth: 80, buttons: [{ xtype: 'button', @@ -272,12 +383,23 @@ layout: 'form', columnWidth: .2, items: [{ - xtype: 'combo', + xtype: 'hidden', + id: 'tousseInstanceIds', + name: 'tousseInstanceIds' + }, { + xtype: 'hidden', + id: 'disposableGoodIds', + name: 'disposableGoodIds' + }, { + xtype: 'hidden', + id: 'expensiveGoodIds', + name: 'expensiveGoodIds' + }, { + xtype: 'multiSelect', id: 'goodsSearch', name: 'goodsSearch', queryParam: 'spell', - fieldLabel: '物品', - listWidth: 200, + fieldLabel: '查找物品', minChars: 0, valueField: 'id', displayField: 'name', @@ -286,12 +408,51 @@ lazyInit: true, anchor: '95%', triggerAction: 'all', - hideTrigger: true, + hideTrigger: false, typeAhead: false, allowBlank: true, + showRawValue: false, listeners: { select: function (combo, record, index) { - Ext.getCmp('goodsType').setValue(record.data.type); + var showName = record.get('showName'); + var checked = record.get('checked'); + showName = showName.replace(/,/g, ","); + if (showName == '全选') { + for (var i = 0; i < comboGoodsStore.getCount(); i++) { + comboGoodsStore.getAt(i).set('checked', checked); + var recordShowName = comboGoodsStore.getAt(i).get('showName'); + recordShowName = recordShowName.replace(/,/g, ","); + var id = comboGoodsStore.getAt(i).get('id'); + var type = comboGoodsStore.getAt(i).get('type'); + if (recordShowName == '全选') { + continue; + } + getGoodsName(recordShowName, checked); + getGoodsId(type, id, checked); + } + } else { + var id = record.get('id'); + var type = record.get('type'); + getGoodsName(showName, checked); + getGoodsId(type, id, checked); + } + }, + blur: function () { + Ext.getCmp('goodsSearch').setRawValue(''); + }, + focus: function () { + if (comboGoodsStore.getCount() > 0) { + var goodsSearchText = Ext.getCmp('goodsSearchText').getValue(); + var goodsSearchArr = goodsSearchText.split(','); + for (var i = 0; i < comboGoodsStore.getCount(); i++) { + for (var j = 0; j < goodsSearchArr.length; j++) { + var showName = comboGoodsStore.getAt(i).get('showName').replace(/,/g, ","); + if (showName == goodsSearchArr[j]) { + comboGoodsStore.getAt(i).set('checked', true) + } + } + } + } } } }] @@ -349,6 +510,19 @@ } } }] + }, { + layout: 'form', + columnWidth: 1, + items: [{ + xtype: 'textarea', + id: 'goodsSearchText', + name: 'goodsSearchText', + fieldLabel: '物品', + height: 40, + anchor: '95%', + disabled: true, + minChars: 0 + }] }] }] }); @@ -373,5 +547,4 @@ }] }); reloadReport(); -}); - +}); \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.jsp =================================================================== diff -u -r33259 -r33400 --- ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.jsp (.../useRecordItemView.jsp) (revision 33259) +++ ssts-web/src/main/webapp/disinfectsystem/reportforms/useRecordItemView.jsp (.../useRecordItemView.jsp) (revision 33400) @@ -23,6 +23,9 @@ + + +