/**
 * maintenanceplan.js 
 * 维保任务管理界面
 * emial: yaoqiang@chinausky.com
 * create: 2018-12-08
 */
Ext.Loader.setConfig({
	enabled: true
});
Ext.Loader.setPath('Ext.ux', '../../res/extjs/examples/ux');
Ext.require([
	'Ext.grid.*',
	'Ext.data.*',
	'Ext.ux.RowExpander',
	'Ext.selection.CheckboxModel'
]);
var sm = Ext.create('Ext.selection.CheckboxModel');
//var sm1 = Ext.create('Ext.selection.CheckboxModel');
var menuidx = '';
var mouseon;
var mouseoff;
var menu_click;
var AllSelectedRecords = [];
var sm1;
var initflag = false;
Ext.define('MaintenancePlan', {
	extend: 'Ext.data.Model',
	fields: [
		{ name: 'id', type: 'string' },
		{ name: 'xh', type: 'int' },
		{ name: 'plan_name', type: 'string' },
		{ name: 'cycle', type: 'string' },
		{ name: 'cycle_name', type: 'string' },
		{ name: 'zxsj', type: 'string' },
		{ name: 'team_id', type: 'string' },
		{ name: 'team_name', type: 'string' },
		{ name: 'name', type: 'string' },
		{ name: 'company_code', type: 'string' },
		{ name: 'start_date', type: 'string' },
		{ name: 'end_date', type: 'string' },
		{ name: 'start_inspect_time', type: 'string' },
		{ name: 'end_inspect_time', type: 'string' },
	]
});
Ext.define('MaintenancePlan1', {
	extend: 'Ext.data.Model',
	fields: [
		{ name: 'id', type: 'string' },
		{ name: 'spot_name', type: 'string' },
		{ name: 'spot_address', type: 'string' },
		{ name: 'pd', type: 'string' },
	]
});
function exportbtn_click() {
	baseUrl = document.getElementById('basePath').value;
	V_LOGINNAME = $("#V_LOGINNAME").val();
	plan_name = document.getElementById('plan_name').value;
	person_liable_id = document.getElementById('person_liable_id').value;
	var fields = '';
	var array = ['xh', 'plan_name', 'cycle_name', 'zxsj', 'team_name', 'name'];
	var name = ['序号', '任务名称', '周期', '执行日期', '执行团队', '责任人'];
	for (var i = 0; i < 6; i++) {
		if (i > 0)
			fields += ',';
		fields += '{id:"' + array[i] + '",title:"' + name[i] + '",shown:"' + true + '"}';
	}
	var query = new Object();
	// query.V_LOGINNAME = V_LOGINNAME;
	// query.plan_name = plan_name;
	query.person_liable_id = person_liable_id;
	query.EXPORT_FILE = '维保计划列表';
	query.fields = '[' + fields + ']';
	$.ajax({
		type: 'POST',
		url: baseUrl + "iot/excel/view/XjPlanMasterExcel",
		data: {
			queryJson: Ext.JSON.encode(query)
		},
		success: function (result) {
			var json = eval('(' + result + ')');
			if (json.action == 'dormExport') {
				ConfirmStore = json.RESULT;
				var elemIF = document.createElement("iframe");
				elemIF.src = baseUrl + json.filename;
				elemIF.style.display = "none";
				document.body.appendChild(elemIF);
			}
		}
	});
}
var body_resize = function () {
	maxHeight = document.documentElement.clientHeight;
	maxWidth = document.documentElement.clientWidth;
	Ext.getCmp('MaintenancePlanPiebar').setHeight(maxHeight);
	Ext.getCmp('MaintenancePlanPiebar').setWidth(maxWidth);
}
Ext.onReady(function () {
	var baseUrl = document.getElementById('basePath').value;
	var theme = document.getElementById('theme').value;
	company_code = document.getElementById('company_code').value;
	$("#V_LOGINNAME").val(sessionStorage.getItem('V_LOGINNAME'));
	$("#V_PASSWORD").val(sessionStorage.getItem('V_PASSWORD'));
	var V_LOGINNAME = $("#V_LOGINNAME").val();
	var V_PASSWORD = $("#V_PASSWORD").val();
	var chkIcon = ' '
	var unchkIcon = '
'
	var unchkIcon = ' '
	var countPerPage = 15;
	var maxHeight = 10000;
	var chkBoolean = function (flag) {
		if (flag)
			return chkIcon;
		return unchkIcon;
	}
	var states1 = Ext.create('Ext.data.Store', {
		fields: ['status', 'name'],
		data: [
			// {"status":-1, "name":"全选"},
			{ "status": "待开通", "name": "待开通" },
			{ "status": "已开通", "name": "已开通" },
			{ "status": "已锁定", "name": "已锁定" },
			{ "status": "注销", "name": "注销" },
		]
	});
	var deselect_fun = function (record) {
		var index = AllSelectedRecords.indexOf(record.get("id"));
		if (index > -1) {
			AllSelectedRecords.splice(index, 1);
			return AllSelectedRecords;
		}
	}
	sm1 = Ext.create('Ext.selection.CheckboxModel', {
		mode: "MULTI",
		listeners: {
			deselect: function (me, record, index, opts) {
				if (initflag) {
					//		           alert("初始化");
				} else {
					deselect_fun(record);
				}
			},
			select: function (me, record, index, opts) {
				var index = AllSelectedRecords.indexOf(record.get("id"));
				if (index > -1) {
					return AllSelectedRecords;
				} else {
					AllSelectedRecords.push(record.get("id"));
					return AllSelectedRecords;
				}
			}
		}
	});
	var clear_append_form = function () {
		Ext.getCmp('fa_plan_name').setValue("");
		Ext.getCmp('fa_team_id').setValue("");
		//		Ext.getCmp('fa_cycle').setValue("");
		Ext.getCmp('fa_start_date').setValue("");
		Ext.getCmp('fa_end_date').setValue("");
		Ext.getCmp('fa_start_time').setValue("");
		Ext.getCmp('fa_end_time').setValue("");
		Ext.getCmp('fa_company_code').setValue("");
		//		Ext.getCmp('fa_spot_id').setValue("");
		AllSelectedRecords = [];
		Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
	}
	var queryJson = new Object();
	queryJson.V_LOGINNAME = V_LOGINNAME;
	// queryJson.V_PASSWORD =  V_PASSWORD;
	queryJson.COMMSTATUS = 'NO';
	if ((company_code != null) && (company_code != 'null') && (company_code.length > 0))
		queryJson.company_code = company_code;
	var myStore = Ext.create('Ext.data.Store', {
		model: 'MaintenancePlan',
		pageSize: countPerPage,
		proxy: {
			type: 'ajax',
			url: baseUrl + 'iot/planmaster/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		},
		remoteSort: true
	});
	var myStore1 = Ext.create('Ext.data.Store', {
		model: 'MaintenancePlan1',
		pageSize: 5,
		listeners: {
			beforeload: function (me, store, operation, eOpts) {
				initflag = true;
			},
			load: function (me, records, success, opts) {
				if (!success || !records || records.length == 0)
					return;
				//根据全局的选择,初始化选中的列
				var selModel = Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel();
				Ext.Array.forEach(AllSelectedRecords, function (item) {
					for (var i = 0; i < records.length; i++) {
						var record = records[i];
						if (record.get("id") == item && record.get('pd') != 1) {
							//	                           alert(record.get("id")+" - "+this.get("id")+"("+this.data.id+")");
							selModel.select(record, true, true);    //选中record,并且保持现有的选择,不触发选中事件
						}
					}
				});
				//	                  sm1.addListener('deselect',deselect_fun);
				initflag = false;
			}
		},
		proxy: {
			type: 'ajax',
			url: baseUrl + 'iot/inspectionpoints/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		},
		remoteSort: true
	});
	myStore1.on('load', function (myStore1, record) {
		for (var i = 0; i < record.length; i++) {
			var records = record[i];
			if (records.get('pd') == 1) {
				Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel().select(records, true);
			}
		};
	});
	Ext.define('CompanyComboStore', {
		extend: 'Ext.data.Model',
		fields: [
			{ name: 'building_name', type: 'string' },
			{ name: 'building_id', type: 'string' }
		]
	});
	Ext.define('teamStore', {
		extend: 'Ext.data.Model',
		fields: [
			{ name: 'team_name', type: 'string' },
			{ name: 'id', type: 'string' }
		]
	});
	var CompanyStory = Ext.create('Ext.data.Store', {
		model: 'CompanyComboStore',
		proxy: {
			type: 'ajax',
			actionMethods: {
				create: 'POST',
				read: 'POST', // by default GET
				update: 'POST',
				destroy: 'POST'
			},
			url: baseUrl + 'iot/company/view/getBuildingNameList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		}
	});
	var teamStory = Ext.create('Ext.data.Store', {
		model: 'teamStore',
		proxy: {
			type: 'ajax',
			actionMethods: {
				create: 'POST',
				read: 'POST', // by default GET
				update: 'POST',
				destroy: 'POST'
			},
			url: baseUrl + 'iot/planteam/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		}
	});
	var data = Ext.Date.format(new Date(), 'm/d/Y');
	var AppendForm = Ext.create('Ext.form.Panel', {
		id: 'MaintenancePlanAppendForm',
		labelWidth: 55,
		url: baseUrl + 'iot/planmaster/append',
		bodyPadding: 15,
		frame: true,
		labelAlign: 'left',
		region: 'north',
		enableDrop: true,
		ddGroup: 'treeID',
		height: 200,
		items: [{
			autoHeight: true,
			layout: 'column',
			border: false,
			items: [{
				columnWidth: .50,
				xtype: 'fieldset',
				layout: 'form',
				//                defaults: {anchor: '95%'},
				style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
				items: [
					{
						xtype: 'textfield',
						fieldLabel: '任务名称',
						id: 'fa_plan_name',
						name: 'plan_name',
						editable: false,
						width: 283,
						//            	        store:InspectorsStory
					}, {
						xtype: 'combo',
						fieldLabel: '建筑/项目',
						id: 'fa_company_code',
						name: 'company_code',
						displayField: 'building_name',
						valueField: 'building_id',
						editable: false,
						width: 283,
						store: CompanyStory,
						listeners: {
							select: function (combo, record, index) {
								try {
									var label = this.value;
									var query = new Object();
									query.company_code = label;
									query.V_LOGINNAME = V_LOGINNAME;
									// query.V_PASSWORD =  V_PASSWORD;
									var jsonstr = Ext.JSON.encode(query);
									myStore1.getProxy().extraParams = {
										queryJson: jsonstr
									};
									Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
								}
								catch (ex) {
									Ext.MessageBox.alert("错误", "数据加载失败。");
								}
							}
						}
					}, {
						xtype: 'timefield',
						fieldLabel: '维保开始时间',
						id: 'fa_start_time',
						name: "start_time",
						minValue: '00:00',
						maxValue: '24:00',
						minText: '时间要大于{0}',
						maxText: '时间要小于{0}',
						format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
						increment: 30,//跨度,默认是15分钟
						invalidText: '时间格式错误',
						anchor: '40%'
					}, {
						xtype: 'timefield',
						fieldLabel: '维保结束时间',
						id: 'fa_end_time',
						name: "end_time",
						minValue: '00:00',
						maxValue: '24:00',
						minText: '时间要大于{0}',
						maxText: '时间要小于{0}',
						format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
						increment: 30,//跨度,默认是15分钟
						invalidText: '时间格式错误',
						anchor: '80%'
					}
				]
			}, {
				columnWidth: .50,
				xtype: 'fieldset',
				layout: 'form',
				//                defaults: {anchor: '95%'},
				style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
				items: [
					{
						xtype: 'combo',
						fieldLabel: '执行团队',
						id: 'fa_team_id',
						name: 'team_id',
						displayField: 'team_name',
						valueField: 'id',
						editable: false,
						width: 100,
						store: teamStory
					}, {
						xtype: 'fieldcontainer',
						fieldLabel: '周期',
						defaultType: 'radiofield',
						columns: 2,
						id: "fa_cycle",
						defaults: {
							flex: 1
						},
						layout: 'hbox',
						items: [
							{ boxLabel: '每日', name: 'fa_cycle', inputValue: "0", id: 'radio1' },
							{ boxLabel: '每周', name: 'fa_cycle', inputValue: "1", id: 'radio2' },
							{ boxLabel: '每月', name: 'fa_cycle', inputValue: "2", id: 'radio3' }
						]
					}, {
						xtype: 'datefield',
						fieldLabel: "执行开始日期",
						minValue: data,
						// '07/07/2017',
						minText: "当前日期选择应大于当天日期",
						format: "Y-m-d",
						columnWidth: 0.5,
						id: 'fa_start_date',
						name: "start_date",
						editable: false,//只读约束
						anchor: '80%'
					}, {
						xtype: 'datefield',
						fieldLabel: "执行结束日期",
						minValue: data,
						// '07/07/2017',
						minText: "当前日期选择应大于当天日期",
						format: "Y-m-d",
						columnWidth: 0.5,
						id: 'fa_end_date',
						name: "end_date",
						editable: false,//只读约束
						anchor: '80%'
					}, {
						id: 'fa_queryJson',
						name: 'queryJson',
						hidden: true
					}
				]
			}
			]
		}]
	});
	function public_insert() {
		var query = new Object();
		var spot_id = null;
		query.plan_name = Ext.getCmp('fa_plan_name').getValue();
		if (query.plan_name == null || query.plan_name == "") {
			Ext.Msg.alert('系统提示', '任务名称不能为空!', function (btn, txt) {
				Ext.getCmp('fa_plan_name').setValue("");
			});
			return;
		}
		query.company_code = Ext.getCmp('fa_company_code').getValue();
		if (query.company_code == null || query.company_code == "") {
			Ext.Msg.alert('系统提示', '请选择建筑/项目!', function (btn, txt) {
				Ext.getCmp('fa_company_code').setValue("");
			});
			return;
		}
		var start_time = Ext.getCmp('fa_start_time').getValue();
		if (start_time == null || start_time == "") {
			Ext.Msg.alert('系统提示', '请选择维保开始时间!', function (btn, txt) {
				Ext.getCmp('fa_start_time').setValue("");
			});
			return;
		} else {
			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());
		}
		var end_time = Ext.getCmp('fa_end_time').getValue();
		if (end_time == null || end_time == "") {
			Ext.Msg.alert('系统提示', '请选择维保结束时间!', function (btn, txt) {
				Ext.getCmp('fa_end_time').setValue("");
			});
			return;
		} else {
			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());
		}
		query.team_id = Ext.getCmp('fa_team_id').getValue();
		if (query.team_id == null || query.team_id == "") {
			Ext.Msg.alert('系统提示', '请选择执行团队!', function (btn, txt) {
				Ext.getCmp('fa_company_code').setValue("");
			});
			return;
		}
		query.start_date = Ext.util.Format.date(Ext.getCmp('fa_start_date').getValue(), 'Y-m-d');
		if (query.start_date == null || query.start_date == "") {
			Ext.Msg.alert('系统提示', '请选择执行开始日期!', function (btn, txt) {
				Ext.getCmp('fa_start_date').setValue("");
			});
			return;
		}
		query.end_date = Ext.util.Format.date(Ext.getCmp('fa_end_date').getValue(), 'Y-m-d');
		if (query.end_date == null || query.end_date == "") {
			Ext.Msg.alert('系统提示', '请选择执行结束日期!', function (btn, txt) {
				Ext.getCmp('fa_end_date').setValue("");
			});
			return;
		}
		var fa_cycle = AppendForm.getForm().findField("fa_cycle").getGroupValue();
		var V_LOGINNAME = $("#V_LOGINNAME").val();
		var V_PASSWORD = $("#V_PASSWORD").val();
		if (AllSelectedRecords.length == 1) {
			query.spot_id = AllSelectedRecords[0];
		} else {
			if (AllSelectedRecords.length > 1) {
				for (var i = 0; i < AllSelectedRecords.length; i++) {
					if (i == 0)
						spot_id = AllSelectedRecords[i];
					else
						spot_id += "," + AllSelectedRecords[i];
				}
				//			                alert("测试4-"+spot_id);
				query.spot_id = spot_id;
			} else {
				Ext.Msg.alert('请先选择', '至少选择一条维保点位,再点击提交');
				return;
			}
		}
		query.cycle = fa_cycle;
		query.start_inspect_time = start_time1;
		query.end_inspect_time = end_time1;
		// query.V_LOGINNAME = V_LOGINNAME;
		var jsonstr = Ext.JSON.encode(query);
		Ext.Ajax.request({
			//			                       timeout : 3000000, 
			url: baseUrl + 'iot/planmaster/append',
			params: 'queryJson=' + jsonstr,
			success: function (resp, opts) {
				Ext.Msg.alert('操作成功', '计划已添加', function (btn, txt) {
					//					                	   myStore.reload();
					clear_append_form();
				});
			}
		});
	}
	var appendwin = function () {
		AllSelectedRecords = [];
		var query = new Object();
		query.V_LOGINNAME = V_LOGINNAME;
		// query.V_PASSWORD=V_PASSWORD;
		var jsonstr = Ext.JSON.encode(query);
		myStore1.getProxy().extraParams = {
			queryJson: jsonstr
		};
		Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
		Ext.create('Ext.window.Window', {
			title: '新增维保计划',
			height: 600,
			width: 800,
			modal: true,
			layout: 'border',
			items: [AppendForm, MaintenancePlanTab],
			closeAction: 'hide',
			buttons: [{
				text: '提交',
				iconCls: 'ok_btn',
				handler: function () {
					public_insert();
				}
			}, {
				text: '关闭',
				iconCls: 'cancel_btn',
				handler: function () {
					this.up('window').hide();
				}
			}]
		}).show();
	}
	var del_sm = function () {
		if (sm.getCount() == 1) {
			var selected = sm.getSelection();
			var query = new Object();
			var list = new Array();
			var o = new Object();
			o.id = selected[0].raw.id;
			list.push(o);
			query.ID_LIST = list;
			var jsonstr = Ext.JSON.encode(query);
			Ext.MessageBox.confirm('删除任务信息', '是否删除' + selected[0].raw.plan_name + ' 维保任务?', function (btn) {
				if (btn == 'yes') {
					$.ajax({
						type: 'POST',
						url: baseUrl + "iot/planmaster/del",
						data: {
							queryJson: jsonstr
						},
						success: function (result) {
							var json = eval('(' + result + ')');
							if (json.action == 'deletePlanMaster') {
								if (json.success == true) {
									Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
										Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
									});
								} else {
									Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
										Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
									});
								}
							}
						}
					});
				}
			}, this);
		} else {
			if (sm.getCount() > 1) {
				var query = new Object();
				var list = new Array();
				for (var i = 0; i < sm.getCount(); i++) {
					var selected = sm.getSelection();
					var o = new Object();
					o.id = selected[i].raw.id;
					list.push(o);
				}
				query.ID_LIST = list;
				var jsonstr = Ext.JSON.encode(query);
				Ext.MessageBox.confirm('删除任务信息', '是否删除选中的' + sm.getCount() + ' 个维保任务?', function (btn) {
					if (btn == 'yes') {
						$.ajax({
							type: 'POST',
							url: baseUrl + "iot/planmaster/del",
							data: {
								queryJson: jsonstr
							},
							success: function (result) {
								var json = eval('(' + result + ')');
								if (json.action == 'deletePlanMaster') {
									if (json.success == true) {
										Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
											Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
										});
									} else {
										Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
											Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
										});
									}
								}
							}
						});
					}
				}, this);
			} else {
				Ext.Msg.alert('请先选择', '至少选择一条记录,再点击删除');
			}
		}
	}
	var clear_modify_form = function () {
		Ext.getCmp('fm_id').setValue("");
		Ext.getCmp('fm_plan_name').setValue("");
		Ext.getCmp('fm_team_id').setValue("");
		//		Ext.getCmp('fm_cycle').setValue("");
		Ext.getCmp('fm_start_date').setValue("");
		Ext.getCmp('fm_end_date').setValue("");
		Ext.getCmp('fm_start_time').setValue("");
		Ext.getCmp('fm_end_time').setValue("");
		Ext.getCmp('fm_company_code').setValue("");
		AllSelectedRecords = [];
		//		Ext.getCmp('fm_spot_id').setValue("");
		Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
	}
	var show_page = function () {
		var maintenancePlan_title2_input = document.getElementById('maintenancePlan_title2_input').value;
		var maintenancePlan_title3_input1 = document.getElementById('maintenancePlan_title3_input1').value;
		var query = new Object();
		if (maintenancePlan_title2_input.length > 0) {
			query.plan_name = maintenancePlan_title2_input;
			$("#plan_name").val(maintenancePlan_title2_input);
		}
		if (maintenancePlan_title3_input1.length > 0) {
			query.person_liable_id = maintenancePlan_title3_input1;
			$("#person_liable_id").val(maintenancePlan_title3_input1);
		}
		// query.V_LOGINNAME = V_LOGINNAME;
		// query.V_PASSWORD =  V_PASSWORD;
		var jsonstr = Ext.JSON.encode(query);
		myStore.getProxy().extraParams = {
			queryJson: jsonstr
		};
		Ext.getCmp('MaintenancePlanListPageToolbar').moveFirst();
	}
	var reset1 = function () {
		document.getElementById('maintenancePlan_title2_input').value = '';
		document.getElementById('maintenancePlan_title3_input1').value = '0';
		$("#plan_name").val('');
		$("#person_liable_id").val('');
		show_page();
	}
	mouseon = function (obj) {
		var id = obj.id;
		$("#" + id).removeClass(id);
		$("#" + id).addClass(id + '_on');
	}
	mouseoff = function (obj) {
		var mid = "maintenancePlan_";
		for (var i = 1; i < 7; i++) {
			var id = "maintenancePlan_title" + i + "_div";
			$("#" + id).removeClass(id + '_on');
			$("#" + id).addClass(id);
		}
		if (menuidx == 'm1') {
			mid += 'title1_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm2') {
			mid += 'title2_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm3') {
			mid += 'title3_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm4') {
			mid += 'title4_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm5') {
			mid += 'title5_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm6') {
			mid += 'title6_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
	}
	menu_click = function (obj) {
		var id = obj.id;
		if (id == 'maintenancePlan_title1_div') {
			menuidx = 'm1';
			show_page();
		}
		else if (id == 'maintenancePlan_title2_div') {
			menuidx = 'm2';
			reset1();
		}
		else if (id == 'maintenancePlan_title3_div') {
			menuidx = 'm3';
			exportbtn_click();
		}
		else if (id == 'maintenancePlan_title4_div') {
			menuidx = 'm4';
			del_sm();
		}
		else if (id == 'maintenancePlan_title5_div') {
			menuidx = 'm5';
			appendwin();
		}
		else if (id == 'maintenancePlan_title6_div') {
			menuidx = 'm6';
			chk_sm();
		}
	}
	//	var childPanel1 = Ext.create('Ext.Panel', {
	//		height:188,
	//		width:'100%',
	//        html: '
'
	var countPerPage = 15;
	var maxHeight = 10000;
	var chkBoolean = function (flag) {
		if (flag)
			return chkIcon;
		return unchkIcon;
	}
	var states1 = Ext.create('Ext.data.Store', {
		fields: ['status', 'name'],
		data: [
			// {"status":-1, "name":"全选"},
			{ "status": "待开通", "name": "待开通" },
			{ "status": "已开通", "name": "已开通" },
			{ "status": "已锁定", "name": "已锁定" },
			{ "status": "注销", "name": "注销" },
		]
	});
	var deselect_fun = function (record) {
		var index = AllSelectedRecords.indexOf(record.get("id"));
		if (index > -1) {
			AllSelectedRecords.splice(index, 1);
			return AllSelectedRecords;
		}
	}
	sm1 = Ext.create('Ext.selection.CheckboxModel', {
		mode: "MULTI",
		listeners: {
			deselect: function (me, record, index, opts) {
				if (initflag) {
					//		           alert("初始化");
				} else {
					deselect_fun(record);
				}
			},
			select: function (me, record, index, opts) {
				var index = AllSelectedRecords.indexOf(record.get("id"));
				if (index > -1) {
					return AllSelectedRecords;
				} else {
					AllSelectedRecords.push(record.get("id"));
					return AllSelectedRecords;
				}
			}
		}
	});
	var clear_append_form = function () {
		Ext.getCmp('fa_plan_name').setValue("");
		Ext.getCmp('fa_team_id').setValue("");
		//		Ext.getCmp('fa_cycle').setValue("");
		Ext.getCmp('fa_start_date').setValue("");
		Ext.getCmp('fa_end_date').setValue("");
		Ext.getCmp('fa_start_time').setValue("");
		Ext.getCmp('fa_end_time').setValue("");
		Ext.getCmp('fa_company_code').setValue("");
		//		Ext.getCmp('fa_spot_id').setValue("");
		AllSelectedRecords = [];
		Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
	}
	var queryJson = new Object();
	queryJson.V_LOGINNAME = V_LOGINNAME;
	// queryJson.V_PASSWORD =  V_PASSWORD;
	queryJson.COMMSTATUS = 'NO';
	if ((company_code != null) && (company_code != 'null') && (company_code.length > 0))
		queryJson.company_code = company_code;
	var myStore = Ext.create('Ext.data.Store', {
		model: 'MaintenancePlan',
		pageSize: countPerPage,
		proxy: {
			type: 'ajax',
			url: baseUrl + 'iot/planmaster/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		},
		remoteSort: true
	});
	var myStore1 = Ext.create('Ext.data.Store', {
		model: 'MaintenancePlan1',
		pageSize: 5,
		listeners: {
			beforeload: function (me, store, operation, eOpts) {
				initflag = true;
			},
			load: function (me, records, success, opts) {
				if (!success || !records || records.length == 0)
					return;
				//根据全局的选择,初始化选中的列
				var selModel = Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel();
				Ext.Array.forEach(AllSelectedRecords, function (item) {
					for (var i = 0; i < records.length; i++) {
						var record = records[i];
						if (record.get("id") == item && record.get('pd') != 1) {
							//	                           alert(record.get("id")+" - "+this.get("id")+"("+this.data.id+")");
							selModel.select(record, true, true);    //选中record,并且保持现有的选择,不触发选中事件
						}
					}
				});
				//	                  sm1.addListener('deselect',deselect_fun);
				initflag = false;
			}
		},
		proxy: {
			type: 'ajax',
			url: baseUrl + 'iot/inspectionpoints/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		},
		remoteSort: true
	});
	myStore1.on('load', function (myStore1, record) {
		for (var i = 0; i < record.length; i++) {
			var records = record[i];
			if (records.get('pd') == 1) {
				Ext.getCmp('MaintenancePlanListPanel1').getSelectionModel().select(records, true);
			}
		};
	});
	Ext.define('CompanyComboStore', {
		extend: 'Ext.data.Model',
		fields: [
			{ name: 'building_name', type: 'string' },
			{ name: 'building_id', type: 'string' }
		]
	});
	Ext.define('teamStore', {
		extend: 'Ext.data.Model',
		fields: [
			{ name: 'team_name', type: 'string' },
			{ name: 'id', type: 'string' }
		]
	});
	var CompanyStory = Ext.create('Ext.data.Store', {
		model: 'CompanyComboStore',
		proxy: {
			type: 'ajax',
			actionMethods: {
				create: 'POST',
				read: 'POST', // by default GET
				update: 'POST',
				destroy: 'POST'
			},
			url: baseUrl + 'iot/company/view/getBuildingNameList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		}
	});
	var teamStory = Ext.create('Ext.data.Store', {
		model: 'teamStore',
		proxy: {
			type: 'ajax',
			actionMethods: {
				create: 'POST',
				read: 'POST', // by default GET
				update: 'POST',
				destroy: 'POST'
			},
			url: baseUrl + 'iot/planteam/getList',
			reader: {
				type: 'json',
				root: 'RESULT',
				totalProperty: 'totalCount'
			},
			extraParams: {
				queryJson: Ext.JSON.encode(queryJson)
			}
		}
	});
	var data = Ext.Date.format(new Date(), 'm/d/Y');
	var AppendForm = Ext.create('Ext.form.Panel', {
		id: 'MaintenancePlanAppendForm',
		labelWidth: 55,
		url: baseUrl + 'iot/planmaster/append',
		bodyPadding: 15,
		frame: true,
		labelAlign: 'left',
		region: 'north',
		enableDrop: true,
		ddGroup: 'treeID',
		height: 200,
		items: [{
			autoHeight: true,
			layout: 'column',
			border: false,
			items: [{
				columnWidth: .50,
				xtype: 'fieldset',
				layout: 'form',
				//                defaults: {anchor: '95%'},
				style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
				items: [
					{
						xtype: 'textfield',
						fieldLabel: '任务名称',
						id: 'fa_plan_name',
						name: 'plan_name',
						editable: false,
						width: 283,
						//            	        store:InspectorsStory
					}, {
						xtype: 'combo',
						fieldLabel: '建筑/项目',
						id: 'fa_company_code',
						name: 'company_code',
						displayField: 'building_name',
						valueField: 'building_id',
						editable: false,
						width: 283,
						store: CompanyStory,
						listeners: {
							select: function (combo, record, index) {
								try {
									var label = this.value;
									var query = new Object();
									query.company_code = label;
									query.V_LOGINNAME = V_LOGINNAME;
									// query.V_PASSWORD =  V_PASSWORD;
									var jsonstr = Ext.JSON.encode(query);
									myStore1.getProxy().extraParams = {
										queryJson: jsonstr
									};
									Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
								}
								catch (ex) {
									Ext.MessageBox.alert("错误", "数据加载失败。");
								}
							}
						}
					}, {
						xtype: 'timefield',
						fieldLabel: '维保开始时间',
						id: 'fa_start_time',
						name: "start_time",
						minValue: '00:00',
						maxValue: '24:00',
						minText: '时间要大于{0}',
						maxText: '时间要小于{0}',
						format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
						increment: 30,//跨度,默认是15分钟
						invalidText: '时间格式错误',
						anchor: '40%'
					}, {
						xtype: 'timefield',
						fieldLabel: '维保结束时间',
						id: 'fa_end_time',
						name: "end_time",
						minValue: '00:00',
						maxValue: '24:00',
						minText: '时间要大于{0}',
						maxText: '时间要小于{0}',
						format: 'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)
						increment: 30,//跨度,默认是15分钟
						invalidText: '时间格式错误',
						anchor: '80%'
					}
				]
			}, {
				columnWidth: .50,
				xtype: 'fieldset',
				layout: 'form',
				//                defaults: {anchor: '95%'},
				style: 'margin-left: 5px;padding-left: 5px;border:0px solid #B5B8C8!important;',
				items: [
					{
						xtype: 'combo',
						fieldLabel: '执行团队',
						id: 'fa_team_id',
						name: 'team_id',
						displayField: 'team_name',
						valueField: 'id',
						editable: false,
						width: 100,
						store: teamStory
					}, {
						xtype: 'fieldcontainer',
						fieldLabel: '周期',
						defaultType: 'radiofield',
						columns: 2,
						id: "fa_cycle",
						defaults: {
							flex: 1
						},
						layout: 'hbox',
						items: [
							{ boxLabel: '每日', name: 'fa_cycle', inputValue: "0", id: 'radio1' },
							{ boxLabel: '每周', name: 'fa_cycle', inputValue: "1", id: 'radio2' },
							{ boxLabel: '每月', name: 'fa_cycle', inputValue: "2", id: 'radio3' }
						]
					}, {
						xtype: 'datefield',
						fieldLabel: "执行开始日期",
						minValue: data,
						// '07/07/2017',
						minText: "当前日期选择应大于当天日期",
						format: "Y-m-d",
						columnWidth: 0.5,
						id: 'fa_start_date',
						name: "start_date",
						editable: false,//只读约束
						anchor: '80%'
					}, {
						xtype: 'datefield',
						fieldLabel: "执行结束日期",
						minValue: data,
						// '07/07/2017',
						minText: "当前日期选择应大于当天日期",
						format: "Y-m-d",
						columnWidth: 0.5,
						id: 'fa_end_date',
						name: "end_date",
						editable: false,//只读约束
						anchor: '80%'
					}, {
						id: 'fa_queryJson',
						name: 'queryJson',
						hidden: true
					}
				]
			}
			]
		}]
	});
	function public_insert() {
		var query = new Object();
		var spot_id = null;
		query.plan_name = Ext.getCmp('fa_plan_name').getValue();
		if (query.plan_name == null || query.plan_name == "") {
			Ext.Msg.alert('系统提示', '任务名称不能为空!', function (btn, txt) {
				Ext.getCmp('fa_plan_name').setValue("");
			});
			return;
		}
		query.company_code = Ext.getCmp('fa_company_code').getValue();
		if (query.company_code == null || query.company_code == "") {
			Ext.Msg.alert('系统提示', '请选择建筑/项目!', function (btn, txt) {
				Ext.getCmp('fa_company_code').setValue("");
			});
			return;
		}
		var start_time = Ext.getCmp('fa_start_time').getValue();
		if (start_time == null || start_time == "") {
			Ext.Msg.alert('系统提示', '请选择维保开始时间!', function (btn, txt) {
				Ext.getCmp('fa_start_time').setValue("");
			});
			return;
		} else {
			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());
		}
		var end_time = Ext.getCmp('fa_end_time').getValue();
		if (end_time == null || end_time == "") {
			Ext.Msg.alert('系统提示', '请选择维保结束时间!', function (btn, txt) {
				Ext.getCmp('fa_end_time').setValue("");
			});
			return;
		} else {
			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());
		}
		query.team_id = Ext.getCmp('fa_team_id').getValue();
		if (query.team_id == null || query.team_id == "") {
			Ext.Msg.alert('系统提示', '请选择执行团队!', function (btn, txt) {
				Ext.getCmp('fa_company_code').setValue("");
			});
			return;
		}
		query.start_date = Ext.util.Format.date(Ext.getCmp('fa_start_date').getValue(), 'Y-m-d');
		if (query.start_date == null || query.start_date == "") {
			Ext.Msg.alert('系统提示', '请选择执行开始日期!', function (btn, txt) {
				Ext.getCmp('fa_start_date').setValue("");
			});
			return;
		}
		query.end_date = Ext.util.Format.date(Ext.getCmp('fa_end_date').getValue(), 'Y-m-d');
		if (query.end_date == null || query.end_date == "") {
			Ext.Msg.alert('系统提示', '请选择执行结束日期!', function (btn, txt) {
				Ext.getCmp('fa_end_date').setValue("");
			});
			return;
		}
		var fa_cycle = AppendForm.getForm().findField("fa_cycle").getGroupValue();
		var V_LOGINNAME = $("#V_LOGINNAME").val();
		var V_PASSWORD = $("#V_PASSWORD").val();
		if (AllSelectedRecords.length == 1) {
			query.spot_id = AllSelectedRecords[0];
		} else {
			if (AllSelectedRecords.length > 1) {
				for (var i = 0; i < AllSelectedRecords.length; i++) {
					if (i == 0)
						spot_id = AllSelectedRecords[i];
					else
						spot_id += "," + AllSelectedRecords[i];
				}
				//			                alert("测试4-"+spot_id);
				query.spot_id = spot_id;
			} else {
				Ext.Msg.alert('请先选择', '至少选择一条维保点位,再点击提交');
				return;
			}
		}
		query.cycle = fa_cycle;
		query.start_inspect_time = start_time1;
		query.end_inspect_time = end_time1;
		// query.V_LOGINNAME = V_LOGINNAME;
		var jsonstr = Ext.JSON.encode(query);
		Ext.Ajax.request({
			//			                       timeout : 3000000, 
			url: baseUrl + 'iot/planmaster/append',
			params: 'queryJson=' + jsonstr,
			success: function (resp, opts) {
				Ext.Msg.alert('操作成功', '计划已添加', function (btn, txt) {
					//					                	   myStore.reload();
					clear_append_form();
				});
			}
		});
	}
	var appendwin = function () {
		AllSelectedRecords = [];
		var query = new Object();
		query.V_LOGINNAME = V_LOGINNAME;
		// query.V_PASSWORD=V_PASSWORD;
		var jsonstr = Ext.JSON.encode(query);
		myStore1.getProxy().extraParams = {
			queryJson: jsonstr
		};
		Ext.getCmp('MaintenancePlanListPageToolbar1').moveFirst();
		Ext.create('Ext.window.Window', {
			title: '新增维保计划',
			height: 600,
			width: 800,
			modal: true,
			layout: 'border',
			items: [AppendForm, MaintenancePlanTab],
			closeAction: 'hide',
			buttons: [{
				text: '提交',
				iconCls: 'ok_btn',
				handler: function () {
					public_insert();
				}
			}, {
				text: '关闭',
				iconCls: 'cancel_btn',
				handler: function () {
					this.up('window').hide();
				}
			}]
		}).show();
	}
	var del_sm = function () {
		if (sm.getCount() == 1) {
			var selected = sm.getSelection();
			var query = new Object();
			var list = new Array();
			var o = new Object();
			o.id = selected[0].raw.id;
			list.push(o);
			query.ID_LIST = list;
			var jsonstr = Ext.JSON.encode(query);
			Ext.MessageBox.confirm('删除任务信息', '是否删除' + selected[0].raw.plan_name + ' 维保任务?', function (btn) {
				if (btn == 'yes') {
					$.ajax({
						type: 'POST',
						url: baseUrl + "iot/planmaster/del",
						data: {
							queryJson: jsonstr
						},
						success: function (result) {
							var json = eval('(' + result + ')');
							if (json.action == 'deletePlanMaster') {
								if (json.success == true) {
									Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
										Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
									});
								} else {
									Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
										Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
									});
								}
							}
						}
					});
				}
			}, this);
		} else {
			if (sm.getCount() > 1) {
				var query = new Object();
				var list = new Array();
				for (var i = 0; i < sm.getCount(); i++) {
					var selected = sm.getSelection();
					var o = new Object();
					o.id = selected[i].raw.id;
					list.push(o);
				}
				query.ID_LIST = list;
				var jsonstr = Ext.JSON.encode(query);
				Ext.MessageBox.confirm('删除任务信息', '是否删除选中的' + sm.getCount() + ' 个维保任务?', function (btn) {
					if (btn == 'yes') {
						$.ajax({
							type: 'POST',
							url: baseUrl + "iot/planmaster/del",
							data: {
								queryJson: jsonstr
							},
							success: function (result) {
								var json = eval('(' + result + ')');
								if (json.action == 'deletePlanMaster') {
									if (json.success == true) {
										Ext.Msg.alert('操作成功', json.MSG, function (btn, txt) {
											Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
										});
									} else {
										Ext.Msg.alert('操作失败', json.MSG, function (btn, txt) {
											Ext.getCmp('MaintenancePlanListPanel').getStore().reload();
										});
									}
								}
							}
						});
					}
				}, this);
			} else {
				Ext.Msg.alert('请先选择', '至少选择一条记录,再点击删除');
			}
		}
	}
	var clear_modify_form = function () {
		Ext.getCmp('fm_id').setValue("");
		Ext.getCmp('fm_plan_name').setValue("");
		Ext.getCmp('fm_team_id').setValue("");
		//		Ext.getCmp('fm_cycle').setValue("");
		Ext.getCmp('fm_start_date').setValue("");
		Ext.getCmp('fm_end_date').setValue("");
		Ext.getCmp('fm_start_time').setValue("");
		Ext.getCmp('fm_end_time').setValue("");
		Ext.getCmp('fm_company_code').setValue("");
		AllSelectedRecords = [];
		//		Ext.getCmp('fm_spot_id').setValue("");
		Ext.getCmp('MaintenancePlanListPageToolbar').getStore().reload();
	}
	var show_page = function () {
		var maintenancePlan_title2_input = document.getElementById('maintenancePlan_title2_input').value;
		var maintenancePlan_title3_input1 = document.getElementById('maintenancePlan_title3_input1').value;
		var query = new Object();
		if (maintenancePlan_title2_input.length > 0) {
			query.plan_name = maintenancePlan_title2_input;
			$("#plan_name").val(maintenancePlan_title2_input);
		}
		if (maintenancePlan_title3_input1.length > 0) {
			query.person_liable_id = maintenancePlan_title3_input1;
			$("#person_liable_id").val(maintenancePlan_title3_input1);
		}
		// query.V_LOGINNAME = V_LOGINNAME;
		// query.V_PASSWORD =  V_PASSWORD;
		var jsonstr = Ext.JSON.encode(query);
		myStore.getProxy().extraParams = {
			queryJson: jsonstr
		};
		Ext.getCmp('MaintenancePlanListPageToolbar').moveFirst();
	}
	var reset1 = function () {
		document.getElementById('maintenancePlan_title2_input').value = '';
		document.getElementById('maintenancePlan_title3_input1').value = '0';
		$("#plan_name").val('');
		$("#person_liable_id").val('');
		show_page();
	}
	mouseon = function (obj) {
		var id = obj.id;
		$("#" + id).removeClass(id);
		$("#" + id).addClass(id + '_on');
	}
	mouseoff = function (obj) {
		var mid = "maintenancePlan_";
		for (var i = 1; i < 7; i++) {
			var id = "maintenancePlan_title" + i + "_div";
			$("#" + id).removeClass(id + '_on');
			$("#" + id).addClass(id);
		}
		if (menuidx == 'm1') {
			mid += 'title1_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm2') {
			mid += 'title2_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm3') {
			mid += 'title3_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm4') {
			mid += 'title4_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm5') {
			mid += 'title5_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
		else if (menuidx == 'm6') {
			mid += 'title6_div';
			$("#" + mid).removeClass(mid);
			$("#" + mid).addClass(mid + '_on');
		}
	}
	menu_click = function (obj) {
		var id = obj.id;
		if (id == 'maintenancePlan_title1_div') {
			menuidx = 'm1';
			show_page();
		}
		else if (id == 'maintenancePlan_title2_div') {
			menuidx = 'm2';
			reset1();
		}
		else if (id == 'maintenancePlan_title3_div') {
			menuidx = 'm3';
			exportbtn_click();
		}
		else if (id == 'maintenancePlan_title4_div') {
			menuidx = 'm4';
			del_sm();
		}
		else if (id == 'maintenancePlan_title5_div') {
			menuidx = 'm5';
			appendwin();
		}
		else if (id == 'maintenancePlan_title6_div') {
			menuidx = 'm6';
			chk_sm();
		}
	}
	//	var childPanel1 = Ext.create('Ext.Panel', {
	//		height:188,
	//		width:'100%',
	//        html: '