yangc 7 лет назад
Родитель
Сommit
2ca6165f92
26 измененных файлов с 1345 добавлено и 5 удалено
  1. 1 0
      src/main/webapp/WEB-INF/views/normal/sso.html
  2. BIN
      src/main/webapp/resources/img/approvalFlow/1.png
  3. BIN
      src/main/webapp/resources/img/approvalFlow/2.png
  4. BIN
      src/main/webapp/resources/img/approvalFlow/3.png
  5. BIN
      src/main/webapp/resources/img/approvalFlow/4.png
  6. BIN
      src/main/webapp/resources/img/approvalFlow/5.png
  7. BIN
      src/main/webapp/resources/img/approvalFlow/6.png
  8. BIN
      src/main/webapp/resources/img/approvalFlow/add_user.png
  9. BIN
      src/main/webapp/resources/img/approvalFlow/add_user01.png
  10. BIN
      src/main/webapp/resources/img/approvalFlow/close.png
  11. BIN
      src/main/webapp/resources/img/approvalFlow/comm_bg01.png
  12. BIN
      src/main/webapp/resources/img/approvalFlow/comm_bg02.png
  13. BIN
      src/main/webapp/resources/img/approvalFlow/dot01.png
  14. BIN
      src/main/webapp/resources/img/approvalFlow/dot02.png
  15. BIN
      src/main/webapp/resources/img/approvalFlow/inco_list.png
  16. BIN
      src/main/webapp/resources/img/approvalFlow/lizi.jpg
  17. BIN
      src/main/webapp/resources/img/approvalFlow/sreach_bt.png
  18. 58 0
      src/main/webapp/resources/js/common/b2bServices.js
  19. 1 1
      src/main/webapp/resources/js/common/services.js
  20. 16 4
      src/main/webapp/resources/js/sso/app.js
  21. 53 0
      src/main/webapp/resources/js/sso/controllers/b2b/LogCtrl.js
  22. 269 0
      src/main/webapp/resources/js/sso/controllers/b2b/approvalFlowCtrl.js
  23. 98 0
      src/main/webapp/resources/view/sso/b2b/home.html
  24. 127 0
      src/main/webapp/resources/view/sso/b2b/log.html
  25. 720 0
      src/main/webapp/resources/view/sso/b2b/modal/step1.html
  26. 2 0
      src/main/webapp/resources/view/sso/left_nav.html

+ 1 - 0
src/main/webapp/WEB-INF/views/normal/sso.html

@@ -25,6 +25,7 @@
     <link rel="stylesheet" href="static/css/commonComponent.css" />
 	<link rel="stylesheet" href="static/css/common/linkSaler.css" />
 	<link rel="stylesheet" href="static/css/vendor/sell.css" />
+	<link rel="stylesheet" href="static/css/b2bCommon.css">
 </head>
 <body>
 

BIN
src/main/webapp/resources/img/approvalFlow/1.png


BIN
src/main/webapp/resources/img/approvalFlow/2.png


BIN
src/main/webapp/resources/img/approvalFlow/3.png


BIN
src/main/webapp/resources/img/approvalFlow/4.png


BIN
src/main/webapp/resources/img/approvalFlow/5.png


BIN
src/main/webapp/resources/img/approvalFlow/6.png


BIN
src/main/webapp/resources/img/approvalFlow/add_user.png


BIN
src/main/webapp/resources/img/approvalFlow/add_user01.png


BIN
src/main/webapp/resources/img/approvalFlow/close.png


BIN
src/main/webapp/resources/img/approvalFlow/comm_bg01.png


BIN
src/main/webapp/resources/img/approvalFlow/comm_bg02.png


BIN
src/main/webapp/resources/img/approvalFlow/dot01.png


BIN
src/main/webapp/resources/img/approvalFlow/dot02.png


BIN
src/main/webapp/resources/img/approvalFlow/inco_list.png


BIN
src/main/webapp/resources/img/approvalFlow/lizi.jpg


BIN
src/main/webapp/resources/img/approvalFlow/sreach_bt.png


+ 58 - 0
src/main/webapp/resources/js/common/b2bServices.js

@@ -2935,4 +2935,62 @@ define([ 'angular', 'common/services', 'common/utils', 'big'], function(angular,
             }
           });
         }])
+        .factory('B2bErpLog', ['$resource', 'BaseService', function($resource, BaseService) {
+            var b2bUrl = BaseService.getB2bUrl();
+            return $resource(b2bUrl + '/log/erp', {});
+        }])
+        .factory('B2bUsageLog', ['$resource', 'BaseService', function($resource, BaseService) {
+            var b2bUrl = BaseService.getB2bUrl();
+            return $resource(b2bUrl + '/log/usage', {});
+        }])
+        .factory('B2bAppFlow', ['$resource', 'BaseService', function($resource, BaseService) {
+            var b2bUrl = BaseService.getB2bUrl();
+            return $resource(b2bUrl + '/office/ApprovalFlow', {}, {
+                saveAppFlowSet: {
+                    url: b2bUrl + '/office/ApprovalFlow/saveAppFlowSet',
+                    method: 'POST'
+                },
+                viewAppFlow: {
+                    url: b2bUrl + '/office/ApprovalFlow/viewAppFlow',
+                    method: 'GET',
+                    isArray: true
+                },
+                viewAppFlowItem: {
+                    url: b2bUrl + '/office/ApprovalFlow/viewAppFlowItem/:id',
+                    method: 'GET'
+                },
+                saveCopy: {
+                    url: b2bUrl + '/office/ApprovalFlow/saveCopy',
+                    method: 'POST'
+                },
+                getUserByDep: {
+                    url: b2bUrl + '/office/ApprovalFlow/getUserByDep',
+                    method: 'GET',
+                    isArray: true,
+                },
+                setCopy: {
+                    url: b2bUrl + '/office/ApprovalFlow/setCopy',
+                    method: 'POST'
+                },
+                getUserByPosition: {
+                    url: b2bUrl + '/office/ApprovalFlow/getUserByPosition',
+                    method: 'GET',
+                    isArray: true,
+                },
+                getPositions: {
+                    url: b2bUrl + '/office/ApprovalFlow/getPositions',
+                    method: 'GET',
+                    isArray: true,
+                },
+                getPositionInfo: {
+                    url: b2bUrl + '/office/ApprovalFlow/getPositionInfo',
+                    method: 'GET',
+                    isArray: true
+                },
+                getNodeByName: {
+                    url: b2bUrl + '/office/ApprovalFlow/getNodeByName',
+                    method: 'GET'
+                }
+            })
+        }]);
 });

