BusinessMenu.php 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/9/22
  8. * Time: 13:37
  9. */
  10. namespace business\admin\menu;
  11. use app\common\helpers\Cache;
  12. use business\common\models\Business;
  13. use business\common\services\BusinessService;
  14. use business\common\services\SettingService;
  15. class BusinessMenu
  16. {
  17. const KEY = 'business_menu';
  18. const PLUGIN_KEY = 'business_plugin_menu';
  19. public function getMenu($business_id = 0)
  20. {
  21. $business_id = $business_id ?: SettingService::getBusinessId();
  22. if ($memnu = Cache::get(self::KEY . '_' . $business_id, null, [BusinessService::getModuleRedisKey(\YunShop::app()->uniacid), BusinessService::getBusinessRedisKey($business_id)])) {
  23. return $memnu;
  24. }
  25. $route = [];
  26. $page_route = [];
  27. $page = [];
  28. $all_route = [];
  29. $plugin_menu_arr = \app\common\modules\shop\ShopConfig::current()->get(self::PLUGIN_KEY) ?: []; //获取插件路由和页面
  30. $plugin_menu_arr = array_merge(['admin' => [
  31. 'class' => '\business\admin\menu\BusinessMenu',
  32. 'function' => 'adminMenu',
  33. ]], $plugin_menu_arr);
  34. $auth_plugins = SettingService::getEnablePlugins($business_id);
  35. foreach ($plugin_menu_arr as $k => $v) {
  36. $plugin_name = SettingService::changePluginName($k);
  37. if ($k != 'admin' && (!app('plugins')->isEnabled($plugin_name) || !in_array($k, $auth_plugins))) {
  38. continue;
  39. }
  40. $class = $v['class'];
  41. $function = $v['function'];
  42. if (!method_exists($class, $function)) continue;
  43. if ($res = $class::$function()) {
  44. $all_route[$k] = $res;
  45. if ($this_route = $this->getRoute($res, $k)) {
  46. $route[$k] = $this_route;
  47. }
  48. if ($this_page = $this->getMenuPage($res, $k)) {
  49. $page[$k] = $this_page;
  50. }
  51. if ($this_page_route = $this->getPageRoute($res, $k)) {
  52. $page_route[$k] = $this_page_route;
  53. }
  54. }
  55. }
  56. $menu = ['route' => $route, 'page' => $page, 'page_route' => $page_route, 'all_route' => $all_route];
  57. Cache::put(self::KEY, $menu, 3600, [BusinessService::getModuleRedisKey(\YunShop::app()->uniacid), BusinessService::getBusinessRedisKey($business_id)]);
  58. return $menu;
  59. }
  60. /*
  61. * 获取侧边栏页面数据
  62. */
  63. public function getMenuPage($data, $module = 'admin', &$return_data = [], &$first_level = [], &$second_level = [], &$third_level = [])
  64. {
  65. foreach ($data as $k => $v) {
  66. if ($v['type'] == 1) {
  67. /*第一层侧栏*/
  68. if ($v['first_tab_show']) {
  69. $return_data[$k] = [
  70. 'route' => $v['route'],
  71. 'module' => $module,
  72. 'premit' => $v['premit'],
  73. 'page_name' => $v['page_name'],
  74. 'identity' => $v['identity'],
  75. 'tab_name' => is_array($v['tab_name']) ? $v['tab_name'][0] : $v['tab_name'],
  76. 'special_check' => $v['special_check'] ?: '',
  77. ];
  78. $first_level[$k] = [$k];
  79. }
  80. /*第一层侧栏*/
  81. /*第二层侧栏*/
  82. if ($v['second_tab_show']) {
  83. $second_key = $v['first_tab_show'] ? $k : end($v['parent']);
  84. $second_level_arr = $first_level[$second_key];
  85. $second_level_arr[] = $k;
  86. $second_level[$k] = $second_level_arr;
  87. if (!is_array($v['tab_name'])) {
  88. $tab_name = $v['tab_name'];
  89. } elseif ($v['first_tab_show']) {
  90. $tab_name = $v['tab_name'][1];
  91. } elseif ($v['third_tab_show']) {
  92. $tab_name = $v['tab_name'][0];
  93. }
  94. $return_data[$second_level_arr[0]]['child'][$second_level_arr[1]] = [
  95. 'route' => $v['route'],
  96. 'module' => $module,
  97. 'premit' => $v['premit'],
  98. 'identity' => $v['identity'],
  99. 'page_name' => $v['page_name'],
  100. 'tab_name' => $tab_name ?: '',
  101. 'special_check' => $v['special_check'] ?: '',
  102. ];
  103. }
  104. /*第二层侧栏*/
  105. /*第三层侧栏*/
  106. if ($v['third_tab_show']) {
  107. $third_key = $v['second_tab_show'] ? $k : end($v['parent']);
  108. $third_level_arr = $second_level[$third_key];
  109. $third_level_arr[] = $k;
  110. $third_level[$k] = $third_level_arr;
  111. $return_data[$third_level_arr[0]]['child'][$third_level_arr[1]]['child'][$third_level_arr[2]] = [
  112. 'route' => $v['route'],
  113. 'module' => $module,
  114. 'premit' => $v['premit'],
  115. 'identity' => $v['identity'],
  116. 'page_name' => $v['page_name'],
  117. 'tab_name' => is_array($v['tab_name']) ? end($v['tab_name']) : $v['tab_name'],
  118. 'special_check' => $v['special_check'] ?: '',
  119. ];
  120. }
  121. /*第三层侧栏*/
  122. }
  123. if ($v['child']) {
  124. $this->getMenuPage($v['child'], $module, $return_data, $first_level, $second_level, $third_level);
  125. }
  126. }
  127. return $return_data;
  128. }
  129. /*
  130. * 获取页面路由
  131. */
  132. public function getPageRoute($data, $module = 'admin', &$return_data = [])
  133. {
  134. foreach ($data as $k => $v) {
  135. if ($v['type'] == 1 && $v['route']) {
  136. $return_data[] = [
  137. 'route' => $v['route'],
  138. 'module' => $module,
  139. 'can' => $v['premit'] ? 0 : 1,
  140. 'identity' => $v['identity'],
  141. ];
  142. }
  143. if ($v['child']) {
  144. $this->getPageRoute($v['child'], $module, $return_data);
  145. }
  146. }
  147. return $return_data;
  148. }
  149. /*
  150. * 获取路由
  151. */
  152. public function getRoute($data, $module = 'admin', &$return_data = [])
  153. {
  154. foreach ($data as $k => $v) {
  155. if ($v['type'] == 2) {
  156. $return_data[] = [
  157. 'route' => $v['route'],
  158. 'module' => $module,
  159. 'can' => $v['premit'] ? 0 : 1,
  160. 'identity' => $v['identity'],
  161. 'special_check' => $v['special_check'] ?: '',
  162. ];
  163. }
  164. if ($v['child']) {
  165. $this->getRoute($v['child'], $module, $return_data);
  166. }
  167. }
  168. return $return_data;
  169. }
  170. public static function adminMenu()
  171. {
  172. return [
  173. 'businessUpload' => [
  174. 'parent' => [],
  175. 'page_name' => '上传文件', //页面或路由名称(用于权限设置页面展示)
  176. 'tab_name' => '上传文件', //侧边栏显示名称
  177. 'first_tab_show' => 0, //是否在侧边栏1显示
  178. 'second_tab_show' => 0, //是否在侧边栏2显示
  179. 'third_tab_show' => 0, //是否在侧边栏3显示
  180. 'icon' => '', //侧边栏图标
  181. 'type' => 2, // 1页面 2路由
  182. 'route' => 'uploadPic', //前端页面路径标识 或 后端接口路由,根据type填写
  183. 'premit' => 0, //是否需要路由权限验证,与身份权限验证互相独立,其中一个不满足则无法访问
  184. 'identity' => 0,//需求身份权限 0不限制 1员工 2管理员 3创建人 4法人 5创建人+法人,与路由权限验证互相独立,其中一个不满足则无法访问
  185. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  186. 'child' => []
  187. ],
  188. 'getArea' => [
  189. 'parent' => [''],
  190. 'page_name' => '获取地址',
  191. 'tab_name' => '获取地址',
  192. 'first_tab_show' => 0,
  193. 'second_tab_show' => 0,
  194. 'third_tab_show' => 0,
  195. 'icon' => '',
  196. 'type' => 2,
  197. 'route' => 'getArea',
  198. 'premit' => 0,
  199. 'identity' => 1,
  200. 'plugin' => '',
  201. 'child' => [],
  202. ],
  203. 'streetSet' => [
  204. 'parent' => [''],
  205. 'page_name' => '获取街道开关',
  206. 'tab_name' => '获取街道开关',
  207. 'first_tab_show' => 0,
  208. 'second_tab_show' => 0,
  209. 'third_tab_show' => 0,
  210. 'icon' => '',
  211. 'type' => 2,
  212. 'route' => 'streetSet',
  213. 'premit' => 0,
  214. 'identity' => 1,
  215. 'plugin' => '',
  216. 'child' => [],
  217. ],
  218. 'intArea' => [
  219. 'parent' => [''],
  220. 'page_name' => '初始化地址',
  221. 'tab_name' => '初始化地址',
  222. 'first_tab_show' => 0,
  223. 'second_tab_show' => 0,
  224. 'third_tab_show' => 0,
  225. 'icon' => '',
  226. 'type' => 2,
  227. 'route' => 'intArea',
  228. 'premit' => 0,
  229. 'identity' => 1,
  230. 'plugin' => '',
  231. 'child' => [],
  232. ],
  233. 'businessAddressList' => [
  234. 'parent' => [],
  235. 'page_name' => '地址列表', //页面或路由名称(用于权限设置页面展示)
  236. 'tab_name' => '地址列表', //侧边栏显示名称
  237. 'first_tab_show' => 0, //是否在侧边栏1显示
  238. 'second_tab_show' => 0, //是否在侧边栏2显示
  239. 'third_tab_show' => 0, //是否在侧边栏3显示
  240. 'icon' => '', //侧边栏图标
  241. 'type' => 2, // 1页面 2路由
  242. 'route' => 'getAddressList', //前端页面路径标识 或 后端接口路由,根据type填写
  243. 'premit' => 0, //是否需要路由权限验证,与身份权限验证互相独立,其中一个不满足则无法访问
  244. 'identity' => 0,//需求身份权限 0不限制 1员工 2管理员 3创建人 4法人 5创建人+法人,与路由权限验证互相独立,其中一个不满足则无法访问
  245. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  246. 'child' => []
  247. ],
  248. 'businessListPage' => [ //
  249. 'parent' => [],
  250. 'page_name' => '企业管理页面', //页面或路由名称(用于权限设置页面展示)
  251. 'tab_name' => '企业管理', //侧边栏显示名称
  252. 'first_tab_show' => 0, //是否在侧边栏1显示
  253. 'second_tab_show' => 0, //是否在侧边栏2显示
  254. 'third_tab_show' => 0, //是否在侧边栏3显示
  255. 'icon' => '', //侧边栏图标
  256. 'type' => 1, // 1页面 2路由
  257. 'route' => '', //前端页面路径标识 或 后端接口路由,根据type填写
  258. 'premit' => 0, //是否需要路由权限验证,与身份权限验证互相独立,其中一个不满足则无法访问
  259. 'identity' => 0,//需求身份权限 0不限制 1员工 2管理员 3创建人 4法人 5创建人+法人,与路由权限验证互相独立,其中一个不满足则无法访问
  260. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  261. 'child' => [
  262. 'managerList' => [ //管理员列表页面
  263. 'parent' => ['businessListPage'],
  264. 'page_name' => '管理员列表',
  265. 'tab_name' => '',
  266. 'first_tab_show' => 0,
  267. 'second_tab_show' => 0,
  268. 'third_tab_show' => 0,
  269. 'icon' => '',
  270. 'type' => 2,
  271. 'route' => 'managerList',
  272. 'premit' => 0,
  273. 'identity' => 0,
  274. 'plugin' => '',
  275. 'child' => []
  276. ],
  277. 'changeBusinessOwner' => [ //管理员列表页面
  278. 'parent' => ['businessListPage'],
  279. 'page_name' => '企业转让',
  280. 'tab_name' => '',
  281. 'first_tab_show' => 0,
  282. 'second_tab_show' => 0,
  283. 'third_tab_show' => 0,
  284. 'icon' => '',
  285. 'type' => 2,
  286. 'route' => 'changeBusinessOwner',
  287. 'premit' => 0,
  288. 'identity' => 0,
  289. 'plugin' => '',
  290. 'child' => []
  291. ],
  292. 'addManager' => [ //管理员列表页面
  293. 'parent' => ['businessListPage'],
  294. 'page_name' => '添加管理员',
  295. 'tab_name' => '',
  296. 'first_tab_show' => 0,
  297. 'second_tab_show' => 0,
  298. 'third_tab_show' => 0,
  299. 'icon' => '',
  300. 'type' => 2,
  301. 'route' => 'addManager',
  302. 'premit' => 0,
  303. 'identity' => 0,
  304. 'plugin' => '',
  305. 'child' => []
  306. ],
  307. 'deleteManager' => [ //管理员列表页面
  308. 'parent' => ['businessListPage'],
  309. 'page_name' => '删除管理员',
  310. 'tab_name' => '',
  311. 'first_tab_show' => 0,
  312. 'second_tab_show' => 0,
  313. 'third_tab_show' => 0,
  314. 'icon' => '',
  315. 'type' => 2,
  316. 'route' => 'deleteManager',
  317. 'premit' => 0,
  318. 'identity' => 0,
  319. 'plugin' => '',
  320. 'child' => []
  321. ],
  322. 'getBusinessCommonData' => [ //公共参数接口
  323. 'parent' => ['businessListPage'],
  324. 'page_name' => '获取公共参数',
  325. 'tab_name' => '',
  326. 'first_tab_show' => 0,
  327. 'second_tab_show' => 0,
  328. 'third_tab_show' => 0,
  329. 'icon' => '',
  330. 'type' => 2,
  331. 'route' => 'getBusinessCommonData',
  332. 'premit' => 0,
  333. 'identity' => 0,
  334. 'plugin' => '',
  335. 'child' => []
  336. ],
  337. 'businessList' => [ //页面列表接口
  338. 'parent' => ['businessListPage'],
  339. 'page_name' => '获取企业列表',
  340. 'tab_name' => '',
  341. 'first_tab_show' => 0,
  342. 'second_tab_show' => 0,
  343. 'third_tab_show' => 0,
  344. 'icon' => '',
  345. 'type' => 2,
  346. 'route' => 'businessList',
  347. 'premit' => 0,
  348. 'identity' => 0,
  349. 'plugin' => '',
  350. 'child' => []
  351. ],
  352. 'addBussiness' => [ //创建企业
  353. 'parent' => ['business_list_page'],
  354. 'page_name' => '创建企业',
  355. 'tab_name' => '',
  356. 'first_tab_show' => 0,
  357. 'second_tab_show' => 0,
  358. 'third_tab_show' => 0,
  359. 'icon' => '',
  360. 'type' => 2,
  361. 'route' => 'addBussiness',
  362. 'premit' => 0,
  363. 'identity' => 0,
  364. 'plugin' => '',
  365. 'child' => []
  366. ],
  367. 'manageBusiness' => [ //设置管理的企业
  368. 'parent' => ['business_list_page'],
  369. 'page_name' => '管理企业',
  370. 'tab_name' => '', //侧栏名称
  371. 'first_tab_show' => 0, //是否在侧边栏1显示
  372. 'second_tab_show' => 0, //是否在侧边栏2显示
  373. 'third_tab_show' => 0, //是否在侧边栏3显示
  374. 'icon' => '', //侧边栏图标
  375. 'type' => 2, // 1页面 2路由
  376. 'route' => 'manageBusiness', //页面路径 或 路由
  377. 'premit' => 0, //是否需要权限验证
  378. 'identity' => 0,
  379. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  380. 'child' => []
  381. ],
  382. ]
  383. ],
  384. 'businessSurvey' => [ //概况页面
  385. 'parent' => [],
  386. 'page_name' => '概况', //页面名称
  387. 'tab_name' => '概况', //侧栏名称
  388. 'first_tab_show' => 0, //是否在侧边栏1显示
  389. 'second_tab_show' => 0, //是否在侧边栏2显示
  390. 'third_tab_show' => 0, //是否在侧边栏3显示
  391. 'icon' => '', //侧边栏图标
  392. 'type' => 1, // 1页面 2路由
  393. 'route' => 'overview', //页面路径 或 路由
  394. 'premit' => 0, //是否需要权限验证
  395. 'identity' => 0,
  396. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  397. 'child' => [
  398. 'cleanMemberCache' => [ //清除会员缓存
  399. 'parent' => ['businessSurvey'],
  400. 'page_name' => '清除会员缓存',
  401. 'tab_name' => '',
  402. 'first_tab_show' => 0,
  403. 'second_tab_show' => 0,
  404. 'third_tab_show' => 0,
  405. 'icon' => '',
  406. 'type' => 2,
  407. 'route' => 'cleanMemberCache',
  408. 'premit' => 0,
  409. 'identity' => 0,
  410. 'plugin' => '',
  411. 'child' => []
  412. ],
  413. 'cleanBusinessCache' => [ //清除企业缓存
  414. 'parent' => ['businessSurvey'],
  415. 'page_name' => '清除企业缓存',
  416. 'tab_name' => '',
  417. 'first_tab_show' => 0,
  418. 'second_tab_show' => 0,
  419. 'third_tab_show' => 0,
  420. 'icon' => '',
  421. 'type' => 2,
  422. 'route' => 'cleanMemberCache',
  423. 'premit' => 0,
  424. 'identity' => 2,
  425. 'plugin' => '',
  426. 'child' => []
  427. ],
  428. 'getBusinessSurvey' => [ //获取企业概况
  429. 'parent' => ['businessSet'],
  430. 'page_name' => '企业概况',
  431. 'tab_name' => '',
  432. 'first_tab_show' => 0,
  433. 'second_tab_show' => 0,
  434. 'third_tab_show' => 0,
  435. 'icon' => '',
  436. 'type' => 2,
  437. 'route' => 'getBusinessSurvey',
  438. 'premit' => 0,
  439. 'identity' => 1,
  440. 'plugin' => '',
  441. 'child' => []
  442. ],
  443. 'businessGetMemberByMobile' => [ //根据手机号精确查找会员
  444. 'parent' => ['businessSet'],
  445. 'page_name' => '根据手机号精确查找会员',
  446. 'tab_name' => '',
  447. 'first_tab_show' => 0,
  448. 'second_tab_show' => 0,
  449. 'third_tab_show' => 0,
  450. 'icon' => '',
  451. 'type' => 2,
  452. 'route' => 'businessGetMemberByMobile',
  453. 'premit' => 0,
  454. 'identity' => 1,
  455. 'plugin' => '',
  456. 'child' => []
  457. ],
  458. 'searchStaff' => [ //查找企业员工
  459. 'parent' => ['businessSet'],
  460. 'page_name' => '查找企业员工',
  461. 'tab_name' => '',
  462. 'first_tab_show' => 0,
  463. 'second_tab_show' => 0,
  464. 'third_tab_show' => 0,
  465. 'icon' => '',
  466. 'type' => 2,
  467. 'route' => 'searchStaff',
  468. 'premit' => 0,
  469. 'identity' => 1,
  470. 'plugin' => '',
  471. 'child' => []
  472. ],
  473. ],
  474. ],
  475. 'businessMessageNotice' => [ //概况页面
  476. 'page_name' => '消息通知', //页面名称
  477. 'tab_name' => '消息', //侧栏名称
  478. 'first_tab_show' => 1, //是否在侧边栏1显示
  479. 'second_tab_show' => 0, //是否在侧边栏2显示
  480. 'third_tab_show' => 0, //是否在侧边栏3显示
  481. 'icon' => '', //侧边栏图标
  482. 'type' => 1, // 1页面 2路由
  483. 'route' => 'worktileMsg', //页面路径 或 路由
  484. 'premit' => 0, //是否需要权限验证
  485. 'identity' => 1,
  486. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  487. 'child' => [
  488. 'businessMessageNoticeWorktileMsgInd' => [
  489. 'parent' => ['businessMessageNotice'],
  490. 'page_name' => '通知',
  491. 'tab_name' => '通知',
  492. 'first_tab_show' => 0,
  493. 'second_tab_show' => 1,
  494. 'third_tab_show' => 0,
  495. 'type' => 1,
  496. 'route' => 'worktileMsgInd',
  497. 'premit' => 0,
  498. 'identity' => 1,
  499. 'plugin' => '',
  500. 'child' => [],
  501. ],
  502. 'businessMessageUnread' => [
  503. 'parent' => ['businessMessageNotice'],
  504. 'page_name' => '未读消息列表',
  505. 'tab_name' => '',
  506. 'first_tab_show' => 0,
  507. 'second_tab_show' => 0,
  508. 'third_tab_show' => 0,
  509. 'icon' => '',
  510. 'type' => 2,
  511. 'route' => 'message/unread',
  512. 'premit' => 0,
  513. 'identity' => 0,
  514. 'plugin' => '',
  515. 'child' => []
  516. ],
  517. 'businessMessageRead' => [
  518. 'parent' => ['businessMessageNotice'],
  519. 'page_name' => '已读消息列表',
  520. 'tab_name' => '',
  521. 'first_tab_show' => 0,
  522. 'second_tab_show' => 0,
  523. 'third_tab_show' => 0,
  524. 'icon' => '',
  525. 'type' => 2,
  526. 'route' => 'message/read',
  527. 'premit' => 0,
  528. 'identity' => 0,
  529. 'plugin' => '',
  530. 'child' => []
  531. ],
  532. 'businessMessageWaitHandle' => [
  533. 'parent' => ['businessMessageNotice'],
  534. 'page_name' => '待处理消息列表',
  535. 'tab_name' => '',
  536. 'first_tab_show' => 0,
  537. 'second_tab_show' => 0,
  538. 'third_tab_show' => 0,
  539. 'icon' => '',
  540. 'type' => 2,
  541. 'route' => 'message/waitHandle',
  542. 'premit' => 0,
  543. 'identity' => 0,
  544. 'plugin' => '',
  545. 'child' => []
  546. ],
  547. 'businessMessageMarkRead' => [
  548. 'parent' => ['businessMessageNotice'],
  549. 'page_name' => '确认已读',
  550. 'tab_name' => '',
  551. 'first_tab_show' => 0,
  552. 'second_tab_show' => 0,
  553. 'third_tab_show' => 0,
  554. 'icon' => '',
  555. 'type' => 2,
  556. 'route' => 'message/markRead',
  557. 'premit' => 0,
  558. 'identity' => 0,
  559. 'plugin' => '',
  560. 'child' => []
  561. ],
  562. 'businessMessageBatchMarkRead' => [
  563. 'parent' => ['businessMessageNotice'],
  564. 'page_name' => '确认全部已读',
  565. 'tab_name' => '',
  566. 'first_tab_show' => 0,
  567. 'second_tab_show' => 0,
  568. 'third_tab_show' => 0,
  569. 'icon' => '',
  570. 'type' => 2,
  571. 'route' => 'message/batchMarkRead',
  572. 'premit' => 0,
  573. 'identity' => 0,
  574. 'plugin' => '',
  575. 'child' => []
  576. ],
  577. 'businessMessageAlreadyHandle' => [
  578. 'parent' => ['businessMessageNotice'],
  579. 'page_name' => '确认已处理',
  580. 'tab_name' => '',
  581. 'first_tab_show' => 0,
  582. 'second_tab_show' => 0,
  583. 'third_tab_show' => 0,
  584. 'icon' => '',
  585. 'type' => 2,
  586. 'route' => 'message/alreadyHandle',
  587. 'premit' => 0,
  588. 'identity' => 0,
  589. 'plugin' => '',
  590. 'child' => []
  591. ],
  592. 'businessMessageLaterHandle' => [
  593. 'parent' => ['businessMessageNotice'],
  594. 'page_name' => '加入待处理',
  595. 'tab_name' => '',
  596. 'first_tab_show' => 0,
  597. 'second_tab_show' => 0,
  598. 'third_tab_show' => 0,
  599. 'icon' => '',
  600. 'type' => 2,
  601. 'route' => 'message/laterHandle',
  602. 'premit' => 0,
  603. 'identity' => 0,
  604. 'plugin' => '',
  605. 'child' => []
  606. ],
  607. 'businessMessageAllAppModule' => [
  608. 'parent' => ['businessMessageNotice'],
  609. 'page_name' => '消息应用模块',
  610. 'tab_name' => '',
  611. 'first_tab_show' => 0,
  612. 'second_tab_show' => 0,
  613. 'third_tab_show' => 0,
  614. 'icon' => '',
  615. 'type' => 2,
  616. 'route' => 'message/allAppModule',
  617. 'premit' => 0,
  618. 'identity' => 0,
  619. 'plugin' => '',
  620. 'child' => []
  621. ],
  622. ],
  623. ],
  624. 'businessSet' => [ //设置页面
  625. 'parent' => [],
  626. 'page_name' => '设置',
  627. 'tab_name' => ['设置', '企业信息'],
  628. 'first_tab_show' => 1,
  629. 'second_tab_show' => 1,
  630. 'third_tab_show' => 0,
  631. 'icon' => '',
  632. 'type' => 1,
  633. 'route' => 'setting',
  634. 'premit' => 1,
  635. 'identity' => 1,
  636. 'plugin' => '',
  637. 'child' => [
  638. 'editBussiness' => [ //编辑企业信息
  639. 'parent' => ['businessSet'],
  640. 'page_name' => '企业信息',
  641. 'tab_name' => '',
  642. 'first_tab_show' => 0,
  643. 'second_tab_show' => 0,
  644. 'third_tab_show' => 0,
  645. 'icon' => '',
  646. 'type' => 2,
  647. 'route' => 'editBussiness',
  648. 'premit' => 1,
  649. 'identity' => 1,
  650. 'plugin' => '',
  651. 'child' => []
  652. ],
  653. 'businessSetQyInformation' => [ //企业微信设置页面
  654. 'parent' => ['businessSet'],
  655. 'page_name' => '查看企业微信设置',
  656. 'tab_name' => '企业微信设置',
  657. 'first_tab_show' => 0,
  658. 'second_tab_show' => 1,
  659. 'third_tab_show' => 0,
  660. 'icon' => '',
  661. 'type' => 1,
  662. 'route' => 'settingConfig',
  663. 'premit' => 1,
  664. 'identity' => 1,
  665. 'plugin' => '',
  666. 'child' => [
  667. 'businessQyWxSetting' => [ //企业微信设置
  668. 'parent' => ['businessSet', 'businessSetInformation'],
  669. 'page_name' => '查看/编辑企业微信设置',
  670. 'tab_name' => '',
  671. 'first_tab_show' => 0,
  672. 'second_tab_show' => 0,
  673. 'third_tab_show' => 0,
  674. 'icon' => '',
  675. 'type' => 2,
  676. 'route' => 'businessQyWxSetting',
  677. 'premit' => 1,
  678. 'identity' => 1,
  679. 'plugin' => '',
  680. 'child' => []
  681. ]
  682. ],
  683. ]
  684. ],
  685. ],
  686. 'businessDepartment' => [ //部门管理
  687. 'parent' => [],
  688. 'page_name' => '部门管理',
  689. 'tab_name' => ['部门管理', '部门管理'],
  690. 'first_tab_show' => 1,
  691. 'second_tab_show' => 1,
  692. 'third_tab_show' => 0,
  693. 'icon' => '',
  694. 'type' => 1,
  695. 'route' => 'department',
  696. 'premit' => 1,
  697. 'identity' => 1,
  698. 'plugin' => '',
  699. 'child' => [
  700. 'refreshDepartmentList' => [ //企业微信部门同步
  701. 'parent' => ['businessDepartment'],
  702. 'page_name' => '企业微信部门同步',
  703. 'tab_name' => '',
  704. 'first_tab_show' => 0,
  705. 'second_tab_show' => 0,
  706. 'third_tab_show' => 0,
  707. 'icon' => '',
  708. 'type' => 2,
  709. 'route' => 'refreshDepartmentList',
  710. 'premit' => 1,
  711. 'identity' => 1,
  712. 'plugin' => '',
  713. 'child' => [],
  714. ],
  715. 'getDepatmemtList' => [ //获取部门列表
  716. 'parent' => ['businessDepartment'],
  717. 'page_name' => '获取部门列表',
  718. 'tab_name' => '',
  719. 'first_tab_show' => 0,
  720. 'second_tab_show' => 0,
  721. 'third_tab_show' => 0,
  722. 'icon' => '',
  723. 'type' => 2,
  724. 'route' => 'getDepatmemtList',
  725. 'premit' => 1,
  726. 'identity' => 1,
  727. 'plugin' => '',
  728. 'child' => [],
  729. ],
  730. 'createDepartment' => [
  731. 'parent' => ['businessDepartment'],
  732. 'page_name' => '创建部门',
  733. 'tab_name' => '',
  734. 'first_tab_show' => 0,
  735. 'second_tab_show' => 0,
  736. 'third_tab_show' => 0,
  737. 'icon' => '',
  738. 'type' => 2,
  739. 'route' => 'createDepartment',
  740. 'premit' => 0,
  741. 'identity' => 1,
  742. 'plugin' => '',
  743. 'child' => [],
  744. ],
  745. 'createAllDepartment' => [
  746. 'parent' => ['businessDepartment'],
  747. 'page_name' => '全部门管理(创建部门)',
  748. 'tab_name' => '',
  749. 'first_tab_show' => 0,
  750. 'second_tab_show' => 0,
  751. 'third_tab_show' => 0,
  752. 'icon' => '',
  753. 'type' => 2,
  754. 'route' => 'createAllDepartment',
  755. 'premit' => 1,
  756. 'identity' => 1,
  757. 'plugin' => '',
  758. 'child' => [],
  759. ],
  760. 'createSubDepartment' => [
  761. 'parent' => ['businessDepartment'],
  762. 'page_name' => '子部门管理(创建部门)',
  763. 'tab_name' => '',
  764. 'first_tab_show' => 0,
  765. 'second_tab_show' => 0,
  766. 'third_tab_show' => 0,
  767. 'icon' => '',
  768. 'type' => 2,
  769. 'route' => 'createSubDepartment',
  770. 'premit' => 1,
  771. 'identity' => 1,
  772. 'plugin' => '',
  773. 'child' => [],
  774. ],
  775. 'updateDepartment' => [
  776. 'parent' => ['businessDepartment'],
  777. 'page_name' => '编辑部门',
  778. 'tab_name' => '',
  779. 'first_tab_show' => 0,
  780. 'second_tab_show' => 0,
  781. 'third_tab_show' => 0,
  782. 'icon' => '',
  783. 'type' => 2,
  784. 'route' => 'updateDepartment',
  785. 'premit' => 0,
  786. 'identity' => 1,
  787. 'plugin' => '',
  788. 'child' => [],
  789. ],
  790. 'updateAllDepartment' => [
  791. 'parent' => ['businessDepartment'],
  792. 'page_name' => '全部门管理(编辑部门)',
  793. 'tab_name' => '',
  794. 'first_tab_show' => 0,
  795. 'second_tab_show' => 0,
  796. 'third_tab_show' => 0,
  797. 'icon' => '',
  798. 'type' => 2,
  799. 'route' => 'updateAllDepartment',
  800. 'premit' => 1,
  801. 'identity' => 1,
  802. 'plugin' => '',
  803. 'child' => [],
  804. ],
  805. 'updateSubDepartment' => [
  806. 'parent' => ['businessDepartment'],
  807. 'page_name' => '子部门管理(编辑部门)',
  808. 'tab_name' => '',
  809. 'first_tab_show' => 0,
  810. 'second_tab_show' => 0,
  811. 'third_tab_show' => 0,
  812. 'icon' => '',
  813. 'type' => 2,
  814. 'route' => 'updateSubDepartment',
  815. 'premit' => 1,
  816. 'identity' => 1,
  817. 'plugin' => '',
  818. 'child' => [],
  819. ],
  820. 'deleteDepartment' => [
  821. 'parent' => ['businessDepartment'],
  822. 'page_name' => '删除部门',
  823. 'tab_name' => '',
  824. 'first_tab_show' => 0,
  825. 'second_tab_show' => 0,
  826. 'third_tab_show' => 0,
  827. 'icon' => '',
  828. 'type' => 2,
  829. 'route' => 'deleteDepartment',
  830. 'premit' => 0,
  831. 'identity' => 1,
  832. 'plugin' => '',
  833. 'child' => [],
  834. ],
  835. 'deleteAllDepartment' => [
  836. 'parent' => ['businessDepartment'],
  837. 'page_name' => '全部门管理(删除部门)',
  838. 'tab_name' => '',
  839. 'first_tab_show' => 0,
  840. 'second_tab_show' => 0,
  841. 'third_tab_show' => 0,
  842. 'icon' => '',
  843. 'type' => 2,
  844. 'route' => 'deleteAllDepartment',
  845. 'premit' => 1,
  846. 'identity' => 1,
  847. 'plugin' => '',
  848. 'child' => [],
  849. ],
  850. 'deleteSubDepartment' => [
  851. 'parent' => ['businessDepartment'],
  852. 'page_name' => '子部门管理(删除部门)',
  853. 'tab_name' => '',
  854. 'first_tab_show' => 0,
  855. 'second_tab_show' => 0,
  856. 'third_tab_show' => 0,
  857. 'icon' => '',
  858. 'type' => 2,
  859. 'route' => 'deleteSubDepartment',
  860. 'premit' => 1,
  861. 'identity' => 1,
  862. 'plugin' => '',
  863. 'child' => [],
  864. ],
  865. 'pushDepartment' => [
  866. 'parent' => ['businessDepartment'],
  867. 'page_name' => '推送部门到企业微信',
  868. 'tab_name' => '',
  869. 'first_tab_show' => 0,
  870. 'second_tab_show' => 0,
  871. 'third_tab_show' => 0,
  872. 'icon' => '',
  873. 'type' => 2,
  874. 'route' => 'pushDepartment',
  875. 'premit' => 1,
  876. 'identity' => 1,
  877. 'plugin' => '',
  878. 'child' => [],
  879. ],
  880. ],
  881. ],
  882. 'businessStaff' => [ //员工管理
  883. 'parent' => [],
  884. 'page_name' => '员工管理', //页面名称
  885. 'tab_name' => ['员工管理', '员工管理'], //侧栏名称
  886. 'first_tab_show' => 1, //是否在侧边栏1显示
  887. 'second_tab_show' => 1, //是否在侧边栏2显示
  888. 'third_tab_show' => 0, //是否在侧边栏3显示
  889. 'icon' => '', //侧边栏图标
  890. 'type' => 1, // 1页面 2路由
  891. 'route' => 'staff', //页面路径 或 路由
  892. 'premit' => 1, //是否需要权限验证
  893. 'identity' => 1,
  894. 'plugin' => '',//是否插件相关,是的话填写插件名,如team-dividend
  895. 'child' => [
  896. 'getStaffList' => [
  897. 'parent' => ['businessSet', 'businessStaff'],
  898. 'page_name' => '获取员工列表',
  899. 'tab_name' => '',
  900. 'first_tab_show' => 0,
  901. 'second_tab_show' => 0,
  902. 'third_tab_show' => 0,
  903. 'icon' => '',
  904. 'type' => 2,
  905. 'route' => 'getStaffList',
  906. 'premit' => 1,
  907. 'identity' => 1,
  908. 'plugin' => '',
  909. 'child' => [],
  910. ],
  911. 'refreshStaffList' => [
  912. 'parent' => ['businessSet', 'businessStaff'],
  913. 'page_name' => '同步企业微信员工',
  914. 'tab_name' => '',
  915. 'first_tab_show' => 0,
  916. 'second_tab_show' => 0,
  917. 'third_tab_show' => 0,
  918. 'icon' => '',
  919. 'type' => 2,
  920. 'route' => 'refreshStaffList',
  921. 'premit' => 1,
  922. 'identity' => 1,
  923. 'plugin' => '',
  924. 'child' => [],
  925. ],
  926. // 'pushStaff' => [
  927. // 'parent' => ['businessSet', 'businessStaff'],
  928. // 'page_name' => '推送员工信息到企业微信',
  929. // 'tab_name' => '',
  930. // 'first_tab_show' => 0,
  931. // 'second_tab_show' => 0,
  932. // 'third_tab_show' => 0,
  933. // 'icon' => '',
  934. // 'type' => 2,
  935. // 'route' => 'pushStaff',
  936. // 'premit' => 1,
  937. // 'identity' => 1,
  938. // 'plugin' => '',
  939. // 'child' => [],
  940. // ],
  941. 'setDepartmentLeader' => [
  942. 'parent' => ['businessSet', 'businessStaff'],
  943. 'page_name' => '设置部门领导',
  944. 'tab_name' => '',
  945. 'first_tab_show' => 0,
  946. 'second_tab_show' => 0,
  947. 'third_tab_show' => 0,
  948. 'icon' => '',
  949. 'type' => 2,
  950. 'route' => 'setDepartmentLeader',
  951. 'premit' => 0,
  952. 'identity' => 1,
  953. 'plugin' => '',
  954. 'child' => [],
  955. ],
  956. 'createStaff' => [
  957. 'parent' => ['businessSet', 'businessStaff'],
  958. 'page_name' => '创建员工',
  959. 'tab_name' => '',
  960. 'first_tab_show' => 0,
  961. 'second_tab_show' => 0,
  962. 'third_tab_show' => 0,
  963. 'icon' => '',
  964. 'type' => 2,
  965. 'route' => 'createStaff',
  966. 'premit' => 1,
  967. 'identity' => 1,
  968. 'plugin' => '',
  969. 'child' => [],
  970. ],
  971. 'updateStaff' => [
  972. 'parent' => ['businessSet', 'businessStaff'],
  973. 'page_name' => '编辑员工',
  974. 'tab_name' => '',
  975. 'first_tab_show' => 0,
  976. 'second_tab_show' => 0,
  977. 'third_tab_show' => 0,
  978. 'icon' => '',
  979. 'type' => 2,
  980. 'route' => 'updateStaff',
  981. 'premit' => 1,
  982. 'identity' => 1,
  983. 'plugin' => '',
  984. 'child' => [],
  985. ],
  986. 'deleteStaff' => [
  987. 'parent' => ['businessSet', 'businessStaff'],
  988. 'page_name' => '禁用员工',
  989. 'tab_name' => '',
  990. 'first_tab_show' => 0,
  991. 'second_tab_show' => 0,
  992. 'third_tab_show' => 0,
  993. 'icon' => '',
  994. 'type' => 2,
  995. 'route' => 'deleteStaff',
  996. 'premit' => 1,
  997. 'identity' => 1,
  998. 'plugin' => '',
  999. 'child' => [],
  1000. ],
  1001. ]
  1002. ],
  1003. 'businessApplication' => [
  1004. 'parent' => [],
  1005. 'page_name' => '应用中心',
  1006. 'tab_name' => '应用中心',
  1007. 'first_tab_show' => 1,
  1008. 'second_tab_show' => 0,
  1009. 'third_tab_show' => 0,
  1010. 'icon' => '',
  1011. 'type' => 1,
  1012. 'route' => 'application',
  1013. 'premit' => 0,
  1014. 'identity' => 1,
  1015. 'plugin' => '',
  1016. 'child' => [
  1017. 'getApplicationList' => [
  1018. 'parent' => ['businessApplication'],
  1019. 'page_name' => '应用列表',
  1020. 'tab_name' => '应用列表',
  1021. 'first_tab_show' => 0,
  1022. 'second_tab_show' => 0,
  1023. 'third_tab_show' => 0,
  1024. 'icon' => '',
  1025. 'type' => 2,
  1026. 'route' => 'getApplicationList',
  1027. 'premit' => 0,
  1028. 'identity' => 1,
  1029. 'plugin' => '',
  1030. 'child' => [],
  1031. ],
  1032. 'businessApplicationWork' => [
  1033. 'parent' => ['businessApplication'],
  1034. 'page_name' => '办公管理',
  1035. 'tab_name' => '办公管理',
  1036. 'first_tab_show' => 0,
  1037. 'second_tab_show' => 1,
  1038. 'third_tab_show' => 0,
  1039. 'icon' => '',
  1040. 'type' => 1,
  1041. 'route' => '',
  1042. 'premit' => 0,
  1043. 'identity' => 1,
  1044. 'plugin' => '',
  1045. 'child' => [],
  1046. ],
  1047. 'businessApplicationSales' => [
  1048. 'parent' => ['businessApplication'],
  1049. 'page_name' => '销售管理',
  1050. 'tab_name' => '销售管理',
  1051. 'first_tab_show' => 0,
  1052. 'second_tab_show' => 1,
  1053. 'third_tab_show' => 0,
  1054. 'icon' => '',
  1055. 'type' => 1,
  1056. 'route' => '',
  1057. 'premit' => 0,
  1058. 'identity' => 1,
  1059. 'plugin' => '',
  1060. 'child' => [],
  1061. ],
  1062. 'businessApplicationTool' => [
  1063. 'parent' => ['businessApplication'],
  1064. 'page_name' => '工具软件',
  1065. 'tab_name' => '工具软件',
  1066. 'first_tab_show' => 0,
  1067. 'second_tab_show' => 1,
  1068. 'third_tab_show' => 0,
  1069. 'icon' => '',
  1070. 'type' => 1,
  1071. 'route' => '',
  1072. 'premit' => 0,
  1073. 'identity' => 1,
  1074. 'plugin' => '',
  1075. 'child' => [],
  1076. ],
  1077. ],
  1078. ],
  1079. 'businessAuthPage' => [
  1080. 'parent' => [],
  1081. 'page_name' => '部门权限管理',
  1082. 'tab_name' => '部门权限管理',
  1083. 'first_tab_show' => 0,
  1084. 'second_tab_show' => 0,
  1085. 'third_tab_show' => 0,
  1086. 'icon' => '',
  1087. 'type' => 1,
  1088. 'route' => 'departmentPermission',
  1089. 'premit' => 0,
  1090. 'identity' => 2,
  1091. 'plugin' => '',
  1092. 'child' => [
  1093. 'businessStaffAuthPage' => [
  1094. 'parent' => ['businessAuthPage'],
  1095. 'page_name' => '员工权限管理',
  1096. 'tab_name' => '',
  1097. 'first_tab_show' => 0,
  1098. 'second_tab_show' => 0,
  1099. 'third_tab_show' => 0,
  1100. 'icon' => '',
  1101. 'type' => 2,
  1102. 'route' => 'staffPermission',
  1103. 'premit' => 0,
  1104. 'identity' => 2,
  1105. 'plugin' => '',
  1106. 'child' => [],
  1107. ],
  1108. 'getAuthList' => [
  1109. 'parent' => ['businessAuthPage'],
  1110. 'page_name' => '权限列表',
  1111. 'tab_name' => '',
  1112. 'first_tab_show' => 0,
  1113. 'second_tab_show' => 0,
  1114. 'third_tab_show' => 0,
  1115. 'icon' => '',
  1116. 'type' => 2,
  1117. 'route' => 'getAuthList',
  1118. 'premit' => 0,
  1119. 'identity' => 2,
  1120. 'plugin' => '',
  1121. 'child' => [],
  1122. ],
  1123. 'setAuth' => [
  1124. 'parent' => ['businessAuthPage'],
  1125. 'page_name' => '设置权限',
  1126. 'tab_name' => '',
  1127. 'first_tab_show' => 0,
  1128. 'second_tab_show' => 0,
  1129. 'third_tab_show' => 0,
  1130. 'icon' => '',
  1131. 'type' => 2,
  1132. 'route' => 'setAuth',
  1133. 'premit' => 0,
  1134. 'identity' => 2,
  1135. 'plugin' => '',
  1136. 'child' => [],
  1137. ],
  1138. ],
  1139. ],
  1140. // 'getDepartmentMember' => [
  1141. // 'parent' => [],
  1142. // 'page_name' => '获取所有部门和员工列表(企业微信侧边栏、电子合同使用)',
  1143. // 'tab_name' => '',
  1144. // 'first_tab_show' => 0,
  1145. // 'second_tab_show' => 0,
  1146. // 'third_tab_show' => 0,
  1147. // 'icon' => '',
  1148. // 'type' => 2,
  1149. // 'route' => 'getDepartmentMember',
  1150. // 'premit' => 1,
  1151. // 'identity' => 1,
  1152. // 'plugin' => '',
  1153. // 'child' => [],
  1154. // ],
  1155. ];
  1156. }
  1157. }