create-young-proj 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. package/package.json +3 -6
  2. package/template-nuxt-admin/README.md +22 -0
  3. package/template-nuxt-admin/_gitignore +23 -0
  4. package/template-nuxt-admin/_npmrc +2 -0
  5. package/template-nuxt-admin/components/YoungChangePassword.vue +4 -4
  6. package/template-nuxt-admin/components/layout/Main.vue +2 -17
  7. package/template-nuxt-admin/components/layout/SideBar.vue +2 -3
  8. package/template-nuxt-admin/components/layout/TabsBar.vue +2 -2
  9. package/template-nuxt-admin/composables/tags.ts +26 -20
  10. package/template-nuxt-admin/middleware/auth.global.ts +15 -4
  11. package/template-nuxt-admin/package.json +9 -9
  12. package/template-nuxt-admin/pages/login.vue +5 -5
  13. package/template-nuxt-admin/pages/system/api.vue +5 -5
  14. package/template-nuxt-admin/pages/system/menuList.vue +8 -8
  15. package/template-nuxt-admin/pages/system/role.vue +5 -5
  16. package/template-nuxt-admin/pages/system/user.vue +6 -6
  17. package/template-nuxt-admin/yarn.lock +2322 -2068
  18. package/template-uni-app/README.md +20 -0
  19. package/template-uni-app/_env +1 -1
  20. package/template-uni-app/_env.development +2 -2
  21. package/template-uni-app/_env.production +0 -3
  22. package/template-uni-app/_env.test +0 -3
  23. package/template-uni-app/auto-imports.d.ts +3 -0
  24. package/template-uni-app/dist/dev/mp-weixin/apis/index.js +44 -0
  25. package/template-uni-app/dist/dev/mp-weixin/apis/lib/index.js +90 -0
  26. package/template-uni-app/dist/dev/mp-weixin/apis/requests/get.js +10 -0
  27. package/template-uni-app/dist/dev/mp-weixin/apis/requests/index.js +1 -0
  28. package/template-uni-app/dist/dev/mp-weixin/apis/requests/post.js +15 -0
  29. package/template-uni-app/dist/dev/mp-weixin/app.js +93 -0
  30. package/template-uni-app/dist/dev/mp-weixin/app.json +51 -0
  31. package/template-uni-app/dist/dev/mp-weixin/app.wxss +2378 -0
  32. package/template-uni-app/dist/dev/mp-weixin/common/assets.js +13 -0
  33. package/template-uni-app/dist/dev/mp-weixin/common/vendor.js +10189 -0
  34. package/template-uni-app/dist/dev/mp-weixin/components/young-loading/young-loading.js +22 -0
  35. package/template-uni-app/dist/dev/mp-weixin/components/young-loading/young-loading.json +4 -0
  36. package/template-uni-app/dist/dev/mp-weixin/components/young-loading/young-loading.wxml +1 -0
  37. package/template-uni-app/dist/dev/mp-weixin/components/young-loading/young-loading.wxss +0 -0
  38. package/template-uni-app/dist/dev/mp-weixin/components/young-loading-mini/young-loading-mini.js +22 -0
  39. package/template-uni-app/dist/dev/mp-weixin/components/young-loading-mini/young-loading-mini.json +4 -0
  40. package/template-uni-app/dist/dev/mp-weixin/components/young-loading-mini/young-loading-mini.wxml +1 -0
  41. package/template-uni-app/dist/dev/mp-weixin/components/young-loading-mini/young-loading-mini.wxss +0 -0
  42. package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.js +82 -0
  43. package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.json +4 -0
  44. package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.wxml +1 -0
  45. package/template-uni-app/dist/dev/mp-weixin/components/young-navbar/young-navbar.wxss +108 -0
  46. package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.js +56 -0
  47. package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.json +4 -0
  48. package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.wxml +1 -0
  49. package/template-uni-app/dist/dev/mp-weixin/components/young-tabbar/young-tabbar.wxss +88 -0
  50. package/template-uni-app/dist/dev/mp-weixin/config/enum.js +21 -0
  51. package/template-uni-app/dist/dev/mp-weixin/config/index.js +1 -0
  52. package/template-uni-app/dist/dev/mp-weixin/config/map.js +1 -0
  53. package/template-uni-app/dist/dev/mp-weixin/layouts/default.js +30 -0
  54. package/template-uni-app/dist/dev/mp-weixin/layouts/default.json +6 -0
  55. package/template-uni-app/dist/dev/mp-weixin/layouts/default.wxml +1 -0
  56. package/template-uni-app/dist/dev/mp-weixin/layouts/default.wxss +0 -0
  57. package/template-uni-app/dist/dev/mp-weixin/layouts/tabbar.js +56 -0
  58. package/template-uni-app/dist/dev/mp-weixin/layouts/tabbar.json +9 -0
  59. package/template-uni-app/dist/dev/mp-weixin/layouts/tabbar.wxml +1 -0
  60. package/template-uni-app/dist/dev/mp-weixin/layouts/tabbar.wxss +0 -0
  61. package/template-uni-app/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-card/uni-card.js +98 -0
  62. package/template-uni-app/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-card/uni-card.json +4 -0
  63. package/template-uni-app/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-card/uni-card.wxml +1 -0
  64. package/template-uni-app/dist/dev/mp-weixin/node-modules/@dcloudio/uni-ui/lib/uni-card/uni-card.wxss +125 -0
  65. package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.js +38 -0
  66. package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.json +5 -0
  67. package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.wxml +1 -0
  68. package/template-uni-app/dist/dev/mp-weixin/pages/demo/index.wxss +0 -0
  69. package/template-uni-app/dist/dev/mp-weixin/pages/index.js +51 -0
  70. package/template-uni-app/dist/dev/mp-weixin/pages/index.json +5 -0
  71. package/template-uni-app/dist/dev/mp-weixin/pages/index.wxml +1 -0
  72. package/template-uni-app/dist/dev/mp-weixin/pages/index.wxss +0 -0
  73. package/template-uni-app/dist/dev/mp-weixin/pages/my.js +22 -0
  74. package/template-uni-app/dist/dev/mp-weixin/pages/my.json +3 -0
  75. package/template-uni-app/dist/dev/mp-weixin/pages/my.wxml +1 -0
  76. package/template-uni-app/dist/dev/mp-weixin/pages/my.wxss +0 -0
  77. package/template-uni-app/dist/dev/mp-weixin/project.config.json +56 -0
  78. package/template-uni-app/dist/dev/mp-weixin/static/back.png +0 -0
  79. package/template-uni-app/dist/dev/mp-weixin/static/h.png +0 -0
  80. package/template-uni-app/dist/dev/mp-weixin/static/home.png +0 -0
  81. package/template-uni-app/dist/dev/mp-weixin/static/home_active.png +0 -0
  82. package/template-uni-app/dist/dev/mp-weixin/static/more.png +0 -0
  83. package/template-uni-app/dist/dev/mp-weixin/static/my.png +0 -0
  84. package/template-uni-app/dist/dev/mp-weixin/static/my_active.png +0 -0
  85. package/template-uni-app/dist/dev/mp-weixin/static/network.png +0 -0
  86. package/template-uni-app/dist/dev/mp-weixin/store/index.js +8 -0
  87. package/template-uni-app/dist/dev/mp-weixin/store/local/index.js +11 -0
  88. package/template-uni-app/dist/dev/mp-weixin/store/system.js +14 -0
  89. package/template-uni-app/dist/dev/mp-weixin/utils/modal.js +82 -0
  90. package/template-uni-app/dist/dev/mp-weixin/utils/route.js +85 -0
  91. package/template-uni-app/dist/dev/mp-weixin/utils/system.js +27 -0
  92. package/template-uni-app/src/apis/index.ts +17 -14
  93. package/template-uni-app/src/components/young-loading/young-loading.vue +6 -13
  94. package/template-uni-app/src/components/young-loading-mini/young-loading-mini.vue +3 -10
  95. package/template-uni-app/src/layouts/default.vue +2 -3
  96. package/template-uni-app/src/layouts/tabbar.vue +17 -10
  97. package/template-uni-app/src/pages/index.vue +23 -18
  98. package/template-uni-app/src/pages/my.vue +15 -8
  99. package/template-uni-app/src/pages.json +8 -2
  100. package/template-uni-app/src/store/system.ts +4 -3
  101. package/template-uni-app/src/typings/global.d.ts +7 -0
  102. package/template-uni-app/src/utils/auth.ts +71 -1
  103. package/template-uni-app/src/utils/modal.ts +30 -7
  104. package/template-vue-admin/src/views/system/menuList.vue +3 -3
