zTree前端js

这里写图片描述

define(['jquery', 'knockout', 'text!pages/assetManage/assetType/assetType.html', 'uui', 'uuigrid', 'jqueryui', 'jqueryGrid', 'uuitree', 'uuitreeExedit'], function ($, ko, template) {
    var app, viewModel;
    var m_meta;
    var ctrlBathPath = ctx+'/asset/assetSort';
    var classifyId,classifyCode,classifyName,parentId,parentCode,levelNum=0;
    var copyFlag=false;
    var beforeUpdateObj;//定义全局修改前的实体。用来和修改后的实体字段值比较   
    var mdata='',deData='';
    var data = {"rows": ''};
    var treeId = "bdComTree";
    viewModel = {
		treeSetting:{
            view:{
                showLine:false,
                selectedMulti:false
            },
            callback:{
                onClick:function(e,id,node){
                	treeNodeIsLeaf = node.isLeaf;
	                viewModel.events.treeComfirm();
                },
                onExpand:function(event, treeId, node){
            		var treeObj = $.fn.zTree.getZTreeObj(treeId);
            		var parentZNode = treeObj.getNodeByParam("id", node.id, null);
            		if(parentZNode.check_Child_State == "-1"){
            			parentId=node.id;
                    	viewModel.events.expand();
            		}
		        },
		       onAsyncSuccess: function () {
		       		var treeObj = $.fn.zTree.getZTreeObj(treeId);
                	zTreeObj.selectNode(treeObj.getNodesByParam('id', parentId)[0]);
            	}
            }
		},
		treeData: new u.DataTable({
	        meta: {
	            'id': {
	                'value':""
	            },
	            'pid': {
	                'value':""
	            },
	            'title':{
	                'value':""
	            },
	            'code':{
	                'value':""
	            },
	            'levelNum':{
	                'value':""
	            },
	            'isLeaf':{
	            	'value':""
	            }
	        }
	    
		}),
        dataTable: new u.DataTable({
            meta: {
               "id": { type : 'string' },
                "version": { type : 'integer' },
                "code": { type : 'string' },
                "name": { type : 'string' },
                "classifyId": { type : 'string' },
                "classifyCode": { type : 'string' },
                "jildw": { type : 'float' },
                "yujsynx": { type : 'string' },
                "depmethodCode": { type : 'string' },
                "isLeaf": { type : 'string' },
                "parentCode": { type : 'string' },
				"description": { type : 'string' },
                "netSalvageRate": { type : 'float' },
                "depmethodName": { type : 'string' },
                "orgId": {type: 'string'}
            }
        }, this),
         addDataTable : new u.DataTable({
            meta: {
            	"code":{
					type:'string',
					required: true,
			        nullMsg: '资产分类代码不能为空!'
				},
            	'name' : {
					type:'string',
					required: true,
			        nullMsg: '资产分类名称不能为空!'
				},
				'netSalvageRate' : {
					type:'string',
					required: false,
					regExp : /^[0-9]+(.[0-9]{1,3})?$/,
					maxLength : 30,
					errorMsg: '只能输入[0,1)之间的数',
			        nullMsg: '净产值率不能为空!'
				},
				'yujsynx' : {
					type:'string',
					required: true,
					regExp : /^[0-9\.]+$/,
					maxLength : 4,
					errorMsg: '只能输入数字',
			        nullMsg: '预算年度不能为空!'
				},
                "description" : {
					type:'string',
					maxLength : 200
				}
            }
        }, this),
        showInput: function (obj) {
         	if(obj.value==undefined){
         		obj.element.innerHTML = '<div class="operation-btn">'
         			+ '<div class="type-value"></div>'
         			+ '<input type="text" class="type-ipt" onblur="updateInputValue(this)">'
         			+ '</div>';
         	}else{
         		obj.element.innerHTML = '<div class="operation-btn">'
         			+ '<div class="type-value">' + obj.value + '</div>'
         			+ '<input type="text" class="type-ipt" onblur="updateInputValue(this)">'
         			+ '</div>';
         	}
		},
        showSelect: function (obj) {
        	var selectValue=obj.value;
        	var mhtml='';
        	if(selectValue==''){
        		mhtml += '<option selected="selected"></option>';
        	}
        	if(deData.length==0){
        		mhtml += '<option></option>';
        	}else{
        		for (var i = 0; i < deData.length; i++) {
        			if(selectValue==deData[i].code){
						mhtml += '<option  selected="selected" name='+deData[i].name+' value='+deData[i].code + '>'+deData[i].name+'</option>'			
        			}else{
						mhtml += '<option  name='+deData[i].name+' value='+deData[i].code + '>'+deData[i].name+'</option>'			
        			}
				}
        	}
            obj.element.innerHTML = '<div class="operation-btn"><select onchange="saveOptionValue(this)">'+ mhtml+ '</select><i class="fa fa-caret-down"></i></div>'
        },
        showSel: function (obj) {
        	var selectValue=obj.value;
        	var html='';
        	if(selectValue==''){
        		html += '<option selected="selected"></option>';
        	}
        	if(mdata.length==0 ){
        		html += '<option></option>';
        	}else{
        		for (var i = 0; i < mdata.length; i++) {
        			if(mdata[i].code==selectValue){
        				html += '<option selected="selected" name='+mdata[i].name+' value='+mdata[i].code +'>'+mdata[i].name+'</option>'
        			}else {
						html += '<option  name='+mdata[i].name+' value='+mdata[i].code + '>'+mdata[i].name+'</option>'
        			}
				}
        	}
            obj.element.innerHTML = '<div class="operation-btn"><select onchange="saveOptionValue(this)">'+ html+ '</select><i class="fa fa-caret-down"></i></div>'
        },
        afterCreateFun: function () {
            assetHeight();
        },
        events:{
        	/*第一次显示树*/
        	initExpand : function(){
        		var searchKey = $("#tree-searchInput").val();
        		var levelNum = (searchKey==""?"1":"");
        		$.ajax({
                	type : 'GET',
    				url : ctrlBathPath+'/getAssetTypeDetailTree',
    				data : {"classifyId":classifyId,"levelNum":levelNum},
    				m_meta:m_meta,
    				success : function(result) {
    					if(result.flag == 'SUCCESS'){
    						var dataObj = result.data;
    						var zNodes = [];
    						var treeObj = $.fn.zTree.getZTreeObj(treeId);
    						if(dataObj != null){
    							var initMeta = '{"status":"nrm","data":{'
    						        + '"id":"'+ classifyId +'",'
    						        + '"pid":"root",'
    						        + '"open":"true",'
    								+ '"code":"'+ classifyCode +'",'
    								+ '"name":"'+ classifyName +'",'
    								+ '"title":"'+ classifyCode + '-' + classifyName +'",'
    								+ '"levelNum":"0",'
    								+ '"isLeaF":"' + (dataObj.length == 0?"1":"0") + '"'
    						        + '}}';
    			        		zNodes.push(JSON.parse(initMeta));
	    						for (var i =0; i< dataObj.length; i++){
									var meta = "{";
							        meta += '"status"';
									meta += ":";
									meta += '"nrm",';
									meta += '"data"';
									meta += ":";
									meta += "{";
									meta += '"id":"'+ dataObj[i].id +'",';
									meta += '"pid":"'+ (dataObj[i].parentId==null?classifyId:dataObj[i].parentId) +'",';
									meta += '"title":"'+ dataObj[i].code + '-' +dataObj[i].name +'",';
									meta += '"code":"'+ dataObj[i].code +'",';
									meta += '"name":"'+ dataObj[i].name +'",';
									meta += '"jildw":"'+ dataObj[i].jildw +'",';
									meta += '"yujsynx":"'+ dataObj[i].yujsynx +'",';
									meta += '"netSalvageRate":"'+ dataObj[i].netSalvageRate +'",';
									meta += '"depmethodName":"'+ dataObj[i].depmethodName +'",';
									meta += '"depmethodCode":"'+ dataObj[i].depmethodCode +'",';
									meta += '"description":"'+ dataObj[i].description +'",';
									meta += '"isLeaf":"'+ dataObj[i].isLeaf +'",';
									meta += '"levelNum":"'+ (dataObj[i].levelNum) +'"';
									meta += "}";
									meta += "}";
									zNodes.push(JSON.parse(meta));
								}
    						}
							data.rows= zNodes;
							viewModel.treeData.clear();
							viewModel.treeData.setData(data);
							for(var i=0;i<dataObj.length;i++){
    							var node=treeObj.getNodeByParam("id", dataObj[i].id, null);
    							if(dataObj[i].isLeaf == 0){
    								node.isParent=true;
    								treeObj.updateNode(node);
    							}
    						}
							if(searchKey != null && searchKey != ""){
								viewModel.events.selectTreeBySearch(searchKey);
							}
							// if(typeof(parentId) != "undefined" && parentId != ""){
								// var selectNode = treeObj.getNodeByParam("id", parentId, null);
								// treeObj.selectNode(selectNode);
								// treeObj.removeChildNodes(selectNode);
								// viewModel.events.expand();
							// }
						} else {
							u.showMessage({msg:result.msg, msgType:"error"});
						}
    				}
        		});
        	},
        	/*展开树*/
			expand : function(){
        		$.ajax({
                	type : 'GET',
    				url : ctrlBathPath+'/getAssetTypeDetailTreeByParentId',
    				data : {"parentId":parentId},
    				m_meta:m_meta,
    				success : function(result) {
    					if(result.flag == 'SUCCESS'){
    						var dataObj = result.data;
    						var zNodes = [];
    						var treeObj = $.fn.zTree.getZTreeObj(treeId);
    							/*子节点*/
    							var parentZNode = treeObj.getNodeByParam("id", parentId, null);
								if(parentZNode.check_Child_State == "-1"){
									for (var i =0; i< dataObj.length; i++){
										console.info(dataObj[i].depmethodCode);
	    								var newNode = {id:dataObj[i].id,pId:dataObj[i].parentId,name:dataObj[i].code + '-' +dataObj[i].name,code:dataObj[i].code,isLeaf:dataObj[i].isLeaf,levelNum:dataObj[i].levelNum,jildw:dataObj[i].jildw,netSalvageRate:dataObj[i].netSalvageRate,yujsynx:dataObj[i].yujsynx,depmethodName:dataObj[i].depmethodName,description:dataObj[i].description};
	        				            treeObj.addNodes(parentZNode, newNode);
	    							}
								}
    							
    							if(dataObj.length<1){
    								parentZNode.isParent=false;
    								treeObj.updateNode(parentZNode);
    							}
    						for(var i=0;i<dataObj.length;i++){
    							var node=treeObj.getNodeByParam("id", dataObj[i].id, null);
    							if(dataObj[i].isLeaf == 0){
    								node.isParent=true;
    								treeObj.updateNode(node);
    							}
    						}
    					} else {
    						u.showMessage({msg:result.msg, msgType:"error"});
    					}
    				}
    			});
			},
			/*树查询*/
        	selectTreeBySearch : function(searchKey){
        		var treeObj = $.fn.zTree.getZTreeObj(treeId);
            	var openList = treeObj.getNodesByParam("open",true);
            	for( var i=0; i<openList.length; i++) {
            		openList[i].open = false;
            		treeObj.updateNode(openList[i]);
                } 
            	var allNodes = treeObj.transformToArray(treeObj.getNodes());
            	treeObj.hideNodes(allNodes);
            	var nodeList = treeObj.getNodesByParamFuzzy("name",searchKey);
            	for( var i=0; i<nodeList.length; i++) { 
            		treeObj.expandNode(nodeList[i].getParentNode(), true, false, false); /*将搜索到的节点的父节点展开 */
            		treeObj.showNode(nodeList[i]);
                }
            	openList = treeObj.getNodesByParam("open",true);
            	for( var i=0; i<openList.length; i++) {
            		treeObj.showNode(openList[i]);
                }  
        	},
			/*树的双击或确认*/
        	treeComfirm:function(){
        		var treeObj = $.fn.zTree.getZTreeObj(treeId);
                var node = treeObj.getSelectedNodes()[0];
                levelNum=node.levelNum;
                if(levelNum ==0){
                	parentId='';
                	parentCode='';
                }else{
               	 	parentId=node.id;
               	 	parentCode=node.code;
                }
                /*单击树的操作放这里*/
          		viewModel.events.queryMain();

                $('.pop-close').click();
        	},
        /*查询计量单位*/
           queryMeasureUnit:function(){
           		$.ajax({
					type : 'GET',
					url : ctrlBathPath + '/queryMeasureUnit',
					data:{eleType:'MEASURE_UNIT'},
					dataType : 'json',
					m_meta:m_meta,
					success : function(result) {							
						if (result.flag == 'SUCCESS') {
							mdata=result.data.eleTypeData;
							var html='';
				        	if(mdata.length==0){
				        		html += '<option></option>';
				        	}else{
				        		for (var i = 0; i < mdata.length; i++) {
									html += '<option  name='+mdata[i].name+' value='+mdata[i].code + '>'+mdata[i].name+'</option>'
								}
				        	}
							$("#childJLDW").append(html);
						} else {
							mdata='';
						}	
					}
				});
          },
          /*查询折旧方法*/
           queryDepMethod:function(){
           		$.ajax({
					type : 'GET',
					url : ctrlBathPath + '/queryDepMethod',
					data:{depmethodType:'DEPMETHOD'},
					dataType : 'json',
					m_meta:m_meta,
					success : function(result) {							
						if (result.flag == 'SUCCESS') {
							deData=result.data.depmethodData;
							var html='';
				        	if(deData.length==0){
				        		html += '<option></option>';
				        	}else{
				        		for (var i = 0; i < deData.length; i++) {
									html += '<option  name='+deData[i].name+' value='+deData[i].code + '>'+deData[i].name+'</option>'
								}
				        	}
							$("#childZJFF").append(html);
							
						} else {
							deData='';
						}	
					}
				});
          },
        	/*查询左侧的资产类别版本集合*/
            queryAssetSortList:function(){
                $.ajax({
                    type : 'GET',
                    url : ctrlBathPath+'/getAssetSortList',
                    m_meta:m_meta,
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                           var html ="";
                           $(".assetType-list").remove();
							var dataObj = result.data;
							var selectId="";//保存默认选中的资产类别id,等for循环结束后拼接到页面后,对默认选中的设置radio选中
							for(var i = 0,length = dataObj.length;i < length;i++){
								if(dataObj[i].isDefault=="1"){
									selectId=dataObj[i].id;
								}
								if(dataObj[i].status == "0"){
									 html +=  '<li id="'+dataObj[i].id+'" code="'+dataObj[i].code+'" name="'+dataObj[i].name+'" isDefault="'+dataObj[i].isDefault+'" remark="'+dataObj[i].remark+'" version="'+dataObj[i].version+'" status="'+dataObj[i].status+'" orgId="'+dataObj[i].orgId+'" year="'+dataObj[i].year+'" class="assetType-list not-enabled" title="">'
									 		+ '<p class="clearfix"><label  class="u-radio default-version"><input type="radio" class="u-radio-button" name="options">'
											+ '<span class="u-radio-label">默认版本</span></label></p><p id="assetTypeCode" class="standard-name">'+dataObj[i].code+'</p>'
											+ '<p class="standard-name">'+dataObj[i].name+'</p><div class="standard-btn"><button class="assetTypeCopy"><i class="fa fa-files-o"></i><span>复制</span></button>' 
											+ '<button class="startUse"><i class="fa fa-unlock-alt"></i><span>启用</span></button></div></li>'
								}
								if(dataObj[i].status == "1"){
									 html +=  '<li id="'+dataObj[i].id+'" code="'+dataObj[i].code+'" name="'+dataObj[i].name+'" isDefault="'+dataObj[i].isDefault+'" remark="'+dataObj[i].remark+'" version="'+dataObj[i].version+'" status="'+dataObj[i].status+'" orgId="'+dataObj[i].orgId+'" year="'+dataObj[i].year+'" class="assetType-list cur" title="">'
									 		+ '<p class="clearfix"><label  class="u-radio default-version"><input type="radio" class="u-radio-button" name="options">'
											+ '<span class="u-radio-label">默认版本</span></label></p><p id="assetTypeCode" class="standard-name">'+dataObj[i].code+'</p>'
											+ '<p class="standard-name">'+dataObj[i].name+'</p><div class="standard-btn"><button class="assetTypeCopy"><i class="fa fa-files-o"></i><span>复制</span></button>' 
											+ '<button class="stopUse lock-config"><i class="fa fa-lock"></i><span>停用</span></button></div></li>'
								}
								
							}
							$(".standard-list").html(html);
							
							//按钮绑定事件-复制
							$(".assetTypeCopy").off('click').on("click",function(){
								copyFlag=true;
								classifyId=$(this).parent().parent().attr('id');
								classifyCode=$(this).parent().parent().attr('code');
								classifyName=$(this).parent().parent().attr('name');
							   	var code=$(this).parent().parent().attr('code');
							   	var name=$(this).parent().parent().attr('name');
							   	var year=$(this).parent().parent().attr('year');
							   	var remark=$(this).parent().parent().attr('remark');
							   $("#code").val(code);
							   $("#name").val(name);
							   $("#year").val(year);
							   $("#remark").val(remark);
							   $('#standardModal').modal('show');
							});
							//按钮绑定事件-停用
							$(".stopUse").off('click').on("click",function(){
								classifyId=$(this).parent().parent().attr('id');
								classifyCode=$(this).parent().parent().attr('code');
								classifyName=$(this).parent().parent().attr('name');
							   var id= $(this).parent().parent().attr('id');
							   var version= $(this).parent().parent().attr('version');
							   var params={};
							   params['id']=id;
							   params['version']=version;
							   params['status']="0";
							   viewModel.events.updateAssetTypeStatus(params);
							});
							//按钮绑定事件-启用
							$(".startUse").off('click').on("click",function(){
								classifyId=$(this).parent().parent().attr('id');
								classifyCode=$(this).parent().parent().attr('code');
								classifyName=$(this).parent().parent().attr('name');
							   var id= $(this).parent().parent().attr('id');
							   var version= $(this).parent().parent().attr('version');
							   var params={};
							   params['id']=id;
							   params['version']=version;
							   params['status']="1";
							   viewModel.events.updateAssetTypeStatus(params);
							});
							//选中左侧的效果,绑定查询数据
					        $('.standard-list li').off('click').on("click",function(){
					            $('.standard-list li').removeClass('select-li');
					            $(this).addClass('select-li');
					            //下面三个全局变量不能动,供别的方法传参使用
					            classifyId= $(this).attr('id');
					            classifyCode=$(this).attr('code');
					            classifyName=$(this).attr('name');
					            levelNum=0;
					            viewModel.events.initExpand();
					            viewModel.events.queryMain();
					        });
							
							//选中radio按钮
					        $('.default-version input').change(function(){
							 	var radioValue;
					        	var isDefault=$(this).parent().parent().parent().attr('isDefault');
					        	if(isDefault=='0'){
					        		radioValue='1';
					        	}else{
					        		radioValue='0';
					        	}
					            var id= $(this).parent().parent().parent().attr('id');
					            var version= $(this).parent().parent().parent().attr('version');
					             var orgId= $(this).parent().parent().parent().attr('orgId');
					            var params={};
					            params['id']=id;
					            params['version']=version;
					            params['isDefault']=radioValue;
					            params['orgId']=orgId;
								viewModel.events.updateIsDefault(params);
							 });


							//设置默认选中的设置radio选中
							$('.standard-list li[isDefault=1]').find('label').find('input').attr("checked","checked");
							$('.standard-list li[isDefault=1]').click();
							u.compMgr.updateComp();
                        }
                    }
                });
            },
            /*查询主数据*/
            queryMain:function(){
                var queryData = {};
                var LIKE_name = $('#assetType_search').val();
                queryData["searchKey"] = LIKE_name;
                queryData["classifyId"] = classifyId;
                if(levelNum ==0){
                	parentId='';
                }
                var levelNumTemp=levelNum;
                queryData["levelNum"] = eval(eval(levelNumTemp)+1);
                queryData["parentId"] = parentId;
                queryData["pageIndex"] = viewModel.dataTable.pageIndex();
				queryData["pageSize"] = viewModel.dataTable.pageSize();
                $.ajax({
                    type : 'POST',
                    data : queryData,
                    url : ctrlBathPath+'/getAssetSortDetailByConditions',
                    m_meta:m_meta,
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            var dataObj = result.data;
                          	viewModel.dataTable.setSimpleData(result.data.content);
        					viewModel.dataTable.totalPages(result.data.totalPages);
    						viewModel.dataTable.totalRow(result.data.totalElements);
    						viewModel.dataTable.setAllRowsUnSelect();
    						u.compMgr.updateComp();
                        }
                    },
                
                });
            },
             /*翻页*/
			pageChangeFunc : function(index) {
				viewModel.dataTable.pageIndex(index);
				viewModel.events.queryMain();
			},
			/*修改每页显示个数*/
			sizeChangeFunc : function(size) {
				viewModel.dataTable.pageSize(size);
				viewModel.dataTable.pageIndex(0);
				viewModel.events.queryMain();
			},
            addOneAssetTypeClassify:function(queryData){
            	  $.ajax({
                    type : 'POST',
                    url : ctrlBathPath+'/addOneAssetType',
                    m_meta:m_meta,
                   	contentType: 'application/json',
	                data:JSON.stringify(queryData),
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"新增成功!",msgType:"success"});
                            $('#standardModal').modal('hide');
                            viewModel.events.queryAssetSortList();
                        }else{
                        	if(result.msg=='001'){
                        		u.showMessage({msg:"编码重复,新增失败!",msgType:"error"});
                        	}else{
                        		u.showMessage({msg:"新增失败!",msgType:"error"});
                        	}
                        }
                    }
                });
            },
            CopyAssetTypeInfo:function(queryData){
            	  $.ajax({
                    type : 'POST',
                    url : ctrlBathPath+'/CopyAssetTypeInfo',
                    m_meta:m_meta,
                   	contentType: 'application/json',
	                data:JSON.stringify(queryData),
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                    		copyFlag=false;
                            u.showMessage({msg:"复制成功!",msgType:"success"});
                            $('#standardModal').modal('hide');
                            viewModel.events.queryAssetSortList();
                        }else{
                        	if(result.msg=='001'){
                        		u.showMessage({msg:"编码重复,复制失败!",msgType:"error"});
                        	}else{
                        		u.showMessage({msg:"复制失败!",msgType:"error"});
                        	}
                        }
                    }
                });
            },
            insertOneMaterialclass:function(addObj){
            	 $.ajax({
                    type : 'POST',
                    url : ctrlBathPath+'/insertOneMaterialclass',
                    m_meta:m_meta,
                   	contentType: 'application/json',
	                data:JSON.stringify(addObj),
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"新增成功!",msgType:"success"});
                            var treeObj = $.fn.zTree.getZTreeObj(treeId);
                            var selectNode = treeObj.getNodeByParam("id", parentId, null);
							treeObj.selectNode(selectNode);
							treeObj.removeChildNodes(selectNode);
							selectNode.isParent = true;
							treeObj.updateNode(selectNode);
							viewModel.events.expand();
							treeObj.expandNode(selectNode, true, true, true);
             				viewModel.events.queryMain();
                        }else{
                        	u.showMessage({msg:result.msg,msgType:"error"});
                        }
                    },
                    complete:function(){
                    	/*清空之前输入的数据*/
			        	$("#childCode").val('');
			        	$("#childName").val('');
			        	$("#childNetSalvageRate").val(0);
			        	$("#childYujsynx").val(0);
			        	$("#childDescription").val('');
                    }
                });
            },
            batchDeleteMaterialclass:function(list){
            	$.ajax({
                    type : 'POST',
                    url : ctrlBathPath+'/batchDeleteMaterialclass',
                    m_meta:m_meta,
                   	contentType: 'application/json',
	                data:JSON.stringify(list),
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"删除成功!",msgType:"success"});
                            viewModel.events.initExpand();
                            viewModel.events.queryMain();
                        }else{
                        	u.showMessage({msg:result.msg,msgType:"error"});
                        }
                    }
                });
            },
          batchUpdateMaterialclass:function(list){
            	$.ajax({
                    type : 'POST',
                    url : ctrlBathPath+'/batchUpdateMaterialclass',
                    m_meta:m_meta,
                   	contentType: 'application/json',
	                data:JSON.stringify(list),
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"保存成功!",msgType:"success"});
                            viewModel.events.queryMain();
                        }else{
                        	u.showMessage({msg:"保存失败!"+result.msg,msgType:"error"});
                        }
                    }
                });
            },
            updateAssetTypeStatus:function(params){
            	$.ajax({
                    type : 'GET',
                    url : ctrlBathPath+'/updateAssetTypeStatus',
                    m_meta:m_meta,
	                data:params,
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"操作成功!",msgType:"success"});
                            viewModel.events.queryAssetSortList();
                        }else{
                        	u.showMessage({msg:"操作失败!",msgType:"error"});
                        }
                    }
                });
            },
           updateIsDefault:function(params){
            	$.ajax({
                    type : 'GET',
                    url : ctrlBathPath+'/updateIsDefault',
                    m_meta:m_meta,
	                data:params,
                    success : function(result) {
                        if(result.flag=='SUCCESS'){
                            u.showMessage({msg:"设置成功!",msgType:"success"});
                        }else{
                        	u.showMessage({msg:"设置失败!",msgType:"error"});
                        }
                    }
                });
            },  
        }
    };
    
    /*每次失去焦点都执行更新动作*/
	window.updateInputValue=function(obj){
			$(obj).hide();
			$(obj).siblings('.type-value').show();
			var val = $(obj).val();
        	var index = $(obj).parents('tr').index();
        	if($(obj).parents('td').index() == 0){
        		if(val==undefined || val.length==0){
        			u.showMessage({msg:"类别代码不能为空!",msgType:"warning"});
        			return false;
        		}
        		var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
	  			if(reg.test(val)){
					u.showMessage({msg:"类别代码不能包含汉字!",msgType:"warning"});
					return false;
				} 
        		var codeHistory=beforeUpdateObj.code;
        		if(codeHistory==val){
        			//如果没有值的变化,不必走后台了。
        			return false;
        		}
        		var treeObj = $.fn.zTree.getZTreeObj("bdComTree");
        		var id=viewModel.dataTable.getRow(index).getValue("id");
        		var name=viewModel.dataTable.getRow(index).getValue("name");
				var node = treeObj.getNodeByParam("id", id, null);
				node['name']=val+'-'+name;
        		treeObj.updateNode(node);
        		/*资产类别代码更新*/
        		viewModel.dataTable.getRow(index).setValue('code',val);
        		viewModel.dataTable.getRow(index).setValue('remark',codeHistory);//通过remark传递后台原始值,以便比较code发生变化时,对应子节点的parentCode要更新。
        	}
        	if($(obj).parents('td').index() == 1){
        		if(val==undefined || val.length==0){
        			u.showMessage({msg:"类别名称不能为空!",msgType:"warning"});
        			return false;
        		}
        		var nameHistory=beforeUpdateObj.name;
        		if(nameHistory==val){
        			//如果没有值的变化,不必走后台了。
        			return false;
        		}
        		var treeObj = $.fn.zTree.getZTreeObj("bdComTree");
        		var id=viewModel.dataTable.getRow(index).getValue("id");
        		var code=viewModel.dataTable.getRow(index).getValue("code");
				var node = treeObj.getNodeByParam("id", id, null);
				node['name']=code+'-'+val;
        		treeObj.updateNode(node);
        		/*资产名称名称更新*/
        		viewModel.dataTable.getRow(index).setValue('name',val);
        		viewModel.dataTable.getRow(index).setValue('remark',nameHistory);//通过remark传递后台原始值,以便比较name发生变化时,对应子节点的parentName要更新。
        	}
        	if($(obj).parents('td').index() == 3){
        		var yujsynxHistory=beforeUpdateObj.yujsynx;
        		if(yujsynxHistory==val){
        			//如果没有值的变化,不必走后台了。
        			return false;
        		}
        		/*折旧月数更新*/
        		viewModel.dataTable.getRow(index).setValue('yujsynx',val);
        	}
        	if($(obj).parents('td').index() == 5){
        		var parentCodeHistory=beforeUpdateObj.parentCode;
        		if(parentCodeHistory==val){
        			//如果没有值的变化,不必提示了。
        			return false;
        		}
        		u.showMessage({msg:"不支持修改上级代码!", msgType:"warning"});
        		viewModel.dataTable.getRow(index).setValue('parentCode',parentCodeHistory);
        		return false;
        	}
        	if($(obj).parents('td').index() == 6){
        		var descriptionHistory=beforeUpdateObj.description;
        		if(descriptionHistory==val){
        			//如果没有值的变化,不必走后台了。
        			// u.showMessage({msg:"修改成功!", msgType:"success"});
        			return false;
        		}
        		/*说明更新*/
        		viewModel.dataTable.getRow(index).setValue('description',val);
        	}
        	if($(obj).parents('td').index() == 7){
        		var netSalvageRateHistory=beforeUpdateObj.netSalvageRate;
        		if(netSalvageRateHistory==val){
        			//如果没有值的变化,不必走后台了。
        			return false;
        		}
        		/*经残值率更新*/
        		var regu = "^[0-9]+(.[0-9]{1,3})?$";
			    var re = new RegExp(regu);
			    if (!re.test(val)) {
			    	u.showMessage({msg:"输入内容格式不正确!",msgType:"warning"});
			    	return false;
			    }
    
        		viewModel.dataTable.getRow(index).setValue('netSalvageRate',val);
        	}
        	var obj=viewModel.dataTable.getRow(index).getSimpleData();
        	$.ajax({
				type : 'POST',
				url : ctrlBathPath+'/updateByClassifyIdAndIdAndVersion',
				data : JSON.stringify(obj),
				contentType: 'application/json',
				m_meta:m_meta,
				success : function(result) {
					if(result.flag == 'SUCCESS'){
						u.showMessage({msg:"修改成功!", msgType:"success"});
						viewModel.events.queryMain();
					} else {
						u.showMessage({msg:result.msg, msgType:"error"});
					}
				}
		});  
	}
	
	/*当下拉值有变化时,执行更新*/
	window.saveOptionValue=function(obj){
			var name=$(obj).find( "option:selected").text();
        	var code=$(obj).find( "option:selected").val();
        	var index = $(obj).parents('tr').index();
        	if($(obj).parents('td').index() == 2){
        		/*计量单位更新*/
        		viewModel.dataTable.getRow(index).setValue('jildw',code);
        	}
        	if($(obj).parents('td').index() == 4){
        		/*折旧方法更新*/
        		viewModel.dataTable.getRow(index).setValue('depmethodCode',code);
        		viewModel.dataTable.getRow(index).setValue('depmethodName',name);
        	}
        	var obj=viewModel.dataTable.getRow(index).getSimpleData();
        	$.ajax({
				type : 'POST',
				url : ctrlBathPath+'/updateByClassifyIdAndIdAndVersion',
				data : JSON.stringify(obj),
				contentType: 'application/json',
				m_meta:m_meta,
				success : function(result) {
					if(result.flag == 'SUCCESS'){
						u.showMessage({msg:"修改成功!", msgType:"success"});
						viewModel.events.queryMain();
					} else {
						u.showMessage({msg:result.msg, msgType:"error"});
					}
				}
		});   
		
	}
	
    function assetHeight() {
        D.DM.commonWidth();
        $('.content-side').css({'height': D.windowHeight - D.headerHeight - D.contentBtn - 43});
        $('.standard-list').css({'height': D.windowHeight - D.headerHeight - D.contentBtn - 43});
        $('.type-tree').css({'height': D.windowHeight - D.headerHeight - D.contentBtn - 1});
        $('.type-tree .ztree').css({'height': D.windowHeight - D.headerHeight - D.contentBtn - 43});
        var gridheight1 = D.windowHeight - D.headerHeight - D.contentBtn - 130;
        var tableH1 = $('.type-table .u-grid-content-div table').height();
        if (tableH1 >= gridheight1) {
            $('.type-table .u-grid-content-div').css({'height': gridheight1, 'overflowY': 'auto'});
        } else {
            $('.type-table .u-grid-content-div').css({'height': 'auto', 'overflowY': 'hidden'});
        }
    }
    
    window.onresize = function() {
        assetHeight();
    };
	
    var init = function (args) {
       m_meta=args.m_meta;
        app = u.createApp({
            el: '#content',
            model: viewModel
        });
        //初始化加载计量单位,折旧方法
        viewModel.events.queryMeasureUnit();
        viewModel.events.queryDepMethod();
        //查询左侧数据列表
        viewModel.events.queryAssetSortList();

        u.compMgr.updateComp();
        D.DM.commonWidth();
        assetHeight();

        /*点击新增页面  资产类别版本的保存按钮*/
        $('#assetTypeSaveButton').on('click', function () {
			var code = $.trim($('#code').val());
        	var name = $.trim($('#name').val());
        	var year = $.trim($('#year').val());
        	var remark = $.trim($('#remark').val());
        	if(code=='' || code.length==0){
        		u.messageDialog({ msg:"资产分类代码不能为空!", title: "提示框", btnText: "确定" });
        		return false;
        	}
        	var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
  			if(reg.test(code)){
				u.showMessage({msg:"资产分类代码不能包含汉字!",msgType:"warning"});
				return false;
			} 
        	if(name=='' || name.length==0){
        		u.messageDialog({ msg:"资产分类名称不能为空!", title: "提示框", btnText: "确定" });
        		return false;
        	}
        	if(year=='' || year.length==0){
        		u.messageDialog({ msg:"发布年度不能为空!", title: "提示框", btnText: "确定" });
        		return false;
        	}
        	var regu=/^(1949|19[5-9]\d|20\d{2}|2100)$/;
		    if (!regu.test(year)) {
		    	u.showMessage({msg:"请输入正确年份格式!",msgType:"warning"});
		    	return false;
		    }

			 var queryData={};
	    	 queryData['code']=code;
	    	 queryData['name']=name;
	    	 queryData['year']=year;
	    	 queryData['remark']=remark;
	    	 if(copyFlag){
	    	 	queryData['id']=classifyId;
	    	 	if(classifyCode==code){
	    	 		u.messageDialog({msg:"资产类别代码重复!",title:"提示框",btnText:"确定"});
	    	 		return false;
	    	 	}
	    	 	viewModel.events.CopyAssetTypeInfo(queryData);
	    	 }else{
				viewModel.events.addOneAssetTypeClassify(queryData);
	    	 }
        });

		/*搜索按钮*/
        $('.fa-search').on('click',function(){
        	viewModel.events.queryMain();
        });
        
        //每次弹框要先清除数据
        $('.plus-standard').click(function(){
        	$('#code').val('');
            $('#name').val('');
            $('#year').val('');
            $('#remark').val('');
            copyFlag=false;
            $('#standardModal').modal('show');
        });
        
        /*按下回车键触发*/
		$(".gs-input").keydown(function(event){
			if(event.keyCode == "13"){
				viewModel.events.queryMain();
			}
		});
		/*搜索输入框*/
		$(".gs-input").keyup(function(event){
			if($.trim($(this).val()) == ''){
				viewModel.dataTable.pageIndex(0);
				viewModel.events.queryMain();
			}
		});
		
		/*删除功能*/
        $('.deleteRow').on('click',function(){
            var rows=viewModel.dataTable.getSelectedRows();
            if(rows.length==0){
                u.showMessage({msg:"请选择要删除的行",msgType:"warning"});
            }else{
            	 var index=viewModel.dataTable.getSelectedIndices();
                 var rowData=[];
                 for(var i=0;i<index.length;i++){
                  	var obj=viewModel.dataTable.getRow(index[i]).getSimpleData();
                  	/*判断删除的这个节点是不是末级,只有是末级的才执行删除*/
                  	var isLeaf=obj.isLeaf
                  	if(isLeaf==0){
                  		 u.showMessage({msg:"要删除的行不是末级节点!",msgType:"warning"});
                  		 return false;
                  	}
                 	rowData.push(obj);
                 }
	            u.confirmDialog({
	             msg: "是否删除?",
	             title: "删除确认",
	             onOk: function() {
	                viewModel.events.batchDeleteMaterialclass(rowData);
	             },
	             onCancel: function() {}
	          });
            }
        });
		
		
		/*以下方法都是新的*/
		/*左侧菜单缩进*/
        $(".side-control-in").on('click',function(){
        	if($(this).find('span').hasClass('fa fa-caret-left')){
        		$('.content-side-left').hide();
        		$('.content-side-right').css('margin-left', '0');
            	$('.side-control-in').find('span').removeClass('fa-caret-left').addClass('fa fa-caret-right');
            	$(this).css('left', '0');
        	}else{
        		$('.content-side-left').show();
        		$('.content-side-right').css('margin-left', '251px');
            	$('.side-control-in').find('span').removeClass('fa-caret-right').addClass('fa fa-caret-left');
            	$(this).css('left', '250px');
        	}
        });
        /*左侧菜单缩进end*/
        
        /*双击输入*/
        $('.grid-bg').on('dblclick', '.type-value', function () {
        	$(this).hide();
        	$(this).siblings('input').show().focus();
        	var index = $(this).parents('tr').index();
        	var thisValue = $(this).text();
        	$(this).siblings('input').val(thisValue);
        	beforeUpdateObj=viewModel.dataTable.getRow(index).getSimpleData();       	
        });
        /*失去焦点*/
       /*
        $('.grid-bg').on('blur', '.type-ipt', function () {
               	$(this).attr('disabled', true);
       });*/


        /*新增资产类别*/
        $('.add-type').on('click', function () {
        	if(classifyCode==undefined ||classifyCode.length==0){
        		u.messageDialog({ msg:"请先选择资产类别!", title: "提示框", btnText: "确定" });
        		return false;
        	}
        	/*清空之前输入的数据*/
        	$("#childCode").val('');
        	$("#childName").val('');
        	$("#childNetSalvageRate").val(0);
        	$("#childYujsynx").val(0);
        	$("#childDescription").val('');
        	if(levelNum==0){
        		/*增加的是根节点,则空着,清空*/
        		$("#parentCode").text("");
        		$("#parentName").text("");
        		$("#parentJLDW").text("");//计量单位
        		$("#parentJCZL").text("");//净残值率
        		$("#parentZJYS").text("");//折旧月数
        		$("#parentZJFF").text("");//折旧方法
        		$("#parentDescription").text('');//说明
        	}else{
        		/*增加的非根节点*/
        		var treeObj = $.fn.zTree.getZTreeObj(treeId);
                var node = treeObj.getSelectedNodes()[0];
        		$("#parentCode").text(node.code);
        		$("#parentName").text(node.name.split("-")[1]);
        		
        		var jldwCode=node.jildw;
        		var jldwName;
        		if(jldwCode==undefined || jldwCode.length==0 || mdata.length==0 || jldwCode == "null"){
        			$("#parentJLDW").text('');//计量单位
        		}else{
        			for (var i = 0; i < mdata.length; i++) {
	        			if(mdata[i].code==jldwCode){
	        				jldwName=mdata[i].name;
	        			}
					}
					$("#parentJLDW").text(jldwName);//计量单位
        		}
        		var netSalvageRate=node.netSalvageRate;
        		if(netSalvageRate==null ||netSalvageRate=='null'||netSalvageRate==undefined){
        			$("#parentJCZL").text('');//净残值率
        		}else{
        			$("#parentJCZL").text(node.netSalvageRate);//净残值率
        		}
        		
        		if(node.yujsynx=="null" ||node.yujsynx==null||node.yujsynx==undefined){
        			$("#parentZJYS").text('');//折旧月数
        		}else{
        			$("#parentZJYS").text(node.yujsynx);//折旧月数
        		}
        		if(node.depmethodName=="null" || node.depmethodName==null ||node.depmethodName==undefined){
        			$("#parentZJFF").text('');//折旧方法
        		}else{
        			$("#parentZJFF").text(node.depmethodName);//折旧方法
        		}
        		if(node.description==undefined || node.description=='null' || node.description==null){
        			$("#parentDescription").text('无');//说明
        		}else{
        			$("#parentDescription").text(node.description);//说明
        		}
        	}
        	$('#typeModal').modal('show');
        });
        
        //保存按钮
        $("#saveAssetBut").on('click',function(){
            //获取新增页面的值
        	var code=$("#childCode").val();
        	if (code=='' || code.length==0) {
		    	u.showMessage({msg:"资产分类代码不能为空!",msgType:"warning"});
		    	return false;
		    }
		    var reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
  			if(reg.test(code)){
				u.showMessage({msg:"资产分类代码不能包含汉字!",msgType:"warning"});
				return false;
			} 
        	var name=$("#childName").val();
        	if (name=='' ||name.length==0) {
		    	u.showMessage({msg:"资产分类名称不能为空!",msgType:"warning"});
		    	return false;
		    }
        	var netSalvageRate=$("#childNetSalvageRate").val();
        	var regu1 =/^[0-9]+(.[0-9]{1,3})?$/;
		    if (!regu1.test(netSalvageRate)) {
		    	u.showMessage({msg:"输入内容格式应为0到1的小数!",msgType:"warning"});
		    	return false;
		    }
        	var yujsynx=$("#childYujsynx").val();
        	var regu2 =/^[-+]?\d*$/;
		    if(!regu2.test(yujsynx)){    
		    	u.showMessage({msg:"输入内容应为整数!",msgType:"warning"});
		    	return false;
		    }
        	var description=$("#childDescription").val();
        	
        	var option=$("#childJLDW option:selected"); //获取计量单位选中的项
    		var jldwCode = option.val();	/*计量单位码*/
    		var jldwName = option.text();	/*计量单位名称*/
    		
    		var option=$("#childZJFF option:selected"); //获取折旧方法选中的项
    		var zjffCode = option.val();	/*折旧方法码*/
    		var zjffName = option.text();	/*折旧方法名称*/
    		var addObj={};
    		addObj['classifyId']=classifyId;
    		addObj['classifyCode']=classifyCode;
    		addObj['classifyName']=classifyName;
    		addObj['code']=code;
    		addObj['name']=name;
    		addObj['description']=description;
		    addObj['yujsynx']=yujsynx;
    		addObj['netSalvageRate']=netSalvageRate;
    		addObj['depmethodCode']=zjffCode;
    		addObj['depmethodName']=zjffName;
    		addObj['jildw']=jldwCode;
		    
    		if(levelNum>0){
	    		addObj['parentId']=parentId;
	    		addObj['parentCode']=parentCode;
    		}
    		var levelNum1=eval(eval(levelNum)+1);
    		addObj['levelNum']=levelNum1;
    		if(levelNum1==2){
    			addObj['code1']=parentCode;
    			addObj['id1']=parentId;
    		}else if(levelNum1==3){
    			addObj['code2']=parentCode;
    			addObj['id2']=parentId;
    		}else if(levelNum1==4){
    			addObj['code3']=parentCode;
    			addObj['id3']=parentId;
    		}else if(levelNum1==5){
    			addObj['code4']=parentCode;
    			addObj['id4']=parentId;
    		}else if(levelNum1==6){
    			addObj['code5']=parentCode;
    			addObj['id5']=parentId;
    		}
        	viewModel.events.insertOneMaterialclass(addObj);
        });
        
        /*资产分类树查询start*/
        $("#tree-searchBtn").off('click').on('click',function(){
    		viewModel.events.initExpand();
        });
        
        /*按下回车键触发*/
		$("#tree-searchInput").keydown(function(event){
			if(event.keyCode == "13"){
	    		viewModel.events.initExpand();
			}
		});
		/*资产分类树查询end*/
        
    };
    return {
        'model': viewModel,
        'template': template,
        'init': init
    };
});



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万米高空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值