/**
 * {funcName} JS
 *
 * @author MR.Z <zsh2088@gmail.com>
 * @version 2.0 , {date}
 */

var  {funcName}  = {
    token : $('input[name=_token]').val(),
    config : {} ,
	init : function () {
		//重新设置菜单
		if ( !empty( Param.uri.menu ) ) {
			Layout.setSidebarMenuActiveLink('set' , 'a[data-uri="'+ Param.uri.menu +'"]');
		}

    //初始化ajax 提示框
    loading.initAjax();

    //初始化页面按钮
		this.initBtn();

		//初始化查询form
		this.initSearchForm();

		//初始化数据表
		this.initGrid();

		{editorUploadUri}
		{editorInit}
	} ,

	//初始化查询form
	initSearchForm : function () {
		var $searchForm = $('#searchForm');
		$searchForm.reloadForm(Param.query);

		//查询按钮
		$('#searchBtn').on('click' , function (e) {
			e.preventDefault();

			var ${gridId}{treeGridId} = $('#{gridId}{treeGridId}');
			var param = ${gridId}{treeGridId}.{gridPlugin}{treeGridPlugin}('getParam');

			param = $.extend({} , param , $('#searchForm').serializeObject()  );
			param.page = 1;

			${gridId}{treeGridId}.{gridPlugin}{treeGridPlugin}('setParam' , param);
			${gridId}{treeGridId}.{gridPlugin}{treeGridPlugin}('reload');
		});
	} ,

  {portlet}
  {modal}

	//初始化各种按钮
	initBtn : function () {
		var self = this;

		//打开添加框
		$('#addNewBtn').on('click' , function (e) {
			e.preventDefault();
			self.setPortletShow('add');

			var $form = $('#addEditForm');

			$form.reloadForm( Param.defaultRow );
			{uploadPreviewClear}
      {editorClear}
      {select2Clear}

			$form.attr('action' , Param.uri.insert );
		});

		//编辑按钮
		$(document).on('click' , '.editBtn' , function (e) {
			e.preventDefault();
			self.setPortletShow('edit');

			var id = $(this).data('id');
			var row = $('#{gridId}{treeGridId}').{gridPlugin}{treeGridPlugin}('getRow' , id);
			var $form = $('#addEditForm');

			$form.reloadForm( row );
			{uploadPreviewSet}
			{editorReload}
      {select2Set}

			$form.attr('action' , Param.uri.update + '/' +row.id );
		});

		//删除一行
		$(document).on('click' , '.destroyBtn' , function (e) {
			e.preventDefault();
			var id = $(this).data('id');
			self.delData( id );
		});

		$('#destroySelectBtn').on('click' , function (e) {
			e.preventDefault();
			var ids = $('.checker:checked').serializeJSON().selectChecker;
			if ( empty( ids ) ) {
				tips.error('请选择要删除的记录');
				return ;
			}
			self.delData( ids );
		});

		//提交添加编辑窗
		$('#submitFormBtn').on('click' , function (e) {
			e.preventDefault();
			var $form = $('#addEditForm');

			if( $form.validForm() ) {
				var data = $form.serializeObject();

				$.post( $form.attr('action') , data )
				 .fail( function(res){
            tips.error( res.responseText );
				 })
				 .done( function( res ){
				    if ( res.code == 1001 ) {
              //需要登录
              tips.error('请先登录');
            } else if( res.code != 0 ){
              tips.error( res.msg );
            } else {
              tips.success( res.msg );
              $('#{gridId}{treeGridId}').{gridPlugin}{treeGridPlugin}('reload');
              self.setPortletHide();
            }
				 });
			}
		});

		//关闭添加编辑窗
		$('#closePortletBtn').on('click' , function (e) {
			e.preventDefault();
			self.setPortletHide();
		});

    {uploadButton}

    {select2Init}
	} ,

	delData : function ( ids ) {
		var self = this ;
		var data = {
			ids : ids,
			_token : this.token
		};

		sure.init('是否删除?' , function () {

		  $.post( Param.uri.destroy , data )
		   .fail( function(res){
         tips.error( res.responseText );
       })
		   .done(function (res) {
          if ( res.code == 1001 ) {
            //需要登录
            tips.error('请先登录');
          } else if( res.code != 0 ){
            tips.error( res.msg );
          } else {
            tips.success( res.msg );
            $('#{gridId}{treeGridId}').{gridPlugin}{treeGridPlugin}('reload');
          }
        });
		});
	},

	{gridInit}
	{treeGridInit}
};

//pop state 事件
window.onpopstate = function (event) {
	if ( event && event.state ) {
		$('#searchForm').reloadForm( event.state );
		var ${gridId}{treeGridId} = $('#{gridId}{treeGridId}');
		${gridId}{treeGridId}.{gridPlugin}{treeGridPlugin}('setParam' , event.state);
		${gridId}{treeGridId}.{gridPlugin}{treeGridPlugin}('reload');
	}
};