+ 1 - 1
src/main/webapp/resources/js/common/services.js

@@ -151,7 +151,7 @@ define([ 'angular', 'common/utils', 'big'], function(angular, utils, Big) {
 					// defer.promise.then(function (resolve) {
 					// 	$rootScope.b2bUrl = resolve.url;
 					// });
-					$rootScope.b2bUrl = this.getRootPath().indexOf('usoftmall.com') > -1 ? 'http://uas.ubtob.com' : 'http://10.1.51.91:8090/platform-b2b/';
+					$rootScope.b2bUrl = this.getRootPath().indexOf('usoftmall.com') > -1 ? 'http://uas.ubtob.com' : 'http://10.1.51.124:8090/platform-b2b';
 				}
 				return $rootScope.b2bUrl;
 			}

+ 16 - 4
src/main/webapp/resources/js/sso/app.js

@@ -1,7 +1,7 @@
 
-define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase', 'common/query/search', 'angular-sanitize', 'common/query/authority','common/query/purchase'], function(angularAMD) {
+define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'common/services', 'common/directives','common/query/kind', 'common/query/brand', 'common/query/component', 'common/query/order', 'common/query/cart', 'common/query/goods', 'common/query/return' ,'angular-toaster', 'common/query/urlencryption', 'ui-jquery', 'common/query/bankTransfer', 'common/query/bankInfo', 'common/query/change', 'common/query/rate', 'common/query/logistics', 'common/query/address' ,'angular-toaster','common/query/collection', 'common/query/proofing', 'common/query/bill', 'common/query/user','file-upload', 'file-upload-shim', 'common/query/bankInfo' , 'common/query/responseLogistics', 'common/query/payment', 'common/query/afterSale', 'common/query/messageBoard', 'common/query/importDeclaration', 'common/query/enterprise', 'common/query/invoice', 'common/query/refund', 'common/query/recommendation', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/tradeMessageNotice', 'common/query/tradeBasicProperties', 'common/query/browsingHistory', 'common/query/internalMessage', 'common/module/chat_web_module', 'angular-filter', 'common/query/vendor','common/query/seekPurchase', 'common/query/search', 'angular-sanitize', 'common/query/authority','common/query/purchase', 'common/b2bServices'], function(angularAMD) {
 	'use strict';
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices', 'searchService', 'ngSanitize', 'authorityServices', 'purchaseServices']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ng.local', 'ngTable', 'common.services', 'common.directives', 'tool.directives', 'common.query.kind', 'brandServices', 'componentServices', 'orderServices', 'cartServices', 'goodsServices', 'returnServices' , 'toaster', 'urlencryptionServices', 'ui.jquery', 'bankTransfer', 'bankInfo', 'changeServices','rateServices', 'logisticsServices', 'addressServices', 'toaster','collection','proofingServices', 'billServices', 'common.query.user', 'angularFileUpload', 'bankInfo', 'responseLogisticsService', 'PaymentService', 'afterSaleService', 'messageBoardServices', 'table.directives', 'importDeclaration', 'common.query.enterprise', 'invoiceServices', 'refundModule', 'recommendation','logisticsPortService', 'storeInfoServices', 'tradeMessageNoticeModule', 'tradeBasicPropertiesServices', 'BrowsingHistory', 'internalMessageServices', 'WebChatModule', 'angular.filter', 'vendorServices','seekPurchaseServices', 'searchService', 'ngSanitize', 'authorityServices', 'purchaseServices', 'common.b2bServices']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -19,8 +19,10 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 
 
 	// ui-router 路由配置
-	app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){
+	app.config(['$stateProvider', '$urlRouterProvider', '$httpProvider', function($stateProvider, $urlRouterProvider, $httpProvider){
 		$urlRouterProvider.otherwise("/index");
+		// 设置该app下js访问带cookie
+		$httpProvider.defaults.withCredentials = true;
 		$stateProvider.state('ssoIndex', angularAMD.route({
 			url: '/index',
 			templateUrl: 'static/view/sso/forstore/ssoCenter.html',
@@ -75,7 +77,17 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'commo
 			title: '收款账户',
 			controller: 'vendorPayCenterCtrl',
 			controllerUrl: 'js/vendor/controllers/forstore/pay_center_ctrl'
-		}))
+		})).state('approvalflow_log', angularAMD.route({
+			url: "/approvalflow/log",
+			templateUrl: "static/view/sso/b2b/log.html",
+			controller: 'LogCtrl',
+			controllerUrl: 'js/sso/controllers/b2b/LogCtrl'
+		})).state('approvalflow_flow', angularAMD.route({
+			url: "/approvalflow/flow",
+			templateUrl: "static/view/sso/b2b/home.html",
+			controller: 'approvalFlowCtrl',
+			controllerUrl: 'js/sso/controllers/b2b/approvalFlowCtrl'
+		}));
 	}]);
 
 	// 状态码  -> 描述

+ 53 - 0
src/main/webapp/resources/js/sso/controllers/b2b/LogCtrl.js

@@ -0,0 +1,53 @@
+define(['app/app'], function(app) {
+
+    app.register.controller('LogCtrl', ['$scope', '$rootScope', 'BaseService', 'ngTableParams', 'B2bErpLog', 'B2bUsageLog', function ($scope, $rootScope, BaseService, ngTableParams, ErpLog, UsageLog) {
+       $rootScope.active = 'approvalflow_log';
+        $scope.erpParams = new ngTableParams({
+            page: 1,
+            count: 20,
+            sorting: {
+                time: 'desc'
+            }
+        }, {
+            total: 0,
+            counts: [5, 10, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                ErpLog.get(BaseService.parseParams(params.url()), function (page) {
+                    $scope.loading = false;
+                    if (page) {
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                    }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
+                });
+            }
+        });
+        $scope.usageParams = new ngTableParams({
+            page: 1,
+            count: 20,
+            sorting: {
+                time: 'desc'
+            }
+        }, {
+            total: 0,
+            counts: [5, 10, 25, 50],
+            getData: function ($defer, params) {
+                $scope.loading = true;
+                UsageLog.get(BaseService.parseParams(params.url()), function (page) {
+                    $scope.loading = false;
+                    if (page) {
+                        params.total(page.totalElements);
+                        $defer.resolve(page.content);
+                    }
+                }, function (response) {
+                    $scope.loading = false;
+                    toaster.pop('error', '数据加载失败', response.data);
+                });
+            }
+        });
+    }]);
+
+});

