patrolplan.js 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479
  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('MaintenancePlan', {
  27. extend: 'Ext.data.Model',
  28. fields: [
  29. { name: 'id', type: 'string' },
  30. { name: 'xh', type: 'int' },
  31. { name: 'plan_name', type: 'string' },
  32. { name: 'cycle', type: 'string' },
  33. { name: 'cycle_name', type: 'string' },
  34. { name: 'zxsj', type: 'string' },
  35. { name: 'team_id', type: 'string' },
  36. { name: 'team_name', type: 'string' },
  37. { name: 'name', type: 'string' },
  38. { name: 'company_code', type: 'string' },
  39. { name: 'start_date', type: 'string' },
  40. { name: 'end_date', type: 'string' },
  41. { name: 'start_inspect_time', type: 'string' },
  42. { name: 'end_inspect_time', type: 'string' },
  43. ]
  44. });
  45. Ext.define('MaintenancePlan1', {
  46. extend: 'Ext.data.Model',
  47. fields: [
  48. { name: 'id', type: 'string' },
  49. { name: 'spot_name', type: 'string' },
  50. { name: 'spot_address', type: 'string' },
  51. { name: 'pd', type: 'string' },
  52. ]
  53. });
  54. function public_emptyInput() {
  55. Ext.getCmp('fa_patrolplan_name').setValue("");
  56. Ext.getCmp('fa_patrol_team_id').setValue("");
  57. // Ext.getCmp('fa_cycle').setValue("");
  58. Ext.getCmp('fa_patrol_start_date').setValue("");
  59. Ext.getCmp('fa_patrol_end_date').setValue("");
  60. Ext.getCmp('fa_patrol_start_time').setValue("");
  61. Ext.getCmp('fa_patrol_end_time').setValue("");
  62. Ext.getCmp('fa_patrol_company_code').setValue("");
  63. // Ext.getCmp('fa_spot_id').setValue("");
  64. }
  65. function exportbtn_click() {
  66. baseUrl = document.getElementById('basePath').value;
  67. V_LOGINNAME = $("#V_LOGINNAME").val();
  68. plan_name = document.getElementById('plan_name').value;
  69. person_liable_id = document.getElementById('person_liable_id').value;
  70. var fields = '';
  71. var array = ['xh', 'plan_name', 'cycle_name', 'zxsj', 'team_name', 'name'];
  72. var name = ['序号', '任务名称', '周期', '执行日期', '执行团队', '责任人'];
  73. for (var i = 0; i < 6; i++) {
  74. if (i > 0)
  75. fields += ',';
  76. fields += '{id:"' + array[i] + '",title:"' + name[i] + '",shown:"' + true + '"}';
  77. }
  78. var query = new Object();
  79. // query.V_LOGINNAME = V_LOGINNAME;
  80. query.plan_name = plan_name;
  81. query.person_liable_id = person_liable_id;
  82. query.EXPORT_FILE = '巡检计划列表';
  83. query.fields = '[' + fields + ']';
  84. $.ajax({
  85. type: 'POST',
  86. url: baseUrl + "iot/excel/view/XjPlanMasterExcel1",
  87. data: {
  88. queryJson: Ext.JSON.encode(query)
  89. },
  90. success: function (result) {
  91. var json = eval('(' + result + ')');
  92. if (json.action == 'dormExport') {
  93. ConfirmStore = json.RESULT;
  94. var elemIF = document.createElement("iframe");
  95. elemIF.src = baseUrl + json.filename;
  96. elemIF.style.display = "none";
  97. document.body.appendChild(elemIF);
  98. }
  99. }
  100. });
  101. }
  102. var body_resize = function () {
  103. maxHeight = document.documentElement.clientHeight;
  104. maxWidth = document.documentElement.clientWidth;
  105. Ext.getCmp('PatrolPlanPiebar').setHeight(maxHeight);
  106. Ext.getCmp('PatrolPlanPiebar').setWidth(maxWidth);
  107. }
  108. Ext.onReady(function () {
  109. var baseUrl = document.getElementById('basePath').value;
  110. var theme = document.getElementById('theme').value;
  111. company_code = document.getElementById('company_code').value;
  112. $("#V_LOGINNAME").val(sessionStorage.getItem('V_LOGINNAME'));
  113. $("#V_PASSWORD").val(sessionStorage.getItem('V_PASSWORD'));
  114. var V_LOGINNAME = $("#V_LOGINNAME").val();
  115. var V_PASSWORD = $("#V_PASSWORD").val();
  116. var chkIcon = '<img src="' + baseUrl + 'res/img/common/check.gif"/>'
  117. var unchkIcon = '<img src="' + baseUrl + 'res/img/common/uncheck.gif"/>'
  118. var countPerPage = 15;
  119. var maxHeight = 10000;
  120. var chkBoolean = function (flag) {
  121. if (flag)
  122. return chkIcon;
  123. return unchkIcon;
  124. }
  125. var states1 = Ext.create('Ext.data.Store', {
  126. fields: ['status', 'name'],
  127. data: [
  128. // {"status":-1, "name":"全选"},
  129. { "status": "待开通", "name": "待开通" },
  130. { "status": "已开通", "name": "已开通" },
  131. { "status": "已锁定", "name": "已锁定" },
  132. { "status": "注销", "name": "注销" },
  133. ]
  134. });
  135. var deselect_fun = function (record) {
  136. var index = AllSelectedRecords.indexOf(record.get("id"));
  137. if (index > -1) {
  138. AllSelectedRecords.splice(index, 1);
  139. return AllSelectedRecords;
  140. }
  141. }
  142. sm1 = Ext.create('Ext.selection.CheckboxModel', {
  143. mode: "MULTI",
  144. listeners: {
  145. deselect: function (me, record, index, opts) {
  146. if (initflag) {
  147. // alert("初始化");
  148. } else {
  149. deselect_fun(record);
  150. }
  151. },
  152. select: function (me, record, index, opts) {
  153. var index = AllSelectedRecords.indexOf(record.get("id"));
  154. if (index > -1) {
  155. return AllSelectedRecords;
  156. } else {
  157. AllSelectedRecords.push(record.get("id"));
  158. return AllSelectedRecords;
  159. }
  160. }
  161. }
  162. });
  163. var clear_append_form = function () {
  164. public_emptyInput();
  165. AllSelectedRecords = [];
  166. Ext.getCmp('PatrolPlanListPageToolbar').getStore().reload();
  167. }
  168. var queryJson = new Object();
  169. queryJson.V_LOGINNAME = V_LOGINNAME;
  170. // queryJson.V_PASSWORD = V_PASSWORD;
  171. queryJson.COMMSTATUS = 'NO';
  172. if ((company_code != null) && (company_code != 'null') && (company_code.length > 0))
  173. queryJson.company_code = company_code;
  174. var myStore = Ext.create('Ext.data.Store', {
  175. model: 'MaintenancePlan',
  176. pageSize: countPerPage,
  177. proxy: {
  178. type: 'ajax',
  179. url: baseUrl + 'iot/planmaster/getList1',
  180. reader: {
  181. type: 'json',
  182. root: 'RESULT',
  183. totalProperty: 'totalCount'
  184. },
  185. extraParams: {
  186. queryJson: Ext.JSON.encode(queryJson)
  187. }
  188. },
  189. remoteSort: true
  190. });
  191. var myStore1 = Ext.create('Ext.data.Store', {
  192. model: 'MaintenancePlan1',
  193. pageSize: 5,
  194. listeners: {
  195. beforeload: function (me, store, operation, eOpts) {
  196. // Ext.apply(myStore1.proxy.extraParams, me.getQueryParameters());
  197. // sm1.removeListener('deselect',deselect_fun);
  198. initflag = true;
  199. },
  200. load: function (me, records, success, opts) {
  201. if (!success || !records || records.length == 0)
  202. return;
  203. //根据全局的选择,初始化选中的列
  204. var selModel = Ext.getCmp('PatrolPlanListPanel1').getSelectionModel();
  205. Ext.Array.forEach(AllSelectedRecords, function (item) {
  206. for (var i = 0; i < records.length; i++) {
  207. var record = records[i];
  208. if (record.get("id") == item && record.get('pd') != 1) {
  209. // alert(record.get("id")+" - "+this.get("id")+"("+this.data.id+")");
  210. selModel.select(record, true, true); //选中record,并且保持现有的选择,不触发选中事件
  211. }
  212. }
  213. });
  214. // sm1.addListener('deselect',deselect_fun);
  215. initflag = false;
  216. }
  217. },
  218. proxy: {
  219. type: 'ajax',
  220. url: baseUrl + 'iot/inspectionpoints/getList1',
  221. reader: {
  222. type: 'json',
  223. root: 'RESULT',
  224. totalProperty: 'totalCount'
  225. },
  226. extraParams: {
  227. queryJson: Ext.JSON.encode(queryJson)
  228. }
  229. },
  230. remoteSort: true
  231. });
  232. myStore1.on('load', function (myStore1, record) {
  233. for (var i = 0; i < record.length; i++) {
  234. var records = record[i];
  235. if (records.get('pd') == 1) {
  236. Ext.getCmp('PatrolPlanListPanel1').getSelectionModel().select(records, true);
  237. }
  238. };
  239. });
  240. Ext.define('CompanyComboStore', {
  241. extend: 'Ext.data.Model',
  242. fields: [
  243. { name: 'building_name', type: 'string' },
  244. { name: 'building_id', type: 'string' }
  245. ]
  246. });
  247. Ext.define('teamStore', {
  248. extend: 'Ext.data.Model',
  249. fields: [
  250. { name: 'team_name', type: 'string' },
  251. { name: 'id', type: 'string' }
  252. ]
  253. });
  254. var CompanyStory = Ext.create('Ext.data.Store', {
  255. model: 'CompanyComboStore',
  256. proxy: {
  257. type: 'ajax',
  258. actionMethods: {
  259. create: 'POST',
  260. read: 'POST', // by default GET
  261. update: 'POST',
  262. destroy: 'POST'
  263. },
  264. url: baseUrl + 'iot/company/view/getBuildingNameList',
  265. reader: {
  266. type: 'json',
  267. root: 'RESULT',
  268. totalProperty: 'totalCount'
  269. },
  270. extraParams: {
  271. queryJson: Ext.JSON.encode(queryJson)
  272. }
  273. }
  274. });
  275. var teamStory = Ext.create('Ext.data.Store', {
  276. model: 'teamStore',
  277. proxy: {
  278. type: 'ajax',
  279. actionMethods: {
  280. create: 'POST',
  281. read: 'POST', // by default GET
  282. update: 'POST',
  283. destroy: 'POST'
  284. },
  285. url: baseUrl + 'iot/planteam/getList1',
  286. reader: {
  287. type: 'json',
  288. root: 'RESULT',
  289. totalProperty: 'totalCount'
  290. },
  291. extraParams: {
  292. queryJson: Ext.JSON.encode(queryJson)
  293. }
  294. }
  295. });
  296. var data = Ext.Date.format(new Date(), 'm/d/Y');
  297. var AppendForm = Ext.create('Ext.form.Panel', {
  298. id: 'PatrolPlanAppendForm',
  299. labelWidth: 55,
  300. url: baseUrl + 'iot/planmaster/append1',
  301. bodyPadding: 15,
  302. frame: true,
  303. labelAlign: 'left',
  304. region: 'north',
  305. enableDrop: true,
  306. ddGroup: 'treeID',
  307. height: 200,
  308. items: [{
  309. autoHeight: true,
  310. layout: 'column',
  311. border: false,
  312. items: [{
  313. columnWidth: .50,
  314. xtype: 'fieldset',
  315. layout: 'form',
  316. // defaults: {anchor: '95%'},
  317. style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
  318. items: [
  319. {
  320. xtype: 'textfield',
  321. fieldLabel: '任务名称',
  322. id: 'fa_patrolplan_name',
  323. name: 'plan_name',
  324. editable: false,
  325. width: 283,
  326. listeners: {
  327. change: function (o, e) {
  328. if (e.length >= 20) {
  329. return Ext.getCmp('fa_patrolplan_name').setValue(e.substring(0, 20));
  330. }
  331. }
  332. }
  333. // store:InspectorsStory
  334. }, {
  335. xtype: 'combo',
  336. fieldLabel: '建筑/项目',
  337. id: 'fa_patrol_company_code',
  338. name: 'company_code',
  339. displayField: 'building_name',
  340. valueField: 'building_id',
  341. editable: false,
  342. width: 283,
  343. store: CompanyStory,
  344. listeners: {
  345. select: function (combo, record, index) {
  346. try {
  347. var label = this.value;
  348. var query = new Object();
  349. query.company_code = label;
  350. query.V_LOGINNAME = V_LOGINNAME;
  351. // query.V_PASSWORD = V_PASSWORD;
  352. var jsonstr = Ext.JSON.encode(query);
  353. myStore1.getProxy().extraParams = {
  354. queryJson: jsonstr
  355. };
  356. Ext.getCmp('PatrolPlanListPageToolbar1').moveFirst();
  357. }
  358. catch (ex) {
  359. Ext.MessageBox.alert("错误", "数据加载失败。");
  360. }
  361. }
  362. }
  363. }, {
  364. xtype: 'timefield',
  365. fieldLabel: '巡检开始时间',
  366. id: 'fa_patrol_start_time',
  367. name: "start_time",
  368. minValue: '00:00',
  369. maxValue: '24:00',
  370. editable: false,//只读约束
  371. minText: '时间要大于{0}',
  372. maxText: '时间要小于{0}',
  373. format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
  374. increment: 30,//跨度,默认是15分钟
  375. invalidText: '时间格式错误',
  376. anchor: '40%'
  377. }, {
  378. xtype: 'timefield',
  379. fieldLabel: '巡检结束时间',
  380. id: 'fa_patrol_end_time',
  381. name: "end_time",
  382. minValue: '00:00',
  383. maxValue: '24:00',
  384. editable: false,//只读约束
  385. minText: '时间要大于{0}',
  386. maxText: '时间要小于{0}',
  387. format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
  388. increment: 30,//跨度,默认是15分钟
  389. invalidText: '时间格式错误',
  390. anchor: '80%'
  391. }, {
  392. xtype: 'combo',
  393. fieldLabel: '执行团队',
  394. id: 'fa_patrol_team_id',
  395. name: 'team_id',
  396. displayField: 'team_name',
  397. valueField: 'id',
  398. editable: false,
  399. width: 100,
  400. store: teamStory
  401. }
  402. ]
  403. }, {
  404. columnWidth: .50,
  405. xtype: 'fieldset',
  406. layout: 'form',
  407. // defaults: {anchor: '95%'},
  408. style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
  409. items: [
  410. {
  411. xtype: 'checkboxgroup',
  412. fieldLabel: '周期',
  413. id: "fa_patrol_cycle",
  414. listeners: {
  415. change: function (gp, nv, ov, eOpts) {
  416. var i = 0;
  417. if (nv.all && !ov.all) {
  418. // return gp.eachBox(function(box,idx){
  419. // box.setRawValue(true);
  420. // });
  421. Ext.getCmp('fa_all_checkbox').setValue(true);
  422. Ext.getCmp('fa_monday_checkbox').setValue(true);
  423. Ext.getCmp('fa_tuesday_checkbox').setValue(true);
  424. Ext.getCmp('fa_wednesday_checkbox').setValue(true);
  425. Ext.getCmp('fa_thursday_checkbox').setValue(true);
  426. Ext.getCmp('fa_friday_checkbox').setValue(true);
  427. Ext.getCmp('fa_saturday_checkbox').setValue(true);
  428. Ext.getCmp('fa_sunday_checkbox').setValue(true);
  429. return true;
  430. }
  431. if (ov.all && !nv.all && nv.monday && nv.tuesday && nv.wednesday && nv.thursday && nv.friday && nv.saturday && nv.sunday) {
  432. // return gp.eachBox(function(box,idx){
  433. // box.setRawValue(false);
  434. // });
  435. Ext.getCmp('fa_all_checkbox').setValue(false);
  436. Ext.getCmp('fa_monday_checkbox').setValue(false);
  437. Ext.getCmp('fa_tuesday_checkbox').setValue(false);
  438. Ext.getCmp('fa_wednesday_checkbox').setValue(false);
  439. Ext.getCmp('fa_thursday_checkbox').setValue(false);
  440. Ext.getCmp('fa_friday_checkbox').setValue(false);
  441. Ext.getCmp('fa_saturday_checkbox').setValue(false);
  442. Ext.getCmp('fa_sunday_checkbox').setValue(false);
  443. return true;
  444. }
  445. if (nv.monday && nv.tuesday && nv.wednesday && nv.thursday && nv.friday && nv.saturday && nv.sunday) {
  446. Ext.getCmp('fa_all_checkbox').setValue(true);
  447. return true;
  448. } else {
  449. Ext.getCmp('fa_all_checkbox').setValue(false);
  450. return true;
  451. }
  452. }
  453. },
  454. columns: 3,
  455. items: [
  456. { boxLabel: '全选', name: 'all', inputValue: "0", id: "fa_all_checkbox" },
  457. { boxLabel: '周一', name: 'monday', inputValue: "1", id: "fa_monday_checkbox" },
  458. { boxLabel: '周二', name: 'tuesday', inputValue: "2", id: "fa_tuesday_checkbox" },
  459. { boxLabel: '周三', name: 'wednesday', inputValue: "3", id: "fa_wednesday_checkbox" },
  460. { boxLabel: '周四', name: 'thursday', inputValue: "4", id: "fa_thursday_checkbox" },
  461. { boxLabel: '周五', name: 'friday', inputValue: "5", id: "fa_friday_checkbox" },
  462. { boxLabel: '周六', name: 'saturday', inputValue: "6", id: "fa_saturday_checkbox" },
  463. { boxLabel: '周日', name: 'sunday', inputValue: "7", id: "fa_sunday_checkbox" }
  464. ]
  465. }, {
  466. xtype: 'datefield',
  467. fieldLabel: "执行开始日期",
  468. minValue: data,
  469. minText: "当前日期选择应大于当天日期",
  470. format: "Y-m-d",
  471. id: 'fa_patrol_start_date',
  472. name: "start_date",
  473. editable: false,//只读约束
  474. anchor: '80%'
  475. }, {
  476. xtype: 'datefield',
  477. fieldLabel: "执行结束日期",
  478. minValue: data,
  479. // '07/07/2017',
  480. minText: "当前日期选择应大于当天日期",
  481. format: "Y-m-d",
  482. id: 'fa_patrol_end_date',
  483. name: "end_date",
  484. editable: false,//只读约束
  485. anchor: '80%'
  486. }, {
  487. id: 'fa_patrol_queryJson',
  488. name: 'queryJson',
  489. hidden: true
  490. }
  491. ]
  492. }
  493. ]
  494. }]
  495. });
  496. function updatetijiao() {
  497. var query = new Object();
  498. var spot_id = null;
  499. var InspectiontimeValue = Ext.getCmp('fm_patrol_cycle').getChecked();
  500. var fa_cycle = '';
  501. Ext.Array.each(InspectiontimeValue, function (item) {
  502. fa_cycle += item.inputValue + ',';
  503. });
  504. var V_LOGINNAME = $("#V_LOGINNAME").val();
  505. var V_PASSWORD = $("#V_PASSWORD").val();
  506. var start_time = Ext.getCmp('fm_patrol_start_time').getValue();
  507. if (start_time == '' || start_time == null) {
  508. Ext.Msg.alert('提示', '请选择巡检开始时间!', function (btn, txt) {
  509. })
  510. return;
  511. } else {
  512. var start_time1 = ((start_time.getHours() < 10) ? ('0' + start_time.getHours()) : start_time.getHours()) + ':' + ((start_time.getMinutes() < 10) ? ('0' + start_time.getMinutes()) : start_time.getMinutes());
  513. }
  514. var end_time = Ext.getCmp('fm_patrol_end_time').getValue();
  515. if (end_time == '' || end_time == null) {
  516. Ext.Msg.alert('提示', '请选择巡检结束时间!', function (btn, txt) {
  517. })
  518. return;
  519. } else {
  520. var end_time1 = ((end_time.getHours() < 10) ? ('0' + end_time.getHours()) : end_time.getHours()) + ':' + ((end_time.getMinutes() < 10) ? ('0' + end_time.getMinutes()) : end_time.getMinutes());
  521. }
  522. query.team_id = Ext.getCmp('fm_patrol_team_id').getValue();
  523. if (query.team_id == '' || query.team_id == null) {
  524. Ext.Msg.alert('提示', '请选择执行团队!', function (btn, txt) {
  525. })
  526. return;
  527. }
  528. // Ext.MessageBox.alert('提示', '您的兴趣是' + V_LOGINNAME);
  529. // var selected = sm1.getSelection( );
  530. // query.spot_id = selected[0].raw.id;
  531. // var selected = sm1.getSelection( );
  532. // alert(sm1.getCount());
  533. if (AllSelectedRecords.length == 1) {
  534. query.spot_id = AllSelectedRecords[0];
  535. } else {
  536. if (AllSelectedRecords.length > 1) {
  537. for (var i = 0; i < AllSelectedRecords.length; i++) {
  538. if (i == 0)
  539. spot_id = AllSelectedRecords[i];
  540. else
  541. spot_id += "," + AllSelectedRecords[i];
  542. }
  543. query.spot_id = spot_id;
  544. } else {
  545. Ext.Msg.alert('请先选择', '至少选择一条巡检点位,再点击提交');
  546. return;
  547. }
  548. }
  549. query.company_code = Ext.getCmp('fm_patrol_company_code').getValue();//建筑/项目
  550. query.cycle = fa_cycle;
  551. query.start_inspect_time = start_time1;
  552. query.end_inspect_time = end_time1;
  553. query.start_date = Ext.util.Format.date(Ext.getCmp('fm_patrol_start_date').getValue(), 'Y-m-d');
  554. if (query.start_date == '') {
  555. Ext.Msg.alert('提示', '请选择执行开始日期!', function (btn, txt) {
  556. })
  557. return;
  558. }
  559. query.end_date = Ext.util.Format.date(Ext.getCmp('fm_patrol_end_date').getValue(), 'Y-m-d');
  560. if (query.end_date == '') {
  561. Ext.Msg.alert('提示', '请选择执行结束日期!', function (btn, txt) {
  562. })
  563. return;
  564. }
  565. // query.ID_LIST = list;
  566. // query.V_LOGINNAME = V_LOGINNAME;
  567. var jsonstr = Ext.JSON.encode(query);
  568. Ext.Ajax.request({
  569. timeout: 1000,
  570. url: baseUrl + 'iot/planmaster/append1',
  571. params: 'queryJson=' + jsonstr,
  572. success: function (resp, opts) {
  573. Ext.Msg.alert('操作成功', '计划已添加', function (btn, txt) {
  574. // myStore.reload();
  575. clear_append_form();
  576. });
  577. }
  578. });
  579. }
  580. function addtijiao() {
  581. var query = new Object();
  582. var spot_id = null;
  583. var InspectiontimeValue = Ext.getCmp('fa_patrol_cycle').getChecked();
  584. var fa_cycle = '';
  585. Ext.Array.each(InspectiontimeValue, function (item) {
  586. fa_cycle += item.inputValue + ',';
  587. });
  588. var V_LOGINNAME = $("#V_LOGINNAME").val();
  589. var V_PASSWORD = $("#V_PASSWORD").val();
  590. var plan_name = Ext.getCmp('fa_patrolplan_name').getValue();
  591. if (plan_name == '' || plan_name == null) {
  592. Ext.Msg.alert('提示', '任务名称不能为空!', function (btn, txt) {
  593. })
  594. return;
  595. }
  596. var start_time = Ext.getCmp('fa_patrol_start_time').getValue();
  597. if (start_time == '' || start_time == null) {
  598. Ext.Msg.alert('提示', '请选择巡检开始时间!', function (btn, txt) {
  599. })
  600. return;
  601. } else {
  602. var start_time1 = ((start_time.getHours() < 10) ? ('0' + start_time.getHours()) : start_time.getHours()) + ':' + ((start_time.getMinutes() < 10) ? ('0' + start_time.getMinutes()) : start_time.getMinutes());
  603. }
  604. // var start_time = Ext.getCmp('fa_patrol_start_time').getValue();
  605. // if (start_time == '' || start_time == null) {
  606. // Ext.Msg.alert('提示', '请选择巡检开始时间!', function (btn, txt) {
  607. // })
  608. // return;
  609. // } else {
  610. // var start_time1 = ((start_time.getHours() < 10) ? ('0' + start_time.getHours()) : start_time.getHours()) + ':' + ((start_time.getMinutes() < 10) ? ('0' + start_time.getMinutes()) : start_time.getMinutes());
  611. // }
  612. var end_time = Ext.getCmp('fa_patrol_end_time').getValue();
  613. if (end_time == '' || end_time == null) {
  614. Ext.Msg.alert('提示', '请选择巡检结束时间!', function (btn, txt) {
  615. })
  616. return;
  617. } else {
  618. var end_time1 = ((end_time.getHours() < 10) ? ('0' + end_time.getHours()) : end_time.getHours()) + ':' + ((end_time.getMinutes() < 10) ? ('0' + end_time.getMinutes()) : end_time.getMinutes());
  619. }
  620. query.team_id = Ext.getCmp('fa_patrol_team_id').getValue();
  621. if (query.team_id == '' || query.team_id == null) {
  622. Ext.Msg.alert('提示', '请选择执行团队!', function (btn, txt) {
  623. })
  624. return;
  625. }
  626. // Ext.MessageBox.alert('提示', '您的兴趣是' + V_LOGINNAME);
  627. // var selected = sm1.getSelection( );
  628. // query.spot_id = selected[0].raw.id;
  629. // var selected = sm1.getSelection( );
  630. // alert(sm1.getCount());
  631. if (AllSelectedRecords.length == 1) {
  632. query.spot_id = AllSelectedRecords[0];
  633. } else {
  634. if (AllSelectedRecords.length > 1) {
  635. for (var i = 0; i < AllSelectedRecords.length; i++) {
  636. if (i == 0)
  637. spot_id = AllSelectedRecords[i];
  638. else
  639. spot_id += "," + AllSelectedRecords[i];
  640. }
  641. query.spot_id = spot_id;
  642. } else {
  643. Ext.Msg.alert('请先选择', '至少选择一条巡检点位,再点击提交');
  644. return;
  645. }
  646. }
  647. query.company_code = Ext.getCmp('fa_patrol_company_code').getValue();//建筑/项目
  648. query.cycle = fa_cycle;
  649. query.plan_name=plan_name;
  650. query.start_inspect_time = start_time1;
  651. query.end_inspect_time = end_time1;
  652. query.start_date = Ext.util.Format.date(Ext.getCmp('fa_patrol_start_date').getValue(), 'Y-m-d');
  653. if (query.start_date == '') {
  654. Ext.Msg.alert('提示', '请选择执行开始日期!', function (btn, txt) {
  655. })
  656. return;
  657. }
  658. query.end_date = Ext.util.Format.date(Ext.getCmp('fa_patrol_end_date').getValue(), 'Y-m-d');
  659. if (query.end_date == '') {
  660. Ext.Msg.alert('提示', '请选择执行结束日期!', function (btn, txt) {
  661. })
  662. return;
  663. }
  664. // query.ID_LIST = list;
  665. // query.V_LOGINNAME = V_LOGINNAME;
  666. var jsonstr = Ext.JSON.encode(query);
  667. Ext.Ajax.request({
  668. timeout: 1000,
  669. url: baseUrl + 'iot/planmaster/append1',
  670. params: 'queryJson=' + jsonstr,
  671. success: function (resp, opts) {
  672. Ext.Msg.alert('操作成功', '计划已添加', function (btn, txt) {
  673. // myStore.reload();
  674. clear_append_form();
  675. });
  676. }
  677. });
  678. }
  679. var appendwin = function () {
  680. AllSelectedRecords.length = 0;
  681. var query = new Object();
  682. query.V_LOGINNAME = V_LOGINNAME;
  683. // query.V_PASSWORD=V_PASSWORD;
  684. var jsonstr = Ext.JSON.encode(query);
  685. myStore1.getProxy().extraParams = {
  686. queryJson: jsonstr
  687. };
  688. Ext.getCmp('PatrolPlanListPageToolbar1').moveFirst();
  689. Ext.create('Ext.window.Window', {
  690. title: '新增巡检计划',
  691. height: 600,
  692. width: 800,
  693. modal: true,
  694. layout: 'border',
  695. items: [AppendForm, PatrolPlanTab],
  696. closeAction: 'hide',
  697. buttons: [{
  698. text: '提交',
  699. iconCls: 'ok_btn',
  700. handler: function () {
  701. addtijiao();
  702. }
  703. }, {
  704. text: '关闭',
  705. iconCls: 'cancel_btn',
  706. handler: function () {
  707. this.up('window').hide();
  708. public_emptyInput();
  709. }
  710. }]
  711. }).show();
  712. Ext.getCmp('fa_all_checkbox').setValue(true);
  713. Ext.getCmp('fa_monday_checkbox').setValue(true);
  714. Ext.getCmp('fa_tuesday_checkbox').setValue(true);
  715. Ext.getCmp('fa_wednesday_checkbox').setValue(true);
  716. Ext.getCmp('fa_thursday_checkbox').setValue(true);
  717. Ext.getCmp('fa_friday_checkbox').setValue(true);
  718. Ext.getCmp('fa_saturday_checkbox').setValue(true);
  719. Ext.getCmp('fa_sunday_checkbox').setValue(true);
  720. }
  721. var del_sm = function () {
  722. if (sm.getCount() == 1) {
  723. var selected = sm.getSelection();
  724. var query = new Object();
  725. var list = new Array();
  726. var o = new Object();
  727. o.id = selected[0].raw.id;
  728. list.push(o);
  729. query.ID_LIST = list;
  730. var jsonstr = Ext.JSON.encode(query);
  731. Ext.MessageBox.confirm('删除任务信息', '是否删除' + selected[0].raw.name + ' 巡检任务?', function (btn) {
  732. public_delete(btn, jsonstr);
  733. }, this);
  734. } else {
  735. if (sm.getCount() > 1) {
  736. var query = new Object();
  737. var list = new Array();
  738. for (var i = 0; i < sm.getCount(); i++) {
  739. var selected = sm.getSelection();
  740. var o = new Object();
  741. o.id = selected[i].raw.id;
  742. list.push(o);
  743. }
  744. query.ID_LIST = list;
  745. var jsonstr = Ext.JSON.encode(query);
  746. Ext.MessageBox.confirm('删除任务信息', '是否删除选中的' + sm.getCount() + ' 个巡检任务?', function (btn) {
  747. public_delete(btn, jsonstr);
  748. }, this);
  749. } else {
  750. Ext.Msg.alert('请先选择', '至少选择一条记录,再点击删除');
  751. }
  752. }
  753. }
  754. function public_delete(btn, jsonstr) {
  755. if (btn == 'yes') {
  756. $.ajax({
  757. type: 'POST',
  758. url: baseUrl + "iot/planmaster/del",
  759. data: {
  760. queryJson: jsonstr
  761. },
  762. success: function (result) {
  763. var json = eval('(' + result + ')');
  764. if (json.action == 'deletePlanMaster') {
  765. if (json.success == true) {
  766. Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
  767. Ext.getCmp('PatrolPlanListPanel').getStore().reload();
  768. });
  769. } else {
  770. Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
  771. Ext.getCmp('PatrolPlanListPanel').getStore().reload();
  772. });
  773. }
  774. }
  775. }
  776. });
  777. }
  778. }
  779. var clear_modify_form = function () {
  780. Ext.getCmp('fm_patrol_id').setValue("");
  781. Ext.getCmp('fm_patrol_plan_name').setValue("");
  782. Ext.getCmp('fm_patrol_team_id').setValue("");
  783. // Ext.getCmp('fm_cycle').setValue("");
  784. Ext.getCmp('fm_patrol_start_date').setValue("");
  785. Ext.getCmp('fm_patrol_end_date').setValue("");
  786. Ext.getCmp('fm_patrol_start_time').setValue("");
  787. Ext.getCmp('fm_patrol_end_time').setValue("");
  788. Ext.getCmp('fm_patrol_company_code').setValue("");
  789. Ext.getCmp('fm_patrol_cycle').setValue(false);
  790. AllSelectedRecords = [];
  791. // Ext.getCmp('fm_spot_id').setValue("");
  792. Ext.getCmp('PatrolPlanListPageToolbar').getStore().reload();
  793. }
  794. $('#patrolPlan_title2_input').change(function () {
  795. var text = Ext.getCmp('fm_patrol_start_date').getValue();
  796. if (text.length >= 20) {
  797. return Ext.getCmp('fa_patrolplan_name').setValue(text.substring(0, 20));
  798. }
  799. })
  800. var show_page = function () {
  801. var maintenancePlan_title2_input = document.getElementById('patrolPlan_title2_input').value;
  802. var maintenancePlan_title3_input1 = document.getElementById('patrolPlan_title3_input1').value;
  803. var query = new Object();
  804. if (maintenancePlan_title2_input.length > 0) {
  805. query.plan_name = maintenancePlan_title2_input;
  806. $("#plan_name").val(maintenancePlan_title2_input);
  807. }
  808. if (maintenancePlan_title3_input1.length > 0) {
  809. query.person_liable_id = maintenancePlan_title3_input1;
  810. $("#person_liable_id").val(maintenancePlan_title3_input1);
  811. }
  812. // query.V_LOGINNAME = V_LOGINNAME;
  813. // query.V_PASSWORD = V_PASSWORD;
  814. var jsonstr = Ext.JSON.encode(query);
  815. myStore.getProxy().extraParams = {
  816. queryJson: jsonstr
  817. };
  818. Ext.getCmp('PatrolPlanListPageToolbar').moveFirst();
  819. }
  820. var reset1 = function () {
  821. document.getElementById('patrolPlan_title2_input').value = '';
  822. document.getElementById('patrolPlan_title3_input1').value = '0';
  823. $("#plan_name").val('');
  824. $("#person_liable_id").val('');
  825. show_page();
  826. }
  827. mouseon = function (obj) {
  828. var id = obj.id;
  829. $("#" + id).removeClass(id);
  830. $("#" + id).addClass(id + '_on');
  831. }
  832. mouseoff = function (obj) {
  833. var mid = "patrolPlan_";
  834. for (var i = 1; i < 7; i++) {
  835. var id = "patrolPlan_title" + i + "_div";
  836. $("#" + id).removeClass(id + '_on');
  837. $("#" + id).addClass(id);
  838. }
  839. if (menuidx == 'm1') {
  840. mid += 'title1_div';
  841. $("#" + mid).removeClass(mid);
  842. $("#" + mid).addClass(mid + '_on');
  843. }
  844. else if (menuidx == 'm2') {
  845. mid += 'title2_div';
  846. $("#" + mid).removeClass(mid);
  847. $("#" + mid).addClass(mid + '_on');
  848. }
  849. else if (menuidx == 'm3') {
  850. mid += 'title3_div';
  851. $("#" + mid).removeClass(mid);
  852. $("#" + mid).addClass(mid + '_on');
  853. }
  854. else if (menuidx == 'm4') {
  855. mid += 'title4_div';
  856. $("#" + mid).removeClass(mid);
  857. $("#" + mid).addClass(mid + '_on');
  858. }
  859. else if (menuidx == 'm5') {
  860. mid += 'title5_div';
  861. $("#" + mid).removeClass(mid);
  862. $("#" + mid).addClass(mid + '_on');
  863. }
  864. else if (menuidx == 'm6') {
  865. mid += 'title6_div';
  866. $("#" + mid).removeClass(mid);
  867. $("#" + mid).addClass(mid + '_on');
  868. }
  869. }
  870. menu_click = function (obj) {
  871. var id = obj.id;
  872. if (id == 'patrolPlan_title1_div') {
  873. menuidx = 'm1';
  874. show_page();
  875. }
  876. else if (id == 'patrolPlan_title2_div') {
  877. menuidx = 'm2';
  878. reset1();
  879. }
  880. else if (id == 'patrolPlan_title3_div') {
  881. menuidx = 'm3';
  882. exportbtn_click();
  883. }
  884. else if (id == 'patrolPlan_title4_div') {
  885. menuidx = 'm4';
  886. del_sm();
  887. }
  888. else if (id == 'patrolPlan_title5_div') {
  889. menuidx = 'm5';
  890. appendwin();
  891. }
  892. else if (id == 'patrolPlan_title6_div') {
  893. menuidx = 'm6';
  894. chk_sm();
  895. }
  896. }
  897. var piedarHtml = function () {
  898. var maintenancePlanHtml = document.getElementById('patrolPlanHtml');
  899. var divhiddle = document.createElement('div');
  900. divhiddle.id = 'div26_id_patrolPlanPanel3';
  901. divhiddle.setAttribute('class', 'SpringHandleHtml3DivHiddle');
  902. maintenancePlanHtml.appendChild(divhiddle);
  903. var title = document.createElement('div');
  904. title.setAttribute('class', 'MaintenancePersonTitle');
  905. title.innerHTML = '巡检计划';
  906. maintenancePlanHtml.appendChild(title);
  907. var title2 = document.createElement('div');
  908. title2.setAttribute('class', 'title2_div');
  909. title2.innerHTML = '任务名称';
  910. maintenancePlanHtml.appendChild(title2);
  911. var input = document.createElement('input');
  912. input.setAttribute('class', 'input_class');
  913. input.setAttribute('id', 'patrolPlan_title2_input');
  914. input.setAttribute('type', 'text');
  915. input.setAttribute('value', '');
  916. maintenancePlanHtml.appendChild(input);
  917. var title3 = document.createElement('div');
  918. title3.setAttribute('class', 'title3_div');
  919. title3.innerHTML = '责任人';
  920. maintenancePlanHtml.appendChild(title3);
  921. // var input1 = document.createElement('input');
  922. // input1.setAttribute('class','input1_class');
  923. // input1.setAttribute('id','maintenancePlan_title3_input1');
  924. // input1.setAttribute('type','text');
  925. // input1.setAttribute('value','');
  926. // maintenancePlanHtml.appendChild(input1);
  927. var select = document.createElement('select');
  928. select.setAttribute('class', 'input1_class');
  929. select.setAttribute('id', 'patrolPlan_title3_input1');
  930. maintenancePlanHtml.appendChild(select);
  931. var option2 = document.createElement('option');
  932. option2.innerHTML = '所有人';
  933. option2.setAttribute('value', '0');
  934. select.appendChild(option2);
  935. for (var i = 0; i < ConfirmStore.length; i++) {
  936. var option3 = document.createElement('option');
  937. option3.innerHTML = ConfirmStore[i].name;
  938. option3.setAttribute('value', ConfirmStore[i].person_liable_id);
  939. select.appendChild(option3);
  940. }
  941. for (let i = 1; i <= 6; i++) {
  942. var title = document.createElement('div');
  943. title.setAttribute('class', `patrolPlan_title${i}_div`);
  944. title.setAttribute('id', `patrolPlan_title${i}_div`);
  945. title.setAttribute('onmouseover', "mouseon(this)");
  946. title.setAttribute('onmouseout', "mouseoff(this)");
  947. title.setAttribute('onclick', "menu_click(this)");
  948. maintenancePlanHtml.appendChild(title);
  949. }
  950. }
  951. var piedarHtml_fun = function () {
  952. var query = new Object();
  953. query.V_LOGINNAME = $("#V_LOGINNAME").val();
  954. $.ajax({
  955. type: 'POST',
  956. url: baseUrl + "iot/planteam/getzrrList1",
  957. data: {
  958. queryJson: Ext.JSON.encode(query)
  959. },
  960. success: function (result) {
  961. var json = eval('(' + result + ')');
  962. if (json.action == 'getPlanTeamList') {
  963. ConfirmStore = json.RESULT;
  964. if (document.getElementById('div26_id_patrolPlanPanel3') == undefined)
  965. piedarHtml();
  966. }
  967. }
  968. });
  969. }
  970. var ModifyForm = Ext.create('Ext.form.Panel', {
  971. id: 'PatrolPlanEditForm',
  972. labelWidth: 55,
  973. url: baseUrl + 'iot/planmaster/update',
  974. bodyPadding: 15,
  975. frame: true,
  976. labelAlign: 'left',
  977. region: 'north',
  978. enableDrop: true,
  979. ddGroup: 'treeID',
  980. height: 200,
  981. items: [{
  982. autoHeight: true,
  983. layout: 'column',
  984. border: false,
  985. items: [{
  986. columnWidth: .50,
  987. xtype: 'fieldset',
  988. layout: 'form',
  989. // defaults: {anchor: '95%'},
  990. style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
  991. items: [
  992. {
  993. xtype: 'textfield',
  994. fieldLabel: '任务名称',
  995. id: 'fm_patrol_plan_name',
  996. name: 'plan_name',
  997. editable: false,
  998. width: 230,
  999. readOnly: 'true'
  1000. }, {
  1001. xtype: 'combo',
  1002. fieldLabel: '建筑/项目',
  1003. id: 'fm_patrol_company_code',
  1004. name: 'company_code',
  1005. displayField: 'building_name',
  1006. valueField: 'building_id',
  1007. editable: false,
  1008. width: 283,
  1009. store: CompanyStory,
  1010. readOnly: 'true'
  1011. }, {
  1012. xtype: 'timefield',
  1013. fieldLabel: '巡检开始时间',
  1014. id: 'fm_patrol_start_time',
  1015. name: "start_time",
  1016. minValue: '00:00',
  1017. maxValue: '24:00',
  1018. minText: '时间要大于{0}',
  1019. maxText: '时间要小于{0}',
  1020. editable: false,
  1021. format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
  1022. increment: 30,//跨度,默认是15分钟
  1023. invalidText: '时间格式错误',
  1024. anchor: '40%'
  1025. }, {
  1026. xtype: 'timefield',
  1027. fieldLabel: '巡检结束时间',
  1028. id: 'fm_patrol_end_time',
  1029. name: "end_time",
  1030. minValue: '00:00',
  1031. maxValue: '24:00',
  1032. minText: '时间要大于{0}',
  1033. maxText: '时间要小于{0}',
  1034. editable: false,
  1035. format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
  1036. increment: 30,//跨度,默认是15分钟
  1037. invalidText: '时间格式错误',
  1038. anchor: '80%'
  1039. }, {
  1040. xtype: 'combo',
  1041. fieldLabel: '执行团队',
  1042. id: 'fm_patrol_team_id',
  1043. name: 'team_id',
  1044. displayField: 'team_name',
  1045. valueField: 'id',
  1046. editable: false,
  1047. width: 100,
  1048. store: teamStory
  1049. }
  1050. ]
  1051. }, {
  1052. columnWidth: .50,
  1053. xtype: 'fieldset',
  1054. layout: 'form',
  1055. // defaults: {anchor: '95%'},
  1056. style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
  1057. items: [
  1058. {
  1059. xtype: 'checkboxgroup',
  1060. fieldLabel: '周期',
  1061. id: "fm_patrol_cycle",
  1062. columns: 3,
  1063. items: [
  1064. { boxLabel: '周一', name: 'monday', inputValue: "1", id: "fm_monday" },
  1065. { boxLabel: '周二', name: 'tuesday', inputValue: "2", id: "fm_tuesday" },
  1066. { boxLabel: '周三', name: 'wednesday', inputValue: "3", id: "fm_wednesday" },
  1067. { boxLabel: '周四', name: 'thursday', inputValue: "4", id: "fm_thursday" },
  1068. { boxLabel: '周五', name: 'friday', inputValue: "5", id: "fm_friday" },
  1069. { boxLabel: '周六', name: 'saturday', inputValue: "6", id: "fm_saturday" },
  1070. { boxLabel: '周日', name: 'sunday', inputValue: "7", id: "fm_sunday" }
  1071. ]
  1072. }, {
  1073. xtype: 'datefield',
  1074. fieldLabel: "执行开始日期",
  1075. minValue: '07/07/2017',
  1076. minText: "当前日期选择应大于2017-07-07",
  1077. format: "Y-m-d",
  1078. columnWidth: 0.5,
  1079. id: 'fm_patrol_start_date',
  1080. name: "start_data",
  1081. editable: false,//只读约束
  1082. anchor: '80%',
  1083. readOnly: 'true'
  1084. }, {
  1085. xtype: 'datefield',
  1086. fieldLabel: "执行结束日期",
  1087. minValue: '07/07/2017',
  1088. minText: "当前日期选择应大于之前日期",
  1089. format: "Y-m-d",
  1090. columnWidth: 0.5,
  1091. id: 'fm_patrol_end_date',
  1092. name: "end_date",
  1093. editable: false,//只读约束
  1094. anchor: '80%'
  1095. }, {
  1096. xtype: 'textfield',
  1097. id: 'fm_patrol_id',
  1098. name: 'id',
  1099. hidden: true
  1100. }, {
  1101. id: 'fm_patrol_queryJson',
  1102. name: 'queryJson',
  1103. hidden: true
  1104. }
  1105. ]
  1106. }
  1107. ]
  1108. }]
  1109. });
  1110. var modifywin = function () {
  1111. Ext.create('Ext.window.Window', {
  1112. title: '修改',
  1113. height: 600,
  1114. width: 800,
  1115. modal: true,
  1116. layout: 'border',
  1117. items: [ModifyForm, PatrolPlanTab],
  1118. closeAction: 'hide',
  1119. buttons: [{
  1120. text: '修改',
  1121. iconCls: 'ok_btn',
  1122. handler: function () {
  1123. updatetijiao();
  1124. }
  1125. }, {
  1126. text: '关闭',
  1127. iconCls: 'cancel_btn',
  1128. handler: function () {
  1129. this.up('window').hide();
  1130. clear_modify_form();
  1131. }
  1132. }]
  1133. }).show();
  1134. }
  1135. var chk_sm = function () {
  1136. if (sm.getCount() == 1) {
  1137. AllSelectedRecords = [];
  1138. modifywin();
  1139. teamStory.reload();
  1140. CompanyStory.reload();
  1141. var selected = sm.getSelection();
  1142. var label = selected[0].raw.id
  1143. // alert("主表ID"+label);
  1144. var query = new Object();
  1145. // if(label.length>0){
  1146. query.dwid = label;
  1147. // }
  1148. // alert("主表ID1"+query.dwid);
  1149. query.V_LOGINNAME = V_LOGINNAME;
  1150. // query.V_PASSWORD = V_PASSWORD;
  1151. var jsonstr = Ext.JSON.encode(query);
  1152. myStore1.getProxy().extraParams = {
  1153. queryJson: jsonstr
  1154. };
  1155. Ext.getCmp('PatrolPlanListPageToolbar1').moveFirst();
  1156. Ext.getCmp('fm_patrol_plan_name').setValue(selected[0].raw.plan_name);
  1157. Ext.getCmp('fm_patrol_team_id').setValue(selected[0].raw.team_id);
  1158. // Ext.getCmp('fm_cycle').setValue(selected[0].raw.cycle);
  1159. var a = selected[0].raw.cycle;
  1160. var arr = a.split(",");
  1161. for (var i = 0; i < arr.length; i++) {
  1162. switch (arr[i]) {
  1163. case "1":
  1164. Ext.getCmp('fm_monday').setValue(true);
  1165. break;
  1166. case "2":
  1167. Ext.getCmp('fm_tuesday').setValue(true);
  1168. break;
  1169. case "3":
  1170. Ext.getCmp('fm_wednesday').setValue(true);
  1171. break;
  1172. case "4":
  1173. Ext.getCmp('fm_thursday').setValue(true);
  1174. break;
  1175. case "5":
  1176. Ext.getCmp('fm_friday').setValue(true);
  1177. break;
  1178. case "6":
  1179. Ext.getCmp('fm_saturday').setValue(true);
  1180. break;
  1181. case "7":
  1182. Ext.getCmp('fm_sunday').setValue(true);
  1183. break;
  1184. }
  1185. }
  1186. Ext.getCmp('fm_patrol_start_time').setValue(selected[0].raw.start_inspect_time);
  1187. Ext.getCmp('fm_patrol_end_time').setValue(selected[0].raw.end_inspect_time);
  1188. Ext.getCmp('fm_patrol_start_date').setValue(selected[0].raw.start_date);
  1189. Ext.getCmp('fm_patrol_end_date').setValue(selected[0].raw.end_date);
  1190. Ext.getCmp('fm_patrol_end_date').setMinValue(selected[0].raw.end_date);
  1191. Ext.getCmp('fm_patrol_company_code').setValue(selected[0].raw.company_code);
  1192. var b = selected[0].raw.id;
  1193. // Ext.get('fm_id').set({ value: b });
  1194. Ext.getCmp('fm_patrol_id').setValue(b);
  1195. } else {
  1196. Ext.Msg.alert('请先选择', '请先选择一条记录,再点击修改');
  1197. }
  1198. }
  1199. var maintenancedevice = function () {
  1200. var maintenance_look_device = document.getElementById('patrolplan_look_device');
  1201. var img = document.createElement('img');
  1202. img.width = 400;
  1203. img.height = 400;
  1204. img.src = baseUrl + ConfirmStore[0].picture_route;
  1205. img.setAttribute('class', 'maintenance_look_device_img');
  1206. maintenance_look_device.appendChild(img);
  1207. var div4 = document.createElement('div');
  1208. div4.style.textAlign = 'center';
  1209. div4.innerHTML = ConfirmStore[0].remarks;
  1210. maintenance_look_device.appendChild(div4);
  1211. }
  1212. var editMaintenance = function (spot_id) {
  1213. var spot_id = spot_id;
  1214. Ext.create('Ext.window.Window', {
  1215. id: 'patrolplan_data_win1',
  1216. height: 500,
  1217. width: 400,
  1218. layout: 'fit',
  1219. modal: true,
  1220. buttons: [
  1221. {
  1222. text: '关闭',
  1223. handler: function () {
  1224. Ext.getCmp('patrolplan_data_win1').destroy();
  1225. }
  1226. }
  1227. ],
  1228. closeAction: 'destroy',
  1229. html: '<div id="patrolplan_look_device"></div>'
  1230. }).show();
  1231. var query = new Object();
  1232. query.V_LOGINNAME = $("#V_LOGINNAME").val();
  1233. // query.V_PASSWORD = $("#V_PASSWORD").val();
  1234. query.id = spot_id;
  1235. $.ajax({
  1236. type: 'POST',
  1237. url: baseUrl + "iot/inspectionpoints/getList",
  1238. data: {
  1239. queryJson: Ext.JSON.encode(query)
  1240. },
  1241. success: function (result) {
  1242. var json = eval('(' + result + ')');
  1243. if (json.action == 'getInspectionPointsList') {
  1244. ConfirmStore = json.RESULT;
  1245. maintenancedevice(ConfirmStore);
  1246. }
  1247. }
  1248. });
  1249. }
  1250. var MaintenancePlanPanel1 = Ext.create('Ext.grid.Panel', {
  1251. header: {
  1252. height: 0,
  1253. border: '0px solid #000000'
  1254. },
  1255. id: 'PatrolPlanListPanel1',
  1256. store: myStore1,
  1257. selModel: sm1,
  1258. columns: [
  1259. { header: 'ID', dataIndex: 'id', hidden: true, menuDisabled: true },
  1260. { header: '序号', dataIndex: 'xh', hidden: true, menuDisabled: true },
  1261. { header: '点位名称', dataIndex: 'spot_name', width: 260, align: 'center', menuDisabled: true },
  1262. { header: '点位地址', dataIndex: 'spot_address', width: 260, align: 'center', menuDisabled: true },
  1263. // { header: '巡检日期', dataIndex: 'planned_date', width:236,align:'center', menuDisabled:true },
  1264. {
  1265. text: '点位详情',
  1266. xtype: 'actioncolumn',
  1267. width: 236,
  1268. sortable: false,
  1269. align: 'center',
  1270. menuDisabled: true,
  1271. items: [{
  1272. icon: '../../res/img/common/tupianbtn.png',
  1273. tooltip: '点位详情',
  1274. handler: function (grid, rowIndex, colIndex) {
  1275. var rec = grid.getStore().getAt(rowIndex);
  1276. editMaintenance(rec.get("id"));
  1277. }
  1278. }]
  1279. }
  1280. ],
  1281. columnLines: true,
  1282. height: 300,
  1283. width: 780,
  1284. bbar: new Ext.PagingToolbar({
  1285. store: myStore1,
  1286. id: 'PatrolPlanListPageToolbar1',
  1287. displayInfo: true,
  1288. pageSize: 5,
  1289. prependButtons: true,
  1290. displayMsg: '显示第 {0}条到 {1}条记录,总共 {2}条',
  1291. emptyMsg: "没有记录",
  1292. firstText: '第一页',
  1293. prevText: '前一页',
  1294. nextText: '后一页',
  1295. lastText: '最后一页',
  1296. refreshText: '刷新',
  1297. }),
  1298. // frame: true,
  1299. border: false,
  1300. iconCls: 'icon-grid'
  1301. // renderTo: Ext.getBody()
  1302. });
  1303. var MaintenancePlanPanel = Ext.create('Ext.grid.Panel', {
  1304. header: {
  1305. height: 0,
  1306. border: '0px solid #000000'
  1307. },
  1308. id: 'PatrolPlanListPanel',
  1309. store: myStore,
  1310. selModel: sm,
  1311. columns: [
  1312. { header: 'ID', dataIndex: 'id', hidden: true, menuDisabled: true },
  1313. { header: '团队ID', dataIndex: 'team_id', hidden: true, menuDisabled: true },
  1314. { header: '周期值', dataIndex: 'cycle', hidden: true, menuDisabled: true },
  1315. { header: '建筑编号', dataIndex: 'company_code', hidden: true, menuDisabled: true },
  1316. { header: '开始日期', dataIndex: 'start_date', hidden: true, menuDisabled: true },
  1317. { header: '结束日期', dataIndex: 'end_date', hidden: true, menuDisabled: true },
  1318. { header: '开始时间', dataIndex: 'start_inspect_time', hidden: true, menuDisabled: true },
  1319. { header: '结束时间', dataIndex: 'end_inspect_time', hidden: true, menuDisabled: true },
  1320. { header: '序号', dataIndex: 'xh', width: 77, menuDisabled: true },
  1321. { header: '任务名称', dataIndex: 'plan_name', width: 250, align: 'center', menuDisabled: true },
  1322. { header: '周期', dataIndex: 'cycle_name', width: 300, align: 'center', menuDisabled: true },
  1323. { header: '执行日期', dataIndex: 'zxsj', width: 250, align: 'center', menuDisabled: true },
  1324. { header: '执行团队', dataIndex: 'team_name', width: 280, align: 'center', menuDisabled: true },
  1325. { header: '责任人', dataIndex: 'name', width: 280, align: 'center', menuDisabled: true },
  1326. ],
  1327. columnLines: true,
  1328. height: maxHeight,
  1329. width: '100%',
  1330. bbar: new Ext.PagingToolbar({
  1331. store: myStore,
  1332. id: 'PatrolPlanListPageToolbar',
  1333. displayInfo: true,
  1334. pageSize: countPerPage,
  1335. prependButtons: true,
  1336. displayMsg: '显示第 {0}条到 {1}条记录,总共 {2}条',
  1337. emptyMsg: "没有记录",
  1338. firstText: '第一页',
  1339. prevText: '前一页',
  1340. nextText: '后一页',
  1341. lastText: '最后一页',
  1342. refreshText: '刷新',
  1343. }),
  1344. // frame: true,
  1345. border: false,
  1346. iconCls: 'icon-grid'
  1347. // renderTo: Ext.getBody()
  1348. });
  1349. var piebar = Ext.create('Ext.panel.Panel', {
  1350. id: 'patrolPlanHtml',
  1351. width: '100%',
  1352. height: 188,
  1353. region: 'north',
  1354. layout: 'form',
  1355. defaults: {
  1356. border: false
  1357. }
  1358. // items: [childPanel1]
  1359. });
  1360. var PatrolPlanTab = Ext.create('Ext.tab.Panel', {
  1361. id: 'PatrolPlanTab',
  1362. activeTab: 0,
  1363. items: [
  1364. {
  1365. title: '巡检点位',
  1366. items: [MaintenancePlanPanel1]
  1367. }
  1368. ]
  1369. });
  1370. new Ext.create('Ext.panel.Panel', {
  1371. width: '100%',
  1372. id: 'PatrolPlanPiebar',
  1373. layout: 'border',
  1374. items: [
  1375. piebar, MaintenancePlanPanel
  1376. ],
  1377. renderTo: Ext.getBody()
  1378. });
  1379. myStore.reload();
  1380. myStore.addListener('load', function (store, record, opts) {
  1381. piedarHtml_fun();
  1382. });
  1383. $(window).resize(function () {
  1384. body_resize();
  1385. });
  1386. body_resize();
  1387. });