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 : ''+
''+
''+
''+
'脚本类型:'+
''+
' | '+
'
'+
''+
''+
''+
''+
''+
''+
' | '+
'
'+
''+
'
',
link:function(scope){
scope.commonVars = commonVars;
}
};
})