+ 269 - 0
src/main/webapp/resources/js/sso/controllers/b2b/approvalFlowCtrl.js

@@ -0,0 +1,269 @@
+define(['app/app'], function(app) {
+    /**
+     * 审批流
+     */
+    app.register.controller('approvalFlowCtrl', ['$scope', '$rootScope', 'toaster', '$modal', 'B2bAppFlow', 'BaseService', function ($scope, $rootScope, toaster, $modal, appFlow, BaseService) {
+        BaseService.scrollBackToTop();
+        $rootScope.active = 'approvalflow_flow';
+        $scope.vacation = false;
+        $scope.workovertime = false;
+        $scope.workdaily = false;
+        $scope.feeplease = false;
+        $scope.signapp = false;
+        appFlow.viewAppFlow({}, function (data) {// 获取已设置的列表
+            $scope.nodes = data;
+            angular.forEach($scope.nodes, function (node) {
+                if (node.appname = '请假单') {
+                    $scope.vacation = true;
+                }
+                if (node.appname = '加班单') {
+                    $scope.workovertime = true;
+                }
+                if (node.appname = '工作日报') {
+                    $scope.workdaily = true;
+                }
+                if (node.appname = '出差单') {
+                    $scope.feeplease = true;
+                }
+                if (node.appname = '申诉单') {
+                    $scope.signapp = true;
+                }
+            });
+        }, function (response) {
+
+        });
+
+        $scope.NoteSet = function () {
+            var modalInstance = $modal.open({
+                templateUrl: 'static/view/sso/b2b/modal/step1.html',
+                controller: 'NoteStep1Ctrl',
+                size: 'lg',
+                resolve: {
+                    AppName: function () {
+                        return '请假单';
+                    }
+                }
+            });
+
+            modalInstance.result.then(function (data) {
+                appFlow.saveAppFlowSet({json: data}, {}, function (data) {
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                    }
+                }, function (response) {
+
+                });
+            }, function () {
+
+            });
+        }
+
+        $scope.overTimeSet = function () {
+            var modalInstance = $modal.open({
+                templateUrl: 'static/view/sso/b2b/modal/step1.html',
+                controller: 'NoteStep1Ctrl',
+                size: 'lg',
+                resolve: {
+                    AppName: function () {
+                        return '加班单';
+                    }
+                }
+            });
+
+            modalInstance.result.then(function (data) {
+                appFlow.saveAppFlowSet({json: data}, {}, function (data) {
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                    }
+                }, function (response) {
+
+                });
+            }, function () {
+
+            });
+        }
+
+        $scope.feePleaseSet = function () {
+            var modalInstance = $modal.open({
+                templateUrl: 'static/view/sso/b2b/modal/step1.html',
+                controller: 'NoteStep1Ctrl',
+                size: 'lg',
+                resolve: {
+                    AppName: function () {
+                        return '出差单';
+                    }
+                }
+            });
+
+            modalInstance.result.then(function (data) {
+                appFlow.saveAppFlowSet({json: data}, {}, function (data) {
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                    }
+                }, function (response) {
+
+                });
+            }, function () {
+
+            });
+        }
+
+        $scope.workDailySet = function () {
+            var modalInstance = $modal.open({
+                templateUrl: 'static/view/sso/b2b/modal/step1.html',
+                controller: 'NoteStep1Ctrl',
+                size: 'lg',
+                resolve: {
+                    AppName: function () {
+                        return '工作日报';
+                    }
+                }
+            });
+
+            modalInstance.result.then(function (data) {
+                appFlow.saveAppFlowSet({json: data}, {}, function (data) {
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                    }
+                }, function (response) {
+
+                });
+            }, function () {
+
+            });
+        }
+
+        $scope.signAppSet = function () {
+            var modalInstance = $modal.open({
+                templateUrl: 'static/view/sso/b2b/modal/step1.html',
+                controller: 'NoteStep1Ctrl',
+                size: 'lg',
+                resolve: {
+                    AppName: function () {
+                        return '申诉单';
+                    }
+                }
+            });
+
+            modalInstance.result.then(function (data) {
+                appFlow.saveAppFlowSet({json: data}, {}, function (data) {
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                    }
+                }, function (response) {
+
+                });
+            }, function () {
+
+            });
+        }
+    }]);
+
+    /**
+     * 审核条件设置
+     */
+    app.register.controller('NoteStep1Ctrl', ['$scope', 'toaster', '$modalInstance', 'B2bAppFlow', 'AppName', '$filter', '$rootScope', function ($scope, toaster, $modalInstance, appFlow, AppName, $filter, $rootScope) {
+        $scope.appName = AppName;// 标题名称
+        $scope.AppFlow = {
+            appName: $scope.appName,
+            appNodes: {}
+        };
+        $scope.AppFlow.appNodes = [];
+        appFlow.getNodeByName({name: AppName}, {}, function (data) {// 通过单据名称查询单个审批流
+            if (data.appNodes.length != 0) {
+                $scope.node = data;
+                $scope.AppFlow = data;
+            }
+        }, function () {
+
+        });
+
+        $scope.copy = function () {//复制
+            $rootScope.flowcopy = angular.copy($scope.AppFlow);
+            toaster.pop('info', '提示', '复制成功');
+            $modalInstance.dismiss();
+        }
+
+        $scope.paste = function () {
+            $scope.AppFlow = {appName: $scope.appName, appNodes: {}};
+            $scope.AppFlow.appNodes = $rootScope.flowcopy.appNodes;
+        }
+
+        $scope.clear = function () {// 清空
+            $scope.AppFlow = {
+                appName: $scope.appName,
+                appNodes: {}
+            };
+            $scope.AppFlow.appNodes = [];
+        }
+
+        appFlow.getPositions({}, function (data) {// 获取人员信息
+            $scope.users = data;
+        }, function (response) {
+
+        });
+
+        appFlow.getPositionInfo({}, function (data) { // 获取职位信息
+            $scope.roles = data;
+        }, function (response) {
+
+        });
+
+        $scope.SelectUser = function (data) { // 添加人员
+            var item = {
+                useruu: null,
+                username: null,
+                level: null
+            };
+            item.useruu = data.useruu;
+            item.username = data.username;
+            $scope.AppFlow.appNodes.push(item);
+        }
+
+        $scope.SelectRole = function (data) {// 添加职位
+            var item = {
+                position: null,
+                level: null
+            };
+            item.position = data;
+            $scope.AppFlow.appNodes.push(item);
+        }
+
+        $scope.deleteNode = function (index) {// 删除节点
+            $scope.AppFlow.appNodes.splice(index, 1);
+        };
+
+        $scope.saveNode = function () { // 保存
+            angular.forEach($scope.AppFlow.appNodes, function (value, key) {
+                $scope.AppFlow.appNodes[key].level = key;
+            });
+            if ($scope.AppFlow.appNodes.length == 0) {
+                toaster.pop('info', '提示', '您还未设置审批人');
+            } else {
+                $modalInstance.close($scope.AppFlow);
+            }
+            ;
+        };
+
+        $scope.cancel = function () {// 取消
+            $modalInstance.dismiss();
+        }
+
+    }]);
+
+});

