| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 | /** * patrolplan.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');Ext.define('PatrolPlan',{	extend: 'Ext.data.Model',	fields: [		{name:'id',  type:'string'},		{name:'personnel',  type:'string'},		{name:'route',  type:'string'},		{name:'planned_date',  type:'string'},		{name:'start_time',  type:'string'},		{name:'end_time',  type:'string'},		{name:'completion_status',  type:'string'},	]});Ext.onReady(function(){  	var baseUrl = document.getElementById('basePath').value;	var theme = document.getElementById('theme').value;	company_code = document.getElementById('company_code').value;	V_LOGINNAME = $("#V_LOGINNAME").val();    V_PASSWORD = $("#V_PASSWORD").val();	var chkIcon = '<img src="'+baseUrl+'res/img/common/check.gif"/>'	var unchkIcon = '<img src="'+baseUrl+'res/img/common/uncheck.gif"/>'	var countPerPage = 20;	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 clear_append_form = function (){		Ext.getCmp('fa_personnel').setValue("");		Ext.getCmp('fa_route').setValue("");//		Ext.getCmp('fa_planned_date').setValue("");		Ext.getCmp('fa_start_data').setValue("");		Ext.getCmp('fa_end_data').setValue("");		Ext.getCmp('fa_start_time').setValue("");		Ext.getCmp('fa_end_time').setValue("");		Ext.getCmp('fa_completion_status').setValue("");		Ext.getCmp('PatrolPlanListPanel').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: 'PatrolPlan',	    pageSize: countPerPage, 	    proxy: {	        type: 'ajax',	        url: baseUrl+'iot/patrolplan/getList',	        reader: {	            type: 'json',	            root: 'RESULT',	            totalProperty: 'totalCount'	        },	        extraParams:{	        	queryJson:Ext.JSON.encode(queryJson)	        }	    },	    remoteSort: true	});	Ext.define('CompanyComboStore',{		extend:'Ext.data.Model',		fields: [			{name:'name',  type:'string'},			{name:'id',type:'int'}		]	});	Ext.define('RouteComboStore',{		extend:'Ext.data.Model',		fields: [			{name:'route_name',  type:'string'},			{name:'id',type:'int'}		]	});	var queryJson = new Object();	var InspectorsStory = 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/inspectors/getList',	        reader: {	            type: 'json',	            root: 'RESULT',	            totalProperty: 'totalCount'	        },	        extraParams:{	        	queryJson:Ext.JSON.encode(queryJson)	        }	    }	});	var RouteStory = Ext.create('Ext.data.Store',{		model: 'RouteComboStore',	    proxy: {	        type: 'ajax',	        actionMethods: {                create : 'POST',                read   : 'POST', // by default GET                update : 'POST',                destroy: 'POST'	        },	        url: baseUrl+'iot/route/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: 'PatrolPlanAppendForm',		labelWidth: 55,		url: baseUrl+'iot/patrolplan/append',		defaultType: 'textfield',		bodyPadding: 15,		items: [{			xtype:'combo',			fieldLabel:'巡检人名称',			id: 'fa_personnel',			name:'xj_name',			displayField : 'name',  	        valueField : 'id',	        editable : false,	        width:283,	        store:InspectorsStory		},{//			fieldLabel:'巡检路线',//			id: 'fa_route',//			name: 'route',//			maxLength: 250,//			maxLengthText:'长度不得超出{0}',//			anchor:'80%'			xtype:'combo',			fieldLabel:'巡检路线',			id: 'fa_route',			name:'route',			displayField : 'route_name',  	        valueField : 'id',	        editable : false,	        width:283,	        store:RouteStory		},{			xtype:'timefield',			fieldLabel:'开始时间',			id: 'fa_start_time',            name:"start_time",			minValue:'9:00',			maxValue:'18:00',			minText:'时间要大于{0}',			maxText:'时间要小于{0}',			format:'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)			increment:30,//跨度,默认是15分钟			invalidText:'时间格式错误',            anchor:'80%'		},{			xtype:'timefield',			fieldLabel:'结束时间',			id: 'fa_end_time',            name:"end_time",			minValue:'9:00',			maxValue:'18:00',			minText:'时间要大于{0}',			maxText:'时间要小于{0}',			format:'G:i',//时间格式G(24小时进制)、i、s(时分秒,g是12小时进制)			increment:30,//跨度,默认是15分钟			invalidText:'时间格式错误',            anchor:'80%'		},{			xtype: 'checkboxgroup',            fieldLabel: '巡检时间',            id:"Inspectiontime",            columns: 3,            items: [               {boxLabel: '周一', name: 'monday',inputValue:"星期一"},               {boxLabel: '周二', name: 'tuesday',inputValue:"星期二"},               {boxLabel: '周三', name: 'wednesday',inputValue:"星期三"},               {boxLabel: '周四', name: 'thursday',inputValue:"星期四"},               {boxLabel: '周五', name: 'friday',inputValue:"星期五"},               {boxLabel: '周六', name: 'saturday',inputValue:"星期六"},               {boxLabel: '周日', name: 'sunday',inputValue:"星期日"}        ]},{        	xtype:'datefield',            fieldLabel:"开始日期",            minValue:data,                   // '07/07/2017',            minText:"当前日期选择应大于当天日期",            format:"Y-m-d",            columnWidth:0.5,            id: 'fa_start_data',            name:"start_data",            editable:false,//只读约束            anchor:'80%'		},{			xtype:'datefield',            fieldLabel:"结束日期",            minValue:data,                   // '07/07/2017',            minText:"当前日期选择应大于当天日期",            format:"Y-m-d",            columnWidth:0.5,            id: 'fa_end_data',            name:"end_data",            editable:false,//只读约束            anchor:'80%'		},{			id: 'fa_completion_status',			name:'completion_status',			hidden:true		},{			id:'fa_queryJson',			name:'queryJson',			hidden:true		}],		buttons: [{	        text: '提交',	        iconCls:'ok_btn',		    handler: function() {		        var form = this.up('form').getForm();		        if (form.isValid()) {		        	var InspectiontimeValue = Ext.getCmp('Inspectiontime').getChecked();		        	var Inspectiontime='';		        	Ext.Array.each(InspectiontimeValue, function(item){		        		Inspectiontime +=item.inputValue+'|';		        	});//		        	var start_data = Ext.util.Format.date(Ext.getCmp('fa_start_data').getValue(), 'Y-m-d');//		        	var end_data = Ext.util.Format.date(Ext.getCmp('fa_end_data').getValue(), 'Y-m-d');		        	var V_LOGINNAME = $("#V_LOGINNAME").val();		            var V_PASSWORD = $("#V_PASSWORD").val();		        	var start_time = Ext.getCmp('fa_start_time').getValue();		        	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();		        	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());//		        	Ext.MessageBox.alert('提示', '您的兴趣是' + V_LOGINNAME);		        	var query = new Object();		        	query.start_data = Ext.util.Format.date(Ext.getCmp('fa_start_data').getValue(), 'Y-m-d');		        	query.end_data = Ext.util.Format.date(Ext.getCmp('fa_end_data').getValue(), 'Y-m-d');		        	query.Inspectiontime = Inspectiontime;		        	query.personnel = Ext.getCmp('fa_personnel').getValue();		        	query.route = Ext.getCmp('fa_route').getValue();//		        	query.planned_date = Ext.getCmp('fa_planned_date').getValue();		        	query.V_LOGINNAME = V_LOGINNAME;		        	query.V_PASSWORD =  V_PASSWORD;		        	query.start_time = start_time1;		        	query.end_time = end_time1;		        	query.completion_status = Ext.getCmp('fa_completion_status').getValue();		        	var jsonstr = Ext.JSON.encode(query);		        	Ext.getCmp('fa_queryJson').setValue(jsonstr);		            form.submit({		            	method:'post',		                success: function(form, action) {		                   Ext.Msg.alert('操作成功', '新增计划已保存', function(btn,txt){		                	   clear_append_form();		                   });		                },		                failure: function(form, action) {		                   Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){		                	   clear_append_form();		                   });		                }		            });		        }		    }		},{			text: '关闭',			iconCls: 'cancel_btn',			handler: function() {				this.up('window').hide();			}		}]	});		var appendwin = function(){		Ext.create('Ext.window.Window', {		    title: '新增',		    height: 350,		    width: 400,		    layout: 'fit',		    items:  AppendForm,		    closeAction: 'hide'		}).show();	}		//筛选	var clear_filter_form = function(){		Ext.getCmp('ff_personnel').setValue("");		Ext.getCmp('ff_route').setValue("");		Ext.getCmp('ff_planned_date').setValue("");		Ext.getCmp('ff_start_time').setValue("");		Ext.getCmp('ff_end_time').setValue("");		Ext.getCmp('ff_completion_status').setValue("");	}		var FilterWin = Ext.create('Ext.form.Panel', {		id: 'PatrolPlanFilterForm',		labelWidth: 55,		defaultType: 'textfield',		bodyPadding: 15,		items: [{			fieldLabel:'巡检人',			id: 'ff_personnel',			name:'personnel',			maxLength:20,			maxLengthText:'长度不得超出{0}',			value : document.getElementById('personnel').value,			anchor:'75%'		},{			fieldLabel:'巡检路线',			id:'ff_route',			name:'route',			maxLength: 250,			maxLengthText:'长度不得超出{0}',	        value : document.getElementById('route').value,	        editable : false		},{			fieldLabel:'巡检日期',			id: 'ff_planned_date',			name: 'planned_date',			maxLength: 250,			maxLengthText:'长度不得超出{0}',			value : document.getElementById('planned_date').value,			anchor:'95%'		},{			fieldLabel:'开始时间',			id: 'ff_start_time',			name: 'start_time',			maxLength: 250,			maxLengthText:'长度不得超出{0}',			value : document.getElementById('start_time').value,			anchor:'95%'		},{			fieldLabel:'结束时间',			id: 'ff_end_time',			name: 'end_time',			maxLength: 250,			maxLengthText:'长度不得超出{0}',			value : document.getElementById('end_time').value,			anchor:'95%'		},{			fieldLabel:'完成情况(%)',			id: 'ff_completion_status',			name: 'completion_status',			maxLength: 250,			maxLengthText:'长度不得超出{0}',			value : document.getElementById('completion_status').value,			anchor:'95%'		},{			id:'ff_queryJson',			name:'queryJson',			hidden:true		}],		buttons: [{	        text: '提交',	        iconCls:'ok_btn',		    handler: function() {		        var form = this.up('form').getForm();		        if (form.isValid()) {		        	var query = new Object();		        	if(Ext.getCmp('ff_personnel').getValue().length>0)		        		query.personnel = Ext.getCmp('ff_personnel').getValue();		        	if(Ext.getCmp('ff_route').getValue().length>0)		        		query.route = Ext.getCmp('ff_route').getValue();	        			        	if(Ext.getCmp('ff_planned_date').getValue().length>0)		        		query.planned_date = Ext.getCmp('ff_planned_date').getValue();		        	if(Ext.getCmp('ff_start_time').getValue().length>0)		        		query.start_time = Ext.getCmp('ff_start_time').getValue();		        	if(Ext.getCmp('ff_end_time').getValue().length>0)		        		query.end_time = Ext.getCmp('ff_end_time').getValue();		        	if(Ext.getCmp('ff_completion_status').getValue().length>0)		        		query.completion_status = Ext.getCmp('ff_completion_status').getValue();		        			        	var jsonstr = Ext.JSON.encode(query);		        	myStore.getProxy().extraParams = {		        		queryJson : jsonstr		        	};			        	Ext.getCmp('PatrolPlanListPageToolbar').moveFirst();		        	Ext.getCmp('personnel').setValue(query.personnel);		        	Ext.getCmp('route').setValue(query.route);		        	Ext.getCmp('planned_date').setValue(query.planned_date);		        	Ext.getCmp('start_time').setValue(query.start_time);		        	Ext.getCmp('end_time').setValue(query.end_time);		        	Ext.getCmp('completion_status').setValue(query.completion_status);//		        	myStore.reload();		        	clear_filter_form();		        	this.up('window').hide();		        }		    }		},{			text: '关闭',			iconCls: 'cancel_btn',			handler: function() {				this.up('window').hide();			}		}]	});				var filterwin = function() {		Ext.create('Ext.window.Window',{			title: '筛选',			height: 300,			width: 350,			layout: 'fit',			items: FilterWin,			closeAction: 'hide'		}).show();	}		var clear_modify_form = function (){		Ext.getCmp('fm_id').setValue("");		Ext.getCmp('fm_route').setValue("");		Ext.getCmp('fm_planned_date').setValue("");		Ext.getCmp('fm_start_time').setValue("");		Ext.getCmp('fm_end_time').setValue("");		Ext.getCmp('fm_personnel').setValue("");		Ext.getCmp('fm_completion_status').setValue("");		Ext.getCmp('PatrolPlanListPanel').getStore().reload();	}				var ModifyForm = Ext.create('Ext.form.Panel', {		id: 'PatrolPlanEditForm',		labelWidth: 55,		url: baseUrl+'iot/patrolplan/update',		defaultType: 'textfield',		bodyPadding: 15,		items: [{				fieldLabel:'巡检人',				id: 'fm_personnel',				name:'personnel',				maxLength:20,				maxLengthText:'长度不得超出{0}',				anchor:'75%'			},{				fieldLabel:'巡检路线',				id: 'fm_route',				name: 'route',				maxLength: 250,				maxLengthText:'长度不得超出{0}',				anchor:'95%'			},{				fieldLabel:'巡检日期',				id: 'fm_planned_date',				name: 'planned_date',				maxLength: 250,				maxLengthText:'长度不得超出{0}',				anchor:'95%'			},{				fieldLabel:'开始时间',				id: 'fm_start_time',				name:'start_time',				maxLength: 30,				maxLengthText:'长度不得超出{0}',				anchor:'95%'			},{				fieldLabel:'结束时间',				id: 'fm_end_time',				name:'end_time',				maxLength: 30,				maxLengthText:'长度不得超出{0}',				anchor:'95%'			},{				id: 'fm_completion_status',				name:'completion_status',				hidden:true			},{				id: 'fm_id',				name:'id',				hidden:true			},{				id:'fm_queryJson',				name:'queryJson',			hidden:true		}],		buttons: [{	        text: '修改',	        iconCls:'ok_btn',		    handler: function() {		    	var form = this.up('form').getForm();		        if (form.isValid()) {		        	var query = new Object();		        	query.id = Ext.getCmp('fm_id').getValue();		        	query.completion_status = Ext.getCmp('fm_completion_status').getValue();		        			        	query.personnel = Ext.getCmp('fm_personnel').getValue();		        	query.route = Ext.getCmp('fm_route').getValue();		        	query.planned_date = Ext.getCmp('fm_planned_date').getValue();		        	query.start_time = Ext.getCmp('fm_start_time').getValue();		        	query.end_time = Ext.getCmp('fm_end_time').getValue();		        	var jsonstr = Ext.JSON.encode(query);		        	Ext.getCmp('fm_queryJson').setValue(jsonstr);		            form.submit({		            	method:'post',		                success: function(form, action) {		                   Ext.Msg.alert('操作成功', '已修改', function(btn,txt){		                	   clear_modify_form();		                   });		                },		                failure: function(form, action) {		                   Ext.Msg.alert('操作失败', action.Msg , function(btn,txt){		                	   clear_modify_form();		                   });		                }		            });		            this.up('window').hide();		        }		    }		},{			text: '关闭',			iconCls: 'cancel_btn',			handler: function() {				this.up('window').hide();			}		}]	});		var modifywin = function(){		Ext.create('Ext.window.Window', {		    title: '修改',		    height: 350,		    width: 400,		    layout: 'fit',		    items:  ModifyForm,		    closeAction: 'hide'		}).show();	}			var chk_sm = function() {		if(sm.getCount()==1){			modifywin();			var selected = sm.getSelection( );			Ext.getCmp('fm_id').setValue(selected[0].raw.id);			Ext.getCmp('fm_personnel').setValue(selected[0].raw.personnel);			Ext.getCmp('fm_route').setValue(selected[0].raw.route);			Ext.getCmp('fm_planned_date').setValue(selected[0].raw.planned_date);			Ext.getCmp('fm_start_time').setValue(selected[0].raw.start_time);			Ext.getCmp('fm_end_time').setValue(selected[0].raw.end_time);			Ext.getCmp('fm_completion_status').setValue(selected[0].raw.completion_status);		}else{			Ext.Msg.alert('请先选择','请先选择一条记录,再点击修改');		}	}	//	//	var deletewin = function() {//		window.alert("无此功能");//		//	}		Ext.create('Ext.grid.Panel', {	    title: '巡检计划管理',	    id: 'PatrolPlanListPanel',	    store: myStore,	    selModel: sm,	    columns: [	    	 //{ header: 'ID',  dataIndex: 'UQ_POINT_ID',hidden:true, menuDisabled:true },		     { header: 'ID',  dataIndex: 'id', width:40, menuDisabled:true },		     { header: '巡检人', dataIndex: 'personnel', width:120,align:'center', menuDisabled:true },		     { header: '巡检路线', dataIndex: 'route', width:160,align:'center', menuDisabled:true },		     { header: '巡检日期', dataIndex: 'planned_date', width:120,align:'center', menuDisabled:true },		     { header: '开始时间', dataIndex: 'start_time',width:160, align:'center', menuDisabled:true },		     { header: '结束时间', dataIndex: 'end_time', width:120, align:'center', menuDisabled:true },		     { header: '完成情况(%)', dataIndex: 'completion_status', width:120, align:'center', menuDisabled:true },//		     { //	        	xtype : 'actioncolumn',//	        	width:20,//	        	sortable:false,//	        	//	        	//	        	//这里//	        	align:'center',//	        	menuDisabled:true,//	        	items:[{//	        		icon: '../../res/img/common/forum.gif',//	        		tooltip: '版本记录',//	        		handler: function(grid, rowIndex, colIndex) {//	                    var rec = grid.getStore().getAt(rowIndex);//	        			window.location = 'version.jsp?theme='+theme+'&pointId='+rec.get('UQ_POINT_ID');//	                }//	        	}]//    		}	    ],	    columnLines: true,	    tbar: [	    	{				  xtype: 'button', 				  iconCls:'filter_btn',  				  text: '筛选',				  listeners: {				        click: filterwin				  }	    	},'-',	    	{xtype: 'tbfill'},'-',			{ 				  xtype: 'button', 				  iconCls:'append_btn',  				  text: '新增',				  listeners: {				        click: appendwin				  }			},			{ 				xtype: 'button', 				iconCls:'modify_btn', 				text: '修改',				listeners: {					click: chk_sm				}			},//			{ //				xtype: 'button',//				iconCls:'delete_btn',//				text: '注销',//				listeners: {//					click: deletewin//				}//			}//			,{ //				xtype: 'button',//				iconCls:'delete_btn',//				text: '导出',//				listeners: {//					click: export_sj//				}//			}			    	],	    height: maxHeight,	    width: '100%',	    bbar: new Ext.PagingToolbar({              store: myStore,              id:'PatrolPlanListPageToolbar',            displayInfo: true,              pageSize: countPerPage,              prependButtons: true,              displayMsg : '显示第 {0}条到 {1}条记录,总共 {2}条',                 emptyMsg : "没有记录",              firstText: '第一页',            prevText: '前一页',            nextText: '后一页',            lastText: '最后一页',            refreshText: '刷新',//            doRefresh:function(start){  //            	alert(start);//                relushDataFunction(start); // 调用函数刷新数据  //                this.cursor = start; // 更新页签  //            }        }),        frame: true,          border:false,          iconCls: 'icon-grid',	    renderTo: Ext.getBody()	});	myStore.reload();	maxHeight =  document.documentElement.clientHeight;	Ext.getCmp('PatrolPlanListPanel').setHeight(maxHeight);	});
 |