前前后后5周。整理总结备用,知识点:
1、路由;
3、页面弹框;
4、过滤器;
5、生成完doc后再初始化echarts。
<!DOCTYPE html> <html ng-app="home.controller"> <head> <Meta charset="utf-8"> <title>平台</title> <link href="page/common/css/bootstrap.min.css" rel="stylesheet"/> <link href="page/common/css/site.min.css?1507601668481" rel="stylesheet"/> <script src="page/common/js/angular.js"></script> <script src="page/common/js/angular-animate.min.js"></script> <script src="page/common/js/ui-bootstrap-tpls.js"></script> <script src="page/common/js/jquery-1.10.2.js"></script> <script src="page/common/js/angular-ui-router.min.js"></script> <script src="page/common/js/echarts-all.js"></script> <script src="page/app/js/home-controller.js"></script> <script src="page/app/js/createdrl-controller.js"> </script> <script src="page/app/js/pcd-api.js"> </script> <script src="page/app/js/ruleteam-controller.js"> </script> <style type="text/css"> .login_header { background: url(./page/pictures/logo_idm.jpg) center left no-repeat; width: 100%; height: 100px; background-color: #FFFFFF; margin-top: 0px; } .spinner { left: 30% ; width: 60px; height: 60px; background-color: #67CF22; margin: 100px auto; -webkit-animation: rotateplane 1.2s infinite ease-in-out; animation: rotateplane 1.2s infinite ease-in-out; } @-webkit-keyframes rotateplane { 0% { -webkit-transform: perspective(120px) } 50% { -webkit-transform: perspective(120px) rotateY(180deg) } 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) } } @keyframes rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg) } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } } ul { margin: 0; padding: 0; } li { margin: 0; padding: 0; } #myTab li { width: 25%; float: left; height: 40px; list-style: none; margin: 0; padding: 0; } #myTab li img { float: left; height: 40px; } #myTab li a { color: white; text-align: center; position: relative; display: block; padding: 10px 15px; } .blue { background: #0f9af2; } .gray { background: #dfdfdf; } .tabPaneUl { width: 700px; margin: 0 auto; list-style: none; } .tabPaneUl li { height: 40px; line-height: 40px; } .tab-pane { margin-top: 50px; } </style> </head> <body style="background-color: #ebebeb"> <header class="login_header"></header> <div> <div class="col-xs-1"> <br /> <br /> <div class="row"> </div> <ul class=""> <li> <a ui-sref="ruleteam" ui-sref-opts="{reload:true}">我的团队</a> </li> </ul> </div> <div class="col-xs-10"> <div ui-view></div> <br/> <br/> </div> </div> </body> </html>
<div class="container projects"> <div ng-show="team_info_show"> <div> <div class="col-md-10"> </div> <div class="col-md-2"> <button type="button" class="btn btn-success" data-toggle="modal" ng-click="addOneTeam()"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> 团队(TEAM) </button> </div> </div> <div class="projects-header page-header"> </div> <div class="row"> <div class="col-sm-6 col-md-4 col-lg-3 " ng-repeat="team in rule_teams"> <div class="thumbnail"> <a href="" ng-click="showRuleByTeamId(team.teamId,team.ruleNum)"> <img src="./page/pictures/rule_teams.jpg" width="300" height="150"> </a> <div class="caption"> <h3> {{team.teamName}} </h3> <small>拥有</small> <br /> <h1> <font color="blue">{{team.ruleNum}}</font> </h1> <div class="btn-group"> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="addRule(team.teamId,team.teamName)"> <span class="glyphicon glyphicon-plus" aria-hidden="true"> 规则 </span> </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="deleteTeam(team.teamId,team.ruleNum)"> <span class="glyphicon glyphicon-minus" aria-hidden="true"> 团队 </span> </button> </div> </div> </div> </div> </div> </div> <div ng-show="rules_info_show"> <div class="col-md-12 main-content" ng-repeat="rule in rules_info" on-finish> <article class="post" style="background-color: #FFFFFF;"> <div class="row"> <div class="col-md-4"> <h3>{{rule.ruleDrlName}}</h3> </div> <div class="col-md-2"> <img src="./page/pictures/yes.jpg" height="60" width="60" class="img-circle" ng-show="rule.active"> <img src="./page/pictures/no.jpg" height="60" width="60" class="img-circle" ng-hide="rule.active"> </div> <div class="col-md-6"> <br/> <div class="btn-group"> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="updateDrl(rule)"> <span class="glyphicon glyphicon-edit" aria-hidden="true"> 编辑 </span> </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="deleteRule(rule.ruleId,rule.teamId)"> <span class="glyphicon glyphicon-minus" aria-hidden="true"> 删除 </span> </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="activeRule(rule.teamId,rule.ruleId)"> <span class="glyphicon glyphicon-edit" aria-hidden="true"> {{rule.deploy | ableFilter}} </span> </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="ruleDeploy(rule.ruleId)"> <span class="glyphicon glyphicon-edit" aria-hidden="true"> 部署 </span> </button> </div> </div> </div> <div class="post-content"> <span class="label label-info" style="display:inline-block; width:80px;">ruleId:</span> {{rule.ruleId}} <br /> <span class="label label-info" style="display:inline-block; width:80px;">CheckId:</span>{{rule.ruleCheck}}<br/> <span class="label label-info" style="display:inline-block; width:80px;">POJO:</span> {{rule.ruleJavabeanClassname}}<br/> <span class="label label-info" style="display:inline-block; width:80px;">ArtifactId:</span> {{rule.pomArtifactId}}<br /> <span class="label label-info" style="display:inline-block; width:80px;">GroupId:</span> {{rule.pomGroupId}}<br /> <span class="label label-info" style="display:inline-block; width:80px;">Version:</span> {{rule.pomVersion}}<br /> <div id="resourceDom{{rule.ruleId}}" style="width: 100%;height:400px;"> </div> </div> </article> <footer class="post-footer clearfix"></footer> </div> </div> <div class="spinner" ng-show="is_loading"> </div> </div> <script type="text/ng-template" id="addOneTeam.html"> <div class="modal-header update-modal-title"> <label>+团队(TEME)</label> </div> <br /> <br /> <span class="label label-info">描述:</span> <input type="text" class="form-control" style="width:500px;" ng-model="description" required> <br /> <br /> <div class="modal-footer "> <button class="btn" ng-click="addOneTeam(description)">确定</button> <button class="btn" ng-click="cancel()">取消</button> </div> </script>
<div> <div id="page-inner"> <br /> <br /> <div class="row"> <ul id="myTab" role="tablist"> <li id="step1Li" class="active blue"> <a role="tab" data-toggle="tab"> 加载依赖 </a> </li> <li id="step2Li" class="gray"> <img id="step2Img" src="page/pictures/blue_gray.png" /> <a role="tab" data-toggle="tab"> 绑定引用 </a> </li> <li id="step3Li" class="gray"> <img id="step3Img" src="page/pictures/gray_gray.png" /> <a role="tab" data-toggle="tab"> 规则配置 </a> </li> <li id="step4Li" class="gray"> <img id="step4Img" src="page/pictures/gray_gray.png" /> <a role="tab" data-toggle="tab"> 编译测试 </a> </li> </ul> <div id="step1" class="tab-pane fade active in" ng-hide="hide_step1"> <br /> <br /> <form class="form-inline" role="form" name="step1From"> <label>团队名称:{{teamName}} </label> <br /> <label>规则名称:</label> <input type="text" class="form-control" placeholder="请输入规则名称" ng-model="drlName" required> <label>groupId:</label> <input type="text" class="form-control" placeholder="请输入groupId" ng-model="groupId" required> <label>artifactId:</label> <input type="text" class="form-control" placeholder="请输入artifactId" ng-model="artifactId" required> <label>version:</label> <input type="text" class="form-control" placeholder="请输入version" ng-model="version" required> <div class="pager wizard"> <button class="btn btn-primary btn-lg" ng-click="mavenJarDownLoad(drlName,groupId,artifactId,version)">下一步</button> </div> </form> </div> <div id="step2" class="tab-pane fade active in" ng-hide="hide_step2"> <div class="form-inline"> <label>规则名称:</label> <label ng-bind="drlName"></label> <br /> <label>规则ID:</label> <label ng-bind="ruleId"></label> <br /> <span class="label label-danger">在Jar中选择要绑定的POJO,完全不涉及的Jar包请移除:</span> <br /> <label>可绑定的Jar: </label> <button class="btn btn-default" ng-click="getOldJars()">取消移除</button> <br /> <table> <tbody> <tr ng-repeat="jar_name in jarNames"> <td ng-click="getClassJavaBeanName(jar_name)"> <a href="">{{jar_name}}</a> </td> <td> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="removeJarName(jar_name)"> <span class="glyphicon glyphicon-minus" aria-hidden="true"></span>移除 </button> </td> </tr> </tbody> </table> <label> 绑定的POJO:</label><label ng-bind="beanName"></label> <div class="pager wizard"> <button class="btn btn-primary btn-lg" ng-click="buildrl(ruleId,beanName)">下一步</button> </div> </div> </div> <div id="step3" class="tab-pane fade active in" ng-hide="hide_step3"> <div id="content" class="row-fluid"> <div class="col-md-9"> <label>规则名称:</label> <label ng-bind="drlName"></label> <br /> <label>规则ID:</label> <label ng-bind="ruleId"></label> <br /> <label>绑定的POJO:</label> <label ng-bind="beanName"></label> </div> <div class="col-md-3"> <button type="button" class="btn btn-success" data-toggle="modal" ng-click="addOneRowRule()"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>规则(RULE) </button> <button type="button" class="btn btn-success" data-toggle="modal" ng-click="drlAutoGenerate(ruleId)"> 编译(RULE) </button> </div> </div> <div class="row"></div> <div ng-repeat="row_rule in rules_info" style="background-color: #FFFFFF;"> <h3> <font color="blue">{{row_rule.detailDescription}}</font> </h3> <div class="btn-group"> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="addOneConstraint(row_rule.detailId,row_rule.ruleId)"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>条件(WHEN) </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="addOneResult(row_rule.detailId,row_rule.ruleId)"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>结论(THEN) </button> <button type="button" class="btn btn-default" data-toggle="modal" ng-click="deleteRuleDetail(row_rule.detailId,row_rule.ruleId)"> <span class="glyphicon glyphicon-minus" aria-hidden="true"></span>规则(RULE) </button> </div> <div> <div class="col-md-6"> <table class="table table-hover"> <tbody> <tr ng-repeat="conditions in row_rule.conditions"> <td>{{conditions.conditionDescription}}</td> <td>{{conditions.type}}{{conditions.conditionField}}</td> <td>{{conditions.operationDescription}}</td> <td>{{conditions.conditionValue}}</td> <td> <button class="btn btn-xs" ng-click="deleteCondition(conditions.conditionId,row_rule.ruleId)">删除</button> </td> </tr> </tbody> </table> </div> <div class="col-md-6"> <table class="table table-hover"> <tbody> <tr ng-repeat="results in row_rule.results"> <td>{{results.resultDescription}}</td> <td>{{results.resultMethod}}</td> <td>{{results.resultValue}}</td> <td> <button class="btn btn-xs" ng-click="deleteResult(results.resultId,row_rule.ruleId)">删除</button> </td> </tr> </tbody> </table> </div> </div> <div class="row"> </div> </div> </div> <div id="step4" class="tab-pane fade active in" ng-hide="hide_step4"> <label>规则名称:</label> <label ng-bind="drlName"></label> <br /> <label>规则ID:</label> <label ng-bind="ruleId"></label> <br /> <div class="btn-group" data-toggle="buttons"> <label class="btn btn-default"> <input type="radio" name="options" id="option1" ng-click="step4search(ruleId)"> 查看 </label> <label class="btn btn-default"> <input type="radio" name="options" id="option4" ng-click="step4update(ruleId)"> 编辑 </label> <label class="btn btn-default"> <input type="radio" name="options" id="option2" ng-click="downloadDrlByRuleId(ruleId)"> 下载 </label> <label class="btn btn-default"> <input type="radio" name="options" id="option3" ng-click="step4testDrl(ruleId)"> 测试 </label> </div> <div class="panel panel-default" ng-hide="hide_step4search"> <div class="panel-heading"> <h3 class="panel-title"> {{ruleId}}.drl </h3> </div> <div class="panel-body"> <pre ng-bind-html="drl_codes | to_trusted"></pre> </div> </div> <div ng-hide="hide_step4testDrl"> <div class="container"> <div class="row"> <div class="col-sm-6"> <div class="panel panel-default"> <div class="panel-heading"> <form class="form-inline"> <div class="row"> <div class="col-xs-6"> <span class="label label-danger">确保测试数据为JSON数组!</span> </div> <div class="col-xs-6 text-right"> <button type="button" class="btn btn-success btn-sm" ng-click="ruleTest(ruleId,jsonData)" >点击测试</button> </div> </div> </form> </div> <div class="panel-body"> <textarea class="form-control" ng-model="jsonData" style="min-height:300px" required> </textarea> </div> </div> </div> <div class="col-sm-6"> <div class="panel panel-default"> <div class="panel-heading"> <form class="form-inline"> <div class="row"> <div class="col-xs-6"> 测试结果: 命中<font color="red">{{fireNum}}</font>条规则 </div> <div class="col-xs-6 text-right"> <a href="http://www.json.cn/" target="_blank">JSON解析</a> </div> </div> </form> </div> <div class="panel-body"> <textarea class="form-control" ng-model="reslutJsonData" style="min-height:300px"> </textarea> </div> </div> </div> </div> </div> </div> </div> <div class="spinner" ng-show="is_loading"> </div> </div> </div> </div> <script type="text/ng-template" id="newFunctionReminder.html"> <div class="modal-header update-modal-title"> </div> <table class="table table-hover"> <tbody> <tr> <th>选择POJO</th> </tr> <tr ng-repeat="beanName in beanNames" ng-click="setbeanName(beanName)"> <td> <a href=""> <font size="1">{{beanName.pre}}</font> <font size="1" color="red">{{beanName.last}}</font> </a> </td> </tr> </tbody> </table> <div class="modal-footer "> <button class="btn" ng-click="cancel()">退出</button> </div> </script> <script type="text/ng-template" id="addOneRowRule.html"> <div class="modal-header update-modal-title"> <label>添加一条规则</label> </div> <div> <label>规则描述:</label> <input type="text" class="form-control" placeholder="请输入规则描述" ng-model="rule_description" required> </div> <div class="modal-footer "> <button class="btn" ng-click="submitRuleDscription(rule_description)">确定</button> <button class="btn" ng-click="cancel()">取消</button> </div> </script> <script type="text/ng-template" id="addOneConstraint.html"> <div class="modal-header update-modal-title"> <label>+约束(WHEN)</label> </div> <span class="label label-info">描述:</span> <input type="text" class="form-control" style="width:500px;" ng-model="description" required> <span class="label label-info">字段:</span> <br /> <select style="width:500px;" ng-model="fileds" ng-options="fileds.show for fileds in declaredFields"></select> <br /> <span class="label label-info">操作: </span> <br /> <select style="width:500px;" ng-model="operation" ng-options="operation.desc for operation in ruleOperation"></select> <br /> <span class="label label-info">值域:</span> <input type="text" class="form-control" style="width:500px;" ng-model="value"> <br /> <div class="modal-footer "> <button class="btn" ng-click="submitOneConstraint(description,fileds,operation,value)">确定</button> <button class="btn" ng-click="cancel()">取消</button> </div> </script> <script type="text/ng-template" id="addOneResult.html"> <div class="modal-header update-modal-title"> <label>+结论(THEN)</label> </div> <span class="label label-info">描述:</span> <input type="text" class="form-control" style="width:500px;" ng-model="description" required> <span class="label label-info">方法:</span> <br /> <select style="width:500px;" ng-model="method" ng-options="method.show for method in methods"></select> <br /> <span class="label label-info">值域:</span> <input type="text" class="form-control" style="width:500px;" ng-model="value" required> <br /> <div class="modal-footer "> <button class="btn" ng-click="submitOneResult(description,method,value)">确定</button> <button class="btn" ng-click="cancel()">取消</button> </div> </script>
var app = angular.module("home.controller",["ui.router","createdrl.controller","ruleteam.controller"]) ; app.config(function ($stateProvider,$urlRouterProvider) { $urlRouterProvider.otherwise('/home'); $stateProvider .state('home',{ url:'/home',cache: false,templateUrl: './page/app/html/ruleteam.html',controller: 'ruleteamCtrl' }) .state('ruleteam',{ url: '/ruleteam',controller: 'ruleteamCtrl' }) .state('createdrl',{ url:'/createdrl/:teamId/:teamName/:drlName/:ruleId/:beanName',templateUrl: './page/app/html/createdrl.html',controller: 'createdrlCtrl' }); });
var app = angular.module("ruleteam.controller",["pcdApi.service","ui.bootstrap","ui.router"]); app.controller("ruleteamCtrl",["$scope",'$http','$q','$location','$state','$uibModal',"pcdApiService",function ($scope,$http,$q,$location,$state,$uibModal,pcdApiService ) { $scope.initWeb = function () { $scope.userId = 2; $scope.is_loading = true; $scope.team_info_show = true; $scope.rules_info_show = false; pcdApiService.showTeam($scope.userId).then(function (data) { $scope.is_loading = false; if (data.status == "Failed") { alert(data.infomation); } else { $scope.rule_teams = data.data; } },function (data) { $defer.resolve([]); }); }; $scope.initWeb(); $scope.addOneTeam = function (){ var modalInstance = $uibModal.open({ animation: true,templateUrl: 'addOneTeam.html',controller: 'addOneTeamCtrl',size: 'lg',scope: $scope,resolve: { items: function () { item = { } return item; } } }); modalInstance.result.then(function (req) { $scope.is_loading = true; $scope.rule_teams = null; pcdApiService.addTeam($scope.userId,req.description).then(function (data) { $scope.is_loading = false; if (data.status == "Failed") { } else { $scope.rule_teams = data.data; } },function (data) { $defer.resolve([]); }); },function (reason) { }); }; $scope.deleteTeam = function (teamId,ruleNum) { if (ruleNum > 0) { return ; } $scope.is_loading = true; $scope.rule_teams = null; pcdApiService.deleteTeam($scope.userId,teamId).then(function (data) { $scope.is_loading = false; if (data.status == "Failed") { alert(data.infomation); } else { $scope.rule_teams = data.data; } },function (data) { $defer.resolve([]); }); }; $scope.addRule = function (teamId,teamName) { $state.go( 'createdrl',{ teamId: teamId,teamName: teamName,drlName: "",ruleId: -1,beanName: "" } ); }; $scope.showRuleByTeamId = function (teamId,ruleNum) { if (ruleNum <= 0) { return; } $scope.team_info_show = false; $scope.rules_info_show = true; $scope.rule_teams = null; $scope.is_loading = true; pcdApiService.showRuleByTeamId(teamId).then(function (data) { $scope.is_loading = false; if (data.status == "Failed") { alert(data.infomation); } else { $scope.rules_info = data.data ; } },function (data) { $defer.resolve([]); }); }; $scope.$on('ngRepeatFinished',function (ngRepeatFinishedEvent) { console.log("sbb"); for (i = 0; i < $scope.rules_info.length; i++) { ruleId = $scope.rules_info[i].ruleId; var myChart = echarts.init(document.getElementById('resourceDom' + ruleId)); option = { title: { // text: '调用',x: 'center' },tooltip: { trigger: 'axis',formatter: function (params) { return params[0].name + '调用' + params[0].data + '次'; } },legend: { show: true,data: ['最近一个月调用次数'],x: 'left' },toolBox: { show: false,},dataZoom: { show: false,realtime: true,start: 0,end: 100 },xAxis: [ { type: 'category',boundaryGap: false,axisLine: { onZero: false },data: $scope.rules_info[i].droolsCall.callDates } ],yAxis: [ { name: '(次/天)',type: 'value',} ],series: [ { name: '最近一个月调用次数',type: 'line',itemStyle: { normal: { areaStyle: { type: 'default' } } },data: $scope.rules_info[i].droolsCall.callCounts } ] }; myChart.setOption(option); } }); $scope.deleteRule = function (ruleId,teamId) { if (confirm("确定删除吗?") == false) { return; } $scope.team_info_show = false; $scope.rules_info_show = false; $scope.rule_teams = null; $scope.is_loading = true; pcdApiService.deleteRule(ruleId,teamId).then(function (data) { $scope.is_loading = false; $scope.rules_info_show = true; if (data.status == "Failed") { alert(data.infomation); } else { $scope.rules_info = data.data; } },function (data) { $defer.resolve([]); }); }; $scope.activeRule = function (teamId,ruleId) { $scope.is_loading = true; $scope.rules_info_show = false; pcdApiService.activeRule(teamId,ruleId).then(function (data) { $scope.is_loading = false; $scope.rules_info_show = true; $scope.rules_info = data.data; },function (data) { $defer.resolve([]); }); }; $scope.ruleDeploy = function (ruleId) { if (confirm("确定要部署吗?") == false) { return; } $scope.is_loading = true; $scope.rules_info_show = false; pcdApiService.ruleDeploy(ruleId).then(function (data) { $scope.is_loading = false; $scope.rules_info_show = true; alert(data.infomation); },function (data) { $defer.resolve([]); }); }; $scope.updateDrl = function (rule) { $state.go( 'createdrl',{ teamId: -1,teamName: "",drlName: rule.ruleDrlName,ruleId: rule.ruleId,beanName: rule.ruleJavabeanClassname } ); }; }]); app.filter('to_trusted',['$sce',function ($sce) { return function (text) { return $sce.trustAsHtml(text); }; }]); app.controller("addOneTeamCtrl","$uibModalInstance","items",$uibModalInstance,items) { $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; $scope.addOneTeam = function (description) { $uibModalInstance.close( { description: description } ); $uibModalInstance.dismiss('cancel'); }; }]); app.filter('ableFilter',function () { //可以注入依赖 return function (param) { if (param == true) { return "禁用"; } else { return "启用"; } } }); app.directive('onFinish',function ($timeout) { return { restrict: 'A',link: function (scope,element,attr) { if (scope.$last === true) { $timeout(function () { scope.$emit('ngRepeatFinished'); }); } } } });
var app = angular.module("createdrl.controller","ui.router"]) ; app.controller("createdrlCtrl",'$stateParams',$stateParams,pcdApiService) { $scope.is_loading = false; $scope.setStep = function (index) { $scope.is_loading = false; $scope.hide_step1 = true; $scope.hide_step2 = true; $scope.hide_step3 = true; $scope.hide_step4 = true; if (1 == index) { $scope.hide_step1 = false; } else if (2 == index) { $scope.hide_step2 = false; } else if (3 == index) { $scope.hide_step3 = false; } else if (4 == index) { $scope.hide_step4 = false; } for (var i = 2; i <= index; i++) { $("#step" + i + "Li").addClass("blue").removeClass("gray"); $("#step" + i + "Img").attr("src","page/pictures/blue_blue.png"); } for (var i = index + 1; i <= 4; i++) { $("#step" + i + "Li").addClass("gray").removeClass("blue"); $("#step" + i + "Img").attr("src","page/pictures/gray_gray.png"); } $("#step" + (index + 1) + "Img").attr("src","page/pictures/blue_gray.png"); }; $scope.teamId = $stateParams.teamId; $scope.teamName = $stateParams.teamName; $scope.drlName = $stateParams.drlName; $scope.ruleId = $stateParams.ruleId; $scope.beanName = $stateParams.beanName; if ($scope.teamId > -1){ $scope.setStep(1); } if ($scope.ruleId > -1) { $scope.setStep(3); $scope.rules_info = null; $scope.is_loading = true; pcdApiService.findRuleDetailsByRuleId($scope.ruleId).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; } else { $scope.rules_info = data.data.ruleDetails; $scope.jarPaths = data.data.jarPaths; $scope.is_loading = false; } },function (data) { $defer.resolve([]); }); } /* $scope.setStep(3); $scope.beanName = "com.ceair.pss.psdp.brms.cust.arpupg.domain.ArpUpgRuleFactor"; $scope.ruleId = 61; $scope.jarPaths = ["C:\\Users\\liyang\\Desktop\\brms-cust-module-1.0.1.jar","C:\\Users\\liyang\\Desktop\\cmp-custinfo-domain-1.0.0.jar","C:\\Users\\liyang\\Desktop\\pss-utils-1.0.0.jar"]; $scope.jarNames = ["brms-cust-module-1.0.1.jar","cmp-custinfo-domain-1.0.0.jar","pss-utils-1.0.0.jar"]; */ $scope.createDrlByDrlUID = function (drluid) { if (drluid == "" || drluid == null || drluid == undefined) { return; } $scope.is_loading = true; pcdApiService.addRule(drluid).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; } else { $scope.drluid = drluid; $scope.ruleId = data.data.ruleId; $scope.setStep(2); } },function (data) { $defer.resolve([]); }); }; $scope.getOldJars = function () { $scope.jarNames = $scope.all_jarNames; $scope.jarPaths = $scope.all_jarPaths; } $scope.removeJarName = function (jar_name) { jarNames = []; for (i = 0; i < $scope.jarNames.length; i++) { if ($scope.jarNames[i].indexOf(jar_name) == -1) { jarNames.push($scope.jarNames[i]); } } jarPaths = []; for (i = 0; i < $scope.jarPaths.length; i++) { if ($scope.jarPaths[i].indexOf(jar_name) == -1) { jarPaths.push($scope.jarPaths[i]); } } $scope.jarNames = jarNames ; $scope.jarPaths = jarPaths ; }; $scope.mavenJarDownLoad = function (drlName,version) { teamId = $scope.teamId; if (drlName == undefined || drlName == null || drlName == "" || groupId == undefined || groupId == null || groupId == "" || artifactId == undefined || artifactId == null || artifactId == "" || version == undefined || version == null || version == "" || teamId == undefined || teamId == null || teamId == "") { return; } $scope.is_loading = true; $scope.hide_step1 = true; pcdApiService.mavenJarDownLoad(drlName,version,teamId).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; $scope.hide_step1 = false; } else { $scope.all_jarNames = data.data.jarNames; $scope.all_jarPaths = data.data.jarPaths; $scope.jarNames = $scope.all_jarNames; $scope.jarPaths = $scope.all_jarPaths; $scope.drlName = drlName; $scope.ruleId = data.data.ruleId; $scope.is_loading = false; $scope.setStep(2); } },function (data) { $defer.resolve([]); }); } $scope.deleteRuleDetail = function (detailId,ruleId) { if (!confirm("确定要删除吗?")) { return; } $scope.rules_info = null; $scope.is_loading = true; pcdApiService.deleteRuleDetail(detailId,ruleId).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; } else { $scope.rules_info = data.data; $scope.is_loading = false; } },function (data) { $defer.resolve([]); }); } $scope.buildrl = function (ruleId,beanName) { if (beanName == "" || beanName == null || beanName == undefined) { alert("请绑定POJO!"); return; } $scope.hide_step2 = true; $scope.is_loading = true; pcdApiService.updateRule(ruleId,beanName).then(function (req) { if (req.status == "Failed") { alert(req.infomation); $scope.is_loading = false; } else { $scope.is_loading = false; $scope.setStep(3); } },function (req) { $defer.resolve([]); }); } $scope.getClassJavaBeanName = function (jarName) { var modalInstance = $uibModal.open({ animation:true,templateUrl : 'newFunctionReminder.html',controller : 'AllModalInstanceCtrl',resolve:{ items: function () { item ={ ruleId: $scope.ruleId,jarPaths :$scope.jarPaths,jarName: jarName } return item ; } } }); modalInstance.result.then(function (result) { $scope.beanName = result ; },function (reason) { }); }; $scope.addOneRowRule = function () { var modalInstance = $uibModal.open({ animation: true,templateUrl: 'addOneRowRule.html',controller: 'AddOneRowRuleModalInstanceCtrl',resolve: { items: function () { item = { } return item; } } }); modalInstance.result.then(function (rule_description) { if (rule_description == undefined || rule_description == null || rule_description == "") { return; } $scope.is_loading = true; $scope.rules_info = null; pcdApiService.addRuleDetail($scope.ruleId,rule_description).then(function (req) { if (req.status == "Failed") { $scope.is_loading = false; } else { $scope.rules_info = req.data; $scope.is_loading = false; } },function (req) { $defer.resolve([]); }); },function (reason) { }); }; $scope.addOneConstraint = function (detailId,ruleId) { var modalInstance = $uibModal.open({ animation: true,templateUrl: 'addOneConstraint.html',controller: 'addOneConstraintCtrl',resolve: { items: function () { item = { classJaveBeanName: $scope.beanName,addJarPathFiles: $scope.jarPaths } return item; } } }); modalInstance.result.then(function (result) { $scope.is_loading = true; $scope.rules_info = null; $http({ method: 'post',url: 'api/addCondition',data: { detailId: detailId,ruleId: ruleId,description: result.description,field: result.filed,type: result.type,operation:result.operation,value:result.value } }).success(function (req) { $scope.is_loading = false; $scope.rules_info = req.data ; }) },function (reason) { }); }; $scope.deleteCondition = function (conditionId,ruleId) { if (!confirm("确定要删除吗?")) { return; } $scope.rules_info = null; $scope.is_loading = true; pcdApiService.deleteCondition(conditionId,ruleId).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; } else { $scope.rules_info = data.data; $scope.is_loading = false; } },function (data) { $defer.resolve([]); }); }; $scope.deleteResult = function (resultId,ruleId) { if (!confirm("确定要删除吗?")) { return; } $scope.rules_info = null; $scope.is_loading = true; pcdApiService.deleteResult(resultId,function (data) { $defer.resolve([]); }); }; $scope.drlAutoGenerate = function (ruleId) { $scope.hide_step3 = true; $scope.is_loading = true; pcdApiService.drlAutoGenerate(ruleId).then(function (data) { if (data.status == "Failed") { alert(data.infomation); $scope.is_loading = false; } else { $scope.drl_codes = data.data; $scope.is_loading = false; $scope.setStep(4); $scope.hide_step4search = false; } },function (data) { $defer.resolve([]); }); }; $scope.step4Hide = function () { $scope.hide_step4search = true; $scope.hide_step4testDrl = true; }; $scope.step4Hide(); $scope.step4search = function (ruleId) { $scope.step4Hide(); $scope.hide_step4search = false; }; $scope.step4testDrl = function (ruleId) { $scope.step4Hide(); $scope.hide_step4testDrl = false; }; $scope.step4update = function (ruleId) { $scope.step4Hide(); $scope.setStep(3); }; $scope.ruleTest = function (ruleId,jsonData) { if (jsonData == undefined || jsonData == null || jsonData == "") { alert("请输入测试数据!"); return; } $scope.hide_step4testDrl = true; $scope.is_loading = true; $http({ method: 'post',url: 'api/ruleTestForWeb',data: { ruleId: ruleId,jsonData: jsonData } }).success(function (req) { if (req.status == "Failed") { alert("测试失败!"); } $scope.reslutJsonData = req.data.resultJsonData; $scope.fireNum = req.data.fireNum; $scope.hide_step4testDrl = false; $scope.is_loading = false ; }) }; $scope.downloadDrlByRuleId = function (ruleId) { $http.get("api/downloadDrlByRuleId?ruleId=" + ruleId,{ responseType: 'arraybuffer' }) .success(function (data,status,headers) { var octetStreamMime = 'application/octet-stream'; var success = false; headers = headers(); filename = "" + ruleId + ".drl"; var contentType = headers['content-type'] || octetStreamMime; try { var blob = new Blob([data],{ type: contentType }); if (navigator.msSaveBlob) navigator.msSaveBlob(blob,filename); else { var saveBlob = navigator.webkitSaveBlob || navigator.mozSaveBlob || navigator.saveBlob; if (saveBlob === undefined) throw "Not supported"; saveBlob(blob,filename); } success = true; } catch (ex) { } if (!success) { var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL; if (urlCreator) { var link = document.createElement('a'); if ('download' in link) { try { var blob = new Blob([data],{ type: contentType }); var url = urlCreator.createObjectURL(blob); link.setAttribute('href',url); link.setAttribute("download",filename); var event = document.createEvent('MouseEvents'); event.initMouseEvent('click',true,window,1,false,null); link.dispatchEvent(event); success = true; } catch (ex) { console.log(ex); } } if (!success) { try { var blob = new Blob([data],{ type: octetStreamMime }); var url = urlCreator.createObjectURL(blob); window.location = url; success = true; } catch (ex) { console.log(ex); } } } } if (!success) { window.open(httpPath,'_blank',''); } }) .error(function (data,status) { console.log("Request Failed with status: " + status); $scope.errorDetails = "Request Failed with status: " + status; }); }; $scope.addOneResult = function (detailId,templateUrl: 'addOneResult.html',controller: 'addOneResultCtrl',resolve: { items: function () { console.log($scope.beanName); console.log($scope.jarPaths); item = { classJaveBeanName: $scope.beanName,addJarPathFiles: $scope.jarPaths } return item; } } }); modalInstance.result.then(function (result) { $scope.is_loading = true; $scope.rules_info = null; $http({ method: 'post',url: 'api/addResult',method: result.method,value: result.value } }).success(function (req) { $scope.is_loading = false; $scope.rules_info = req.data; }) },function (reason) { }); }; }]); app.controller("AddOneRowRuleModalInstanceCtrl",items) { $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; $scope.submitRuleDscription = function (rule_description) { $uibModalInstance.close(rule_description); $uibModalInstance.dismiss('cancel'); }; }]); app.controller("AllModalInstanceCtrl",function($scope,items){ $http({ method: 'post',url: 'api/getClassJavaBeanName',data: { ruleId: items.ruleId,jarPaths: items.jarPaths,jarName: items.jarName } }).success(function (req) { $scope.beanNames = []; for (i = 0; i < req.data.length; i++) { str = req.data[i]; $scope.beanNames.push( { pre: str.substring(0,str.lastIndexOf(".")+1),last: str.substring(str.lastIndexOf(".") + 1) } ) } }) $scope.cancel = function(){ $uibModalInstance.dismiss('cancel'); }; $scope.setbeanName = function (beanName) { $scope.beanName = beanName.pre + beanName.last; $uibModalInstance.close($scope.beanName); $uibModalInstance.dismiss('cancel'); }; }]); app.controller("addOneConstraintCtrl",items) { $scope.ruleOperation = [ { idx: 0,desc: "等于:==" },{ idx: 1,desc: "不等于:!=" },{ idx: 2,desc: "小于:<" },{ idx: 3,desc: "小于等于:<=" },{ idx: 4,desc: "大于:>" },{ idx: 5,desc: "大于等于:>=" },{ idx: 6,desc: "在闭区间内:[]" },{ idx: 7,desc: "在两端区间:<= left or >= right" },{ idx: 8,desc: "在列表内:in (,)" },{ idx: 9,desc: "不在列表内:not in(,{ idx: 10,desc: "包含:contains" },{ idx: 11,desc: "为空:is null" },{ idx: 12,desc: "不为空:is not null" },{ idx: 13,desc: "真:true" },{ idx: 14,desc: "假:false" },{ idx: 15,desc: "为空或空字符串:null or \"\"" },]; $http({ method: 'post',url: 'api/getJarJavaBeanInfo',data: { classJaveBeanName: items.classJaveBeanName,addJarPathFiles: items.addJarPathFiles } }).success(function (req) { $scope.declaredFields = req.data.declaredFields; }) $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; filterStr = function (str) { if (str == null || str == undefined || str == "") { return ""; } str = str.replace(new RegExp("\"","gm"),""); str = str.replace(new RegExp("”",""); str = str.replace(new RegExp("“",""); str = str.replace(new RegExp(" ",""); str = str.replace(new RegExp(",",","); return str; } $scope.submitOneConstraint = function (description,value) { type = fileds.type; value = filterStr(value); if (operation.idx == 8 || operation.idx == 9) { if ("String" == type) { fitm = []; itm = value.split(","); for (i = 0; i < itm.length; i++) { if (itm[i] == null || itm[i] == undefined || itm[i] == "" || itm[i] == ",") { continue; } fitm.push(itm[i]); } n = fitm.length; value = "\"" + fitm[0] + "\"" ; for (i = 1; i < n; i++) { value = value + "," + "\"" + fitm[i] + "\"" ; } } } else { if ("String" == type) { value = "\"" + value + "\""; } else if ("List<String>" == type) { value = "\"" + value + "\""; } } $uibModalInstance.close({ description:description,filed: fileds.field,type: fileds.type,operation: operation.idx,value: value }); $uibModalInstance.dismiss('cancel'); }; }]); app.controller("addOneResultCtrl",items) { $http({ method: 'post',addJarPathFiles: items.addJarPathFiles } }).success(function (req) { $scope.methods = req.data.methods; }) $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; filterStr = function (str) { if (str == null || str == undefined || str == "") { return ""; } str = str.replace(new RegExp("\"","); return str; } $scope.submitOneResult = function (description,value) { value = filterStr(value); fitm = []; itm = value.split(","); for (i = 0; i < itm.length; i++) { if (itm[i] == null || itm[i] == undefined || itm[i] == "" || itm[i] == ",") { continue; } fitm.push(itm[i]); } methodName = method.methodName; types = method.types; n = types.length; stringVlue = ""; for (i = 0; i < n; i++) { if ("String" == types[i]) { stringVlue = stringVlue + " \"" + fitm[i] + "\" "; } else { stringVlue = stringVlue + " " + fitm[i] + " "; } if (i != n - 1) { stringVlue += ","; } } $uibModalInstance.close({ description: description,method: methodName + "(" + stringVlue + ")",value: stringVlue }); $uibModalInstance.dismiss('cancel'); }; }]); app.filter('to_trusted',function($sce){ return function(text) { return $sce.trustAsHtml(text); }; }]);
var app = angular.module("pcdApi.service",[]); app.service("pcdApiService",['$http',function($http,$q){ this.addRule = function (ruleDrlName){ var deferred = $q.defer(); $http.get("api/addRule?ruleDrlName=" + ruleDrlName) .success(function(data) { deferred.resolve(data); }) .error(function(data) { deferred.reject(data); }) ; return deferred.promise; }; this.mavenJarDownLoad = function (ruleDrlName,teamId) { var deferred = $q.defer(); $http.get("api/mavenJarDownLoad?ruleDrlName=" + ruleDrlName + "&groupId=" + groupId + "&artifactId=" + artifactId + "&version=" + version + "&teamId=" + teamId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.addRuleDetail = function (ruleId,rule_description) { var deferred = $q.defer(); $http.get("api/addRuleDetail?ruleId=" + ruleId + "&description=" + rule_description) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.deleteRuleDetail = function (detailId,ruleId) { var deferred = $q.defer(); $http.get("api/deleteRuleDetail?detailId=" + detailId + "&ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.findRuleDetailsByRuleId = function (ruleId) { var deferred = $q.defer(); $http.get("api/findRuleDetailsByRuleId?ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.deleteCondition = function (conditionId,ruleId) { var deferred = $q.defer(); $http.get("api/deleteCondition?conditionId=" + conditionId + "&ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.deleteResult = function (resultId,ruleId) { var deferred = $q.defer(); $http.get("api/deleteResult?resultId=" + resultId + "&ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.updateRule = function (ruleId,javaBeanClassName) { var deferred = $q.defer(); $http.get("api/updateRule?ruleId=" + ruleId + "&javaBeanClassName=" + javaBeanClassName) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.drlAutoGenerate = function (ruleId) { var deferred = $q.defer(); $http.get("api/drlAutoGenerate?ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.showTeam = function (userId) { var deferred = $q.defer(); $http.get("api/showTeam?userId=" + userId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.addTeam = function (userId,teamName) { var deferred = $q.defer(); $http.get("api/addTeam?userId=" + userId + "&teamName=" + teamName) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.deleteTeam = function (userId,teamId) { var deferred = $q.defer(); $http.get("api/deleteTeam?userId=" + userId + "&teamId=" + teamId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.showRuleByTeamId = function (teamId) { var deferred = $q.defer(); $http.get("api/showRuleByTeamId?teamId=" + teamId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.getJarPathByRuleId = function (ruleId) { var deferred = $q.defer(); $http.get("api/getJarPathByRuleId?ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.deleteRule = function (ruleId,teamId) { var deferred = $q.defer(); $http.get("api/deleteRule?ruleId=" + ruleId + "&teamId=" + teamId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.updateJarVersion = function (ruleId) { var deferred = $q.defer(); $http.get("api/updateJarVersion?ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.ruleDeploy = function (ruleId) { var deferred = $q.defer(); $http.get("api/ruleDeploy?ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; this.activeRule = function (teamId,ruleId) { var deferred = $q.defer(); $http.get("api/activeRule?teamId=" + teamId + "&ruleId=" + ruleId) .success(function (data) { deferred.resolve(data); }) .error(function (data) { deferred.reject(data); }); return deferred.promise; }; }]);