VisitRecord.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.crm.customermgr.customervisit.VisitRecord', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'crm.customermgr.customervisit.VisitRecord','core.form.Panel','core.grid.Panel2','core.form.FileField','core.form.MultiField',
  9. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit',
  10. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.ResSubmit','erp.view.core.button.AddDetail','erp.view.core.button.DeleteDetail','erp.view.core.button.Copy','erp.view.core.button.Paste','erp.view.core.button.Up',
  11. 'erp.view.core.button.Down','erp.view.core.button.UpExcel','core.button.VoCreate','core.button.TurnBorrow',
  12. 'core.button.TurnCustomer','core.button.Flow','core.button.DownLoad','core.button.Scan','common.datalist.Toolbar',
  13. 'core.trigger.DbfindTrigger','core.trigger.MultiDbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.trigger.AutoCodeTrigger',
  14. 'crm.customermgr.customervisit.RecordDetail','crm.customermgr.customervisit.RecordDetailDet','crm.customermgr.customervisit.ProgressGrid','crm.customermgr.customervisit.InfoGrid','crm.customermgr.customervisit.ChanceDetail',
  15. 'crm.customermgr.customervisit.VisitFeedBack', 'crm.chance.ChanceManage'
  16. ],
  17. init:function(){
  18. var me = this;
  19. me.gridLastSelected = null;
  20. this.control({
  21. 'erpGridPanel2': {
  22. itemclick: this.onGridItemClick
  23. },
  24. 'recordDetail': {
  25. itemclick: this.onGridItemClick2
  26. },
  27. 'recordDetailDet': {
  28. itemclick: this.onGridItemClick3
  29. },
  30. 'ProgressGrid': {
  31. itemclick: this.onGridItemClick4
  32. },
  33. 'InfoGrid': {
  34. itemclick: this.onGridItemClick5
  35. },
  36. 'ChanceDetail': {
  37. itemclick: this.onGridItemClick6
  38. },
  39. 'VisitFeedBack':{
  40. itemclick: this.onGridItemClick7
  41. },
  42. 'field[name=vr_newtitle]':{
  43. beforerender:function(field){
  44. var status = Ext.getCmp('vr_statuscode');
  45. if(status && status.value == 'COMMITED'){
  46. field.readOnly=false;
  47. }
  48. },
  49. //宇声 要求当 评分为差的时候提示:请关联任务重新创建报告!
  50. afterrender: function(field) {
  51. Ext.defer(function(){
  52. if(field.getValue() == '差') {
  53. field.ownerCt.insert(field.ownerCt.items.items.length, {
  54. xtype: 'displayfield',
  55. columnWidth: field.columnWidth,
  56. fieldStyle: 'color: #f70;font-weight: 700;',
  57. value: '请关联任务重新创建报告!'
  58. });
  59. }
  60. }, 100);
  61. }
  62. },
  63. 'dbfindtrigger[name=pi_prodname]': {
  64. afterrender:function(trigger){
  65. trigger.dbKey='vr_recorder';
  66. trigger.mappingKey='epd_emname';
  67. }
  68. },
  69. 'dbfindtrigger[name=vrd_d1]': {
  70. afterrender:function(trigger){
  71. //trigger.dbBaseCondition="prd_emname='"+Ext.getCmp('vr_recorder').value+"'";
  72. trigger.dbKey='vr_defaultorname';
  73. trigger.mappingKey='fcs_departmentname';
  74. trigger.dbMessage='请先选择所属组织';
  75. }
  76. },
  77. 'multidbfindtrigger[name=cup_name]': {
  78. afterrender:function(trigger){
  79. //trigger.dbBaseCondition="prd_emname='"+Ext.getCmp('vr_recorder').value+"'";
  80. trigger.dbKey='vr_cuuu';
  81. trigger.mappingKey='ct_cucode';
  82. trigger.dbMessage='请先选择客户编号';
  83. }
  84. },
  85. 'field[name=vr_purpose]':{
  86. beforerender:function(field){
  87. var status = Ext.getCmp('vr_statuscode');
  88. if(status && status.value == 'COMMITED'){
  89. field.readOnly=false;
  90. }
  91. }
  92. },
  93. 'erpVoCreateButton':{
  94. beforerender:function(btn){
  95. btn.setText("自动生成");
  96. },
  97. click:function(){
  98. this.autoInsert();
  99. }
  100. },
  101. 'erpTurnCustomerButton': {
  102. beforerender:function(btn){
  103. btn.setText("评价保存");
  104. },
  105. afterrender:function(btn){
  106. var status = Ext.getCmp('vr_statuscode');
  107. if(status.value != 'COMMITED'){
  108. btn.hide();
  109. }
  110. },
  111. click:function(){
  112. var me = this.FormUtil;
  113. var form = Ext.getCmp('form');
  114. Ext.Ajax.request({
  115. url : basePath + form.pingjiaUrl,
  116. params: {
  117. id: Ext.getCmp('vr_id').value,
  118. vr_newtitle:Ext.getCmp('vr_newtitle')?Ext.getCmp('vr_newtitle').value:'',
  119. vr_purpose:Ext.getCmp('vr_purpose')?Ext.getCmp('vr_purpose').value:'',
  120. },
  121. method : 'post',
  122. callback : function(options,success,response){
  123. me.setLoading(false);
  124. var localJson = new Ext.decode(response.responseText);
  125. if(localJson.success){
  126. //audit成功后刷新页面进入可编辑的页面
  127. showMessage('提示', '评价成功!', 1000);
  128. window.location.reload();
  129. } else {
  130. if(localJson.exceptionInfo){
  131. var str = localJson.exceptionInfo;
  132. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  133. str = str.replace('AFTERSUCCESS', '');
  134. showMessage("提示", str, 1000);
  135. auditSuccess(function(){
  136. window.location.reload();
  137. });
  138. } else {
  139. showError(str);return;
  140. }
  141. }
  142. }
  143. }
  144. });
  145. }
  146. },
  147. 'erpTurnBorrowButton':{
  148. beforerender:function(btn){
  149. btn.setText("转差旅费用");
  150. },
  151. afterrender:function(btn){
  152. var status = Ext.getCmp('vr_statuscode');
  153. var isturn=Ext.getCmp('vr_isturnfeeplease');
  154. if(!isturn||isturn.value=='1'||status.value != 'AUDITED'){
  155. btn.hide();
  156. }
  157. },
  158. click:function(){
  159. this.turnFeePlease();
  160. }
  161. },
  162. 'erpSaveButton': {
  163. click: function(btn){
  164. var form = me.getForm(btn);
  165. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  166. me.BaseUtil.getRandomNumber();//自动添加编号
  167. }
  168. //保存之前的一些前台的逻辑判定
  169. this.beforeSave();
  170. }
  171. },
  172. 'erpDeleteButton' : {
  173. click: function(btn){
  174. me.FormUtil.onDelete(Ext.getCmp('vr_id').value);
  175. }
  176. },
  177. 'erpUpdateButton': {
  178. click: function(btn){
  179. // this.FormUtil.onUpdate(this);
  180. this.beforeUpdate();
  181. }
  182. },
  183. 'erpAddButton': {
  184. click: function(){
  185. me.FormUtil.onAdd('addVisitRecord', '新增拜访记录 ', 'jsps/crm/customermgr/customervisit/visitRecord.jsp');
  186. }
  187. },
  188. 'erpCloseButton': {
  189. click: function(btn){
  190. if(parent.Ext.getCmp('singlewin')){
  191. parent.Ext.getCmp('singlewin').close();
  192. }
  193. else me.FormUtil.beforeClose(me);
  194. }
  195. },
  196. 'erpAuditButton': {
  197. afterrender: function(btn){
  198. var status = Ext.getCmp('vr_statuscode');
  199. if(status && status.value != 'COMMITED'){
  200. btn.hide();
  201. }
  202. },
  203. click: function(btn){
  204. //this.FormUtil.onAudit(Ext.getCmp('vr_id').value);
  205. var me = this.FormUtil;
  206. var form = Ext.getCmp('form');
  207. if(!me.contains(form.auditUrl, '?caller=', true)){
  208. form.auditUrl = form.auditUrl + "?caller=" + caller;
  209. }
  210. me.setLoading(true);//loading...
  211. //清除流程
  212. Ext.Ajax.request({
  213. url : basePath + me.deleteProcess,
  214. params: {
  215. keyValue:Ext.getCmp('vr_id').value,
  216. caller:caller,
  217. _noc:1
  218. },
  219. method:'post',
  220. async:false,
  221. callback : function(options,success,response){
  222. }
  223. });
  224. Ext.Ajax.request({
  225. url : basePath + form.auditUrl,
  226. params: {
  227. id: Ext.getCmp('vr_id').value,
  228. vr_newtitle:Ext.getCmp('vr_newtitle')?Ext.getCmp('vr_newtitle').value:'',
  229. vr_purpose:Ext.getCmp('vr_purpose')?Ext.getCmp('vr_purpose').value:'',
  230. },
  231. method : 'post',
  232. callback : function(options,success,response){
  233. me.setLoading(false);
  234. var localJson = new Ext.decode(response.responseText);
  235. if(localJson.success){
  236. //audit成功后刷新页面进入可编辑的页面
  237. showMessage('提示', '审核成功!', 1000);
  238. window.location.reload();
  239. } else {
  240. if(localJson.exceptionInfo){
  241. var str = localJson.exceptionInfo;
  242. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  243. str = str.replace('AFTERSUCCESS', '');
  244. showMessage("提示", str, 1000);
  245. auditSuccess(function(){
  246. window.location.reload();
  247. });
  248. } else {
  249. showError(str);return;
  250. }
  251. }
  252. }
  253. }
  254. });
  255. }
  256. },
  257. 'erpResAuditButton': {
  258. afterrender: function(btn){
  259. var status = Ext.getCmp('vr_statuscode');
  260. if(status && status.value != 'AUDITED'){
  261. btn.hide();
  262. }
  263. },
  264. click: function(btn){
  265. this.FormUtil.onResAudit(Ext.getCmp('vr_id').value);
  266. }
  267. },
  268. 'erpSubmitButton': {
  269. afterrender: function(btn){
  270. var status = Ext.getCmp('vr_statuscode');
  271. if(status && status.value != 'ENTERING'){
  272. btn.hide();
  273. }
  274. },
  275. click: function(btn){
  276. this.FormUtil.onSubmit(Ext.getCmp('vr_id').value, true, this.beforeUpdate, this);
  277. }
  278. },
  279. 'erpResSubmitButton': {
  280. afterrender: function(btn){
  281. var status = Ext.getCmp('vr_statuscode');
  282. if(status && status.value != 'COMMITED'){
  283. btn.hide();
  284. }
  285. },
  286. click: function(btn){
  287. this.FormUtil.onResSubmit(Ext.getCmp('vr_id').value);
  288. }
  289. },
  290. '#vr_prjname':{
  291. change:function(field){
  292. // console.log(field);
  293. // alert(123);
  294. /*var prjname=Ext.getCmp('vr_prjname').value;
  295. Ext.getCmp('vr_title').setValue(prjname);*/
  296. }
  297. },
  298. 'dbfindtrigger[name=vr_cuuu]': {
  299. /*afterrender:function(trigger){
  300. trigger.dbKey='prj_code';//dbfind表 关联表 的ID
  301. // trigger.mappingKey='prj_code';//匹配 主从表关联ID
  302. trigger.dbMessage='请先选择项目!';
  303. }*/
  304. }/*,
  305. 'htmleditor': {
  306. afterrender: function(f){
  307. f.setHeight(300);
  308. }
  309. }*//*,
  310. '#vr_type':{
  311. change: function(f){
  312. var name = '';
  313. switch(f.value) {
  314. case '市场调查':
  315. name = '调查名称';break;
  316. case '新品推广':
  317. name = '新品名称';break;
  318. case '销售促进':
  319. name = '销售主题';break;
  320. case '客情维护':
  321. name = '客户名称';break;
  322. }
  323. Ext.getCmp('vr_name').getEl().dom.childNodes[0].innerText = name;
  324. }
  325. }*/
  326. });
  327. },
  328. onGridItemClick2: function(selModel,record){
  329. this.onGridItemClick(selModel,record,'recordDetail');
  330. },
  331. onGridItemClick3: function(selModel,record){
  332. this.onGridItemClick(selModel,record,'recordDetailDet');
  333. },
  334. onGridItemClick4: function(selModel,record){
  335. this.onGridItemClick(selModel,record,'ProgressGrid');
  336. },
  337. onGridItemClick5: function(selModel,record){
  338. this.onGridItemClick(selModel,record,'InfoGrid');
  339. },
  340. onGridItemClick6: function(selModel,record){
  341. this.onGridItemClick(selModel,record,'ChanceDetail');
  342. },
  343. onGridItemClick7: function(selModel,record){
  344. this.onGridItemClick(selModel,record,'VisitFeedBack');
  345. },
  346. beforeSave: function(){
  347. var me = this;
  348. var form = Ext.getCmp('form');
  349. if(! me.FormUtil.checkForm()){
  350. return;
  351. }
  352. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  353. me.FormUtil.getSeqId(form);
  354. }
  355. var detail = Ext.getCmp('grid');
  356. var ass = Ext.getCmp('recordDetail');
  357. var flow = Ext.getCmp('recordDetailDet');
  358. var detail4 = Ext.getCmp('ProgressGrid');
  359. var detail5 = Ext.getCmp('InfoGrid');
  360. var detail6 = Ext.getCmp('ChanceDetail');
  361. var detail7 = Ext.getCmp('VisitFeedBack');
  362. /*var grids = Ext.ComponentQuery.query('grid');
  363. var gridsDet = Ext.ComponentQuery.query('recordtoolbar');
  364. var gridsDetail=Ext.ComponentQuery.query('recordDettoolbar');*/
  365. Ext.each(detail.store.data.items, function(item){
  366. if(item.data.vd_id == null || item.data.vd_id == 0){
  367. item.data.vd_id = -item.index;
  368. }
  369. });
  370. var param1 = me.GridUtil.getGridStore(detail);
  371. var param2 = new Array();
  372. if(ass) {
  373. param2 = me.GridUtil.getGridStore(ass);
  374. }
  375. var param3 = new Array();
  376. if(flow){
  377. param3 =me.GridUtil.getGridStore(flow);
  378. }
  379. var param4 = new Array();
  380. if(detail4){
  381. param4 =me.GridUtil.getGridStore(detail4);
  382. }
  383. var param5 = new Array();
  384. if(detail5){
  385. param5 =me.GridUtil.getGridStore(detail5);
  386. }
  387. var param6 = new Array();
  388. if(detail6){
  389. param6 =me.GridUtil.getGridStore(detail6);
  390. }
  391. var param7 = new Array();
  392. if(detail7){
  393. param7 =me.GridUtil.getGridStore(detail7);
  394. }
  395. param1 = param1 == null ? [] : "[" + param1.toString() + "]";
  396. param2 = param2 == null ? [] : "[" + param2.toString()+ "]";
  397. param3 = param3 == null ? [] : param3.toString();
  398. param7 = param7 == null ? [] : "[" + param7.toString() + "]";
  399. if(form.getForm().isValid()){
  400. Ext.each(form.items.items, function(item){
  401. if(item.xtype == 'numberfield'){
  402. if(item.value == null || item.value == ''){
  403. item.setValue(0);
  404. }
  405. }
  406. });
  407. var r = form.getValues();
  408. /* r.vo_currencytype = Ext.getCmp('vo_currencytype').value ? -1 : 0;
  409. r.vo_errstring = r.vo_errstring == '正常' ? '' : r.vo_errstring;*/
  410. me.save(r, param1, param2, param3,param4, param5, param6,param7);
  411. }else{
  412. me.FormUtil.checkForm();
  413. }
  414. },
  415. save: function(){
  416. var params = new Object();
  417. var r = arguments[0];
  418. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  419. if(contains(k, 'ext-', true)){
  420. delete r[k];
  421. }
  422. });
  423. params.formStore = unescape(Ext.JSON.encode(r));
  424. params.param1 = unescape(arguments[1].toString());
  425. params.param2 = unescape(arguments[2].toString());
  426. params.param3 = unescape(arguments[3].toString());
  427. params.param4 = unescape(arguments[4].toString());
  428. params.param5 = unescape(arguments[5].toString());
  429. params.param6 = unescape(arguments[6].toString());
  430. params.param7 = unescape(arguments[7].toString());
  431. /*for(var i=2; i<arguments.length; i++) { //兼容多参数
  432. params['param' + i] = unescape(arguments[i].toString().replace(/\\/g,"%"));
  433. }*/
  434. var me = this;
  435. var form = Ext.getCmp('form');
  436. //me.getActiveTab().setLoading(true);//loading...
  437. // console.log(params);
  438. Ext.Ajax.request({
  439. url : basePath + form.saveUrl,
  440. params : params,
  441. method : 'post',
  442. callback : function(options,success,response){
  443. var localJson = new Ext.decode(response.responseText);
  444. if(localJson.success){
  445. saveSuccess(function(){
  446. //add成功后刷新页面进入可编辑的页面
  447. var value = r[form.keyField];
  448. var formCondition = form.keyField + "IS" + value ;
  449. if(me.contains(window.location.href, '?', true)){
  450. window.location.href = window.location.href + '&formCondition=' +
  451. formCondition+'&gridCondition=vrd_vridIS'+value;
  452. } else {
  453. window.location.href = window.location.href + '?formCondition=' +
  454. formCondition+'&gridCondition=vrd_vridIS'+value;
  455. }
  456. });
  457. } else if(localJson.exceptionInfo){
  458. var str = localJson.exceptionInfo;
  459. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  460. str = str.replace('AFTERSUCCESS', '');
  461. saveSuccess(function(){
  462. //add成功后刷新页面进入可编辑的页面
  463. var value = r[form.keyField];
  464. var formCondition = form.keyField + "IS" + value ;
  465. if(me.contains(window.location.href, '?', true)){
  466. window.location.href = window.location.href + '&formCondition=' +
  467. formCondition+'&gridCondition=vrd_vridIS'+value;
  468. } else {
  469. window.location.href = window.location.href + '?formCondition=' +
  470. formCondition+'&gridCondition=vrd_vridIS'+value;
  471. }
  472. });
  473. showError(str);
  474. } else {
  475. showError(str);
  476. return;
  477. }
  478. } else{
  479. saveFailure();//@i18n/i18n.js
  480. }
  481. }
  482. });
  483. },
  484. beforeUpdate: function(){
  485. var me = this;
  486. var form = Ext.getCmp('form');
  487. if(! me.FormUtil.checkForm()){
  488. return;
  489. }
  490. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  491. me.FormUtil.getSeqId(form);
  492. }
  493. var detail = Ext.getCmp('grid');
  494. var ass = Ext.getCmp('recordDetail');
  495. var flow = Ext.getCmp('recordDetailDet');
  496. var detail4 = Ext.getCmp('ProgressGrid');
  497. var detail5 = Ext.getCmp('InfoGrid');
  498. var detail6 = Ext.getCmp('ChanceDetail');
  499. var detail7 = Ext.getCmp('VisitFeedBack');
  500. Ext.each(detail.store.data.items, function(item){
  501. if(item.data.vd_id == null || item.data.vd_id == 0){
  502. item.data.vd_id = -item.index;
  503. }
  504. });
  505. var param1 = me.GridUtil.getGridStore(detail);
  506. var param2 = new Array();
  507. if(ass) {
  508. param2 = me.GridUtil.getGridStore(ass);
  509. }
  510. var param3 = new Array();
  511. if(flow) {
  512. param3 = me.GridUtil.getGridStore(flow);
  513. }
  514. var param4 = new Array();
  515. if(detail4){
  516. param4 =me.GridUtil.getGridStore(detail4);
  517. }
  518. var param5 = new Array();
  519. if(detail5){
  520. param5 =me.GridUtil.getGridStore(detail5);
  521. }
  522. var param6 = new Array();
  523. if(detail6){
  524. param6 =me.GridUtil.getGridStore(detail6);
  525. }
  526. var param7 = new Array();
  527. if(detail7){
  528. param7 =me.GridUtil.getGridStore(detail7);
  529. }
  530. param1 = param1 == null ? [] : "[" + param1.toString() + "]";
  531. param2 = param2 == null ? [] : "[" + param2.toString() + "]";
  532. param3 = param3 == null ? [] : "[" + param3.toString() + "]";
  533. param4 = param4 == null ? [] : "[" + param4.toString()+ "]";
  534. param6 = param6== null ? [] : "[" + param6.toString()+ "]";
  535. param5 = param5 == null ? [] : param5.toString();
  536. param7 = param7== null ? [] : "[" + param7+ "]";
  537. if(form.getForm().isValid()){
  538. Ext.each(form.items.items, function(item){
  539. if(item.xtype == 'numberfield'){
  540. if(item.value == null || item.value == ''){
  541. item.setValue(0);
  542. }
  543. }
  544. });
  545. var r = form.getValues();
  546. me.update(r, param1, param2, param3, param4, param5, param6,param7);
  547. }else{
  548. me.FormUtil.checkForm();
  549. }
  550. },
  551. update:function(){
  552. var params = new Object();
  553. var r = arguments[0];
  554. Ext.each(Ext.Object.getKeys(r), function(k){//去掉页面非表单定义字段
  555. if(contains(k, 'ext-', true)){
  556. delete r[k];
  557. }
  558. });
  559. params.formStore = unescape(Ext.JSON.encode(r));
  560. params.param1 = unescape(arguments[1].toString());
  561. params.param2 = unescape(arguments[2].toString());
  562. params.param3 = unescape(arguments[3].toString());
  563. params.param4 = unescape(arguments[4].toString());
  564. params.param5 = unescape(arguments[5].toString());
  565. params.param6 = unescape(arguments[6].toString());
  566. params.param7 = unescape(arguments[7].toString());
  567. var me = this;
  568. var form = Ext.getCmp('form');
  569. //me.getActiveTab().setLoading(true);//loading...
  570. // console.log(params);
  571. Ext.Ajax.request({
  572. url : basePath + form.updateUrl,
  573. params : params,
  574. method : 'post',
  575. callback : function(options,success,response){
  576. //me.getActiveTab().setLoading(false);
  577. var localJson = new Ext.decode(response.responseText);
  578. if(localJson.success){
  579. saveSuccess(function(){
  580. //add成功后刷新页面进入可编辑的页面
  581. var value = r[form.keyField];
  582. var formCondition = form.keyField + "IS" + value ;
  583. if(me.contains(window.location.href, '?', true)){
  584. window.location.href = window.location.href + '&formCondition=' +
  585. formCondition;
  586. } else {
  587. window.location.href = window.location.href + '?formCondition=' +
  588. formCondition;
  589. }
  590. });
  591. } else if(localJson.exceptionInfo){
  592. var str = localJson.exceptionInfo;
  593. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  594. str = str.replace('AFTERSUCCESS', '');
  595. saveSuccess(function(){
  596. //add成功后刷新页面进入可编辑的页面
  597. var value = r[form.keyField];
  598. var formCondition = form.keyField + "IS" + value ;
  599. if(me.contains(window.location.href, '?', true)){
  600. window.location.href = window.location.href + '&formCondition=' +
  601. formCondition;
  602. } else {
  603. window.location.href = window.location.href + '?formCondition=' +
  604. formCondition;
  605. }
  606. });
  607. showError(str);
  608. } else {
  609. showError(str);
  610. return;
  611. }
  612. } else{
  613. saveFailure();//@i18n/i18n.js
  614. }
  615. }
  616. });
  617. },
  618. contains: function(string,substr,isIgnoreCase){
  619. if(isIgnoreCase){
  620. string=string.toLowerCase();
  621. substr=substr.toLowerCase();
  622. }
  623. var startChar=substr.substring(0,1);
  624. var strLen=substr.length;
  625. for(var j=0;j<string.length-strLen+1;j++){
  626. if(string.charAt(j)==startChar){//如果匹配起始字符,开始查找
  627. if(string.substring(j,j+strLen)==substr){//如果从j开始的字符与str匹配,那ok
  628. return true;
  629. }
  630. }
  631. }
  632. return false;
  633. },
  634. onGridItemClick: function(selModel, record){//grid行选择
  635. this.GridUtil.onGridItemClick(selModel, record);
  636. },
  637. autoInsert:function(){
  638. var vr_cuuu=Ext.getCmp('vr_cuuu');
  639. if(vr_cuuu.value==''){
  640. return;
  641. }
  642. Ext.Ajax.request({
  643. url : basePath + 'crm/customermgr/autoSaveVisitRecord.action',
  644. params: {vr_cuuu:vr_cuuu.value},
  645. method : 'post',
  646. callback : function(options,success,response){
  647. var localJson = new Ext.decode(response.responseText);
  648. if(localJson.success){
  649. saveSuccess(function(){
  650. //add成功后刷新页面进入可编辑的页面
  651. var value = localJson.vr_id;
  652. var formCondition = 'vr_id' + "IS" + value ;
  653. window.location.href = window.location.href + '?formCondition=' +
  654. formCondition+'&gridCondition=vrd_vridIS'+value;
  655. });
  656. } else if(localJson.exceptionInfo){
  657. var str = localJson.exceptionInfo;
  658. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  659. str = str.replace('AFTERSUCCESS', '');
  660. saveSuccess(function(){
  661. //add成功后刷新页面进入可编辑的页面
  662. var value = localJson.vr_id;
  663. var formCondition = 'vr_id' + "IS" + value ;
  664. window.location.href = window.location.href + '?formCondition=' +
  665. formCondition+'&gridCondition=vrd_vridIS'+value;
  666. });
  667. showError(str);
  668. } else {
  669. showError(str);
  670. return;
  671. }
  672. } else {
  673. showError(str);
  674. }
  675. }
  676. });
  677. },
  678. turnFeePlease:function(){
  679. var vr_id=Ext.getCmp('vr_id');
  680. if(vr_id.value==''){
  681. return;
  682. }
  683. Ext.Ajax.request({
  684. url : basePath + 'crm/customermgr/turnFeePlease.action',
  685. params: {id:vr_id.value},
  686. method : 'post',
  687. callback : function(options,success,response){
  688. var localJson = new Ext.decode(response.responseText);
  689. if(localJson.success){
  690. saveSuccess(function(){
  691. //add成功后刷新页面进入可编辑的页面
  692. showMessage('提示',localJson.log);
  693. window.location.reload();
  694. });
  695. } else if(localJson.exceptionInfo){
  696. var str = localJson.exceptionInfo;
  697. showError(str);
  698. }
  699. }
  700. });
  701. },
  702. getForm: function(btn){
  703. return btn.ownerCt.ownerCt;
  704. }
  705. });