StandMeeting.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.oa.meeting.StandMeeting', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. GridUtil: Ext.create('erp.util.GridUtil'),
  7. views:[
  8. 'oa.meeting.StandMeeting','core.form.Panel','core.form.FileField','core.form.MultiField','core.grid.Panel2',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.ResSubmit',
  11. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.trigger.AutoCodeTrigger','core.trigger.MultiDbfindTrigger',
  12. 'core.form.YnField','core.trigger.DbfindTrigger','core.button.Scan','oa.meeting.StandMeetingMan','core.grid.YnColumn',
  13. 'erp.view.core.button.AddDetail','erp.view.core.button.DeleteDetail','oa.meeting.StandMeetingManbar','core.button.ConfirmMan',
  14. 'core.button.TurnDoc'
  15. ],
  16. init:function(){
  17. var me = this;
  18. this.control({
  19. 'erpGridPanel2': {
  20. itemclick: this.onGridItemClick
  21. },
  22. 'StandMeetingMan':{
  23. itemclick: this.onGridItemClick2
  24. },
  25. 'erpSaveButton': {
  26. click: function(btn){
  27. var form = me.getForm(btn);
  28. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  29. me.BaseUtil.getRandomNumber();//自动添加编号
  30. }
  31. me.beforeSave(this);
  32. }
  33. },
  34. 'erpDeleteButton' : {
  35. afterrender: function(btn){
  36. },
  37. click: function(btn){
  38. me.FormUtil.onDelete(Ext.getCmp('sm_id').value);
  39. }
  40. },
  41. 'erpUpdateButton': {
  42. afterrender: function(btn){
  43. },
  44. click: function(btn){
  45. me.beforeUpdate(this);
  46. }
  47. },
  48. 'erpAddButton': {
  49. click: function(){
  50. me.FormUtil.onAdd('addStandMeeting', '新增例会', 'jsps/oa/meeting/standmeeting.jsp');
  51. }
  52. },
  53. 'erpCloseButton': {
  54. click: function(btn){
  55. me.FormUtil.beforeClose(me);
  56. }
  57. }
  58. });
  59. },
  60. onGridItemClick: function(selModel, record){//grid行选择
  61. this.GridUtil.onGridItemClick(selModel, record);
  62. },
  63. onGridItemClick2: function(selModel,record){
  64. this.onGridItemClick(selModel,record,'StandMeetingMan');
  65. },
  66. beforeSave: function(){
  67. var me = this;
  68. var form = Ext.getCmp('form');
  69. if(! me.FormUtil.checkForm()){
  70. return;
  71. }
  72. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  73. me.FormUtil.getSeqId(form);
  74. }
  75. var detail = Ext.getCmp('grid');
  76. var detail2 = Ext.getCmp('StandMeetingMan');
  77. Ext.each(detail.store.data.items, function(item){
  78. if(item.data.vd_id == null || item.data.vd_id == 0){
  79. item.data.vd_id = -item.index;
  80. }
  81. });
  82. var param1 = me.GridUtil.getGridStore(detail);
  83. var param2 = new Array();
  84. if(detail2){
  85. param2 =me.GridUtil.getGridStore(detail2);
  86. }
  87. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  88. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  89. if(form.getForm().isValid()){
  90. Ext.each(form.items.items, function(item){
  91. if(item.xtype == 'numberfield'){
  92. if(item.value == null || item.value == ''){
  93. item.setValue(0);
  94. }
  95. }
  96. });
  97. var r = form.getValues();
  98. /* r.vo_currencytype = Ext.getCmp('vo_currencytype').value ? -1 : 0;
  99. r.vo_errstring = r.vo_errstring == '正常' ? '' : r.vo_errstring;*/
  100. me.save(r, param1, param2);
  101. }else{
  102. me.FormUtil.checkForm();
  103. }
  104. },
  105. save: function(){
  106. var params = new Object();
  107. var r = arguments[0];
  108. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  109. if(contains(k, 'ext-', true)){
  110. delete r[k];
  111. }
  112. });
  113. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  114. params.param1 = unescape(arguments[1].toString().replace(/\\/g,"%"));
  115. params.param2 = unescape(arguments[2].toString().replace(/\\/g,"%"));
  116. /*for(var i=2; i<arguments.length; i++) { //兼容多参数
  117. params['param' + i] = unescape(arguments[i].toString().replace(/\\/g,"%"));
  118. }*/
  119. var me = this;
  120. var form = Ext.getCmp('form');
  121. //me.getActiveTab().setLoading(true);//loading...
  122. Ext.Ajax.request({
  123. url : basePath + form.saveUrl,
  124. params : params,
  125. method : 'post',
  126. callback : function(options,success,response){
  127. var localJson = new Ext.decode(response.responseText);
  128. if(localJson.success){
  129. saveSuccess(function(){
  130. //add成功后刷新页面进入可编辑的页面
  131. var value = r[form.keyField];
  132. var formCondition = form.keyField + "IS" + value ;
  133. if(me.contains(window.location.href, '?', true)){
  134. window.location.href = window.location.href + '&formCondition=' +
  135. formCondition+'&gridCondition=smd_smidIS'+value;
  136. } else {
  137. window.location.href = window.location.href + '?formCondition=' +
  138. formCondition+'&gridCondition=smd_smidIS'+value;
  139. }
  140. });
  141. } else if(localJson.exceptionInfo){
  142. var str = localJson.exceptionInfo;
  143. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  144. str = str.replace('AFTERSUCCESS', '');
  145. saveSuccess(function(){
  146. //add成功后刷新页面进入可编辑的页面
  147. var value = r[form.keyField];
  148. var formCondition = form.keyField + "IS" + value ;
  149. if(me.contains(window.location.href, '?', true)){
  150. window.location.href = window.location.href + '&formCondition=' +
  151. formCondition+'&gridCondition=smd_smidIS'+value;
  152. } else {
  153. window.location.href = window.location.href + '?formCondition=' +
  154. formCondition+'&gridCondition=smd_smidIS'+value;
  155. }
  156. });
  157. showError(str);
  158. } else {
  159. showError(str);
  160. return;
  161. }
  162. } else{
  163. saveFailure();//@i18n/i18n.js
  164. }
  165. }
  166. });
  167. },
  168. beforeUpdate: function(){
  169. var me = this;
  170. var form = Ext.getCmp('form');
  171. if(! me.FormUtil.checkForm()){
  172. return;
  173. }
  174. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  175. me.FormUtil.getSeqId(form);
  176. }
  177. var detail = Ext.getCmp('grid');
  178. var detail2 = Ext.getCmp('StandMeetingMan');
  179. /*Ext.each(detail.store.data.items, function(item){
  180. if(item.data.vd_id == null || item.data.vd_id == 0){
  181. item.data.vd_id = -item.index;
  182. }
  183. });*/
  184. var param1 = me.GridUtil.getAllGridStore(detail);
  185. var param2 = new Array();
  186. if(detail2) {
  187. param2 = me.GridUtil.getGridStore(detail2);
  188. }
  189. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  190. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  191. if(form.getForm().isValid()){
  192. Ext.each(form.items.items, function(item){
  193. if(item.xtype == 'numberfield'){
  194. if(item.value == null || item.value == ''){
  195. item.setValue(0);
  196. }
  197. }
  198. });
  199. var r = form.getValues();
  200. /*r.vo_currencytype = Ext.getCmp('vo_currencytype').value ? -1 : 0;
  201. r.vo_errstring = r.vo_errstring == '正常' ? '' : r.vo_errstring;*/
  202. me.update(r, param1, param2);
  203. }else{
  204. me.FormUtil.checkForm();
  205. }
  206. },
  207. update:function(){
  208. var params = new Object();
  209. var r = arguments[0];
  210. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  211. if(contains(k, 'ext-', true)){
  212. delete r[k];
  213. }
  214. });
  215. params.formStore = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
  216. params.param1 = unescape(arguments[1].toString().replace(/\\/g,"%"));
  217. params.param2 = unescape(arguments[2].toString().replace(/\\/g,"%"));
  218. var me = this;
  219. var form = Ext.getCmp('form');
  220. //me.getActiveTab().setLoading(true);//loading...
  221. Ext.Ajax.request({
  222. url : basePath + form.updateUrl,
  223. params : params,
  224. method : 'post',
  225. callback : function(options,success,response){
  226. //me.getActiveTab().setLoading(false);
  227. var localJson = new Ext.decode(response.responseText);
  228. if(localJson.success){
  229. saveSuccess(function(){
  230. //add成功后刷新页面进入可编辑的页面
  231. var value = r[form.keyField];
  232. var formCondition = form.keyField + "IS" + value ;
  233. if(me.contains(window.location.href, '?', true)){
  234. window.location.href = window.location.href + '&formCondition=' +
  235. formCondition;
  236. } else {
  237. window.location.href = window.location.href + '?formCondition=' +
  238. formCondition;
  239. }
  240. });
  241. } else if(localJson.exceptionInfo){
  242. var str = localJson.exceptionInfo;
  243. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  244. str = str.replace('AFTERSUCCESS', '');
  245. saveSuccess(function(){
  246. //add成功后刷新页面进入可编辑的页面
  247. var value = r[form.keyField];
  248. var formCondition = form.keyField + "IS" + value ;
  249. if(me.contains(window.location.href, '?', true)){
  250. window.location.href = window.location.href + '&formCondition=' +
  251. formCondition;
  252. } else {
  253. window.location.href = window.location.href + '?formCondition=' +
  254. formCondition;
  255. }
  256. });
  257. showError(str);
  258. } else {
  259. showError(str);
  260. return;
  261. }
  262. } else{
  263. saveFailure();//@i18n/i18n.js
  264. }
  265. }
  266. });
  267. },
  268. contains: function(string,substr,isIgnoreCase){
  269. if(isIgnoreCase){
  270. string=string.toLowerCase();
  271. substr=substr.toLowerCase();
  272. }
  273. var startChar=substr.substring(0,1);
  274. var strLen=substr.length;
  275. for(var j=0;j<string.length-strLen+1;j++){
  276. if(string.charAt(j)==startChar){//如果匹配起始字符,开始查找
  277. if(string.substring(j,j+strLen)==substr){//如果从j开始的字符与str匹配,那ok
  278. return true;
  279. }
  280. }
  281. }
  282. return false;
  283. },
  284. getForm: function(btn){
  285. return btn.ownerCt.ownerCt;
  286. }
  287. });