@@ -1,5 +1,25 @@
1
1
  # 基于 uni-app + vue3 + ts + pinia + unocss 的小程序模板
2
2
 
3
+ ## 配套 git 提交工具
4
+
5
+ ### 安装
6
+
7
+ ```bash
8
+ npm i -g young-commit
9
+ ```
10
+
11
+ ### 使用
12
+
13
+ - 正常使用 `git add` 将要提交的文件添加到暂存区
14
+
15
+ - 提交步骤使用 `yc` 或者 `young-commit` 进行提交
16
+
17
+ #### 命令选项
18
+
19
+ - `yc -i` 初始化(仅刚创建项目时使用,会自动执行 `git init`)
20
+
21
+ - `yc -r` 进行版本发布,会根据之前的提交及最近一个 `tag` 生成 `changelog`
22
+
3
23
  ## Feature
4
24
 
5
25
  - 🚀 `Vue3` + `TS` 快速开发,类型友好,将 🐛 扼杀在摇篮之中
@@ -1,3 +1,3 @@
1
1
  # 此处存放公共配置
2
-
2
+ VITE_APP_ID = tochangetowxappid_dev
3
3
  VITE_CUSTOM_LOADING = true
@@ -6,6 +6,6 @@
6
6
  ###
7
7
 
8
8
  # 下面为应用需要使用的环境变量,需要以 VITE_ 开头
