var sysQueryViewApp = angular.module('sysQueryViewApp', [ 'baseServices','DataRightsApp' ]); sysQueryViewApp.controller('sysQueryViewCtrl',['$scope','BaseService','dataRightsService',function($scope,BaseService,dataRightsService){ var service = dataRightsService; service.noRights = true; $scope.service = service; $scope.type = "sysQueryView"; window.setTimeout(function(){ $scope.tab =$("#tab").ligerTab({}); $scope.hasInitTab = true; $scope.$digest(); $scope.tab.selectTabItem("filterSetting"); var width = $('div[tabid="filterSetting"]').width()- 50; var height = $("#sql").height(); editor = CodeMirror.fromTextArea(document.getElementById("sql"), { mode: "text/x-mariadb", lineWrapping:true, lineNumbers: true }); editor.setSize(width,height); $scope.tab.selectTabItem("baseSetting"); // //初始化日期控件 FormUtil.initCalendar(); $("#ruleDiv").linkdiv({data:$scope.filterFields.conditions, updateContent:updateContent, rule2json:rule2json}); $("#sqlTip").qtip({ content:{ text:'
该脚本为 groovyScript脚本 ,返回值为可执行的sql语句,' + '

例:String sql ="select ID,field from table where 1=1";
' + 'if(params.containsKey("CATEGORY"))
' + '  sql += " and CATEGORY like \'%"+CATEGORY+"%\'";
' + 'return sql;

' + '其中的params为系统所封装的一个Map对象,他封装了上下文查询条件。' + '
' } }); $("#sqlTip2").qtip({ content:{ text:'
该脚本为sql语句 ,所填写语句会在where 1=1 后面添加,' + '

例:AND USERID = [CUR_USER]' + '

' + '
' } }); $scope.$digest(); },500); service.init($scope); $scope.save = function(){ if ($scope._validForm()) { if ($scope.dataRightsJson.id) { $.ligerDialog.confirm("保存会覆盖模板,如果修改了模板请手动保存模板后再进行保存业务数据模板,是否继续保存?","提示信息",function(rtn) { if (rtn) service.customFormSubmit(showViewResponse); }); } else { service.customFormSubmit(showViewResponse); } } }, showViewResponse =function(responseText){ $.ligerDialog.closeWaitting(); var obj = new com.hotent.form.ResultMessage(responseText); if (obj.isSuccess()) { $.ligerDialog.confirm( obj.getMessage()+",是否继续操作","提示信息", function(rtn) { if(rtn){ var url=location.href.getNewUrl(); if(url.indexOf("?id=")!=-1){ window.location.href = location.href.getNewUrl(); } else{ var viewId=obj.getCause(); window.location.href =location.href +"&id=" +viewId; } }else{ var url="list.ht?sqlId=" +sqlId; window.location.href = url.getNewUrl(); } }); } else { $.ligerDialog.err("提示信息","保存视图失败!",obj.getMessage()); } }, $scope._validForm = function (){ var form=$('#dataRightsForm'); if(!form.valid()) return false; //判断排序字段太多报错问题 if($scope.sortFields&&$scope.sortFields.length>3){ $.ligerDialog.error("排序字段不能设置超过3个,请检查!","提示信息"); $scope.tab.selectTabItem("sortSetting"); return false; } //判断管理字段 if(service.manageFieldValid($scope.manageFields)){ $.ligerDialog.error("功能按钮出现重复的类型,请检查!","提示信息"); $scope.tab.selectTabItem("manageSetting"); return false; } if($scope.dataRightsJson.templateAlias=="") { $scope.tab.selectTabItem("baseSetting"); form.valid(); return false; } return true; } //预览 $scope.preview = function (){ var alias = $scope.dataRightsJson.sqlAlias; var view = $scope.dataRightsJson.alias; if($.isEmpty(alias)){ $.ligerDialog.error("请设置完信息保存后预览!","提示信息"); return ; } var url=__ctx+ "/platform/system/sysQueryView/"+alias+"/"+view+".ht"; url=url.getNewUrl(); $.openFullWindow(url); } //编辑模板 $scope.editTemplate = function (){ var id = $scope.dataRightsJson.id; if($.isEmpty(id)){ $.ligerDialog.error("请设置完信息保存后编辑模板!","提示信息"); return ; } var url=__ctx+ "/platform/system/sysQueryView/editTemplate.ht?id="+id; url=url.getNewUrl(); $.openFullWindow(url); } //添加菜单 $scope.addToResource = function () { var alias = $scope.dataRightsJson.sqlAlias; var url="/platform/system/sysQueryView/"+alias+"/"+$scope.dataRightsJson.alias+".ht"; AddResourceDialog({addUrl:url}); } function setGroupText(){ var txt = ""; for(var i = 0 ; i < $scope.groupingView.length ; i++){ txt+=" {"+(i)+"} "; } for(var i = 0 ; i < $scope.groupingView.length ; i++){ if(!$scope.groupingView[i].txtChange) $scope.groupingView[i].groupText = " "+ $scope.groupingView[i].groupDesc +" : {0},数量{1} " } } $scope.selectFieldToGroup = function(field){ $scope.groupingView = $scope.groupingView || []; if(!field.gchecked){ for(var i = 0 ; i < $scope.groupingView.length ; i++){ if($scope.groupingView[i].groupField == field.name){ $scope.groupingView.splice(i,1); setGroupText(); return; } } return; } for(var i = 0 ; i < $scope.groupingView.length ; i++){ if($scope.groupingView[i].groupField == field.name){ return; } } $scope.groupingView.push({ groupField:field.name, groupDesc:field.fieldDesc, groupColumnShow : 1, groupSummary:1, groupOrder : "asc" }) setGroupText(); } }]) .controller('sysQueryViewSortListCtrl',['$scope','BaseService','dataRightsService',function($scope,BaseService,dataRightsService){ $scope.sysQueryViewList=sysQueryViewList; $scope.moveTr = dataRightsService.moveTr; $scope.save = function(){ var params = {},list = []; for ( var i = 0; i < $scope.sysQueryViewList.length; i++) { list.push({ id:$scope.sysQueryViewList[i].id, sn:i }) } params.list = JSON.stringify(list); $.post(__ctx+"/platform/system/sysQueryView/saveSortList.ht", params,function(data){ if(data.success){ frameElement.dialog.get('sucCall')(frameElement.dialog); } else $.ligerDialog.error("保存失败!","提示信息"); }); } $scope.close = function(){ frameElement.dialog.close(); } }]) .controller('sysQueryViewExportsCtrl',['$scope','BaseService','dataRightsService',function($scope,BaseService,dataRightsService){ var params = frameElement.dialog.get('conf').param; $scope.colModels = $.extend(true,[],params.colModel); $scope.exports = { type:1 }; $scope.selectAll = function(flag){ for ( var i = 0; i < $scope.colModels.length; i++) { switch(flag){ case 1: $scope.colModels[i].gchecked = true; break; case 2: $scope.colModels[i].gchecked = !$scope.colModels[i].gchecked; break; case 3: $scope.colModels[i].gchecked = false; break; } } } $scope.close = function(){ frameElement.dialog.close(); } $scope.toExports = function(){ var exportNames = []; for ( var i = 0; i < $scope.colModels.length; i++) { if($scope.colModels[i].gchecked&&$scope.colModels[i].label) exportNames.push($scope.colModels[i].name) } var param = { viewId : params.viewId, isAll:$scope.exports.type==1?1:0, exportNames:exportNames.join(","), orderSeq:params.sortorder, sortField:params.sortname }; param=$.extend({},param,frameElement.dialog.get('conf').searchParams); switch($scope.exports.type){ case 2: case "2": param.paseSize = params.rowNum; param.page = params.page; break; } var form = $('#form'); form.empty(); for(var key in param){ var input = $(""); form.append(input); } $.ligerDialog.waitting("正在导出,请稍等!"); form.submit(); /*window.setTimeout(function(){ frameElement.dialog.close(); },2000);*/ } $scope.hasChecked = function(){ for ( var i = 0; i < $scope.colModels.length; i++) { if($scope.colModels[i].gchecked) return true; } } $scope.selectAll(1); }]) //过滤条件隐藏属性 .directive('filterHidden', function() { return { restrict : 'E', replace : true, template : '' }; }) //过滤条件 , 嵌入式 .directive('filterIncludeSetting', function() { return { restrict : 'E', replace : true, template : ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ '脚本类型:'+ ''+ '
'+ '
'+ ''+ '条件设置'+ ''+ '
'+ '
'+ '
'+ '
'+ '添加条件'+ '
'+ '
'+ '
'+ '组合规则'+ '
'+ '
'+ '
'+ '拆分规则'+ '
'+ '
'+ '
'+ '删除'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ ''+ 'SQL设置'+ ''+ ''+ '追加SQL过滤'+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
'+ '
'+ ''+ '
'+ '
'+ ''+ '
'+ '
常用变量:'+ ''+ '
'+ ''+ '
'+ '
'+ '
', link:function(scope){ scope.commonVars = commonVars; } }; })