czjl.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. /**
  2. * patrolplan.js
  3. * 巡检任务管理界面
  4. * emial: yaoqiang@chinausky.com
  5. * create: 2018-12-08
  6. */
  7. Ext.Loader.setConfig({
  8. enabled: true
  9. });
  10. Ext.Loader.setPath('Ext.ux', '../../res/extjs/examples/ux');
  11. Ext.require([
  12. 'Ext.grid.*',
  13. 'Ext.data.*',
  14. 'Ext.ux.RowExpander',
  15. 'Ext.selection.CheckboxModel'
  16. ]);
  17. var sm = Ext.create('Ext.selection.CheckboxModel');
  18. //var sm1 = Ext.create('Ext.selection.CheckboxModel');
  19. var menuidx = '';
  20. var mouseon;
  21. var mouseoff;
  22. var menu_click;
  23. var AllSelectedRecords = [];
  24. var sm1;
  25. var initflag = false;
  26. Ext.define('czjl',{
  27. extend: 'Ext.data.Model',
  28. fields: [
  29. {name:'id', type:'string'},
  30. {name:'xh', type:'int'},
  31. {name:'company_name', type:'string'},
  32. {name:'czcs', type:'string'},
  33. {name:'czsj', type:'string'},
  34. {name:'czbz', type:'string'},
  35. {name:'data1', type:'string'},
  36. {name:'data2', type:'string'},
  37. {name:'data3', type:'string'},
  38. ]
  39. });
  40. var body_resize = function(){
  41. maxHeight = document.documentElement.clientHeight;
  42. maxWidth = document.documentElement.clientWidth;
  43. Ext.getCmp('PatrolPlanPiebar').setHeight(maxHeight);
  44. Ext.getCmp('PatrolPlanPiebar').setWidth(maxWidth);
  45. }
  46. Ext.onReady(function(){
  47. var baseUrl = document.getElementById('basePath').value;
  48. var theme = document.getElementById('theme').value;
  49. company_code = document.getElementById('company_code').value;
  50. $("#V_LOGINNAME").val(sessionStorage.getItem('V_LOGINNAME'));
  51. $("#V_PASSWORD").val(sessionStorage.getItem('V_PASSWORD'));
  52. var V_LOGINNAME = $("#V_LOGINNAME").val();
  53. var V_PASSWORD = $("#V_PASSWORD").val();
  54. var chkIcon = '<img src="'+baseUrl+'res/img/common/check.gif"/>'
  55. var unchkIcon = '<img src="'+baseUrl+'res/img/common/uncheck.gif"/>'
  56. var countPerPage = 15;
  57. var maxHeight = 10000;
  58. var chkBoolean = function(flag) {
  59. if(flag)
  60. return chkIcon;
  61. return unchkIcon;
  62. }
  63. var deselect_fun = function(record){
  64. var index = AllSelectedRecords.indexOf(record.get("id"));
  65. if (index > -1) {
  66. AllSelectedRecords.splice(index, 1);
  67. return AllSelectedRecords;
  68. }
  69. }
  70. sm1 = Ext.create('Ext.selection.CheckboxModel',{
  71. mode: "MULTI",
  72. listeners: {
  73. deselect: function (me, record, index, opts) {
  74. if(initflag){
  75. // alert("初始化");
  76. }else{
  77. deselect_fun(record);
  78. }
  79. },
  80. select: function (me, record, index, opts) {
  81. var index = AllSelectedRecords.indexOf(record.get("id"));
  82. if (index > -1) {
  83. return AllSelectedRecords;
  84. }else{
  85. AllSelectedRecords.push(record.get("id"));
  86. return AllSelectedRecords;
  87. }
  88. }
  89. }
  90. });
  91. var queryJson = new Object();
  92. // queryJson.V_LOGINNAME = V_LOGINNAME;
  93. // queryJson.V_PASSWORD = V_PASSWORD;
  94. queryJson.COMMSTATUS = 'NO';
  95. if((company_code!=null)&&(company_code!='null')&&(company_code.length>0))
  96. queryJson.company_code = company_code;
  97. var myStore = Ext.create('Ext.data.Store', {
  98. model: 'czjl',
  99. pageSize: countPerPage,
  100. proxy: {
  101. type: 'ajax',
  102. url: baseUrl+'iot/pzb/getCzjlList',
  103. reader: {
  104. type: 'json',
  105. root: 'RESULT',
  106. totalProperty: 'totalCount'
  107. },
  108. extraParams:{
  109. queryJson:Ext.JSON.encode(queryJson)
  110. }
  111. },
  112. remoteSort: true
  113. });
  114. Ext.define('CompanyUser',{
  115. extend:'Ext.data.Model',
  116. fields: [
  117. {name:'company_name', type:'string'},
  118. {name:'id',type:'int'}
  119. ]
  120. });
  121. var getCompanyUser = Ext.create('Ext.data.Store',{
  122. model: 'CompanyUser',
  123. proxy: {
  124. type: 'ajax',
  125. actionMethods: {
  126. create : 'POST',
  127. read : 'POST', // by default GET
  128. update : 'POST',
  129. destroy: 'POST'
  130. },
  131. url: baseUrl+'iot/pzb/getCompanyUser',
  132. reader: {
  133. type: 'json',
  134. root: 'RESULT',
  135. totalProperty: 'totalCount'
  136. },
  137. extraParams:{
  138. queryJson:Ext.JSON.encode(queryJson)
  139. }
  140. }
  141. });
  142. var states = Ext.create('Ext.data.Store', {
  143. fields: ['status', 'name'],
  144. data : [
  145. {"status":"1", "name":"1个月"},
  146. {"status":"3", "name":"3个月"},
  147. {"status":"6", "name":"半年年"},
  148. {"status":"12", "name":"1年"},
  149. ]
  150. });
  151. var data =Ext.Date.format(new Date(), 'm/d/Y');
  152. var clear_append_form = function (){
  153. Ext.getCmp('fa_company_name').setValue("");
  154. // Ext.getCmp('fa_krq').setValue("");
  155. // Ext.getCmp('fa_jrq').setValue("");
  156. Ext.getCmp('fa_xysj').setValue("");
  157. Ext.getCmp('fa_czed').setValue("");
  158. Ext.getCmp('PatrolPlanListPageToolbar').getStore().reload();
  159. }
  160. var AppendForm = Ext.create('Ext.form.Panel', {
  161. id: 'companyxxAppendForm1',
  162. labelWidth: 55,
  163. url: baseUrl+'iot/pzb/appendCz',
  164. defaultType: 'textfield',
  165. bodyPadding: 15,
  166. items: [{
  167. fieldLabel:'单位',
  168. id:'fa_company_name',
  169. name:'company_name',
  170. xtype:'combo',
  171. store:getCompanyUser,
  172. displayField : 'company_name',
  173. valueField : 'id',
  174. editable : false,
  175. anchor:'75%',
  176. },{
  177. fieldLabel:'充值额度',
  178. id: 'fa_czed',
  179. name:'czed',
  180. maxLength:20,
  181. maxLengthText:'长度不得超出{0}',
  182. anchor:'75%'
  183. },{
  184. fieldLabel:'开通时间',
  185. id:'fa_xysj',
  186. name:'xysj',
  187. xtype:'combo',
  188. store:states,
  189. displayField : 'name',
  190. valueField : 'status',
  191. editable : false,
  192. anchor:'75%',
  193. }
  194. // ,{
  195. // xtype:'datefield',
  196. // fieldLabel:"开始日期",
  197. // minValue:data,
  198. // minText:"当前日期选择应大于当天日期",
  199. // format:"Y-m-d",
  200. // id: 'fa_krq',
  201. // name:"krq",
  202. // editable:false,//只读约束
  203. // anchor:'75%'
  204. // },{
  205. // xtype:'datefield',
  206. // fieldLabel:"结束日期",
  207. // minValue:data,
  208. // // '07/07/2017',
  209. // minText:"当前日期选择应大于当天日期",
  210. // format:"Y-m-d",
  211. // id: 'fa_jrq',
  212. // name:"jrq",
  213. // editable:false,//只读约束
  214. // anchor:'75%'
  215. // }
  216. ,{
  217. id:'fa_Inspectors_queryJson1',
  218. name:'queryJson',
  219. hidden:true
  220. }],
  221. buttons: [{
  222. text: '提交',
  223. iconCls:'ok_btn',
  224. handler: function() {
  225. var form = this.up('form').getForm();
  226. if (form.isValid()) {
  227. var query = new Object();
  228. // query.V_LOGINNAME = $("#V_LOGINNAME").val();
  229. query.company_name = Ext.getCmp('fa_company_name').getValue();
  230. query.czed = Ext.getCmp('fa_czed').getValue();
  231. query.xysj = Ext.getCmp('fa_xysj').getValue();
  232. // query.krq = Ext.getCmp('fa_krq').getValue();
  233. // query.jrq = Ext.getCmp('fa_jrq').getValue();
  234. var jsonstr = Ext.JSON.encode(query);
  235. Ext.getCmp('fa_Inspectors_queryJson1').setValue(jsonstr);
  236. form.submit({
  237. method:'post',
  238. success:function(form, action) {
  239. Ext.Msg.alert('操作成功', '已保存', function(btn,txt){
  240. clear_append_form();
  241. });
  242. },
  243. failure: function(form, action) {
  244. Ext.Msg.alert('操作失败', action.result.Msg , function(btn,txt){
  245. clear_append_form();
  246. });
  247. }
  248. });
  249. }
  250. }
  251. },{
  252. text: '关闭',
  253. iconCls: 'cancel_btn',
  254. handler: function() {
  255. this.up('window').hide();
  256. }
  257. }]
  258. });
  259. var appendwin = function(){
  260. var zfappendwin = Ext.getCmp('zfappendwin');
  261. if(zfappendwin==undefined)
  262. Ext.create('Ext.window.Window', {
  263. id:'zfappendwin',
  264. title: '新增',
  265. height: 350,
  266. width: 400,
  267. modal: true,
  268. layout: 'fit',
  269. items: AppendForm,
  270. closeAction: 'hide'
  271. }).show();
  272. else
  273. zfappendwin.show();
  274. }
  275. var show_page = function(){
  276. var company_name = document.getElementById('czjl_title2_input').value;
  277. var czsj1 = document.getElementById('czjl_title3_input3').value;
  278. var czsj2 = document.getElementById('czjl_title3_input2').value;
  279. var query = new Object();
  280. if(company_name.length>0){
  281. query.company_name = company_name;
  282. $("#company_name").val(company_name);
  283. }
  284. if(czsj1.length>0){
  285. query.czsj1 = czsj1;
  286. $("#czsj1").val(czsj1);
  287. }
  288. if(czsj2.length>0){
  289. query.czsj2 = czsj2;
  290. $("#czsj2").val(czsj2);
  291. }
  292. // query.V_LOGINNAME = V_LOGINNAME;
  293. // query.V_PASSWORD = V_PASSWORD;
  294. var jsonstr = Ext.JSON.encode(query);
  295. myStore.getProxy().extraParams = {
  296. queryJson : jsonstr
  297. };
  298. Ext.getCmp('PatrolPlanListPageToolbar').moveFirst();
  299. }
  300. var reset1 = function(){
  301. document.getElementById('czjl_title2_input').value = '';
  302. document.getElementById('czjl_title3_input3').value = '';
  303. document.getElementById('czjl_title3_input2').value = '';
  304. $("#company_name").val('');
  305. $("#czsj1").val('');
  306. $("#czsj2").val('');
  307. show_page();
  308. }
  309. mouseon = function(obj){
  310. var id = obj.id;
  311. $("#"+id).removeClass(id);
  312. $("#"+id).addClass(id+'_on');
  313. }
  314. mouseoff = function(obj){
  315. var mid = "czjl1_";
  316. for(var i=1;i<4;i++){
  317. var id = "czjl1_title"+i+"_div";
  318. $("#"+id).removeClass(id+'_on');
  319. $("#"+id).addClass(id);
  320. }
  321. if(menuidx=='m1'){
  322. mid += 'title1_div';
  323. $("#"+mid).removeClass(mid);
  324. $("#"+mid).addClass(mid+'_on');
  325. }
  326. else if(menuidx=='m2'){
  327. mid += 'title2_div';
  328. $("#"+mid).removeClass(mid);
  329. $("#"+mid).addClass(mid+'_on');
  330. }
  331. else if(menuidx=='m3'){
  332. mid += 'title3_div';
  333. $("#"+mid).removeClass(mid);
  334. $("#"+mid).addClass(mid+'_on');
  335. }
  336. }
  337. menu_click = function(obj){
  338. var id = obj.id;
  339. if(id=='czjl1_title1_div'){
  340. menuidx = 'm1';
  341. show_page();
  342. }
  343. else if(id=='czjl1_title2_div'){
  344. menuidx = 'm2';
  345. reset1();
  346. }
  347. else if(id=='czjl1_title3_div'){
  348. menuidx = 'm3';
  349. appendwin();
  350. }
  351. }
  352. var piedarHtml = function() {
  353. var date=new Date;
  354. var dates=Ext.util.Format.date(date, 'Y-m-d');
  355. var preDate = new Date(date.getTime() - 24*60*60*1000);
  356. var dates2=Ext.util.Format.date(preDate, 'Y-m-d');
  357. var maintenancePlanHtml = document.getElementById('patrolPlanHtml');
  358. ;
  359. var divhiddle = document.createElement('div');
  360. divhiddle.id='pzd_div_1';
  361. divhiddle.setAttribute('class','czjlHandleHtml3DivHiddle');
  362. maintenancePlanHtml.appendChild(divhiddle);
  363. var title = document.createElement('div');
  364. title.setAttribute('class','czjl_Title');
  365. title.innerHTML='充值记录';
  366. maintenancePlanHtml.appendChild(title);
  367. var title2 = document.createElement('div');
  368. title2.setAttribute('class','czjl_title2_div');
  369. title2.innerHTML='单位名称';
  370. maintenancePlanHtml.appendChild(title2);
  371. var input = document.createElement('input');
  372. input.setAttribute('class','czjl_input_class');
  373. input.setAttribute('id','czjl_title2_input');
  374. input.setAttribute('type','text');
  375. input.setAttribute('value','');
  376. maintenancePlanHtml.appendChild(input);
  377. var title3 = document.createElement('div');
  378. title3.setAttribute('class','czjl_title3_div');
  379. title3.innerHTML='充值时间';
  380. maintenancePlanHtml.appendChild(title3);
  381. var input3 = document.createElement('input');
  382. input3.setAttribute('class','czjl_input3_class');
  383. input3.setAttribute('id','czjl_title3_input3');
  384. input3.setAttribute('type','text');
  385. input3.setAttribute('readonly','true');
  386. input3.setAttribute('value',dates2);
  387. maintenancePlanHtml.appendChild(input3);
  388. var title8 = document.createElement('div');
  389. title8.setAttribute('class','czjl_title8_div');
  390. title8.innerHTML='~';
  391. maintenancePlanHtml.appendChild(title8);
  392. var input2 = document.createElement('input');
  393. input2.setAttribute('class','czjl_input2_class');
  394. input2.setAttribute('id','czjl_title3_input2');
  395. input2.setAttribute('type','text');
  396. input2.setAttribute('readonly','true');
  397. input2.setAttribute('value',dates);
  398. maintenancePlanHtml.appendChild(input2);
  399. //设置开始时间
  400. var startDate = laydate.render({
  401. elem: '#czjl_title3_input3',
  402. done: function (value, date) {
  403. if (value !== '') {
  404. endDate.config.min.year = date.year;
  405. endDate.config.min.month = date.month - 1;
  406. endDate.config.min.date = date.date;
  407. } else {
  408. endDate.config.min.year = '';
  409. endDate.config.min.month = '';
  410. endDate.config.min.date = '';
  411. }
  412. }
  413. });
  414. //设置结束时间
  415. var endDate = laydate.render({
  416. elem: '#czjl_title3_input2',
  417. done: function (value, date) {
  418. if (value !== '') {
  419. startDate.config.max.year = date.year;
  420. startDate.config.max.month = date.month - 1;
  421. startDate.config.max.date = date.date;
  422. } else {
  423. startDate.config.max.year = '';
  424. startDate.config.max.month = '';
  425. startDate.config.max.date = '';
  426. }
  427. }
  428. });
  429. // var title3 = document.createElement('div');
  430. // title3.setAttribute('class','czjl_title3_div');
  431. // title3.innerHTML='充值时间';
  432. // maintenancePlanHtml.appendChild(title3);
  433. // var input3 = document.createElement('input');
  434. // input3.setAttribute('class','czjl_input3_class');
  435. // input3.setAttribute('id','czjl_title3_input3');
  436. // input3.setAttribute('type','text');
  437. // input3.setAttribute('readonly','true');
  438. // input3.setAttribute('value',dates2);
  439. // maintenancePlanHtml.appendChild(input3);
  440. //设置开始时间
  441. // var startDate = laydate.render({
  442. // elem: '#czjl_title3_input3',
  443. // done: function (value, date) {
  444. // if (value !== '') {
  445. // endDate.config.min.year = date.year;
  446. // endDate.config.min.month = date.month - 1;
  447. // endDate.config.min.date = date.date;
  448. // } else {
  449. // endDate.config.min.year = '';
  450. // endDate.config.min.month = '';
  451. // endDate.config.min.date = '';
  452. // }
  453. // }
  454. // });
  455. var title4 = document.createElement('div');
  456. title4.setAttribute('class','czjl1_title1_div');
  457. title4.setAttribute('id','czjl1_title1_div');
  458. title4.setAttribute('onmouseover',"mouseon(this)");
  459. title4.setAttribute('onmouseout',"mouseoff(this)");
  460. title4.setAttribute('onclick',"menu_click(this)");
  461. maintenancePlanHtml.appendChild(title4);
  462. var title5 = document.createElement('div');
  463. title5.setAttribute('class','czjl1_title2_div');
  464. title5.setAttribute('id','czjl1_title2_div');
  465. title5.setAttribute('onmouseover',"mouseon(this)");
  466. title5.setAttribute('onmouseout',"mouseoff(this)");
  467. title5.setAttribute('onclick',"menu_click(this)");
  468. maintenancePlanHtml.appendChild(title5);
  469. var title7 = document.createElement('div');
  470. title7.setAttribute('class','czjl1_title3_div');
  471. title7.setAttribute('id','czjl1_title3_div');
  472. title7.setAttribute('onmouseover',"mouseon(this)");
  473. title7.setAttribute('onmouseout',"mouseoff(this)");
  474. title7.setAttribute('onclick',"menu_click(this)");
  475. maintenancePlanHtml.appendChild(title7);
  476. }
  477. var MaintenancePlanPanel =Ext.create('Ext.grid.Panel', {
  478. header :{
  479. height:0,
  480. border:'0px solid #000000'
  481. },
  482. id: 'PatrolPlanListPanel',
  483. store: myStore,
  484. selModel: sm,
  485. columns: [
  486. { header: 'ID', dataIndex: 'id',hidden:true, menuDisabled:true },
  487. { header: '序号', dataIndex: 'xh', width:77, menuDisabled:true },
  488. { header: '单位名称', dataIndex: 'company_name', width:320,align:'center', menuDisabled:true },
  489. { header: '剩余次数', dataIndex: 'czbz', width:185, align:'center', menuDisabled:true },
  490. { header: '充值额度(次)', dataIndex: 'czcs', width:185,align:'center', menuDisabled:true },
  491. { header: '套餐时间', dataIndex: 'data1', width:320,align:'center', menuDisabled:true },
  492. { header: '充值时间', dataIndex: 'czsj',width:350, align:'center', menuDisabled:true },
  493. //
  494. ],
  495. columnLines: true,
  496. height: maxHeight,
  497. width: '100%',
  498. bbar: new Ext.PagingToolbar({
  499. store: myStore,
  500. id:'PatrolPlanListPageToolbar',
  501. displayInfo: true,
  502. pageSize: countPerPage,
  503. prependButtons: true,
  504. displayMsg : '显示第 {0}条到 {1}条记录,总共 {2}条',
  505. emptyMsg : "没有记录",
  506. firstText: '第一页',
  507. prevText: '前一页',
  508. nextText: '后一页',
  509. lastText: '最后一页',
  510. refreshText: '刷新',
  511. }),
  512. // frame: true,
  513. border:false,
  514. iconCls: 'icon-grid'
  515. // renderTo: Ext.getBody()
  516. });
  517. var piebar = Ext.create('Ext.panel.Panel',{
  518. id:'patrolPlanHtml',
  519. width:'100%',
  520. height:188,
  521. region:'north',
  522. layout:'form',
  523. defaults:{
  524. border:false
  525. }
  526. // items: [childPanel1]
  527. });
  528. new Ext.create('Ext.panel.Panel',{
  529. width:'100%',
  530. id: 'PatrolPlanPiebar',
  531. layout:'border',
  532. items:[
  533. piebar,MaintenancePlanPanel
  534. ],
  535. renderTo: Ext.getBody()
  536. });
  537. // piedarHtml();
  538. myStore.reload();
  539. myStore.addListener('load',function(store,record,opts){
  540. if(document.getElementById('pzd_div_1')==undefined)
  541. piedarHtml();
  542. });
  543. $(window).resize(function(){
  544. body_resize();
  545. });
  546. body_resize();
  547. });