9
- VITE_APP_ID = tochangetowxappid_dev
10
9
 
11
- VITE_API_BASE_URL = https://dev.github.com
10
+ # 开发环境,按需修改
11
+ # VITE_API_BASE_URL = https://dev.github.com
@@ -6,6 +6,3 @@
6
6
  ###
7
7
 
8
8
  # 下面为应用需要使用的环境变量,需要以 VITE_ 开头
9
- VITE_APP_ID = tochangetowxappid_prod
10
-
11
- VITE_API_BASE_URL = https://prod.github.com
@@ -9,6 +9,3 @@
9
9
  # NODE_ENV = production
10
10
 
11
11
  # 下面为应用需要使用的环境变量,需要以 VITE_ 开头
12
- VITE_APP_ID = tochangetowxappid
13
-
14
- VITE_API_BASE_URL = https://api.github.com
@@ -32,6 +32,7 @@ declare global {
32
32
  const getLocationInfo: typeof import('./src/store/local/index')['getLocationInfo']
33
33
  const getMapApiKey: typeof import('./src/config/map')['getMapApiKey']
34
34
  const getNavbarHeihgt: typeof import('./src/store/local/index')['getNavbarHeihgt']
35
+ const getReqUrl: typeof import('./src/apis/index')['getReqUrl']
35
36
  const getSystemInfo: typeof import('./src/utils/system')['getSystemInfo']
36
37
  const getUuid: typeof import('./src/store/local/index')['getUuid']
37
38
  const getWxCode: typeof import('./src/utils/auth')['getWxCode']
@@ -170,6 +171,7 @@ declare module 'vue' {
170
171
  readonly getLocationInfo: UnwrapRef<typeof import('./src/store/local/index')['getLocationInfo']>
171
172
  readonly getMapApiKey: UnwrapRef<typeof import('./src/config/map')['getMapApiKey']>
172
173
  readonly getNavbarHeihgt: UnwrapRef<typeof import('./src/store/local/index')['getNavbarHeihgt']>
174
+ readonly getReqUrl: UnwrapRef<typeof import('./src/apis/index')['getReqUrl']>
173
175
  readonly getSystemInfo: UnwrapRef<typeof import('./src/utils/system')['getSystemInfo']>
174
176
  readonly getUuid: UnwrapRef<typeof import('./src/store/local/index')['getUuid']>
175
177
  readonly getWxCode: UnwrapRef<typeof import('./src/utils/auth')['getWxCode']>
@@ -302,6 +304,7 @@ declare module '@vue/runtime-core' {
302
304
  readonly getLocationInfo: UnwrapRef<typeof import('./src/store/local/index')['getLocationInfo']>
303
305
  readonly getMapApiKey: UnwrapRef<typeof import('./src/config/map')['getMapApiKey']>
304
306
  readonly getNavbarHeihgt: UnwrapRef<typeof import('./src/store/local/index')['getNavbarHeihgt']>
307
+ readonly getReqUrl: UnwrapRef<typeof import('./src/apis/index')['getReqUrl']>
305
308
  readonly getSystemInfo: UnwrapRef<typeof import('./src/utils/system')['getSystemInfo']>
306
309
  readonly getUuid: UnwrapRef<typeof import('./src/store/local/index')['getUuid']>
307
310
  readonly getWxCode: UnwrapRef<typeof import('./src/utils/auth')['getWxCode']>
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ const apis_lib_index = require("./lib/index.js");
3
+ const apis_requests_get = require("./requests/get.js");
4
+ const apis_requests_post = require("./requests/post.js");
5
+ const utils_modal = require("../utils/modal.js");
6
+ const EnvConfig = {
7
+ develop: "https://dev.req.cn",
8
+ trial: "https://test.req.cn",
9
+ release: "https://online.req.cn"
10
+ };
11
+ const getReqUrl = () => (
12
+ // @ts-ignore
13
+ {}.VITE_API_BASE_URL || EnvConfig[__wxConfig.envVersion]
14
+ );
15
+ const http = apis_lib_index.useHttp({
16
+ baseURL: getReqUrl(),
17
+ loading: {
18
+ start: () => {
19
+ utils_modal.showLoading();
20
+ },
21
+ end: () => {
22
+ utils_modal.hideLoading();
23
+ }
24
+ },
25
+ headers: {
26
+ getCommonHeaders: () => ({
27
+ Accept: "application/vnd.github.v3+json"
28
+ }),
29
+ getAuthHeaders: () => {
30
+ const token = "todo: change to the real token that you used";
31
+ return {
32
+ Authorization: `Bearer ${token}`
33
+ };
34
+ }
35
+ },
36
+ fail: (err) => {
37
+ utils_modal.showErrorModal(err.toString());
38
+ }
39
+ });
40
+ const apis = {
41
+ get: apis_requests_get.useGet(http),
42
+ post: apis_requests_post.usePost(http)
43
+ };
44
+ exports.apis = apis;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ const common_vendor = require("../../common/vendor.js");
3
+ const defaultConfig = {
4
+ baseURL: "/api",
5
+ method: "post",
6
+ timeout: 5e3,
7
+ loading: {
8
+ start: console.log.bind(null, "🚀 ~ http loading start"),
9
+ end: console.log.bind(null, "🚀 ~ http loading end")
10
+ },
11
+ fail: console.error.bind(null, "🚀 ~ http loading error"),
12
+ checkFn: (res) => res,
13
+ headers: {
14
+ getCommonHeaders: () => ({}),
15
+ getAuthHeaders: () => ({})
16
+ }
17
+ };
18
+ const useHttp = (config = {}) => {
19
+ const finalConfig = common_vendor.defu(config, defaultConfig);
20
+ const { baseURL, lazyBaseURL, method, timeout, headers, checkFn, loading, fail } = finalConfig;
21
+ const net = common_vendor.axios.create({
22
+ method,
23
+ timeout,
24
+ headers: headers.getCommonHeaders(),
25
+ adapter: common_vendor.Bt()
26
+ });
27
+ net.interceptors.request.use(
28
+ (req) => {
29
+ !req.notLoading && loading.start();
30
+ if (!req.baseURL) {
31
+ req.baseURL = (lazyBaseURL == null ? void 0 : lazyBaseURL()) ?? baseURL;
32
+ }
33
+ return req;
34
+ },
35
+ (error) => {
36
+ fail(error);
37
+ return Promise.reject(error);
38
+ }
39
+ );
40
+ net.interceptors.response.use(
41
+ (response) => {
42
+ !response.config.notLoading && loading.end();
43
+ const data = response.data;
44
+ try {
45
+ return checkFn(data);
46
+ } catch (err) {
47
+ fail(err);
48
+ }
49
+ },
50
+ (error) => {
51
+ !error.config.notLoading && loading.end();
52
+ fail(error);
53
+ }
54
+ );
55
+ return {
56
+ get: void 0,
57
+ post: void 0,
58
+ delete: void 0,
59
+ put: void 0,
60
+ patch: void 0,
61
+ head: void 0,
62
+ purge: void 0,
63
+ options: void 0,
64
+ link: void 0,
65
+ unlink: void 0,
66
+ __instance__: net,
67
+ __mixin__(extentions) {
68
+ for (const method2 in extentions) {
69
+ if (Object.prototype.hasOwnProperty.call(extentions, method2)) {
70
+ const originFns = this[method2] || {};
71
+ const fns = extentions[method2];
72
+ this[method2] = {
73
+ ...originFns,
74
+ ...fns
75
+ };
76
+ }
77
+ }
78
+ return this;
79
+ },
80
+ freeReq: net.request,
81
+ authReq: (args) => net.request({
82
+ ...args,
83
+ headers: {
84
+ ...headers.getAuthHeaders(),
85
+ ...args == null ? void 0 : args.headers
86
+ }
87
+ })
88
+ };
89
+ };
90
+ exports.useHttp = useHttp;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ const useGet = (http) => {
3
+ const FreeReq = (args) => http.freeReq({ method: "GET", ...args });
4
+ return {
5
+ getByUserName: (name) => FreeReq({
6
+ url: `/users/${name}`
7
+ })
8
+ };
9
+ };
10
+ exports.useGet = useGet;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ const usePost = (http) => {
3
+ const AuthReq = (args) => http.authReq({ method: "POST", ...args });
4
+ return {
5
+ createRepo: async (name) => {
6
+ await AuthReq({
7
+ url: `/user/repos`,
8
+ params: {
9
+ name
10
+ }
11
+ });
12
+ }
13
+ };
14
+ };
15
+ exports.usePost = usePost;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common_vendor = require("./common/vendor.js");
4
+ const store_system = require("./store/system.js");
5
+ const store_local_index = require("./store/local/index.js");
6
+ const utils_system = require("./utils/system.js");
7
+ const utils_modal = require("./utils/modal.js");
8
+ const store_index = require("./store/index.js");
9
+ require("./config/enum.js");
10
+ if (!Math) {
11
+ "./pages/index.js";
12
+ "./pages/my.js";
13
+ "./pages/demo/index.js";
14
+ }
15
+ const pages = [
16
+ {
17
+ "path": "pages/index",
18
+ "type": "home",
19
+ "needLogin": true,
20
+ "layout": "tabbar",
21
+ "navbar": {
22
+ "isback": false
23
+ }
24
+ },
25
+ {
26
+ "path": "pages/my",
27
+ "type": "page",
28
+ "needLogin": true,
29
+ "layout": "tabbar",
30
+ "navbar": {
31
+ "isback": false
32
+ }
33
+ },
34
+ {
35
+ "path": "pages/demo/index",
36
+ "type": "page"
37
+ }
38
+ ];
39
+ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
40
+ __name: "App",
41
+ setup(__props) {
42
+ common_vendor.onLaunch(async () => {
43
+ console.log("App Launch");
44
+ console.log("环境变量:", { "VITE_USER_NODE_ENV": "development", "VITE_ROOT_DIR": "/mnt/f/young/young-project/create-young-proj/template-uni-app", "BASE_URL": "/", "MODE": "development", "DEV": true, "PROD": false });
45
+ const { pagesInfo } = common_vendor.storeToRefs(store_system.useSystemInfo());
46
+ pagesInfo.value = pages;
47
+ if (!store_local_index.getUuid()) {
48
+ store_local_index.setUuid();
49
+ }
50
+ await utils_system.getSystemInfo();
51
+ });
52
+ common_vendor.onShow(async () => {
53
+ const updateManager = common_vendor.index.getUpdateManager();
54
+ updateManager.onCheckForUpdate(function(res) {
55
+ console.log(res.hasUpdate, "onCheckForUpdate hasUpdate");
56
+ });
57
+ updateManager.onUpdateReady(function() {
58
+ utils_modal.showModal({
59
+ title: "更新提示",
60
+ content: "新版本已经准备好,是否重启应用?",
61
+ success(res) {
62
+ if (res.confirm) {
63
+ updateManager.applyUpdate();
64
+ }
65
+ }
66
+ });
67
+ });
68
+ updateManager.onUpdateFailed(function() {
69
+ utils_modal.showModal({ title: "更新提示", content: "新版本下载失败", showCancel: false });
70
+ });
71
+ console.log("App Show");
72
+ });
73
+ common_vendor.onHide(() => {
74
+ console.log("App Hide");
75
+ });
76
+ return () => {
77
+ };
78
+ }
79
+ });
80
+ const App = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "/mnt/f/young/young-project/create-young-proj/template-uni-app/src/App.vue"]]);
81
+ function createApp() {
82
+ const app = common_vendor.createSSRApp(App);
83
+ store_index.setupStore(app);
84
+ app.component("layout-default-uni", Layout_Default_Uni);
85
+ app.component("layout-tabbar-uni", Layout_Tabbar_Uni);
86
+ return {
87
+ app
88
+ };
89
+ }
90
+ const Layout_Default_Uni = () => "./layouts/default.js";
91
+ const Layout_Tabbar_Uni = () => "./layouts/tabbar.js";
92
+ createApp().app.mount("#app");
93
+ exports.createApp = createApp;
@@ -0,0 +1,51 @@
1
+ {
2
+ "pages": [
3
+ "pages/index",
4
+ "pages/my",
5
+ "pages/demo/index"
6
+ ],
7
+ "subPackages": [],
8
+ "window": {
9
+ "pageOrientation": "portrait",
10
+ "navigationBarTitleText": "demo",
11
+ "navigationBarTextStyle": "white",
12
+ "navigationBarBackgroundColor": "#0D0D0D",
13
+ "navigationStyle": "custom",
14
+ "backgroundColor": "#F2EAE0",
15
+ "backgroundColorTop": "#F2EAE0",
16
+ "backgroundColorBottom": "#F4F5F6"
17
+ },
18
+ "tabBar": {
19
+ "color": "#666",
20
+ "selectedColor": "#333",
21
+ "borderStyle": "white",
22
+ "backgroundColor": "#ffffff",
23
+ "list": [
24
+ {
25
+ "pagePath": "pages/index",
26
+ "text": "首页",
27
+ "iconPath": "static/home.png",
28
+ "selectedIconPath": "static/home_active.png"
29
+ },
30
+ {
31
+ "pagePath": "pages/my",
32
+ "text": "我的",
33
+ "iconPath": "static/my.png",
34
+ "selectedIconPath": "static/my_active.png"
35
+ }
36
+ ]
37
+ },
38
+ "requiredPrivateInfos": [
39
+ "getLocation",
40
+ "chooseLocation"
41
+ ],
42
+ "permission": {
43
+ "scope.userLocation": {
44
+ "desc": "你的位置信息将用于获取附近的门店信息"
45
+ }
46
+ },
47
+ "usingComponents": {
48
+ "layout-default-uni": "/layouts/default",
49
+ "layout-tabbar-uni": "/layouts/tabbar"
50
+ }
51
+ }