skyline-vue-admin 0.0.14 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auto-complete-array-input/index.cjs +1 -1
- package/dist/components/auto-complete-array-input/index.cjs.map +1 -1
- package/dist/components/auto-complete-array-input/index.mjs +25 -22
- package/dist/components/auto-complete-array-input/index.mjs.map +1 -1
- package/dist/components/avatar-input/index.cjs.map +1 -1
- package/dist/components/avatar-input/index.mjs.map +1 -1
- package/dist/components/create/index.cjs.map +1 -1
- package/dist/components/create/index.mjs.map +1 -1
- package/dist/components/edit-button/index.cjs.map +1 -1
- package/dist/components/edit-button/index.mjs.map +1 -1
- package/dist/components/file-multiple-input/index.cjs.map +1 -1
- package/dist/components/file-multiple-input/index.mjs.map +1 -1
- package/dist/components/image-field/index.cjs.map +1 -1
- package/dist/components/image-field/index.mjs.map +1 -1
- package/dist/components/link-field/index.cjs.map +1 -1
- package/dist/components/link-field/index.mjs.map +1 -1
- package/dist/components/radio-button-group-input/index.cjs.map +1 -1
- package/dist/components/radio-button-group-input/index.mjs.map +1 -1
- package/dist/components/reference-array-field/index.cjs.map +1 -1
- package/dist/components/reference-array-field/index.mjs.map +1 -1
- package/dist/components/reference-array-input/index.cjs.map +1 -1
- package/dist/components/reference-array-input/index.mjs.map +1 -1
- package/dist/components/reference-field/index.cjs.map +1 -1
- package/dist/components/reference-field/index.mjs.map +1 -1
- package/dist/components/reference-image-field/index.cjs.map +1 -1
- package/dist/components/reference-image-field/index.mjs.map +1 -1
- package/dist/components/show/index.cjs.map +1 -1
- package/dist/components/show/index.mjs.map +1 -1
- package/dist/components/show-button/index.cjs.map +1 -1
- package/dist/components/show-button/index.mjs.map +1 -1
- package/dist/components/show-simple-layout/index.cjs.map +1 -1
- package/dist/components/show-simple-layout/index.mjs.map +1 -1
- package/dist/components/simple-form/index.cjs.map +1 -1
- package/dist/components/simple-form/index.mjs.map +1 -1
- package/dist/components/single-field-list/index.cjs.map +1 -1
- package/dist/components/single-field-list/index.mjs.map +1 -1
- package/dist/components/text-input/index.cjs.map +1 -1
- package/dist/components/text-input/index.mjs.map +1 -1
- package/dist/hooks/useFormGrid.cjs.map +1 -1
- package/dist/hooks/useFormGrid.mjs.map +1 -1
- package/dist/hooks/useMenu.cjs.map +1 -1
- package/dist/hooks/useMenu.mjs.map +1 -1
- package/dist/hooks/usePermission.cjs.map +1 -1
- package/dist/hooks/usePermission.mjs.map +1 -1
- package/dist/hooks/useReferenceArrayField.cjs.map +1 -1
- package/dist/hooks/useReferenceArrayField.mjs.map +1 -1
- package/dist/hooks/useReferenceArrayInput.cjs.map +1 -1
- package/dist/hooks/useReferenceArrayInput.mjs.map +1 -1
- package/dist/hooks/useRouteKeepAlive.cjs.map +1 -1
- package/dist/hooks/useRouteKeepAlive.mjs.map +1 -1
- package/dist/hooks/useShow.cjs.map +1 -1
- package/dist/hooks/useShow.mjs.map +1 -1
- package/dist/hooks/useSize.cjs.map +1 -1
- package/dist/hooks/useSize.mjs.map +1 -1
- package/dist/hooks/useTab.cjs.map +1 -1
- package/dist/hooks/useTab.mjs.map +1 -1
- package/dist/hooks/useTreeWithDetails.cjs.map +1 -1
- package/dist/hooks/useTreeWithDetails.mjs.map +1 -1
- package/dist/hooks/useUser.cjs.map +1 -1
- package/dist/hooks/useUser.mjs.map +1 -1
- package/dist/i18n/locales/en.cjs.map +1 -1
- package/dist/i18n/locales/en.mjs.map +1 -1
- package/dist/i18n/locales/zh-cn.cjs.map +1 -1
- package/dist/i18n/locales/zh-cn.mjs.map +1 -1
- package/dist/icons/EpDelete.cjs.map +1 -1
- package/dist/icons/EpDelete.mjs.map +1 -1
- package/dist/icons/EpDocumentAdd.cjs.map +1 -1
- package/dist/icons/EpDocumentAdd.mjs.map +1 -1
- package/dist/icons/EpDownload.cjs.map +1 -1
- package/dist/icons/EpDownload.mjs.map +1 -1
- package/dist/icons/EpFullScreen.cjs.map +1 -1
- package/dist/icons/EpFullScreen.mjs.map +1 -1
- package/dist/icons/EpMoon.cjs.map +1 -1
- package/dist/icons/EpMoon.mjs.map +1 -1
- package/dist/icons/EpPlus.cjs.map +1 -1
- package/dist/icons/EpPlus.mjs.map +1 -1
- package/dist/icons/EpRefresh.cjs.map +1 -1
- package/dist/icons/EpRefresh.mjs.map +1 -1
- package/dist/icons/EpSunny.cjs.map +1 -1
- package/dist/icons/EpSunny.mjs.map +1 -1
- package/dist/icons/EpSwitchFilled.cjs.map +1 -1
- package/dist/icons/EpSwitchFilled.mjs.map +1 -1
- package/dist/icons/EpUploadFilled.cjs.map +1 -1
- package/dist/icons/EpUploadFilled.mjs.map +1 -1
- package/dist/icons/FluentFullScreenMinimize20Regular.cjs.map +1 -1
- package/dist/icons/FluentFullScreenMinimize20Regular.mjs.map +1 -1
- package/dist/icons/NimbusTextSize.cjs.map +1 -1
- package/dist/icons/NimbusTextSize.mjs.map +1 -1
- package/dist/icons/SkyMenuCollapse.cjs.map +1 -1
- package/dist/icons/SkyMenuCollapse.mjs.map +1 -1
- package/dist/icons/SlTrans.cjs.map +1 -1
- package/dist/icons/SlTrans.mjs.map +1 -1
- package/dist/layouts/default.cjs +1 -1
- package/dist/layouts/default.cjs.map +1 -1
- package/dist/layouts/default.mjs +35 -33
- package/dist/layouts/default.mjs.map +1 -1
- package/dist/pages/login.cjs.map +1 -1
- package/dist/pages/login.mjs.map +1 -1
- package/dist/pages/not-found.cjs.map +1 -1
- package/dist/pages/not-found.mjs.map +1 -1
- package/dist/pages/welcome.cjs.map +1 -1
- package/dist/pages/welcome.mjs.map +1 -1
- package/dist/router/index.cjs.map +1 -1
- package/dist/router/index.mjs.map +1 -1
- package/dist/setup/index.cjs.map +1 -1
- package/dist/setup/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.cjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\
|
|
1
|
+
{"version":3,"file":"welcome.cjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'SkyWelcomePage',\n setup() {\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\n },\n})\n"],"names":["welcome","name","setup","_createVNode","_createTextVNode"],"mappings":"mIAEAA,oBAA+B,CAC7BC,KAAM,iBACNC,OAAQ,CACN,MAAO,IAAAC,EAAAA,YAAA,MAAA,CAAA,MAAA,gBAAA,EAAA,CAAAC,EAAAA,gBAAA,oBAAA,CAAA,CAAA,CACT,CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"welcome.mjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\
|
|
1
|
+
{"version":3,"file":"welcome.mjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'SkyWelcomePage',\n setup() {\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\n },\n})\n"],"names":["welcome","name","setup","_createVNode","_createTextVNode"],"mappings":";AAEA,MAAAA,sBAA+B;AAAA,EAC7BC,MAAM;AAAA,EACNC,QAAQ;AACN,WAAO,MAAAC,EAAA,OAAA;AAAA,MAAA,OAAA;AAAA,IAAA,GAAA,CAAAC,EAAA,oBAAA,CAAA,CAAA;AAAA,EACT;AACF,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\n\nimport { skyConfig } from '@/setup'\nimport type { RouteRecordRaw } from 'vue-router'\nimport { usePermission, useTab, useUser } from '@/hooks'\nimport type { CanAccessItem } from '@/provides'\n\nexport type SkyLayoutRouteMeta = {\n tab: true\n resource: string\n action: 'list' | 'create' | 'edit' | 'show'\n row: string\n column: string\n tabTitle: string\n // 是否添加到 keepAlive 列表\n keepAliveName?: string\n icon?: string\n}\n\nexport const getRoutes = (): RouteRecordRaw[] => {\n return [\n {\n name: skyConfig.layoutRouteName,\n path: '/',\n component: () => skyConfig.layoutPage ?? import('@/layouts/default'),\n redirect: { name: skyConfig.welcomeRouteName },\n children: [\n {\n name: skyConfig.welcomeRouteName,\n path: 'welcome',\n component: () => skyConfig.welcomePage ?? import('@/pages/welcome'),\n meta: {\n tab: true,\n tabTitle: '欢迎界面',\n resource: '*',\n action: '*',\n row: '*',\n column: '*',\n },\n },\n ],\n },\n {\n name: skyConfig.loginRouteName,\n path: '/login',\n component: () => skyConfig.loginPage ?? import('@/pages/login'),\n },\n {\n name: skyConfig.notFoundRouteName,\n path: '/:pathMatch(.*)*',\n component: () => skyConfig.notFoundPage ?? import('@/pages/not-found'),\n },\n ]\n}\n\nexport const checkAuth = (router: Router, to: RouteLocationNormalizedGeneric) => {\n const { isLogin } = useUser()\n\n // 检测是否需要登录\n // openLogin - 表示开启登录界面功能\n // isLogin - 表示是否已经登录\n const openLogin = router.hasRoute(skyConfig.loginRouteName)\n if (openLogin) {\n if (to.name === skyConfig.loginRouteName) {\n if (isLogin.value) {\n return { name: skyConfig.layoutRouteName }\n } else {\n return true\n }\n } else {\n if (!isLogin.value) {\n return { name: skyConfig.loginRouteName }\n }\n }\n }\n}\n\nexport const addLayoutRoutes = async (router: Router, permissions: CanAccessItem[]) => {\n const result: string[] = []\n const resources =\n typeof skyConfig.resources === 'function' ? await skyConfig.resources() : skyConfig.resources\n if (resources) {\n for (const resource of resources) {\n const routes = [\n {\n comp: resource.list,\n name: skyConfig.getListRouteName(resource.name),\n path: resource.name,\n action: 'list',\n },\n {\n comp: resource.create,\n name: skyConfig.getCreateRouteName(resource.name),\n path: `${resource.name}/create`,\n action: 'create',\n },\n {\n comp: resource.edit,\n name: skyConfig.getEditRouteName(resource.name),\n path: `${resource.name}/edit/:id`,\n action: 'edit',\n },\n {\n comp: resource.show,\n name: skyConfig.getShowRouteName(resource.name),\n path: `${resource.name}/show/:id`,\n action: 'show',\n },\n ]\n for (const route of routes) {\n if (\n route.comp &&\n skyConfig.dataProvider?.canAccess?.(\n { resource: resource.name, action: route.action },\n permissions,\n )\n ) {\n if (!router.hasRoute(route.name)) {\n router.addRoute(skyConfig.layoutRouteName, {\n name: route.name,\n path: route.path,\n component: route.comp,\n meta: {\n tab: true,\n tabTitle: route.comp.title || `${resource.name} ${route.action}`,\n resource: resource.name,\n action: route.action,\n keepAliveName: route.comp.keepAlive ? route.comp.name : undefined,\n icon: route.comp.icon,\n },\n })\n }\n result.push(route.name)\n } else {\n if (router.hasRoute(route.name)) {\n router.removeRoute(route.name)\n }\n }\n }\n }\n }\n\n return result\n}\n\nexport const guard = (router: Router) => {\n const beforeEach = async (to: RouteLocationNormalizedGeneric) => {\n const authTo = checkAuth(router, to)\n\n if (typeof authTo !== 'undefined') {\n return authTo\n }\n\n // 获取所有权限\n const permissions = await skyConfig.dataProvider?.getPermissions?.()\n\n const { addTab, lastTab } = useTab()\n\n const meta = to.meta as SkyLayoutRouteMeta\n\n let routes: string[] | undefined\n if (permissions) {\n // 每次路由获取权限,需要全局存储下来\n usePermission().permissions.value = permissions\n\n routes = await addLayoutRoutes(router, permissions)\n\n if (typeof to.name === 'string' && routes.includes(to.name)) {\n addTab({\n routeName: to.name,\n routeParams: to.params,\n routeKeepAliveName: meta.keepAliveName,\n title: meta.tabTitle,\n icon: meta.icon,\n })\n return true\n }\n }\n\n // 所有都支持访问 welcome\n if (to.name === skyConfig.welcomeRouteName) {\n addTab({\n routeName: to.name,\n routeParams: to.params,\n routeKeepAliveName: meta.keepAliveName,\n title: meta.tabTitle,\n icon: meta.icon,\n })\n return true\n } else if (to.name === skyConfig.notFoundRouteName) {\n if (lastTab.value?.routeName && routes?.includes(lastTab.value.routeName)) {\n return { name: lastTab.value.routeName, params: lastTab.value.routeParams }\n }\n return { name: skyConfig.welcomeRouteName }\n }\n\n // 无权限\n return false\n }\n\n return {\n beforeEach,\n }\n}\n"],"names":["getRoutes","skyConfig","checkAuth","router","to","isLogin","useUser","addLayoutRoutes","permissions","result","resources","resource","routes","route","guard","authTo","addTab","lastTab","useTab","meta","usePermission"],"mappings":"qtBAmBO,MAAMA,EAAY,IAChB,CACL,CACE,KAAMC,EAAAA,UAAU,gBAChB,KAAM,IACN,UAAW,IAAMA,EAAAA,UAAU,YAAc,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,wBAAmB,CAAA,EACnE,SAAU,CAAE,KAAMA,EAAAA,UAAU,gBAAA,EAC5B,SAAU,CACR,CACE,KAAMA,EAAAA,UAAU,iBAChB,KAAM,UACN,UAAW,IAAMA,EAAAA,UAAU,aAAe,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,sBAAiB,CAAA,EAClE,KAAM,CACJ,IAAK,GACL,SAAU,OACV,SAAU,IACV,OAAQ,IACR,IAAK,IACL,OAAQ,GAAA,CACV,CACF,CACF,EAEF,CACE,KAAMA,EAAAA,UAAU,eAChB,KAAM,SACN,UAAW,IAAMA,EAAAA,UAAU,WAAa,mCAAO,oBAAe,CAAA,CAAA,EAEhE,CACE,KAAMA,EAAAA,UAAU,kBAChB,KAAM,mBACN,UAAW,IAAMA,EAAAA,UAAU,cAAgB,mCAAO,wBAAmB,CAAA,CAAA,CACvE,EAISC,EAAY,CAACC,EAAgBC,IAAuC,CAC/E,KAAM,CAAE,QAAAC,CAAA,EAAYC,UAAA,EAMpB,GADkBH,EAAO,SAASF,EAAAA,UAAU,cAAc,EAC3C,CACb,GAAIG,EAAG,OAASH,EAAAA,UAAU,eACxB,OAAII,EAAQ,MACH,CAAE,KAAMJ,EAAAA,UAAU,eAAA,EAElB,GAGT,GAAI,CAACI,EAAQ,MACX,MAAO,CAAE,KAAMJ,EAAAA,UAAU,cAAA,CAG/B,CACF,EAEaM,EAAkB,MAAOJ,EAAgBK,IAAiC,CACrF,MAAMC,EAAmB,CAAA,EACnBC,EACJ,OAAOT,EAAAA,UAAU,WAAc,WAAa,MAAMA,YAAU,YAAcA,EAAAA,UAAU,UACtF,GAAIS,EACF,UAAWC,KAAYD,EAAW,CAChC,MAAME,EAAS,CACb,CACE,KAAMD,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAMA,EAAS,KACf,OAAQ,MAAA,EAEV,CACE,KAAMA,EAAS,OACf,KAAMV,EAAAA,UAAU,mBAAmBU,EAAS,IAAI,EAChD,KAAM,GAAGA,EAAS,IAAI,UACtB,OAAQ,QAAA,EAEV,CACE,KAAMA,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAM,GAAGA,EAAS,IAAI,YACtB,OAAQ,MAAA,EAEV,CACE,KAAMA,EAAS,KACf,KAAMV,EAAAA,UAAU,iBAAiBU,EAAS,IAAI,EAC9C,KAAM,GAAGA,EAAS,IAAI,YACtB,OAAQ,MAAA,CACV,EAEF,UAAWE,KAASD,EAEhBC,EAAM,MACNZ,EAAAA,UAAU,cAAc,YACtB,CAAE,SAAUU,EAAS,KAAM,OAAQE,EAAM,MAAA,EACzCL,CAAA,GAGGL,EAAO,SAASU,EAAM,IAAI,GAC7BV,EAAO,SAASF,EAAAA,UAAU,gBAAiB,CACzC,KAAMY,EAAM,KACZ,KAAMA,EAAM,KACZ,UAAWA,EAAM,KACjB,KAAM,CACJ,IAAK,GACL,SAAUA,EAAM,KAAK,OAAS,GAAGF,EAAS,IAAI,IAAIE,EAAM,MAAM,GAC9D,SAAUF,EAAS,KACnB,OAAQE,EAAM,OACd,cAAeA,EAAM,KAAK,UAAYA,EAAM,KAAK,KAAO,OACxD,KAAMA,EAAM,KAAK,IAAA,CACnB,CACD,EAEHJ,EAAO,KAAKI,EAAM,IAAI,GAElBV,EAAO,SAASU,EAAM,IAAI,GAC5BV,EAAO,YAAYU,EAAM,IAAI,CAIrC,CAGF,OAAOJ,CACT,EAEaK,EAASX,IAuDb,CACL,WAvDiB,MAAOC,GAAuC,CAC/D,MAAMW,EAASb,EAAUC,EAAQC,CAAE,EAEnC,GAAI,OAAOW,EAAW,IACpB,OAAOA,EAIT,MAAMP,EAAc,MAAMP,YAAU,cAAc,iBAAA,EAE5C,CAAE,OAAAe,EAAQ,QAAAC,CAAA,EAAYC,SAAA,EAEtBC,EAAOf,EAAG,KAEhB,IAAIQ,EACJ,OAAIJ,IAEFY,gBAAA,EAAgB,YAAY,MAAQZ,EAEpCI,EAAS,MAAML,EAAgBJ,EAAQK,CAAW,EAE9C,OAAOJ,EAAG,MAAS,UAAYQ,EAAO,SAASR,EAAG,IAAI,IACxDY,EAAO,CACL,UAAWZ,EAAG,KACd,YAAaA,EAAG,OAChB,mBAAoBe,EAAK,cACzB,MAAOA,EAAK,SACZ,KAAMA,EAAK,IAAA,CACZ,EACM,IAKPf,EAAG,OAASH,EAAAA,UAAU,kBACxBe,EAAO,CACL,UAAWZ,EAAG,KACd,YAAaA,EAAG,OAChB,mBAAoBe,EAAK,cACzB,MAAOA,EAAK,SACZ,KAAMA,EAAK,IAAA,CACZ,EACM,IACEf,EAAG,OAASH,EAAAA,UAAU,kBAC3BgB,EAAQ,OAAO,WAAaL,GAAQ,SAASK,EAAQ,MAAM,SAAS,EAC/D,CAAE,KAAMA,EAAQ,MAAM,UAAW,OAAQA,EAAQ,MAAM,WAAA,EAEzD,CAAE,KAAMhB,EAAAA,UAAU,gBAAA,EAIpB,EACT,CAGE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/router/index.ts"],"sourcesContent":["import type { RouteLocationNormalizedGeneric, Router } from 'vue-router'\n\nimport { skyConfig } from '@/setup'\nimport type { RouteRecordRaw } from 'vue-router'\nimport { usePermission, useTab, useUser } from '@/hooks'\nimport type { CanAccessItem } from '@/provides'\n\nexport type SkyLayoutRouteMeta = {\n tab: true\n resource: string\n action: 'list' | 'create' | 'edit' | 'show'\n row: string\n column: string\n tabTitle: string\n // 是否添加到 keepAlive 列表\n keepAliveName?: string\n icon?: string\n}\n\nexport const getRoutes = (): RouteRecordRaw[] => {\n return [\n {\n name: skyConfig.layoutRouteName,\n path: '/',\n component: () => skyConfig.layoutPage ?? import('@/layouts/default'),\n redirect: { name: skyConfig.welcomeRouteName },\n children: [\n {\n name: skyConfig.welcomeRouteName,\n path: 'welcome',\n component: () => skyConfig.welcomePage ?? import('@/pages/welcome'),\n meta: {\n tab: true,\n tabTitle: '欢迎界面',\n resource: '*',\n action: '*',\n row: '*',\n column: '*',\n },\n },\n ],\n },\n {\n name: skyConfig.loginRouteName,\n path: '/login',\n component: () => skyConfig.loginPage ?? import('@/pages/login'),\n },\n {\n name: skyConfig.notFoundRouteName,\n path: '/:pathMatch(.*)*',\n component: () => skyConfig.notFoundPage ?? import('@/pages/not-found'),\n },\n ]\n}\n\nexport const checkAuth = (router: Router, to: RouteLocationNormalizedGeneric) => {\n const { isLogin } = useUser()\n\n // 检测是否需要登录\n // openLogin - 表示开启登录界面功能\n // isLogin - 表示是否已经登录\n const openLogin = router.hasRoute(skyConfig.loginRouteName)\n if (openLogin) {\n if (to.name === skyConfig.loginRouteName) {\n if (isLogin.value) {\n return { name: skyConfig.layoutRouteName }\n } else {\n return true\n }\n } else {\n if (!isLogin.value) {\n return { name: skyConfig.loginRouteName }\n }\n }\n }\n}\n\nexport const addLayoutRoutes = async (router: Router, permissions: CanAccessItem[]) => {\n const result: string[] = []\n const resources =\n typeof skyConfig.resources === 'function' ? await skyConfig.resources() : skyConfig.resources\n if (resources) {\n for (const resource of resources) {\n const routes = [\n {\n comp: resource.list,\n name: skyConfig.getListRouteName(resource.name),\n path: resource.name,\n action: 'list',\n },\n {\n comp: resource.create,\n name: skyConfig.getCreateRouteName(resource.name),\n path: `${resource.name}/create`,\n action: 'create',\n },\n {\n comp: resource.edit,\n name: skyConfig.getEditRouteName(resource.name),\n path: `${resource.name}/edit/:id`,\n action: 'edit',\n },\n {\n comp: resource.show,\n name: skyConfig.getShowRouteName(resource.name),\n path: `${resource.name}/show/:id`,\n action: 'show',\n },\n ]\n for (const route of routes) {\n if (\n route.comp &&\n skyConfig.dataProvider?.canAccess?.(\n { resource: resource.name, action: route.action },\n permissions,\n )\n ) {\n if (!router.hasRoute(route.name)) {\n router.addRoute(skyConfig.layoutRouteName, {\n name: route.name,\n path: route.path,\n component: route.comp,\n meta: {\n tab: true,\n tabTitle: route.comp.title || `${resource.name} ${route.action}`,\n resource: resource.name,\n action: route.action,\n keepAliveName: route.comp.keepAlive ? route.comp.name : undefined,\n icon: route.comp.icon,\n },\n })\n }\n result.push(route.name)\n } else {\n if (router.hasRoute(route.name)) {\n router.removeRoute(route.name)\n }\n }\n }\n }\n }\n\n return result\n}\n\nexport const guard = (router: Router) => {\n const beforeEach = async (to: RouteLocationNormalizedGeneric) => {\n const authTo = checkAuth(router, to)\n\n if (typeof authTo !== 'undefined') {\n return authTo\n }\n\n // 获取所有权限\n const permissions = await skyConfig.dataProvider?.getPermissions?.()\n\n const { addTab, lastTab } = useTab()\n\n const meta = to.meta as SkyLayoutRouteMeta\n\n let routes: string[] | undefined\n if (permissions) {\n // 每次路由获取权限,需要全局存储下来\n usePermission().permissions.value = permissions\n\n routes = await addLayoutRoutes(router, permissions)\n\n if (typeof to.name === 'string' && routes.includes(to.name)) {\n addTab({\n routeName: to.name,\n routeParams: to.params,\n routeKeepAliveName: meta.keepAliveName,\n title: meta.tabTitle,\n icon: meta.icon,\n })\n return true\n }\n }\n\n // 所有都支持访问 welcome\n if (to.name === skyConfig.welcomeRouteName) {\n addTab({\n routeName: to.name,\n routeParams: to.params,\n routeKeepAliveName: meta.keepAliveName,\n title: meta.tabTitle,\n icon: meta.icon,\n })\n return true\n } else if (to.name === skyConfig.notFoundRouteName) {\n if (lastTab.value?.routeName && routes?.includes(lastTab.value.routeName)) {\n return { name: lastTab.value.routeName, params: lastTab.value.routeParams }\n }\n return { name: skyConfig.welcomeRouteName }\n }\n\n // 无权限\n return false\n }\n\n return {\n beforeEach,\n }\n}\n"],"names":["getRoutes","skyConfig","checkAuth","router","to","isLogin","useUser","addLayoutRoutes","permissions","result","resources","resource","routes","route","guard","authTo","addTab","lastTab","useTab","meta","usePermission"],"mappings":"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"}
|
package/dist/setup/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\nimport { h, type App, type Component, type VNode } from 'vue'\nimport { default as en } from '@/i18n/locales/en'\nimport { createI18n } from 'vue-i18n'\nimport type { RouteParamsGeneric } from 'vue-router'\nimport { ElIcon } from 'element-plus'\n\nexport type SkyLanguage = typeof en\n\nexport type SkyComponent = Component & {\n title?: string\n // 是否添加到 keepAlive 列表\n // keepAliveName?: string\n keepAlive?: boolean\n icon?: string\n}\n\nexport interface SkyResource {\n name: string\n list?: SkyComponent\n create?: SkyComponent\n edit?: SkyComponent\n show?: SkyComponent\n}\n\nexport interface SkyMenu {\n routeName: string\n routeParams?: RouteParamsGeneric\n title: string\n icon?: string\n children?: SkyMenu[]\n permission: CanAccessItem\n}\n\nexport type SkyConfig = {\n sizeName: string\n langName: string\n tokenName: string\n usernameName: string\n collapseName: string\n tabsName: string\n tabListStackName: string\n notFoundRouteName: string\n loginRouteName: string\n welcomeRouteName: string\n layoutRouteName: string\n permissionThrottle: number\n dataProvider?: DataProvider\n icons?: Record<string, Component>\n menus?: SkyMenu[]\n resources?: SkyResource[] | (() => Promise<SkyResource[]>)\n getRandomRouteName: () => string\n getListRouteName: (resource: string) => string\n getCreateRouteName: (resource: string) => string\n getEditRouteName: (resource: string) => string\n getShowRouteName: (resource: string) => string\n locales: Record<string, SkyLanguage>\n loginPage?: Component | Promise<Component>\n layoutPage?: Component | Promise<Component>\n notFoundPage?: Component | Promise<Component>\n welcomePage?: Component | Promise<Component>\n logoImg?: string\n loginImg?: string\n themeEnabled: boolean\n getIconFnName: string\n}\n\nexport type SkyConfigKey = keyof SkyConfig\n\nexport const getRandomRouteName = () => Math.random().toString(16).slice(2)\nexport const getListRouteName = (resource: string) => `/sky/layout/${resource}`\nexport const getCreateRouteName = (resource: string) => `/sky/layout/${resource}/create`\nexport const getEditRouteName = (resource: string) => `/sky/layout/${resource}/edit`\nexport const getShowRouteName = (resource: string) => `/sky/layout/${resource}/show`\n\nexport const skyConfig: SkyConfig = {\n sizeName: 'sky:size',\n langName: 'sky:lang',\n tokenName: 'sky:user:token',\n usernameName: 'sky:user:username',\n collapseName: 'sky:menu:collapse',\n tabsName: 'sky:tab:tabs',\n tabListStackName: 'sky:tab:tabListStack',\n notFoundRouteName: '/sky/not-found',\n loginRouteName: '/sky/login',\n welcomeRouteName: '/sky/welcome',\n layoutRouteName: '/sky/layout',\n permissionThrottle: 5000,\n getRandomRouteName,\n getListRouteName,\n getCreateRouteName,\n getEditRouteName,\n getShowRouteName,\n locales: {\n en,\n },\n themeEnabled: false,\n getIconFnName: 'getIconFn',\n}\n\nexport type GetIconFn = (icon: string) => VNode | undefined\n\nexport const skyAdmin = {\n install: (app: App, config: Partial<SkyConfig>) => {\n Object.assign(skyConfig, config)\n\n app.use(\n createI18n({\n // 适配 composition API\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n messages: skyConfig.locales,\n }),\n )\n\n app.provide<GetIconFn>(skyConfig.getIconFnName, (icon) => {\n if (skyConfig.icons?.[icon]) {\n return h(ElIcon, null, {\n default: () => h(skyConfig.icons![icon]!),\n })\n }\n })\n },\n}\n"],"names":["getRandomRouteName","getListRouteName","resource","getCreateRouteName","getEditRouteName","getShowRouteName","skyConfig","en","skyAdmin","app","config","createI18n","icon","h","ElIcon"],"mappings":"2LAqEaA,EAAqB,IAAM,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,CAAC,EAC7DC,EAAoBC,GAAqB,eAAeA,CAAQ,GAChEC,EAAsBD,GAAqB,eAAeA,CAAQ,UAClEE,EAAoBF,GAAqB,eAAeA,CAAQ,QAChEG,EAAoBH,GAAqB,eAAeA,CAAQ,QAEhEI,EAAuB,CAClC,SAAU,WACV,SAAU,WACV,UAAW,iBACX,aAAc,oBACd,aAAc,oBACd,SAAU,eACV,iBAAkB,uBAClB,kBAAmB,iBACnB,eAAgB,aAChB,iBAAkB,eAClB,gBAAiB,cACjB,mBAAoB,IACpB,mBAAAN,EACA,iBAAAC,EACA,mBAAAE,EACA,iBAAAC,EACA,iBAAAC,EACA,QAAS,CAAA,GACPE,EAAAA,OAAA,EAEF,aAAc,GACd,cAAe,WACjB,EAIaC,EAAW,CACtB,QAAS,CAACC,EAAUC,IAA+B,CACjD,OAAO,OAAOJ,EAAWI,CAAM,EAE/BD,EAAI,IACFE,aAAW,CAET,OAAQ,GACR,OAAQ,KACR,eAAgB,KAChB,SAAUL,EAAU,OAAA,CACrB,CAAA,EAGHG,EAAI,QAAmBH,EAAU,cAAgBM,GAAS,CACxD,GAAIN,EAAU,QAAQM,CAAI,EACxB,OAAOC,EAAAA,EAAEC,EAAAA,OAAQ,KAAM,CACrB,QAAS,IAAMD,EAAAA,EAAEP,EAAU,MAAOM,CAAI,CAAE,CAAA,CACzC,CAEL,CAAC,CACH,CACF"}
|
package/dist/setup/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\nimport { h, type App, type Component, type VNode } from 'vue'\nimport { default as en } from '@/i18n/locales/en'\nimport { createI18n } from 'vue-i18n'\nimport type { RouteParamsGeneric } from 'vue-router'\nimport { ElIcon } from 'element-plus'\n\nexport type SkyLanguage = typeof en\n\nexport type SkyComponent = Component & {\n title?: string\n // 是否添加到 keepAlive 列表\n // keepAliveName?: string\n keepAlive?: boolean\n icon?: string\n}\n\nexport interface SkyResource {\n name: string\n list?: SkyComponent\n create?: SkyComponent\n edit?: SkyComponent\n show?: SkyComponent\n}\n\nexport interface SkyMenu {\n routeName: string\n routeParams?: RouteParamsGeneric\n title: string\n icon?: string\n children?: SkyMenu[]\n permission: CanAccessItem\n}\n\nexport type SkyConfig = {\n sizeName: string\n langName: string\n tokenName: string\n usernameName: string\n collapseName: string\n tabsName: string\n tabListStackName: string\n notFoundRouteName: string\n loginRouteName: string\n welcomeRouteName: string\n layoutRouteName: string\n permissionThrottle: number\n dataProvider?: DataProvider\n icons?: Record<string, Component>\n menus?: SkyMenu[]\n resources?: SkyResource[] | (() => Promise<SkyResource[]>)\n getRandomRouteName: () => string\n getListRouteName: (resource: string) => string\n getCreateRouteName: (resource: string) => string\n getEditRouteName: (resource: string) => string\n getShowRouteName: (resource: string) => string\n locales: Record<string, SkyLanguage>\n loginPage?: Component | Promise<Component>\n layoutPage?: Component | Promise<Component>\n notFoundPage?: Component | Promise<Component>\n welcomePage?: Component | Promise<Component>\n logoImg?: string\n loginImg?: string\n themeEnabled: boolean\n getIconFnName: string\n}\n\nexport type SkyConfigKey = keyof SkyConfig\n\nexport const getRandomRouteName = () => Math.random().toString(16).slice(2)\nexport const getListRouteName = (resource: string) => `/sky/layout/${resource}`\nexport const getCreateRouteName = (resource: string) => `/sky/layout/${resource}/create`\nexport const getEditRouteName = (resource: string) => `/sky/layout/${resource}/edit`\nexport const getShowRouteName = (resource: string) => `/sky/layout/${resource}/show`\n\nexport const skyConfig: SkyConfig = {\n sizeName: 'sky:size',\n langName: 'sky:lang',\n tokenName: 'sky:user:token',\n usernameName: 'sky:user:username',\n collapseName: 'sky:menu:collapse',\n tabsName: 'sky:tab:tabs',\n tabListStackName: 'sky:tab:tabListStack',\n notFoundRouteName: '/sky/not-found',\n loginRouteName: '/sky/login',\n welcomeRouteName: '/sky/welcome',\n layoutRouteName: '/sky/layout',\n permissionThrottle: 5000,\n getRandomRouteName,\n getListRouteName,\n getCreateRouteName,\n getEditRouteName,\n getShowRouteName,\n locales: {\n en,\n },\n themeEnabled: false,\n getIconFnName: 'getIconFn',\n}\n\nexport type GetIconFn = (icon: string) => VNode | undefined\n\nexport const skyAdmin = {\n install: (app: App, config: Partial<SkyConfig>) => {\n Object.assign(skyConfig, config)\n\n app.use(\n createI18n({\n // 适配 composition API\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n messages: skyConfig.locales,\n }),\n )\n\n app.provide<GetIconFn>(skyConfig.getIconFnName, (icon) => {\n if (skyConfig.icons?.[icon]) {\n return h(ElIcon, null, {\n default: () => h(skyConfig.icons![icon]!),\n })\n }\n })\n },\n}\n"],"names":["getRandomRouteName","getListRouteName","resource","getCreateRouteName","getEditRouteName","getShowRouteName","skyConfig","en","skyAdmin","app","config","createI18n","icon","h","ElIcon"],"mappings":";;;;AAqEO,MAAMA,IAAqB,MAAM,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,CAAC,GAC7DC,IAAmB,CAACC,MAAqB,eAAeA,CAAQ,IAChEC,IAAqB,CAACD,MAAqB,eAAeA,CAAQ,WAClEE,IAAmB,CAACF,MAAqB,eAAeA,CAAQ,SAChEG,IAAmB,CAACH,MAAqB,eAAeA,CAAQ,SAEhEI,IAAuB;AAAA,EAClC,UAAU;AAAA,EACV,UAAU;AAAA,EACV,WAAW;AAAA,EACX,cAAc;AAAA,EACd,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,oBAAAN;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAE;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,SAAS;AAAA,IACP,IAAAE;AAAA,EAAA;AAAA,EAEF,cAAc;AAAA,EACd,eAAe;AACjB,GAIaC,IAAW;AAAA,EACtB,SAAS,CAACC,GAAUC,MAA+B;AACjD,WAAO,OAAOJ,GAAWI,CAAM,GAE/BD,EAAI;AAAA,MACFE,EAAW;AAAA;AAAA,QAET,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,QAChB,UAAUL,EAAU;AAAA,MAAA,CACrB;AAAA,IAAA,GAGHG,EAAI,QAAmBH,EAAU,eAAe,CAACM,MAAS;AACxD,UAAIN,EAAU,QAAQM,CAAI;AACxB,eAAOC,EAAEC,GAAQ,MAAM;AAAA,UACrB,SAAS,MAAMD,EAAEP,EAAU,MAAOM,CAAI,CAAE;AAAA,QAAA,CACzC;AAAA,IAEL,CAAC;AAAA,EACH;AACF;"}
|