angularJS项目
来源:互联网 发布:板式家具设计软件 编辑:程序博客网 时间:2024/06/07 15:13
前前后后5周。整理总结备用,知识点:
1、路由;
2、页面跳转;
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', cache: false, templateUrl: './page/app/html/ruleteam.html', 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", ["$scope", '$http', "$uibModalInstance", "items", function ($scope, $http, $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", ["pcdApi.service", "ui.bootstrap", "ui.router"]) ;app.controller("createdrlCtrl", ["$scope", '$http', '$q', '$location', '$state', '$stateParams' ,'$uibModal' , "pcdApiService", function ($scope, $http, $q, $location, $state, $stateParams, $uibModal, 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, groupId, artifactId, 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, groupId, artifactId, 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', size: 'lg', scope: $scope, 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', size: 'lg', scope: $scope, 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', size: 'lg', scope: $scope, 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, 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.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, true, window, 1, 0, 0, 0, 0, false, false, false, false, 0, 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, ruleId) { var modalInstance = $uibModal.open({ animation: true, templateUrl: 'addOneResult.html', controller: 'addOneResultCtrl', size: 'lg', scope: $scope, 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', data: { detailId: detailId, ruleId: ruleId, description: result.description, method: result.method, value: result.value } }).success(function (req) { $scope.is_loading = false; $scope.rules_info = req.data; }) }, function (reason) { }); };}]);app.controller("AddOneRowRuleModalInstanceCtrl", ["$scope", '$http', "$uibModalInstance", "items", function ($scope, $http, $uibModalInstance, items) { $scope.cancel = function () { $uibModalInstance.dismiss('cancel'); }; $scope.submitRuleDscription = function (rule_description) { $uibModalInstance.close(rule_description); $uibModalInstance.dismiss('cancel'); };}]); app.controller("AllModalInstanceCtrl", ["$scope" , '$http' , "$uibModalInstance" , "items" , function($scope , $http , $uibModalInstance , 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", ["$scope", '$http', "$uibModalInstance", "items", function ($scope, $http, $uibModalInstance, 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("”", "gm"), ""); str = str.replace(new RegExp("“", "gm"), ""); str = str.replace(new RegExp(" ", "gm"), ""); str = str.replace(new RegExp(",", "gm"), ","); return str; } $scope.submitOneConstraint = function (description, fileds, operation, 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", ["$scope", '$http', "$uibModalInstance", "items", function ($scope, $http, $uibModalInstance, items) { $http({ method: 'post', url: 'api/getJarJavaBeanInfo', data: { classJaveBeanName: items.classJaveBeanName, 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("\"", "gm"), ""); str = str.replace(new RegExp("”", "gm"), ""); str = str.replace(new RegExp("“", "gm"), ""); str = str.replace(new RegExp(" ", "gm"), ""); str = str.replace(new RegExp(",", "gm"), ","); return str; } $scope.submitOneResult = function (description, method, 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', ['$sce', function($sce){ return function(text) { return $sce.trustAsHtml(text); };}]);
var app = angular.module("pcdApi.service", []); app.service("pcdApiService", ['$http' , '$q' , 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, groupId, artifactId, version, 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; }; }]);
阅读全文
0 0
- angularjs项目
- angularJS项目
- angularJs项目实战
- AngularJS项目环境搭建
- AngularJs搭建项目
- Grunt搭建AngularJS项目
- angularJS之项目知识
- AngularJS Demo 项目
- angularjs项目记录
- AngularJS 项目创建
- ionic+AngularJs项目
- angularjs项目目录
- AngularJS项目实战(总结)
- angularJs搭建web项目
- angularjs路由小项目
- AngularJs新建项目
- angularjs项目的知识点
- AngularJS—AngularJs项目实践总结
- 梯度下降法、坐标下降法、牛顿迭代法
- 二级购物车
- Java之Byte和blob相互转换(Oracle)-yellowcong
- HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)
- java excel模板转html
- angularJS项目
- 将本地的静态页面发布,没服务器怎么发布?
- dataset兼容低版本IE的方法
- Twitter SDE 波士顿电面面经
- 【LeetCode】687.Longest Univalue Path(Easy)解题报告
- Android--------使用BottomTabBar实现底部导航页
- C++中cin的详细用法
- uC/OS-III文件结构
- jeesite中集成Swagger2 三步