+ 98 - 0
src/main/webapp/resources/view/sso/b2b/home.html

@@ -0,0 +1,98 @@
+<style>
+    .approvalflow-flush .title {
+        height: 40px;
+        line-height: 40px;
+        background: #ecf2fd;
+        color: #333;
+        padding: 0 30px 0 15px;
+        font-size: 14px;
+    }
+    .approvalflow-flush .title a {
+        color: #5078cb;
+        float: right;
+    }
+    .approvalflow-flush .content {
+        background: #fff;
+    }
+    .approvalflow-flush .content li {
+        padding: 27px 100px 27px 40px;
+        border-bottom: 2px solid #f5f5f5;
+        font-size: 14px;
+    }
+    .approvalflow-flush .content li .inco01 {
+        margin-right: 20px;
+    }
+    .approvalflow-flush .content li .line01 {
+        margin-right: 177px;
+        width: 240px;
+    }
+    .approvalflow-flush .content li .line01 p {
+        color: #999;
+        margin-top: 8px;
+    }
+    .approvalflow-flush .content li .last {
+        margin-right: 160px;
+    }
+    .approvalflow-flush .content li .hre {
+        color: #be6732;
+    }
+</style>
+<div class="user_right fr approvalflow-flush">
+    <div class="title"><span>审批流设置</span><a ><i class="fa fa-plus-square fa-fw"></i>新增审批</a></div>
+    <div class="content" >
+        <ul>
+            <li>
+                <div class="inco01 inline-block"><a> <img src="static/img/approvalFlow/6.png"></a></div>
+                <div class="line01 inline-block">请假单<p>适用于请假审批  2017-02-27 18:00 更新</p></div>
+                <div class="inline-block last" ng-if="!vacation">审批人<a class="base-blue" ng-click="NoteSet()">(未设置)</a></div>
+                <div class="inline-block last" ng-if="vacation">审批人<a class="base-blue" ng-click="NoteSet()">(已设置)</a></div>
+                <!--  <span>抄送人(2)</span> -->
+                <div class="inline-block">抄送人<a class="hre">(未设置)</a></div>
+            </li>
+            <li>
+                <div class="inco01 inline-block"><a > <img src="static/img/approvalFlow/5.png"></a></div>
+                <div class="line01 inline-block">加班<p>适用于加班审批  2017-02-27 18:00更新</p></div>
+                <div class="inline-block last" ng-if="workovertime">审批人<a  class="base-blue" ng-click="overTimeSet()">(已设置)</a></div>
+                <div class="inline-block last" ng-if="!workovertime">审批人<a  class="base-blue" ng-click="overTimeSet()">(未设置)</a></div>
+                <div class="inline-block">抄送人<a class="hre">(未设置)</a></div>
+            </li>
+            <li>
+                <div class="inco01 inline-block"><a > <img src="static/img/approvalFlow/4.png"></a></div>
+                <div class="line01 inline-block">出差申请<p>适用于出差审批  2017-02-27 18:00更新</p></div>
+                <div class="inline-block last" ng-if="!feeplease">审批人<a  class="base-blue" ng-click="feePleaseSet()">(未设置)</a></div>
+                <div class="inline-block last" ng-if="feeplease">审批人<a  class="base-blue" ng-click="feePleaseSet()">(已设置)</a></div>
+                <div class="inline-block">抄送人<a class="hre">(未设置)</a></div>
+            </li>
+            <!--  <li>
+                 <div class="inco01"><a > <img src="static/img/approvalFlow/3.png"></a></div>
+                 <div class="content_list">
+                     <span class="line01">报销<br/><font>适用于请假审批  2017-02-27 18:00更新</font></span>
+                     <span>审批人<a  class="clolor01">(已设置)</a></span>
+                     <span>抄送人(2)</span>
+                 </div>
+             </li>-->
+            <li>
+                <div class="inco01 inline-block"><a > <img src="static/img/approvalFlow/6.png"></a></div>
+                <div class="line01 inline-block">补卡申诉<p>适用于补卡申诉  2017-02-27 18:00更新</p></div>
+                <div class="inline-block last" ng-if="!signapp">审批人<a  class="base-blue" ng-click="signAppSet()">(未设置)</a></div>
+                <div class="inline-block last" ng-if="signapp">审批人<a  class="base-blue" ng-click="signAppSet()">(已设置)</a></div>
+                <div class="inline-block">抄送人<a  class="hre">(未设置)</a></div>
+            </li>
+            <li>
+                <div class="inco01 inline-block"><a > <img src="static/img/approvalFlow/1.png"></a></div>
+                <div class="line01 inline-block">工作日报<p>适用于工作日报审批  2017-02-27 18:00更新</p></div>
+                <div class="inline-block last" ng-if="!workdaily">审批人<a  class="base-blue" ng-click="workDailySet()">(未设置)</a></div>
+                <div class="inline-block last" ng-if="workdaily">审批人<a  class="base-blue" ng-click="workDailySet()">(已设置)</a></div>
+                <div class="inline-block">抄送人<a  class="hre">(未设置)</a></div>
+            </li>
+        </ul>
+    </div>
+</div>
+<script src="static/lib/jquery/jquery.min.js"></script>
+<script type="text/ecmascript">
+$(function(){
+	$('.tanchuang .box .off').click(function () {
+		$('.tanchuang,.tanchuang .box').hide();
+	})
+})
+</script>

+ 127 - 0
src/main/webapp/resources/view/sso/b2b/log.html

