EditController.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. var app = angular.module('app',['baseServices','SysDataSourceDefService','SysDataSourceService','commonListService','arrayToolService']);
  2. app.controller("EditController",['$scope','BaseService','SysDataSourceDef','SysDataSource','CommonListService','ArrayToolService',function($scope,BaseService,SysDataSourceDef,SysDataSource,CommonListService,ArrayToolService){
  3. $scope.CommonList=CommonListService;
  4. $scope.ArrayTool=ArrayToolService;
  5. $scope.prop={};//prop 等于一个数据源初始化
  6. //如果id为空,获取数据源模板
  7. if(id==""){
  8. SysDataSourceDef.getAll(function(data){
  9. $scope.sysDataSourceDefs=data;
  10. });
  11. }else{
  12. SysDataSource.detail(id,function(data){
  13. $scope.prop=data;
  14. $scope.prop.settingJson=JSON.parse(data.settingJson);
  15. });
  16. }
  17. $scope.save=function(prop){
  18. var frm=$('#sysDataSourceForm').form();
  19. if(!frm.valid()) return;
  20. SysDataSource.save(prop,function(data){
  21. if(data.result==1){
  22. $.ligerDialog.confirm(data.message+",是否继续操作", "提示信息",
  23. function(rtn) {
  24. if (rtn) {
  25. window.location.reload();
  26. } else {
  27. window.location.href = "list.ht";
  28. }
  29. });
  30. }
  31. else{
  32. //title,msg,detail
  33. $.ligerDialog.err("提示信息","保存数据源出错了",data.message);
  34. }
  35. });
  36. }
  37. //监听这个数据源对应的数据源模板,改变了就设置
  38. $scope.sysDataSourceDefChange=function(newVal){
  39. $scope.prop.settingJson=JSON.parse(newVal.settingJson);
  40. $scope.prop.classPath=newVal.classPath;
  41. $scope.prop.initMethod=newVal.initMethod;
  42. $scope.prop.closeMethod=newVal.closeMethod;
  43. $scope.dbTypeChange($scope.prop.dbType);//刷新一次数据库类型
  44. $scope.aliasChange($scope.prop.alias);//刷新一次别名
  45. }
  46. $scope.aliasChange=function(val){
  47. if($scope.prop.settingJson==null) return;
  48. for(var i=0;i<$scope.prop.settingJson.length;i++){
  49. var attr = $scope.prop.settingJson[i];
  50. if(attr.name.toLowerCase().indexOf("alias")!=-1){
  51. attr.value=val;
  52. }
  53. }
  54. }
  55. //数据库类型改变,那么就初始化对应的字段
  56. $scope.dbTypeChange=function(dbType){
  57. for(var i =0;i<$scope.dbTypeList.length;i++){
  58. if($scope.prop.settingJson==null) return;
  59. var d = $scope.dbTypeList[i];
  60. if(d.value!=dbType) continue;
  61. for(var j=0;j<$scope.prop.settingJson.length;j++){
  62. var attr = $scope.prop.settingJson[j];
  63. if(attr.name.toLowerCase().indexOf("url")!=-1){
  64. attr.value=d.url;
  65. }
  66. else if(attr.name.toLowerCase().indexOf("driver")!=-1){
  67. attr.value=d.driverName;
  68. }
  69. }
  70. }
  71. }
  72. //测试连接
  73. $scope.checkConnection=function(prop){
  74. SysDataSource.checkConnection(prop,function(data){
  75. alert(data.message);
  76. });
  77. }
  78. //数据库类型数组
  79. $scope.dbTypeList=[
  80. {
  81. value:'mysql',
  82. driverName:'com.mysql.jdbc.Driver',
  83. url:'jdbc:mysql://主机:3306/数据库名?useUnicode=true&characterEncoding=utf-8'
  84. },
  85. {
  86. value:'oracle',
  87. driverName:'oracle.jdbc.OracleDriver',
  88. url:'jdbc:oracle:thin:@主机:1521:数据库实例'
  89. },
  90. {
  91. value:'mssql',
  92. driverName:'com.microsoft.sqlserver.jdbc.SQLServerDriver',
  93. url:'jdbc:sqlserver://主机:1433;databaseName=数据库名;'
  94. }
  95. ];
  96. }]);