Index: ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js =================================================================== diff -u -r15116 -r15948 --- ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js (.../goodsBindHandler.js) (revision 15116) +++ ssts-web/src/main/webapp/disinfectsystem/goodsBindingConfig/goodsBindHandler.js (.../goodsBindHandler.js) (revision 15948) @@ -3,19 +3,76 @@ }; /** - * 迭代从后端得到的需要绑定物品的数据,从comboGoodsStore里按照名字来寻找对应需要绑定的数据 + * 绑定物品的代理属性 + */ +GoodsBindHandler.prototype.bindGoodProxy = { + type: 'ajax', + url: WWWROOT + '/disinfectSystem/baseData/tousseDefinitionAction!searchBindGood.do', + reader: { + type: 'json', + totalProperty: 'totalCount', + idProperty: 'noneExsist', + root: 'data' + } +}; + +/** + * 绑定物品的数据源 + */ +GoodsBindHandler.prototype.bindGoodStore = new Ext4.data.JsonStore({ + proxy: GoodsBindHandler.prototype.bindGoodProxy, + fields: goodModel, + listeners: { + beforeload: function () { + //在加载前设定参数,limit要设置成空,这样才会加载到所有的数据 + //暂时只绑定一次性物品,所以type用一次性物品 + // allGoodsComboStore.proxy.extraParams.tousseType = "一次性物品"; + }, + load: function (a, b, c) { + } + } +}) + + +/** + * + * 向后台发送请求查找出需要绑定的物品,并且加载到bindGoodStore中 * @param records 需要绑定物品记录的数组 - * @param data 里面要寻找的名字和对应的绑定数量 + * @param data 要让服务器查询的物品数据(即需要绑定的物品名字,数量,id) */ GoodsBindHandler.prototype.findBindRecord = function (records, data) { + var me = this; + me.bindGoodStore.reload({ + params: { + tousseType: "一次性物品", + findGood: JSON.stringify(data) + }, + callback: function (r, option, success) { + if (success) { + me.findAndSetBindGood(records, data); + } + } + }); +} + +/** + * 从bindGoodStore数据源中查找对应的物品,设置好对应的数量并添加到表格里 + * @param records 需要绑定物品记录的数组 + * @param data 要寻找的物品的名字和对应的绑定数量 + */ +GoodsBindHandler.prototype.findAndSetBindGood = function (records, data) { + var me = this; top.Ext4.each(data, function (item) { - var record = allGoodsComboStore.findRecord('name', item.name); + // var record = me.bindGoodStore.findRecord('name', item.goodName); + var record = me.bindGoodStore.findRecord('id', item.goodId); if (record != null) { //如果找得到,设置数量为后端传过来的捆绑数量 - record.set('count', item.bindCount); + // record.set('count', item.bindCount); + record.set('count', record.get('amount')); records.push(record); } }); + me.addBindGood(records); } /** @@ -68,9 +125,15 @@ var me = this; var applicationCount = top.Ext4.getCmp('count1').getValue(); var applicationName = top.Ext4.getCmp('package1').getValue(); + var bindGoodVo = { + goodName: applicationName, + bindCount: applicationCount, + goodId: curSelectedGoods.id, + goodType: curSelectedGoods.type + } Ext.Ajax.request({ url: WWWROOT + '/disinfectSystem/goodsBindingConfig/goodsBindingCtrl/handleBind.mhtml', - params: {count: applicationCount, name: applicationName}, + params: bindGoodVo, timeout: 600000, method: 'POST', success: function (response, options) { @@ -79,7 +142,6 @@ var result = Ext.decode(response.responseText); if (!isUndefinedOrNullOrEmpty(result)) { me.findBindRecord(records, result); - me.addBindGood(records); } } catch (e) {