@@ -0,0 +1,127 @@
+<style>
+	.title-div .pull-right{
+		float: right;
+		margin-right: 15px;
+		font-weight: normal;
+	}
+	.title-div .pull-right a{
+		font-weight: normal;
+		font-size: 14px;
+		color: #5078cb;
+	}
+	#order-detail-list .table-default .header th{
+		color: #323232;
+		font-weight: bold;
+		border-bottom: #e8e8e8 1px solid;
+	}
+	#order-detail-list .table>tbody+tbody{
+		border-top: none;
+	}
+	#order-detail-list .table-default td{
+		border-bottom: #e8e8e8 1px solid;
+		border-top: none;
+	}
+	#order-detail-list .table-default td i{
+		color: #5078cb;
+	}
+	#order-detail-list tbody tr{
+		height: 60px;
+	}
+	#order-detail-list{
+		padding-bottom: 10px;
+	}
+	.pane{
+		box-shadow: none;
+		margin-bottom: 0;
+		border-bottom: 1px solid #e8e8e8;
+		background: #fff;
+	}
+	.pane .pane-body{
+		padding: 0;
+	}
+	.operate-log .title-div {
+		height: 40px;
+		line-height: 40px;
+		color: #5078cb;
+		background: #ecf2fd;
+		padding: 0 15px;
+	}
+	.operate-log .title-div .bold {
+		font-weight: bold;
+	}
+	.operate-log .b2b-modal-table {
+		width: 1000px;
+		margin: 14px auto;
+	}
+	.operate-log .b2b-modal-table > tbody > tr > td {
+		line-height: inherit;
+	}
+</style>
+<div class="user_right fr operate-log">
+	<div class="pane base-info">
+		<div class="title-div">
+			<span class="f14 bold">数据传输日志</span>
+			<div class="pull-right">
+				<a href="log/erp/xls" target="_self" class="text-simple"><i class="fa fa-file-text fa-fw"></i>导出</a>
+			</div>
+		</div>
+		<div class="pane-body clearfix" id="order-detail-list" style="width: 100%;">
+			<table class="table b2b-modal-table"
+				   ng-table="erpParams">
+				<thead>
+				<tr class="header">
+					<th width="130">时间</th>
+					<th width="130">客户端IP</th>
+					<th width="80">操作人员</th>
+					<th width="120">请求资源</th>
+					<th>请求动作</th>
+					<th width="80">数据包</th>
+				</tr>
+				</thead>
+				<tbody>
+				<tr ng-repeat="erp in $data">
+					<td class="text-center" ng-bind="::erp.time | date:'MM-dd HH:mm:ss'"></td>
+					<td class="text-center" ng-bind="::erp.ip"></td>
+					<td class="text-center" ng-bind="::erp.user.userName"></td>
+					<td class="text-center" ng-bind="::erp.title"></td>
+					<td ng-bind="::erp.message"></td>
+					<td class="text-center" ng-bind="::erp.total"></td>
+				</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+	<div class="pane base-info">
+		<div class="title-div">
+			<span class="f14 bold">平台使用日志</span>
+			<div class="pull-right">
+				<a href="log/usage/xls" target="_self" class="text-simple"><i class="fa fa-file-text fa-fw"></i>导出</a>
+			</div>
+		</div>
+		<div class="pane-body clearfix" id="order-detail-list" style="width: 100%;">
+			<table class="table b2b-modal-table"
+				   ng-table="usageParams">
+				<thead>
+				<tr class="header">
+					<th width="130">时间</th>
+					<th width="130">客户端IP</th>
+					<th width="80">操作人员</th>
+					<th width="120">请求资源</th>
+					<th>请求动作</th>
+					<th>备注</th>
+				</tr>
+				</thead>
+				<tbody>
+				<tr ng-repeat="usage in $data">
+					<td class="text-center" ng-bind="::usage.time | date:'MM-dd HH:mm:ss'"></td>
+					<td class="text-center" ng-bind="::usage.ip"></td>
+					<td class="text-center" ng-bind="::usage.user.userName"></td>
+					<td class="text-center" ng-bind="::usage.title"></td>
+					<td ng-bind="::usage.message"></td>
+					<td ng-bind="::usage.detail"></td>
+				</tr>
+				</tbody>
+			</table>
+		</div>
+	</div>
+</div>

+ 720 - 0
src/main/webapp/resources/view/sso/b2b/modal/step1.html

