GetUUid.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.product.GetUUid', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. views:[
  7. 'scm.product.GetUUid.ProductB2CKindTree','scm.product.GetUUid.Viewport',
  8. 'scm.product.GetUUid.ComponentGrid','scm.product.GetUUid.Toolbar','core.trigger.SearchField'
  9. ],
  10. init:function(){
  11. var me = this;
  12. lastSelected = null;
  13. me.lastCode = '';
  14. me.codeisnull = true;
  15. this.control({
  16. 'prodb2ckindtree': {
  17. itemmousedown: function(selModel, record){
  18. me.loadTab(selModel, record);
  19. lastSelected = record;
  20. },
  21. itemdblclick: function(view, record){
  22. lastSelected = record;
  23. var btn = Ext.getCmp('confirm');
  24. btn.fireEvent('click', btn);
  25. }
  26. },
  27. 'button[name=search]': {//根据原厂型号查找
  28. click: function(btn){
  29. me.search();
  30. }
  31. },
  32. 'textfield[name=orispecode]':{
  33. specialkey : function(field, e){
  34. if(e.getKey() == Ext.EventObject.ENTER){
  35. me.search();
  36. }
  37. }
  38. },
  39. 'button[name=close]': {//关闭
  40. click: function(){
  41. parent.Ext.getCmp('uuWin').close();
  42. }
  43. }
  44. });
  45. },
  46. loadTab: function(selModel, record){
  47. var me = this;
  48. var tree = Ext.getCmp('tree-panel');
  49. var parentId='';
  50. if (record.get('leaf')) {
  51. parentId=record.data['parentid'];
  52. //叶子节点
  53. Ext.getCmp('uuIdGrid').getGridData(record.data['id'],page,pageSize);
  54. } else {
  55. Ext.getCmp('uuIdGrid').store.loadData("");
  56. if(record.isExpanded() && record.childNodes.length > 0){//是根节点,且已展开
  57. record.collapse(true,true);//收拢
  58. } else {//未展开
  59. //看是否加载了其children
  60. if(record.childNodes.length == 0){
  61. //从后台加载
  62. tree.setLoading(true, tree.body);
  63. Ext.Ajax.request({//拿到tree数据
  64. url : basePath + tree.getUrl(),
  65. params: {
  66. parentid: record.data['id'],
  67. type:type
  68. },
  69. async: false,
  70. callback : function(options,success,response){
  71. tree.setLoading(false);
  72. var res = new Ext.decode(response.responseText);
  73. if(res.tree){
  74. record.appendChild(res.tree);
  75. record.expand(false,true);//展开
  76. } else if(res.exceptionInfo){
  77. showError(res.exceptionInfo);
  78. }
  79. }
  80. });
  81. } else {
  82. record.expand(false,true);//展开
  83. }
  84. }
  85. }
  86. tree.getExpandedItems(record);
  87. Ext.each(tree.expandedNodes, function(){
  88. if(!this.data['leaf'] && this.data['parentId']==parentId )
  89. this.collapse(true,true);
  90. });
  91. me.lastCode = '';
  92. var choose = new Array();
  93. tree.getExpandedItems(record);
  94. Ext.each(tree.expandedNodes, function(){
  95. me.lastCode += this.data['qtip'];
  96. choose.push(this.data['text']);
  97. });
  98. var c = Ext.getCmp('choose');
  99. c.show();
  100. c.update({nodes: choose});
  101. me.codeisnull = true;
  102. },
  103. getUrl: function(){
  104. type = type || 'Product';
  105. var url = 'scm/product/getProductKindNum.action';
  106. return url;
  107. },
  108. search:function(){
  109. var f = Ext.getCmp("orispecode"), tree = Ext.getCmp('tree-panel');
  110. if(f.value == '' || f.value == null){
  111. tree.getTreeRootNode(0);
  112. return;
  113. }
  114. tree.setLoading(true, tree.body);
  115. Ext.Ajax.request({//拿到tree数据
  116. url : basePath +'scm/product/searchByOrispecode.action?_noc=1',
  117. timeout:120000,
  118. params: {
  119. code: f.value,
  120. caller:caller
  121. },
  122. callback : function(options,success,response){
  123. tree.setLoading(false);
  124. var res = new Ext.decode(response.responseText);
  125. if(res.tree){
  126. var root = tree.getRootNode();
  127. root.removeAll();
  128. var fn = function(node, ch) {
  129. for(var i in ch) {
  130. var n = ch[i], chs = n.children;
  131. n.children = [];
  132. n.expanded = true;
  133. var d = node.appendChild(n);
  134. if(d && chs && chs.length > 0 && String(chs) != '[]') {
  135. fn(d, chs);
  136. }
  137. }
  138. };
  139. fn(root, res.tree);
  140. } else if(res.exceptionInfo){
  141. Ext.Msg.alert("ERROR:" + res.exceptionInfo);
  142. }
  143. }
  144. });
  145. }
  146. });