Commit 6ebda363a815497d1bae16a60424ef70d442c84e
1 parent
56a8fc68
update...
Showing
9 changed files
with
185 additions
and
64 deletions
src/main/resources/auths.json
| ... | ... | @@ -33,6 +33,11 @@ |
| 33 | 33 | "page": "/pages/attendance/att_data_main.html", |
| 34 | 34 | "items": [ |
| 35 | 35 | { |
| 36 | + "code": "maintain_plan", | |
| 37 | + "name": "保养计划", | |
| 38 | + "page": "/pages/attendance/maintain_plan_list.html" | |
| 39 | + }, | |
| 40 | + { | |
| 36 | 41 | "code": "att_list", |
| 37 | 42 | "name": "签到退记录", |
| 38 | 43 | "page": "/pages/attendance/list.html" |
| ... | ... | @@ -40,6 +45,18 @@ |
| 40 | 45 | ] |
| 41 | 46 | }, |
| 42 | 47 | { |
| 48 | + "code": "schedule_plan", | |
| 49 | + "name": "计划排班", | |
| 50 | + "page": "/pages/plan_schedule/p_s_main.html", | |
| 51 | + "items": [ | |
| 52 | + { | |
| 53 | + "code": "p_s_tzrc", | |
| 54 | + "name": "调整人车", | |
| 55 | + "page": "/pages/plan_schedule/tzrc/list.html" | |
| 56 | + } | |
| 57 | + ] | |
| 58 | + }, | |
| 59 | + { | |
| 43 | 60 | "code": "basic_data", |
| 44 | 61 | "name": "基础数据", |
| 45 | 62 | "page": "/pages/basic_data/main.html", |
| ... | ... | @@ -85,16 +102,6 @@ |
| 85 | 102 | "code": "user", |
| 86 | 103 | "name": "用户和账号", |
| 87 | 104 | "page": "/pages/system_manager/user/user_list.html" |
| 88 | - }, | |
| 89 | - { | |
| 90 | - "code": "logs", | |
| 91 | - "name": "日志", | |
| 92 | - "page": "" | |
| 93 | - }, | |
| 94 | - { | |
| 95 | - "code": "config", | |
| 96 | - "name": "参数配置", | |
| 97 | - "page": "" | |
| 98 | 105 | } |
| 99 | 106 | ] |
| 100 | 107 | } | ... | ... |
src/main/resources/static/index.html
| ... | ... | @@ -28,16 +28,14 @@ |
| 28 | 28 | <div class="uk-card uk-card-default uk-card-body uk-width-1-1@m top_tools"> |
| 29 | 29 | <h3 class="uk-card-title"><img src="/assets/svg/park.svg"> 调派系统</h3> |
| 30 | 30 | <div class="ct-btn-list"> |
| 31 | - <span class="ct-btn-link lasting" data-name="b_p_manager" data-page="/pages/b_p_manager/b_p_main.html">停放监管</span> | |
| 32 | - <span class="ct-btn-link lasting" data-name="abnormal_data" data-page="/pages/abnormal/main.html">异常监管</span> | |
| 33 | - <span class="ct-btn-link" data-name="inout_data" data-page="/pages/inout/in_out_main.html">进出场</span> | |
| 34 | - <span class="ct-btn-link" data-name="attendance_data" data-page="/pages/attendance/att_data_main.html">签到/退</span> | |
| 35 | - <span class="ct-btn-link" data-name="schedule_plan" data-page="/pages/plan_schedule/p_s_main.html">计划排班</span> | |
| 36 | - <span class="ct-btn-link" data-name="basic_data" data-page="/pages/basic_data/main.html">基础数据</span> | |
| 37 | - <span class="ct-btn-link" data-name="system_manager" data-page="/pages/system_manager/sm_main.html">系统管理</span> | |
| 38 | - | |
| 31 | + <div class="menu_list" style="display: inline-block;"></div> | |
| 39 | 32 | <span class="ct-user-info"> |
| 40 | - <i uk-icon="icon: user;"></i> admin,在线 | |
| 33 | + <div><i uk-icon="icon: user;"></i> <span id="user_name_t_span"></span>,在线</div> | |
| 34 | + <div uk-dropdown=""> | |
| 35 | + <ul class="uk-nav uk-dropdown-nav"> | |
| 36 | + <li><a href="/logout">退出登陆</a></li> | |
| 37 | + </ul> | |
| 38 | + </div> | |
| 41 | 39 | </span> |
| 42 | 40 | </div> |
| 43 | 41 | </div> |
| ... | ... | @@ -45,6 +43,18 @@ |
| 45 | 43 | <div class="ct-cont-body"></div> |
| 46 | 44 | </div> |
| 47 | 45 | |
| 46 | +<script id="index_menu_list-temp" type="text/html"> | |
| 47 | + {{each list as obj i}} | |
| 48 | + <span class="ct-btn-link" data-name="{{obj.code}}" data-page="{{obj.page}}">{{obj.name}}</span> | |
| 49 | + {{/each}} | |
| 50 | +</script> | |
| 51 | + | |
| 52 | +<script id="sub_menu_list-temp" type="text/html"> | |
| 53 | + {{each list as obj i}} | |
| 54 | + <li class="ct-btn-link" data-name="{{obj.code}}" data-page="{{obj.page}}">{{obj.name}}</li> | |
| 55 | + {{/each}} | |
| 56 | +</script> | |
| 57 | + | |
| 48 | 58 | <script src="/assets/plugins/d3/d3.min.js" ></script> |
| 49 | 59 | <script src="/assets/plugins/d3/radialprogress/vizuly_core.min.js" ></script> |
| 50 | 60 | <script src="/assets/plugins/d3/radialprogress/vizuly_radialprogress.min.js" ></script> |
| ... | ... | @@ -76,7 +86,6 @@ |
| 76 | 86 | <script src="/assets/plugins/toastr/toastr.min.js"></script> |
| 77 | 87 | <script src="/js/tts.js"></script> |
| 78 | 88 | |
| 79 | - | |
| 80 | 89 | <script src="/js/common.js"></script> |
| 81 | 90 | <!-- 主JS 文件 --> |
| 82 | 91 | <script src="/js/main.js"></script> | ... | ... |
src/main/resources/static/js/main.js
| 1 | +/** | |
| 2 | + * 动态菜单相关 ----- start ----- | |
| 3 | + */ | |
| 4 | +var cUser, cMenus, allAuths; | |
| 5 | +$.get('/user/currentUser', function (rs) { | |
| 6 | + cUser = rs; | |
| 7 | + $('#user_name_t_span').text(cUser.userName); | |
| 8 | + | |
| 9 | + //用户的菜单权限 | |
| 10 | + cMenus = {}; | |
| 11 | + var arr1 = cUser.roles[0]['menuStr'].split('$') | |
| 12 | + , arr2; | |
| 13 | + | |
| 14 | + for (var i = 0, len = arr1.length; i < len; i++) { | |
| 15 | + if (!arr1[i] || arr1[i] == '') | |
| 16 | + continue; | |
| 17 | + | |
| 18 | + arr2 = arr1[i].split('^'); | |
| 19 | + cMenus[arr2[0]] = []; | |
| 20 | + | |
| 21 | + if (arr2.length == 1) | |
| 22 | + continue; | |
| 23 | + | |
| 24 | + for (var j = 1; j < arr2.length; j++) { | |
| 25 | + cMenus[arr2[0]].push(arr2[j]); | |
| 26 | + } | |
| 27 | + } | |
| 28 | + | |
| 29 | + all_auths(function (auths) { | |
| 30 | + allAuths = auths; | |
| 31 | + | |
| 32 | + //渲染一级菜单 | |
| 33 | + var menu1 = gb_common.get_keys(cMenus) | |
| 34 | + , data = []; | |
| 35 | + | |
| 36 | + for (var i = 0, t; t = menu1[i++];) { | |
| 37 | + if (!auths[t]) | |
| 38 | + continue; | |
| 39 | + data.push({ | |
| 40 | + code: t, | |
| 41 | + name: auths[t].name, | |
| 42 | + page: auths[t].page | |
| 43 | + }); | |
| 44 | + } | |
| 45 | + | |
| 46 | + var mentWrap = '.ct-container>.top_tools .menu_list'; | |
| 47 | + var htmlStr = template('index_menu_list-temp', {list: data}); | |
| 48 | + $(mentWrap).html(htmlStr); | |
| 49 | + | |
| 50 | + //默认选中第一项 | |
| 51 | + $('.ct-btn-link:eq(0)', mentWrap).trigger('click'); | |
| 52 | + }); | |
| 53 | +}); | |
| 54 | + | |
| 55 | +function all_auths(cb) { | |
| 56 | + $.get('/role/auth_json', function (rs) { | |
| 57 | + var list = JSON.parse(rs).list; | |
| 58 | + | |
| 59 | + var data = {}; | |
| 60 | + | |
| 61 | + for (var i = 0, obj; obj = list[i++];) { | |
| 62 | + data[obj.code] = { | |
| 63 | + name: obj.name, | |
| 64 | + page: obj.page | |
| 65 | + } | |
| 66 | + | |
| 67 | + if (!obj.items) | |
| 68 | + continue; | |
| 69 | + | |
| 70 | + for (var j = 0, item; item = obj.items[j++];) { | |
| 71 | + data[obj.code + '$' + item.code] = { | |
| 72 | + name: item.name, | |
| 73 | + page: item.page | |
| 74 | + } | |
| 75 | + } | |
| 76 | + } | |
| 77 | + | |
| 78 | + cb && cb(data); | |
| 79 | + }); | |
| 80 | +} | |
| 81 | + | |
| 82 | +/** | |
| 83 | + * 渲染二级菜单 | |
| 84 | + */ | |
| 85 | +function renderSubmmenu(wrap) { | |
| 86 | + var pCode = $('.ct-btn-link.active', top_btn_list).data('name'); | |
| 87 | + var mList = cMenus[pCode]; | |
| 88 | + | |
| 89 | + if(mList){ | |
| 90 | + var data = []; | |
| 91 | + for(var i=0,t;t=mList[i++];){ | |
| 92 | + data.push({ | |
| 93 | + code: t, | |
| 94 | + name: allAuths[pCode+'$'+ t].name, | |
| 95 | + page: allAuths[pCode+'$'+ t].page | |
| 96 | + }) | |
| 97 | + } | |
| 98 | + | |
| 99 | + var menuStr = template('sub_menu_list-temp', {list: data}); | |
| 100 | + $('.left-menus>ul', wrap).html(menuStr); | |
| 101 | + | |
| 102 | + //默认选中第一项 | |
| 103 | + $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 104 | + } | |
| 105 | +} | |
| 106 | +/** | |
| 107 | + * 动态菜单相关 ----- end ----- | |
| 108 | + */ | |
| 109 | + | |
| 110 | + | |
| 1 | 111 | var company_json, company_code_name = {}; |
| 2 | 112 | var cont = $('.ct-container'); |
| 3 | 113 | var top_btn_list = $('.ct-btn-list', cont); |
| ... | ... | @@ -21,19 +131,29 @@ var ep = EventProxy.create('load_company', 'load_lines', function (companyData, |
| 21 | 131 | |
| 22 | 132 | groupLineArrays[key].push(this); |
| 23 | 133 | }); |
| 24 | - //默认显示 | |
| 25 | - $('.ct-btn-link[data-name=b_p_manager]').trigger('click'); | |
| 134 | + | |
| 26 | 135 | gb_basic_data.init(); |
| 27 | 136 | }); |
| 28 | 137 | |
| 29 | -$('.ct-btn-link', top_btn_list).on('click', function () { | |
| 138 | +/** | |
| 139 | + * 一级菜单点击事件 | |
| 140 | + */ | |
| 141 | +var _loading; | |
| 142 | +top_btn_list.on('click', '.ct-btn-link', function () { | |
| 143 | + if(_loading) | |
| 144 | + return; | |
| 145 | + | |
| 146 | + _loading = true; | |
| 147 | + | |
| 30 | 148 | var page = $(this).data('page'); |
| 31 | 149 | if (!page) |
| 32 | 150 | return; |
| 33 | - var that = this; | |
| 151 | + | |
| 152 | + $('.ct-btn-link.active', top_btn_list).removeClass('active'); | |
| 153 | + $(this).addClass('active'); | |
| 154 | + | |
| 34 | 155 | $('.ct-cont-body', cont).trigger('exit').empty().load(page, function () { |
| 35 | - $('.ct-btn-link.active', top_btn_list).removeClass('active'); | |
| 36 | - $(that).addClass('active'); | |
| 156 | + _loading = false; | |
| 37 | 157 | }); |
| 38 | 158 | }); |
| 39 | 159 | ... | ... |
src/main/resources/static/pages/attendance/att_data_main.html
| 1 | 1 | <div id="att_data_wrap" class="l_r_split_screen"> |
| 2 | 2 | |
| 3 | 3 | <div class="left-menus"> |
| 4 | - <ul class="uk-list"> | |
| 5 | - <li class="ct-btn-link" data-name="maintain_plan" data-page="/pages/attendance/maintain_plan_list.html">保养计划</li> | |
| 6 | - <li class="ct-btn-link" data-name="att_list" data-page="/pages/attendance/list.html">签到退记录</li> | |
| 7 | - </ul> | |
| 4 | + <ul class="uk-list"></ul> | |
| 8 | 5 | </div> |
| 9 | 6 | <div class="right-body"> |
| 10 | 7 | |
| ... | ... | @@ -14,7 +11,7 @@ |
| 14 | 11 | (function () { |
| 15 | 12 | var wrap = '#att_data_wrap', $body = $('.right-body', wrap); |
| 16 | 13 | |
| 17 | - $('.left-menus .ct-btn-link', wrap).on('click', function () { | |
| 14 | + $(wrap).on('click', '.left-menus .ct-btn-link', function () { | |
| 18 | 15 | var page = $(this).data('page'); |
| 19 | 16 | if(!page) |
| 20 | 17 | return; |
| ... | ... | @@ -26,8 +23,8 @@ |
| 26 | 23 | }); |
| 27 | 24 | }); |
| 28 | 25 | |
| 29 | - //默认选中第一项 | |
| 30 | - $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 26 | + //渲染二级菜单 | |
| 27 | + renderSubmmenu(wrap); | |
| 31 | 28 | })(); |
| 32 | 29 | </script> |
| 33 | 30 | </div> |
| 34 | 31 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/basic_data/main.html
| ... | ... | @@ -2,13 +2,7 @@ |
| 2 | 2 | <div id="basic_data_wrap" class="l_r_split_screen"> |
| 3 | 3 | |
| 4 | 4 | <div class="left-menus"> |
| 5 | - <ul class="uk-list"> | |
| 6 | - <li class="ct-btn-link" data-name="person_card" data-page="/pages/basic_data/person_card/list.html">人员/人卡</li> | |
| 7 | - <li class="ct-btn-link" data-name="bus" data-page="/pages/basic_data/bus/list.html">车辆信息</li> | |
| 8 | - <li class="ct-btn-link" data-name="bus_card" data-page="/pages/basic_data/bus_card/bus_card_list.html">车卡信息</li> | |
| 9 | - <li class="ct-btn-link" data-name="private_car" data-page="/pages/basic_data/car/car_list.html">私家车</li> | |
| 10 | - <li class="ct-btn-link" data-name="berth" data-page="/pages/basic_data/berth/berth_main.html">区域和泊位</li> | |
| 11 | - </ul> | |
| 5 | + <ul class="uk-list"></ul> | |
| 12 | 6 | </div> |
| 13 | 7 | <div class="right-body"> |
| 14 | 8 | |
| ... | ... | @@ -20,7 +14,7 @@ |
| 20 | 14 | |
| 21 | 15 | var wrap = '#basic_data_wrap', $body = $('.right-body', wrap); |
| 22 | 16 | |
| 23 | - $('.left-menus .ct-btn-link', wrap).on('click', function () { | |
| 17 | + $(wrap).on('click', '.left-menus .ct-btn-link', function () { | |
| 24 | 18 | var page = $(this).data('page'); |
| 25 | 19 | if(!page) |
| 26 | 20 | return; |
| ... | ... | @@ -32,8 +26,9 @@ |
| 32 | 26 | }); |
| 33 | 27 | }); |
| 34 | 28 | |
| 35 | - //默认选中第一项 | |
| 36 | - $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 29 | + | |
| 30 | + //渲染二级菜单 | |
| 31 | + renderSubmmenu(wrap); | |
| 37 | 32 | })(); |
| 38 | 33 | </script> |
| 39 | 34 | </div> |
| 40 | 35 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/inout/in_out_main.html
| 1 | 1 | <div id="inout_data_wrap" class="l_r_split_screen"> |
| 2 | 2 | |
| 3 | 3 | <div class="left-menus"> |
| 4 | - <ul class="uk-list"> | |
| 5 | - <li class="ct-btn-link" data-name="in_out_schedule" data-page="/pages/inout/in_out_schedule/list.html">计划出场</li> | |
| 6 | - <li class="ct-btn-link" data-name="rfid_cljcc_list" data-page="/pages/inout/signal/signal_inout_list.html">车辆进出场</li> | |
| 7 | - </ul> | |
| 4 | + <ul class="uk-list"></ul> | |
| 8 | 5 | </div> |
| 9 | 6 | <div class="right-body"> |
| 10 | 7 | |
| ... | ... | @@ -14,7 +11,7 @@ |
| 14 | 11 | (function () { |
| 15 | 12 | var wrap = '#inout_data_wrap', $body = $('.right-body', wrap); |
| 16 | 13 | |
| 17 | - $('.left-menus .ct-btn-link', wrap).on('click', function () { | |
| 14 | + $(wrap).on('click', '.left-menus .ct-btn-link', function () { | |
| 18 | 15 | var page = $(this).data('page'); |
| 19 | 16 | if(!page) |
| 20 | 17 | return; |
| ... | ... | @@ -26,8 +23,8 @@ |
| 26 | 23 | }); |
| 27 | 24 | }); |
| 28 | 25 | |
| 29 | - //默认选中第一项 | |
| 30 | - $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 26 | + //渲染二级菜单 | |
| 27 | + renderSubmmenu(wrap); | |
| 31 | 28 | })(); |
| 32 | 29 | </script> |
| 33 | 30 | </div> |
| 34 | 31 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/plan_schedule/p_s_main.html
| ... | ... | @@ -2,9 +2,7 @@ |
| 2 | 2 | <div id="plan_schedule_data_wrap" class="l_r_split_screen"> |
| 3 | 3 | |
| 4 | 4 | <div class="left-menus"> |
| 5 | - <ul class="uk-list"> | |
| 6 | - <li class="ct-btn-link" data-name="p_s_tzrc" data-page="/pages/plan_schedule/tzrc/list.html">调整人车</li> | |
| 7 | - </ul> | |
| 5 | + <ul class="uk-list"></ul> | |
| 8 | 6 | </div> |
| 9 | 7 | <div class="right-body"> |
| 10 | 8 | |
| ... | ... | @@ -16,7 +14,7 @@ |
| 16 | 14 | |
| 17 | 15 | var wrap = '#plan_schedule_data_wrap', $body = $('.right-body', wrap); |
| 18 | 16 | |
| 19 | - $('.left-menus .ct-btn-link', wrap).on('click', function () { | |
| 17 | + $(wrap).on('click', '.left-menus .ct-btn-link', function () { | |
| 20 | 18 | var page = $(this).data('page'); |
| 21 | 19 | if(!page) |
| 22 | 20 | return; |
| ... | ... | @@ -28,8 +26,8 @@ |
| 28 | 26 | }); |
| 29 | 27 | }); |
| 30 | 28 | |
| 31 | - //默认选中第一项 | |
| 32 | - $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 29 | + //渲染二级菜单 | |
| 30 | + renderSubmmenu(wrap); | |
| 33 | 31 | })(); |
| 34 | 32 | </script> |
| 35 | 33 | </div> |
| 36 | 34 | \ No newline at end of file | ... | ... |
src/main/resources/static/pages/system_manager/role/auths.html
| ... | ... | @@ -19,7 +19,7 @@ |
| 19 | 19 | <div class="fun_s_list"></div> |
| 20 | 20 | </div> |
| 21 | 21 | <div class="footer_wrap"> |
| 22 | - <button class="uk-button uk-width-1-1 uk-margin-small-bottom save_btn">保存</button> | |
| 22 | + <button class="uk-button uk-button-primary uk-width-1-1 save_btn">保存</button> | |
| 23 | 23 | </div> |
| 24 | 24 | </div> |
| 25 | 25 | ... | ... |
src/main/resources/static/pages/system_manager/sm_main.html
| ... | ... | @@ -3,10 +3,8 @@ |
| 3 | 3 | |
| 4 | 4 | <div class="left-menus"> |
| 5 | 5 | <ul class="uk-list"> |
| 6 | - <li class="ct-btn-link" data-name="role" data-page="/pages/system_manager/role/auths.html">角色和权限</li> | |
| 7 | - <li class="ct-btn-link" data-name="user" data-page="/pages/system_manager/user/user_list.html">用户和账号</li> | |
| 8 | - <li class="ct-btn-link" data-name="logs" data-page="">日志</li> | |
| 9 | - <li class="ct-btn-link" data-name="config" data-page="">参数配置</li> | |
| 6 | +<!-- <li class="ct-btn-link" data-name="logs" data-page="">日志</li> | |
| 7 | + <li class="ct-btn-link" data-name="config" data-page="">参数配置</li>--> | |
| 10 | 8 | </ul> |
| 11 | 9 | </div> |
| 12 | 10 | <div class="right-body"> |
| ... | ... | @@ -19,7 +17,7 @@ |
| 19 | 17 | |
| 20 | 18 | var wrap = '#system_manager_wrap', $body = $('.right-body', wrap); |
| 21 | 19 | |
| 22 | - $('.left-menus .ct-btn-link', wrap).on('click', function () { | |
| 20 | + $(wrap).on('click', '.left-menus .ct-btn-link', function () { | |
| 23 | 21 | var page = $(this).data('page'); |
| 24 | 22 | if(!page) |
| 25 | 23 | return; |
| ... | ... | @@ -31,8 +29,8 @@ |
| 31 | 29 | }); |
| 32 | 30 | }); |
| 33 | 31 | |
| 34 | - //默认选中第一项 | |
| 35 | - $('.left-menus .ct-btn-link:eq(0)', wrap).trigger('click'); | |
| 32 | + //渲染二级菜单 | |
| 33 | + renderSubmmenu(wrap); | |
| 36 | 34 | })(); |
| 37 | 35 | </script> |
| 38 | 36 | </div> |
| 39 | 37 | \ No newline at end of file | ... | ... |