@@ -0,0 +1,720 @@
+<style>
+    /*弹出框*/
+    .tanchuang {
+        width: 100%;
+        height: 100%;
+        position: fixed;
+        z-index: 11111;
+        background: rgba(0, 0, 0, 0.4);
+        top: 0;
+        left: 0;
+        display: block;
+    }
+
+    .tanchuang .box {
+        position: relative;
+        left: 0;
+        right: 0;
+        top: 0;
+        bottom: 0;
+        margin: auto;
+        margin-top: 15%;
+        box-shadow: 2px 2px 3px #888;
+    }
+
+    .tanchuang .box i {
+        width: 20px;
+        height: 20px;
+        display: inline-block;
+        position: absolute;
+        right: 5px;
+        top: 8px;
+        text-align: center;
+    }
+
+    .tanchuang .box01, .tanchuang .box02 {
+        width: 808px;
+        min-height: 315px;
+        background: #fff;
+        padding-bottom: 10px;
+    }
+
+    .box p {
+        width: 100%;
+        margin: 0px auto;
+        height: 50px;
+        line-height: 50px;
+        display: inline-block;
+        font-size: 14px;
+        color: #5f5d5d;
+        border-bottom: #595959 1px dashed;
+    }
+
+    .box p span {
+        margin-left: 20px;
+        line-height: 55px;
+    }
+
+    .box p span b, .box01_01 span b, .day_number div b {
+        font-size: 12px;
+        color: #969595;
+        font-weight: normal;
+    }
+
+    .box01_01 {
+        width: 100%;
+        margin: 0px auto;
+        height: 55px;
+        line-height: 55px;
+        font-size: 14px;
+        color: #323232;
+        margin-bottom: 10px;
+    }
+
+    .box01_01 span a {
+        color: #3f84f6;
+        font-size: 12px;
+        margin-left: 10px;
+    }
+
+    .box01_01 span.sp01 {
+        margin-left: 25px;
+        display: inline-block;
+    }
+
+    .box01_01 span.sp02 {
+        margin-left: 95px;
+    }
+
+    .box01_01 span input {
+        margin-right: 6px;
+        vertical-align: middle;
+        position: relative;
+        top: -2px;
+    }
+
+    .box01_02 {
+        width: 716px;
+        min-height: 110px;
+        border: #cccccd 1px solid;
+        margin: 0px auto;
+        position: relative;
+        padding-bottom: 10px;
+        overflow: hidden;
+    }
+
+    .box01_02 span {
+        width: 142px;
+        text-align: center;
+        display: inline-block;
+    }
+
+    .box01_02 a {
+        width: 50px;
+        height: 50px;
+        background: #cccccd;
+        border-radius: 50%;
+        text-align: center;
+        font-size: 12px;
+        display: inline-block;
+        margin-top: 18px;
+        color: #969595;
+    }
+
+    .box01_02 em {
+        text-align: center;
+        font-size: 12px;
+        color: #969595;
+        width: 100%;
+        margin: 0px auto;
+        display: inline-block;
+        font-style: inherit;
+        margin-top: 10px;
+        text-align: center;
+    }
+
+    .box01_02 span:hover a, .box01_02 span.active:hover a {
+        background: #3f84f6;
+    }
+
+    .box01_02 span.active a {
+        background: #8bc6f7;
+    }
+
+    .box01_02 span:hover em, .box01_02 span.active em {
+        color: #3f84f6;
+    }
+
+    .box01_02 span.active {
+        position: relative;
+    }
+
+    .box01_02 span.active:before {
+        content: "";
+        width: 76px;
+        height: 6px;
+        background: url(../img/approvalFlow/dot01.png) no-repeat;
+        display: inline-block;
+        position: absolute;
+        top: 40px;
+        right: 102px;
+    }
+
+    .box01_02 a img {
+        margin-top: 12px;
+    }
+
+    .box01_03 {
+        width: 235px;
+        margin: 0px auto;
+        margin-top: 20px;
+    }
+
+    .box01_03 a, .box_list .btn01, .next_btn a {
+        width: 94px;
+        height: 36px;
+        line-height: 36px;
+        font-size: 14px;
+        display: inline-block;
+        text-align: center;
+    }
+
+    .box01_03 a.btn01, .box_list .btn01, .next_btn a {
+        background: #3f84f6;
+        color: #fff;
+    }
+
+    .box_list .btn01 a {
+        color: #fff;
+    }
+
+    .box01_03 a.btn02 {
+        border: #3f84f6 1px solid;
+        color: #3f84f6;
+        margin-left: 45px;
+    }
+
+    .box01_03 a:hover, .box_list .btn01:hover, .next_btn a:hover {
+        background: #135c9a;
+        color: #fff;
+    }
+    #caozuo {
+        position: absolute;
+        top: 0;
+        right: 0;
+    }
+
+    #caozuo a {
+        width: 42px;
+        height: 24px;
+        display: inline-block;
+        background: #8bc6f7;
+        font-size: 12px;
+        color: #fff;
+        margin: 0 0 0 3px;
+        float: left;
+        border-radius: 1px;
+        line-height: 24px;
+    }
+
+    #caozuo a.over {
+        color: #969595;
+        background: #d9dadd;
+    }
+
+    #caozuo a:hover {
+        background: #3f84f6;
+        color: #fff;
+    }
+
+    .com_head01 {
+        width: 100%;
+        margin: 0px auto;
+        height: 50px;
+        line-height: 50px;
+        border-bottom: #5078cb 1px dotted;
+    }
+
+    .com_head01 span {
+        margin-left: 30px;
+        font-size: 14px;
+        color: #323232;
+    }
+
+    #caozuo span {
+
+    }
+
+    .tanchuang .box03 {
+        width: 808px;
+        height: 620px;
+        background: #fff;
+    }
+
+    #caozuo01 {
+        width: 716px;
+        margin: 0px auto;
+        background: #efefef;
+        height: 24px;
+        line-height: 24px;
+        border: #cccccd 1px solid;
+        border-bottom: none;
+        margin-top: 10px;
+    }
+
+    #caozuo01 a {
+        width: 42px;
+        height: 24px;
+        display: inline-block;
+        background: #8bc6f7;
+        font-size: 12px;
+        color: #fff;
+        margin: 0 0 0 3px;
+        float: left;
+        border-radius: 1px;
+        line-height: 24px;
+        text-align: center;
+    }
+
+    #caozuo01 a.over {
+        color: #969595;
+        background: #d9dadd;
+    }
+
+    #caozuo01 a:hover {
+        background: #3f84f6;
+        color: #fff;
+    }
+
+    .box04 {
+        width: 1014px;
+        height: 580px;
+        background: #fff;
+    }
+    @media screen and (max-width: 1366px) {
+        .box04,.box01{
+            margin-top: 7% !important;
+        }
+        .box01_02{
+            max-height: 300px;
+            overflow-y: overlay;
+            overflow-x: hidden;
+        }
+        #caozuo{
+            right: 20px;
+        }
+    }
+    .box05 {
+        width: 706px;
+        height: 588px;
+        background: #fff;
+    }
+
+    .box06 {
+        width: 706px;
+        height: 508px;
+        background: #fff;
+    }
+
+    .box07 {
+        width: 946px;
+        height: 541px;
+        background: #fff;
+    }
+    .box_content {
+        width: 980px;
+        height: 500px;
+        margin-top: -115px;
+        margin-left: -250px;
+        background: #fff;
+    }
+
+    .box_content .box_content01 {
+        width: 288px;
+        height: 430px;
+        float: left;
+        margin-left: 30px;
+        position: relative;
+    }
+
+    .box_content .box_content01 h4 {
+        width: 100%;
+        display: inline-block;
+        height: 50px;
+        line-height: 50px;
+        font-size: 14px;
+        color: #5f5d5d;
+    }
+
+    .box_content .box_content01 h4 font {
+        color: #969595;
+        font-size: 12px;
+    }
+
+    .box_list {
+        width: 100%;
+        height: 100%;
+        border: #e5e5e5 1px solid;
+        position: relative;
+    }
+
+    .box_list h5 {
+        width: 100%;
+        height: 100%;
+        line-height: 430px;
+        font-size: 14px;
+        color: #969595;
+        display: inline-block;
+        text-align: center;
+    }
+
+    .dot02 {
+        width: 13px;
+        content: "";
+        height: 26px;
+        display: inline-block;
+        position: absolute;
+        top: 250px;
+        right: -23px;
+        background: url("../img/approvalFlow/dot02.png") no-repeat;
+    }
+
+    .box_list dl {
+        width: 100%;
+        margin: 0 auto;
+        margin-top: 10px;
+        display: inline-block;
+        margin-left: 20px;
+    }
+
+    .box_list dl dt, .box_list dl dd {
+        width: 100%;
+        margin: 0 auto;
+    }
+
+    .box_list dl dt {
+        font-size: 12px;
+        color: #5f5d5d;
+        line-height: 30px;
+        margin-bottom: 5px;
+    }
+
+    .box_list dl dd a, .style_list a {
+        font-size: 12px;
+        color: #3f84f6;
+        width: 66px;
+        height: 24px;
+        line-height: 24px;
+        float: left;
+        display: inline-block;
+        background: #deeffe;
+        text-align: center;
+        margin: 0 25px 10px 0;
+        position: relative;
+    }
+
+    .box_list dl dd a:hover, .style_list a:hover {
+        background: #3f84f6;
+        color: #fff;
+    }
+
+    .box_list dl dd a.color01, .style_list a.color01 {
+        background: #d9dadd;
+        color: #969595;
+    }
+
+    .box_list .sreach {
+        width: 240px;
+        height: 26px;
+        border: #f2f1f2 1px solid;
+        border-radius: 10px;
+        margin: 0 auto;
+        margin-top: 10px;
+        margin-bottom: 10px;
+    }
+
+    .box_list .sreach input {
+        width: 200px;
+        float: left;
+        height: 24px;
+        line-height: 24px;
+        color: #969595;
+        font-style: 12px;
+        border: none;
+        text-align: center;
+        border-radius: 10px;
+    }
+
+    .box_list .sreach:hover {
+        border: #8bc6f7 1px solid;
+    }
+
+    .box_list .sreach button {
+        width: 35px;
+        height: 26px;
+        line-height: 26px;
+        background: transparent;
+        float: right;
+        border: none;
+        position: relative;
+        text-align: center;
+    }
+
+    .box_list .sreach button:before {
+        content: "";
+        width: 16px;
+        height: 16px;
+        display: inline-block;
+        position: absolute;
+        background: url("../img/approvalFlow/sreach_bt.png") no-repeat center;
+        background-position: -16px 0;
+        overflow: hidden;
+        top: 5px;
+        right: 10px;
+    }
+
+    .box_list .sreach button:hover:before {
+        background-position: 0 0;
+    }
+
+    .box_list .zimu {
+        width: 100%;
+        margin: 0 auto;
+        height: 18px;
+        line-height: 18px;
+        background: #f4f5f7;
+    }
+
+    .box_list .zimu span {
+        margin-left: 20px;
+    }
+
+    .box_list ul {
+        width: 100%;
+        margin: 0 auto;
+    }
+
+    .box_list ul li {
+        width: 96%;
+        margin: 0 auto;
+        height: 35px;
+        line-height: 35px;
+        margin-left: 20px;
+    }
+
+    .box_list ul li span {
+        width: 100%;
+        float: left;
+    }
+
+    .box_list ul li span em {
+        width: 60px;
+        display: inline-block;
+    }
+
+    .box_list ul li a {
+        width: 25%;
+        float: right;
+        color: #3f84f6;
+    ;
+    }
+
+    .box_list ul li a:hover {
+        color: #bc2122;
+    }
+
+    .box_list dl dd .jiantou:before {
+        content: "";
+        width: 22px;
+        height: 8px;
+        display: inline-block;
+        background: url("../img/approvalFlow/inco_list.png") no-repeat;
+        background-position: -5px -23px;
+        position: absolute;
+        right: 65px;
+        top: 10px;
+    }
+
+    .caozuo01 {
+        margin-top: 20px !important;
+    }
+
+    .caozuo01 a:after {
+        content: "";
+        width: 18px;
+        height: 18px;
+        display: inline-block;
+        background: url("../img/approvalFlow/inco_list.png") no-repeat;
+        background-position: 0 -1px;
+        position: absolute;
+        top: -8px;
+        right: -8px;
+    }
+
+    .caozuo01 a:hover:after {
+        background-position: -20px -1px;
+    }
+
+    .box_list .btn01 {
+        position: absolute;
+        bottom: 0;
+        right: 0;
+    }
+
+</style>
+<!--弹出框01 审批人设置-->
+<div class="tanchuang" id="step1">
+	<!--弹出框01 设置-企业设置-审批流-审批人设置-->
+	<div class="box box01">
+    	<i class="off"><img src="static/img/approvalFlow/close.png" alt="" ng-click="cancel()"></i>
+        <p><span>{{appName}}-审批人设置</span></p>
+        <div class="box01_01">
+        	<span class="sp01"><input type="radio" name="radio01" checked>不分条件设置审批人</span>
+            <span class="sp02"><input type="radio" name="radio01">分条件设置审批人<a href="#">设置审批条件</a></span>
+        </div>
+        <div class="box01_02" ng-if="node==null">
+        	<span ng-if="AppFlow.appNodes.length==0">
+        		<a href="#" class="btn btn-set"><img src="static/img/approvalFlow/add_user.png" alt=""></a>
+            	<em>增加审批人</em>
+            </span>
+            <span ng-class="{'active': !$first}" ng-if="AppFlow.appNodes.length!=0" ng-repeat="flow in AppFlow.appNodes">
+        		<a href="#"><img src="static/img/approvalFlow/add_user01.png" alt=""></a>
+            	<em><span ng-bind="flow.username ? flow.username : flow.role"></span></em>
+            </span>
+             <div id="caozuo">
+                <a ng-click="paste()">粘贴</a>
+                <a ng-click="clear()" class="over">清空</a>
+           	 </div>
+        </div>
+        <div class="box01_02" ng-if="node!=null">
+            <span ng-class="{'active': !$first}" ng-repeat="flow in node.appNodes">
+        		<a href="#"><img src="static/img/approvalFlow/add_user01.png" alt=""></a>
+            	<em><span ng-bind="flow.username ? flow.username : flow.role"></span></em>
+            </span>
+             <div id="caozuo">
+            	<a class="btn-set">设置</a>
+                <a ng-click="copy()">拷贝</a>
+           	 </div>
+        </div>
+        <div class="box01_03">
+        	<a class="btn01" ng-click="saveNode()" disabled="disabled">保存</a><a class="btn02" ng-click="cancel()">取消</a>
+        </div>
+    </div>
+</div>
+<div class="tanchuang" style="display: none" id="NodeSet">
+    <!--弹出框04 设置-企业设置-审批流-审批人设置-设置-->
+    <div class="box box04">
+        <i class="off"><img src="static/img/approvalFlow/close.png" alt="" ng-click="cancel()"></i>
+        <div style="background: #fff;">
+            <div class="box_content clearfix">
+                <div class="box_content01">
+                    <h4>{{appName}}-已选审批节点</h4>
+                    <div class="box_list">
+                        <dl >
+                            <dd ng-repeat="flow in AppFlow.appNodes" class="caozuo01"  ng-click="deleteNode($index)">
+                                <a href="#" ng-bind="flow.username ? flow.username : flow.position" ng-class="{'jiantou': !$first}"></a>
+                            </dd>
+                        </dl>
+                        <h5 ng-if="AppFlow.appNodes.length==0">请从右侧选择审批节点</h5>
+                    </div>
+                    <a href="#" class="dot02" ></a>
+                </div>
+                <div class="box_content01">
+                    <h4>角色<font>(不受人员异动的影响)</font></h4>
+                    <div class="box_list">
+                        <dl>
+                            <dt>人员类型</dt>
+                            <dd>
+                                <a href="#">普通用户</a>
+                                <a href="#">管理员</a>
+                            </dd>
+                        </dl>
+                        <dl>
+                            <dt>用户角色</dt>
+                            <dd ng-repeat="role in roles">
+                                <a ng-click="SelectRole(role)" ng-if="role!='{}'">{{role}}</a>
+                                <a ng-click="" ng-if="role='{}'" >暂无角色</a>
+                            </dd>
+                        </dl>
+                    </div>
+                </div>
+                <div class="box_content01">
+                    <h4>指定人员<font>(受人员异动的影响)</font></h4>
+                    <div class="box_list">
+                        <div class="sreach"><input type="search"  placeholder="请输入姓名/部门搜索" ng-model="keyword" ng-search="search(keyword)"><button></button> </div>
+                        <div style="position: relative; overflow-y: auto; overflow-x: hidden;max-height: 380px;">
+                            <div class="zimu"><span>C</span></div>
+                            <ul ng-repeat="user in users| filter: keyword">
+                                <li ><span><em>{{user.username}}</em>
+                   			{{user.department}} {{user.role}}
+                   			<a ng-click="SelectUser(user)">添加</a>
+                                </li>
+                            </ul>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="box01_03">
+                <a class="btn01" href="#">保存</a><a class="btn02" ng-click="cancel()">取消</a>
+            </div>
+        </div>
+    </div>
+</div>
+<div class="tanchuang" style="display: none" id="NodeCondition">
+    <!--弹出框07 设置-企业设置-审批流-审批人设置-设置审批条件-->
+    <div class="box box07">
+        <i class="off"><img src="static/img/approvalFlow/close.png" alt="" ng-click="cancel()"></i>
+        <p><span>设置审批条件<b>(只能指定一个组件为审批条件)</b></span></p>
+        <div class="box01_01">
+            <span class="sp01"><input type="radio" name="radio01" checked>请假类型<b>(选项内容将会作为审批条件)</b></span>
+        </div>
+        <div class="style_list">
+            <a href="#">事假</a>
+            <a href="#">病假</a>
+            <a href="#" class="color01">年假</a>
+            <a href="#">调休</a>
+            <a href="#">婚假</a>
+            <a href="#">产假</a>
+            <a href="#">陪产假</a>
+            <a href="#">路途假</a>
+            <a href="#">其它</a>
+        </div>
+        <div class="box01_01">
+            <span class="sp01"><input type="radio" name="radio01">请假天数</span>
+        </div>
+        <div class="day_number">
+            <div>
+                <input type="text" value="3"><font>≤</font><input type="text" value="5">
+                <b>(请输入“请假时间”分隔数字,,我们将为您自动生成数值区间做为审批条件)</b>
+            </div>
+            <div class="demo">
+                <span><em>1</em>输入“请假时间”分隔数字</span>
+                <span style="margin-left: 70px"><input type="text" value="3"><font>≤</font><input type="text" value="5"></span>
+                <span><em>2</em>我们将为您自动生成数值区间做为审批条件</span>
+                <span><a class="color01">请假天数<5</a><a class="color02">一级主管</a></span>
+                <span><a class="color01">5≤请假天数≤10</a><a class="color02 color002">一级主管</a><a class="color02">二级主管</a></span>
+                <span><a class="color01">10≤请假天数</a><a class="color02 color002">一级主管</a><a class="color02 color002">二级主管</a><a class="color02">三级主管</a></span>
+            </div>
+        </div>
+        <div class="next_btn"><a href="#">下一步</a> </div>
+    </div>
+</div>
+<script src="static/lib/jquery/jquery.min.js"></script>
+<script type="text/ecmascript">
+$(function() {
+	$('.tanchuang .box .off').click(function () {
+		$('#NodeSet .box').hide();
+		$('#step1 .box').hide();
+	});
+	
+	$('.btn-set').click(function() {
+		$('#NodeSet, #NodeSet .box').show();
+		$('#step1 .box').hide();
+	});
+	
+	$('#NodeSet .box .box01_03 .btn01').click(function() {
+		$('#NodeSet .box').hide();
+		$('#step1 .box').show();
+	});
+})
+</script>

+ 2 - 0
src/main/webapp/resources/view/sso/left_nav.html

@@ -51,6 +51,8 @@
 		<li ng-class="{'active' : active == 'sso_invoice'}"><span ui-sref="ssoInvoice">开票信息</span></li>
 		<li ng-class="{'active' : active == 'vendor_pay_center'}" ng-if="userInfo.enterprise.uu && userInfo.enterprise.isVendor == 313"><span ui-sref="gatheringAccount({'tab': 'accountTab'})">收款账户</span></li>
 		<li ng-class="{'active' : active == 'buyer_pay_center'}"><span ui-sref="payAccount({'status': 'pay-info'})">付款账户</span></li>
+		<li ng-class="{'active' : active == 'approvalflow_log'}"><span ui-sref="approvalflow_log">操作日志</span></li>
+		<li ng-class="{'active' : active == 'approvalflow_flow'}"><span ui-sref="approvalflow_flow">审批流</span></li>
 		<!--<li ng-class="{'active' : active == 'vendor_logistics'}">-->
 			<!--<span  ui-sref="vendor_logistics" ng-hide="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->
 			<!--<span  ui-sref="vendor_deliveryRule" ng-if="store && (!store.status || store.status === 'OPENED')">物流管理</span>-->