skyline-vue-admin 0.0.1 → 0.0.3
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/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/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/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/i18n/index.d.ts +2 -0
- package/dist/i18n/locales/en.cjs +2 -0
- package/dist/i18n/locales/en.cjs.map +1 -0
- package/dist/i18n/locales/en.d.ts +50 -0
- package/dist/i18n/locales/en.mjs +53 -0
- package/dist/i18n/locales/en.mjs.map +1 -0
- package/dist/i18n/locales/zh-cn.cjs +2 -0
- package/dist/i18n/locales/zh-cn.cjs.map +1 -0
- package/dist/i18n/locales/zh-cn.d.ts +50 -0
- package/dist/i18n/locales/zh-cn.mjs +53 -0
- package/dist/i18n/locales/zh-cn.mjs.map +1 -0
- 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/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +37 -33
- package/dist/index.mjs.map +1 -1
- package/dist/layouts/default.cjs.map +1 -1
- 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/setup/index.cjs +1 -1
- package/dist/setup/index.cjs.map +1 -1
- package/dist/setup/index.d.ts +1 -1
- package/dist/setup/index.mjs +1 -1
- package/dist/setup/index.mjs.map +1 -1
- package/package.json +2 -1
- package/dist/i18n/locales/en.json.cjs +0 -2
- package/dist/i18n/locales/en.json.cjs.map +0 -1
- package/dist/i18n/locales/en.json.d.ts +0 -52
- package/dist/i18n/locales/en.json.mjs +0 -32
- package/dist/i18n/locales/en.json.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.mjs","sources":["../../src/layouts/default.tsx"],"sourcesContent":["import { EpFullScreen } from '@/icons/EpFullScreen'\r\nimport { EpRefresh } from '@/icons/EpRefresh'\r\nimport { FluentFullScreenMinimize20Regular } from '@/icons/FluentFullScreenMinimize20Regular'\r\nimport { NimbusTextSize } from '@/icons/NimbusTextSize'\r\nimport { SkyMenuCollapse } from '@/icons/SkyMenuCollapse'\r\nimport { SlTrans } from '@/icons/SlTrans'\r\nimport {\r\n SizeConfig,\r\n ThemeConfig,\r\n useLang,\r\n useMenu,\r\n useRouteKeepAlive,\r\n useSize,\r\n useTab,\r\n useTheme,\r\n useUser,\r\n} from '@/hooks'\r\nimport { useEventListener, useFullscreen } from '@vueuse/core'\r\nimport {\r\n ElDropdown,\r\n ElDropdownItem,\r\n ElDropdownMenu,\r\n ElIcon,\r\n ElMenu,\r\n ElMenuItem,\r\n ElScrollbar,\r\n ElSubMenu,\r\n ElTabPane,\r\n ElTabs,\r\n ElText,\r\n type TabPaneName,\r\n} from 'element-plus'\r\nimport {\r\n computed,\r\n defineComponent,\r\n h,\r\n inject,\r\n KeepAlive,\r\n Transition,\r\n watchEffect,\r\n type PropType,\r\n type VNode,\r\n} from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { RouterView, useRoute, useRouter, type RouteLocationNormalizedLoaded } from 'vue-router'\r\nimport { skyConfig, type GetIconFn, type SkyMenu } from '@/setup'\r\n\r\nexport interface RouterViewSlot {\r\n Component: VNode\r\n route: RouteLocationNormalizedLoaded\r\n}\r\n\r\nconst SkyLayoutPage = defineComponent({\r\n name: 'SkyLayoutPage',\r\n setup() {\r\n const router = useRouter()\r\n const route = useRoute()\r\n const { collapse, menus } = useMenu()\r\n const { removeTab, lastTab, tabs } = useTab()\r\n const { includeList, addKeepAlive, removeKeepAlive } = useRouteKeepAlive()\r\n\r\n const onTabChange = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n router.push({ name: tab.routeName, params: tab.routeParams })\r\n }\r\n }\r\n\r\n const onTabRemove = (routeName: TabPaneName) => {\r\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\r\n if (tab) {\r\n // 如果当前 tab 是存在,那么尝试删除它的 keepAlive 缓存\r\n if (tab?.routeKeepAliveName) {\r\n removeKeepAlive(tab.routeKeepAliveName)\r\n }\r\n removeTab(tab.routeName)\r\n // 如果删除是当前页面并且存在lastTab,就跳转到lastTab\r\n if (tab.routeName === route.name && lastTab.value) {\r\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\r\n }\r\n }\r\n }\r\n\r\n watchEffect(() => {\r\n if (route.meta.keepAliveName) {\r\n addKeepAlive(String(route.meta.keepAliveName))\r\n }\r\n })\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <div class=\"sky-layout\">\r\n <header class=\"sky-layout__header\">\r\n <SkyLayoutPage.Logo />\r\n\r\n <div class=\"sky-layout__header-opt\">\r\n <SkyLayoutPage.ConfigeSize />\r\n <SkyLayoutPage.ConfigLang />\r\n <SkyLayoutPage.ConfigTheme />\r\n <SkyLayoutPage.Fullscreen />\r\n <SkyLayoutPage.Refresh />\r\n <SkyLayoutPage.User />\r\n </div>\r\n </header>\r\n <section class=\"sky-layout__container\">\r\n <aside class=\"sky-layout__menu\">\r\n <ElScrollbar>\r\n <ElMenu\r\n collapse={collapse.value}\r\n default-active={route.name}\r\n unique-opened\r\n collapse-transition\r\n >\r\n {menus.value.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n ))}\r\n </ElMenu>\r\n </ElScrollbar>\r\n <div\r\n class=\"sky-layout__menu-collapse\"\r\n onClick={() => (collapse.value = !collapse.value)}\r\n >\r\n <SkyMenuCollapse />\r\n </div>\r\n </aside>\r\n <section class=\"sky-layout__main\">\r\n <div class=\"sky-layout__tab\">\r\n <ElTabs\r\n type=\"card\"\r\n model-value={route.name}\r\n onTabChange={onTabChange}\r\n onTabRemove={onTabRemove}\r\n >\r\n {tabs.value.map((tab) => (\r\n <ElTabPane key={tab.routeName} name={tab.routeName} closable={tab.closable}>\r\n {{\r\n label: () => (\r\n <div class=\"sky-layout__tab-pane\">\r\n {tab.icon && getIcon(tab.icon)}\r\n <span>{tab.title}</span>\r\n </div>\r\n ),\r\n }}\r\n </ElTabPane>\r\n ))}\r\n </ElTabs>\r\n </div>\r\n\r\n <div class=\"sky-layout__body\">\r\n <ElScrollbar>\r\n <RouterView>\r\n {{\r\n default: ({ Component, route }: RouterViewSlot) => (\r\n <Transition\r\n enter-active-class=\"sky-layout-fade-enter-active\"\r\n enter-from-class=\"sky-layout-fade-enter-from\"\r\n enter-to-class=\"sky-layout-fade-enter-to\"\r\n leave-active-class=\"sky-layout-fade-leave-active\"\r\n leave-from-class=\"sky-layout-fade-leave-from\"\r\n leave-to-class=\"sky-layout-fade-leave-to\"\r\n appear\r\n mode=\"out-in\"\r\n >\r\n <KeepAlive include={includeList.value}>\r\n {/* UserCreate ---> /user/create 会缓存一次 */}\r\n {/* UserEdit ---> /user/edit/1、/user/edit/2 ... 会缓存n次,直到关闭当前 tab,从include移除当前component name会等待GC全部释放所有缓存的组件实例;缓存N次不会出现数据错乱吗?默认情况会,但是加上 { key: route.fullPath } 就可以区分相同组件不同路由地址实例(●'◡'●) */}\r\n {h(Component, { key: route.fullPath })}\r\n </KeepAlive>\r\n </Transition>\r\n ),\r\n }}\r\n </RouterView>\r\n </ElScrollbar>\r\n </div>\r\n </section>\r\n </section>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Logo = defineComponent({\r\n name: 'DefaultLayoutPageLogo',\r\n setup() {\r\n return () =>\r\n skyConfig.logoImg && (\r\n <div\r\n class=\"sky-layout__logo\"\r\n style={{ backgroundImage: `url(${skyConfig.logoImg})` }}\r\n ></div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigeSize = defineComponent({\r\n name: 'DefaultLayoutPageConfigeSize',\r\n setup() {\r\n const { t } = useI18n()\r\n const { enabled, size, select } = useSize()\r\n return () =>\r\n enabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <NimbusTextSize />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(SizeConfig.options).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={size.value === c.value}\r\n >\r\n {t(c.label)}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigLang = defineComponent({\r\n name: 'DefaultLayoutPageConfigLang',\r\n setup() {\r\n const { messages, t, locale } = useI18n()\r\n const { lang } = useLang()\r\n const { size } = useSize()\r\n const langList = computed(() =>\r\n Object.keys(messages.value).map((key) => ({\r\n value: key,\r\n label: t(`lang.${key}`),\r\n })),\r\n )\r\n const onCommand = (v: string) => {\r\n lang.value = v\r\n locale.value = v\r\n }\r\n return () =>\r\n langList.value.length > 1 ? (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <SlTrans />\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {langList.value.map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={lang.value === c.value}\r\n >\r\n {c.label}\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n ) : null\r\n },\r\n})\r\n\r\nSkyLayoutPage.ConfigTheme = defineComponent({\r\n name: 'DefaultLayoutPageConfigTheme',\r\n setup() {\r\n const { select, theme } = useTheme()\r\n const { size } = useSize()\r\n return () =>\r\n skyConfig.themeEnabled && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={select}>\r\n {{\r\n default: () => (\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {() => h(ThemeConfig[theme.value].icon)}\r\n </ElIcon>\r\n ),\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {Object.values(ThemeConfig).map((c) => (\r\n <ElDropdownItem\r\n key={c.value}\r\n command={c.value}\r\n disabled={theme.value === c.value}\r\n >\r\n <ElIcon>{() => h(c.icon)}</ElIcon>\r\n </ElDropdownItem>\r\n ))}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Fullscreen = defineComponent({\r\n name: 'DefaultLayoutPageFullscreen',\r\n setup() {\r\n // 页面全屏\r\n const { isFullscreen, toggle } = useFullscreen()\r\n // F11默认全屏效果不能满足这里的需求,禁止默认全屏行为,采用我们项目的全屏逻辑\r\n useEventListener('keydown', (e) => {\r\n if (e.key === 'F11') {\r\n // 禁用f11\r\n e.preventDefault()\r\n toggle()\r\n }\r\n })\r\n const { size } = useSize()\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={toggle}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n {isFullscreen.value ? <FluentFullScreenMinimize20Regular /> : <EpFullScreen />}\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.Refresh = defineComponent({\r\n name: 'DefaultLayoutPageRefresh',\r\n setup() {\r\n const { size } = useSize()\r\n const router = useRouter()\r\n const route = useRoute()\r\n const onRefresh = () => {\r\n router.replace({ name: route.name, query: { t: Date.now() } })\r\n }\r\n return () => (\r\n <div class=\"sky-layout__config\" onClick={onRefresh}>\r\n <ElIcon size={SizeConfig.iconMap[size.value]}>\r\n <EpRefresh />\r\n </ElIcon>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.User = defineComponent({\r\n name: 'DefaultLayoutPageUser',\r\n setup() {\r\n const router = useRouter()\r\n const { t } = useI18n()\r\n const { username, logout } = useUser()\r\n const onCommand = (command: string) => {\r\n if (command === 'edit') {\r\n } else if (command === 'logout') {\r\n logout()\r\n router.replace({ name: skyConfig.loginRouteName })\r\n }\r\n }\r\n return () =>\r\n username.value && (\r\n <div class=\"sky-layout__config\">\r\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\r\n {{\r\n default: () => <ElText>{username.value}</ElText>,\r\n dropdown: () => (\r\n <ElDropdownMenu>\r\n {() => (\r\n <>\r\n <ElDropdownItem command=\"edit\">{t('user.edit')}</ElDropdownItem>\r\n <ElDropdownItem command=\"logout\">{t('user.logout')}</ElDropdownItem>\r\n </>\r\n )}\r\n </ElDropdownMenu>\r\n ),\r\n }}\r\n </ElDropdown>\r\n </div>\r\n )\r\n },\r\n})\r\n\r\nSkyLayoutPage.SubMenu = defineComponent({\r\n name: 'DefaultLayoutPageSubMenu',\r\n props: {\r\n item: {\r\n type: Object as PropType<SkyMenu>,\r\n required: true,\r\n },\r\n },\r\n setup(props) {\r\n const router = useRouter()\r\n\r\n const onClick = () => {\r\n if (router.hasRoute(props.item.routeName)) {\r\n router.push({ name: props.item.routeName, params: props.item.routeParams })\r\n }\r\n }\r\n\r\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\r\n\r\n return () => (\r\n <>\r\n {props.item.children?.length ? (\r\n <ElSubMenu index={props.item.routeName}>\r\n {{\r\n default: () =>\r\n props.item.children!.map((menu) => (\r\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\r\n )),\r\n title: () => (\r\n <>\r\n {props.item.icon && getIcon(props.item.icon)}\r\n <span>{props.item.title}</span>\r\n </>\r\n ),\r\n }}\r\n </ElSubMenu>\r\n ) : (\r\n <ElMenuItem index={props.item.routeName} onClick={onClick}>\r\n {{\r\n default: () => props.item.icon && getIcon(props.item.icon),\r\n title: () => props.item.title,\r\n }}\r\n </ElMenuItem>\r\n )}\r\n </>\r\n )\r\n },\r\n})\r\n\r\nexport default SkyLayoutPage\r\n"],"names":["_isSlot","s","_isVNode","SkyLayoutPage","defineComponent","name","setup","router","useRouter","route","useRoute","menus","tabs","removeKeepAlive","tab","routeName","removeTab","params","watchEffect","getIcon","inject","skyConfig","_createVNode","default","_slot","menu","SkyMenuCollapse","onTabChange","_slot2","ElTabPane","includeList","backgroundImage","t","select","SizeConfig","size","dropdown","_slot4","ElDropdownMenu","c","_slot3","locale","lang","langList","computed","messages","key","value","label","_slot5","ElDropdownItem","theme","_slot6","toggle","useEventListener","e","query","logout","username","_Fragment","props","item","type","required","ElSubMenu","title"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"default.mjs","sources":["../../src/layouts/default.tsx"],"sourcesContent":["import { EpFullScreen } from '@/icons/EpFullScreen'\nimport { EpRefresh } from '@/icons/EpRefresh'\nimport { FluentFullScreenMinimize20Regular } from '@/icons/FluentFullScreenMinimize20Regular'\nimport { NimbusTextSize } from '@/icons/NimbusTextSize'\nimport { SkyMenuCollapse } from '@/icons/SkyMenuCollapse'\nimport { SlTrans } from '@/icons/SlTrans'\nimport {\n SizeConfig,\n ThemeConfig,\n useLang,\n useMenu,\n useRouteKeepAlive,\n useSize,\n useTab,\n useTheme,\n useUser,\n} from '@/hooks'\nimport { useEventListener, useFullscreen } from '@vueuse/core'\nimport {\n ElDropdown,\n ElDropdownItem,\n ElDropdownMenu,\n ElIcon,\n ElMenu,\n ElMenuItem,\n ElScrollbar,\n ElSubMenu,\n ElTabPane,\n ElTabs,\n ElText,\n type TabPaneName,\n} from 'element-plus'\nimport {\n computed,\n defineComponent,\n h,\n inject,\n KeepAlive,\n Transition,\n watchEffect,\n type PropType,\n type VNode,\n} from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { RouterView, useRoute, useRouter, type RouteLocationNormalizedLoaded } from 'vue-router'\nimport { skyConfig, type GetIconFn, type SkyMenu } from '@/setup'\n\nexport interface RouterViewSlot {\n Component: VNode\n route: RouteLocationNormalizedLoaded\n}\n\nconst SkyLayoutPage = defineComponent({\n name: 'SkyLayoutPage',\n setup() {\n const router = useRouter()\n const route = useRoute()\n const { collapse, menus } = useMenu()\n const { removeTab, lastTab, tabs } = useTab()\n const { includeList, addKeepAlive, removeKeepAlive } = useRouteKeepAlive()\n\n const onTabChange = (routeName: TabPaneName) => {\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\n if (tab) {\n router.push({ name: tab.routeName, params: tab.routeParams })\n }\n }\n\n const onTabRemove = (routeName: TabPaneName) => {\n const tab = tabs.value.find((tab) => tab.routeName === routeName)\n if (tab) {\n // 如果当前 tab 是存在,那么尝试删除它的 keepAlive 缓存\n if (tab?.routeKeepAliveName) {\n removeKeepAlive(tab.routeKeepAliveName)\n }\n removeTab(tab.routeName)\n // 如果删除是当前页面并且存在lastTab,就跳转到lastTab\n if (tab.routeName === route.name && lastTab.value) {\n router.replace({ name: lastTab.value.routeName, params: lastTab.value.routeParams })\n }\n }\n }\n\n watchEffect(() => {\n if (route.meta.keepAliveName) {\n addKeepAlive(String(route.meta.keepAliveName))\n }\n })\n\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\n\n return () => (\n <div class=\"sky-layout\">\n <header class=\"sky-layout__header\">\n <SkyLayoutPage.Logo />\n\n <div class=\"sky-layout__header-opt\">\n <SkyLayoutPage.ConfigeSize />\n <SkyLayoutPage.ConfigLang />\n <SkyLayoutPage.ConfigTheme />\n <SkyLayoutPage.Fullscreen />\n <SkyLayoutPage.Refresh />\n <SkyLayoutPage.User />\n </div>\n </header>\n <section class=\"sky-layout__container\">\n <aside class=\"sky-layout__menu\">\n <ElScrollbar>\n <ElMenu\n collapse={collapse.value}\n default-active={route.name}\n unique-opened\n collapse-transition\n >\n {menus.value.map((menu) => (\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\n ))}\n </ElMenu>\n </ElScrollbar>\n <div\n class=\"sky-layout__menu-collapse\"\n onClick={() => (collapse.value = !collapse.value)}\n >\n <SkyMenuCollapse />\n </div>\n </aside>\n <section class=\"sky-layout__main\">\n <div class=\"sky-layout__tab\">\n <ElTabs\n type=\"card\"\n model-value={route.name}\n onTabChange={onTabChange}\n onTabRemove={onTabRemove}\n >\n {tabs.value.map((tab) => (\n <ElTabPane key={tab.routeName} name={tab.routeName} closable={tab.closable}>\n {{\n label: () => (\n <div class=\"sky-layout__tab-pane\">\n {tab.icon && getIcon(tab.icon)}\n <span>{tab.title}</span>\n </div>\n ),\n }}\n </ElTabPane>\n ))}\n </ElTabs>\n </div>\n\n <div class=\"sky-layout__body\">\n <ElScrollbar>\n <RouterView>\n {{\n default: ({ Component, route }: RouterViewSlot) => (\n <Transition\n enter-active-class=\"sky-layout-fade-enter-active\"\n enter-from-class=\"sky-layout-fade-enter-from\"\n enter-to-class=\"sky-layout-fade-enter-to\"\n leave-active-class=\"sky-layout-fade-leave-active\"\n leave-from-class=\"sky-layout-fade-leave-from\"\n leave-to-class=\"sky-layout-fade-leave-to\"\n appear\n mode=\"out-in\"\n >\n <KeepAlive include={includeList.value}>\n {/* UserCreate ---> /user/create 会缓存一次 */}\n {/* UserEdit ---> /user/edit/1、/user/edit/2 ... 会缓存n次,直到关闭当前 tab,从include移除当前component name会等待GC全部释放所有缓存的组件实例;缓存N次不会出现数据错乱吗?默认情况会,但是加上 { key: route.fullPath } 就可以区分相同组件不同路由地址实例(●'◡'●) */}\n {h(Component, { key: route.fullPath })}\n </KeepAlive>\n </Transition>\n ),\n }}\n </RouterView>\n </ElScrollbar>\n </div>\n </section>\n </section>\n </div>\n )\n },\n})\n\nSkyLayoutPage.Logo = defineComponent({\n name: 'DefaultLayoutPageLogo',\n setup() {\n return () =>\n skyConfig.logoImg && (\n <div\n class=\"sky-layout__logo\"\n style={{ backgroundImage: `url(${skyConfig.logoImg})` }}\n ></div>\n )\n },\n})\n\nSkyLayoutPage.ConfigeSize = defineComponent({\n name: 'DefaultLayoutPageConfigeSize',\n setup() {\n const { t } = useI18n()\n const { enabled, size, select } = useSize()\n return () =>\n enabled && (\n <div class=\"sky-layout__config\">\n <ElDropdown trigger=\"click\" onCommand={select}>\n {{\n default: () => (\n <ElIcon size={SizeConfig.iconMap[size.value]}>\n <NimbusTextSize />\n </ElIcon>\n ),\n dropdown: () => (\n <ElDropdownMenu>\n {Object.values(SizeConfig.options).map((c) => (\n <ElDropdownItem\n key={c.value}\n command={c.value}\n disabled={size.value === c.value}\n >\n {t(c.label)}\n </ElDropdownItem>\n ))}\n </ElDropdownMenu>\n ),\n }}\n </ElDropdown>\n </div>\n )\n },\n})\n\nSkyLayoutPage.ConfigLang = defineComponent({\n name: 'DefaultLayoutPageConfigLang',\n setup() {\n const { messages, t, locale } = useI18n()\n const { lang } = useLang()\n const { size } = useSize()\n const langList = computed(() =>\n Object.keys(messages.value).map((key) => ({\n value: key,\n label: t(`lang.${key}`),\n })),\n )\n const onCommand = (v: string) => {\n lang.value = v\n locale.value = v\n }\n return () =>\n langList.value.length > 1 ? (\n <div class=\"sky-layout__config\">\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\n {{\n default: () => (\n <ElIcon size={SizeConfig.iconMap[size.value]}>\n <SlTrans />\n </ElIcon>\n ),\n dropdown: () => (\n <ElDropdownMenu>\n {langList.value.map((c) => (\n <ElDropdownItem\n key={c.value}\n command={c.value}\n disabled={lang.value === c.value}\n >\n {c.label}\n </ElDropdownItem>\n ))}\n </ElDropdownMenu>\n ),\n }}\n </ElDropdown>\n </div>\n ) : null\n },\n})\n\nSkyLayoutPage.ConfigTheme = defineComponent({\n name: 'DefaultLayoutPageConfigTheme',\n setup() {\n const { select, theme } = useTheme()\n const { size } = useSize()\n return () =>\n skyConfig.themeEnabled && (\n <div class=\"sky-layout__config\">\n <ElDropdown trigger=\"click\" onCommand={select}>\n {{\n default: () => (\n <ElIcon size={SizeConfig.iconMap[size.value]}>\n {() => h(ThemeConfig[theme.value].icon)}\n </ElIcon>\n ),\n dropdown: () => (\n <ElDropdownMenu>\n {Object.values(ThemeConfig).map((c) => (\n <ElDropdownItem\n key={c.value}\n command={c.value}\n disabled={theme.value === c.value}\n >\n <ElIcon>{() => h(c.icon)}</ElIcon>\n </ElDropdownItem>\n ))}\n </ElDropdownMenu>\n ),\n }}\n </ElDropdown>\n </div>\n )\n },\n})\n\nSkyLayoutPage.Fullscreen = defineComponent({\n name: 'DefaultLayoutPageFullscreen',\n setup() {\n // 页面全屏\n const { isFullscreen, toggle } = useFullscreen()\n // F11默认全屏效果不能满足这里的需求,禁止默认全屏行为,采用我们项目的全屏逻辑\n useEventListener('keydown', (e) => {\n if (e.key === 'F11') {\n // 禁用f11\n e.preventDefault()\n toggle()\n }\n })\n const { size } = useSize()\n return () => (\n <div class=\"sky-layout__config\" onClick={toggle}>\n <ElIcon size={SizeConfig.iconMap[size.value]}>\n {isFullscreen.value ? <FluentFullScreenMinimize20Regular /> : <EpFullScreen />}\n </ElIcon>\n </div>\n )\n },\n})\n\nSkyLayoutPage.Refresh = defineComponent({\n name: 'DefaultLayoutPageRefresh',\n setup() {\n const { size } = useSize()\n const router = useRouter()\n const route = useRoute()\n const onRefresh = () => {\n router.replace({ name: route.name, query: { t: Date.now() } })\n }\n return () => (\n <div class=\"sky-layout__config\" onClick={onRefresh}>\n <ElIcon size={SizeConfig.iconMap[size.value]}>\n <EpRefresh />\n </ElIcon>\n </div>\n )\n },\n})\n\nSkyLayoutPage.User = defineComponent({\n name: 'DefaultLayoutPageUser',\n setup() {\n const router = useRouter()\n const { t } = useI18n()\n const { username, logout } = useUser()\n const onCommand = (command: string) => {\n if (command === 'edit') {\n } else if (command === 'logout') {\n logout()\n router.replace({ name: skyConfig.loginRouteName })\n }\n }\n return () =>\n username.value && (\n <div class=\"sky-layout__config\">\n <ElDropdown trigger=\"click\" onCommand={onCommand}>\n {{\n default: () => <ElText>{username.value}</ElText>,\n dropdown: () => (\n <ElDropdownMenu>\n {() => (\n <>\n <ElDropdownItem command=\"edit\">{t('user.edit')}</ElDropdownItem>\n <ElDropdownItem command=\"logout\">{t('user.logout')}</ElDropdownItem>\n </>\n )}\n </ElDropdownMenu>\n ),\n }}\n </ElDropdown>\n </div>\n )\n },\n})\n\nSkyLayoutPage.SubMenu = defineComponent({\n name: 'DefaultLayoutPageSubMenu',\n props: {\n item: {\n type: Object as PropType<SkyMenu>,\n required: true,\n },\n },\n setup(props) {\n const router = useRouter()\n\n const onClick = () => {\n if (router.hasRoute(props.item.routeName)) {\n router.push({ name: props.item.routeName, params: props.item.routeParams })\n }\n }\n\n const getIcon = inject<GetIconFn>(skyConfig.getIconFnName)!\n\n return () => (\n <>\n {props.item.children?.length ? (\n <ElSubMenu index={props.item.routeName}>\n {{\n default: () =>\n props.item.children!.map((menu) => (\n <SkyLayoutPage.SubMenu key={menu.routeName} item={menu} />\n )),\n title: () => (\n <>\n {props.item.icon && getIcon(props.item.icon)}\n <span>{props.item.title}</span>\n </>\n ),\n }}\n </ElSubMenu>\n ) : (\n <ElMenuItem index={props.item.routeName} onClick={onClick}>\n {{\n default: () => props.item.icon && getIcon(props.item.icon),\n title: () => props.item.title,\n }}\n </ElMenuItem>\n )}\n </>\n )\n },\n})\n\nexport default SkyLayoutPage\n"],"names":["_isSlot","s","_isVNode","SkyLayoutPage","defineComponent","name","setup","router","useRouter","route","useRoute","menus","tabs","removeKeepAlive","tab","routeName","removeTab","params","watchEffect","getIcon","inject","skyConfig","_createVNode","default","_slot","menu","SkyMenuCollapse","onTabChange","_slot2","ElTabPane","includeList","backgroundImage","t","select","SizeConfig","size","dropdown","_slot4","ElDropdownMenu","c","_slot3","locale","lang","langList","computed","messages","key","value","label","_slot5","ElDropdownItem","theme","_slot6","toggle","useEventListener","e","query","logout","username","_Fragment","props","item","type","required","ElSubMenu","title"],"mappings":"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"}
|
package/dist/pages/login.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.cjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\nimport type { LoginParams, LoginResult } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElInput } from 'element-plus'\nimport { defineComponent, reactive } from 'vue'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyLoginPage',\n setup() {\n const router = useRouter()\n const { login } = useUser()\n const formData = reactive<LoginParams>({\n username: '',\n password: '',\n })\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n const res = await execute()\n if (res) {\n login(res)\n // window.location.reload()\n router.replace({ name: skyConfig.welcomeRouteName })\n }\n }\n\n return () => (\n <div class=\"sky-page-login\">\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\n <div class=\"sky-page-login__main\">\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\n <div>\n <ElInput\n model-value={formData.username}\n onUpdate:modelValue={(value) => (formData.username = value)}\n placeholder=\"用户名\"\n />\n </div>\n <div>\n <ElInput\n model-value={formData.password}\n onUpdate:modelValue={(value) => (formData.password = value)}\n placeholder=\"密码\"\n type=\"password\"\n show-password\n />\n </div>\n <div>\n <ElButton\n class=\"sky-page-login__button\"\n type=\"primary\"\n size=\"large\"\n loading={isLoading.value}\n onClick={onSubmit}\n >\n 登录\n </ElButton>\n </div>\n </div>\n </div>\n )\n },\n})\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":"w6BAQAA,EAAAC,kBAAA,CACEC,KAAAA,eACAC,OAAAA,CACE,MAAAC,EAAAC,EAAAA,UAAA,GACQL,MAAAA,6BAENM,SAAAA,GACAC,SAAAA,EACF,CAAA,aACiBC,UAAAA,8EAIbC,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,CACE,MAAAC,EAAA,MAAAC,EAAA,EACAD,qDAGoD,CAAA,IAItD,MAAA,IAAAE,EAAAA,YAAA,MAAA,CAAO,MAAA,gBAAA,EAAA,CAAAC,EAAAA,UAAA,UAAAD,EAAAA,YAAA,MAAA,CAEgB,MAAA,uBAAA,IAAAC,EAAAA,UAAA,QAA6D,EAAA,IAAA,EAAAD,EAAAA,YAAA,MAAA,CAAI,MAAA,sBAAA,EAAA,CAAAA,EAAAA,YAAA,KAAA,CAAA,MAAA,uBAAA,EAAA,CAAAE,EAAAA,gBAAA,cAAA,CAAA,CAAA,EAAAF,cAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAKhD,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAM7B,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,KAAA,WAAA,gBAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAM,WAAA,CAAA,MAAA,yBAAA,KAAA,UAAA,KAAA,iCAY1C,EAAA,8CAQ7B,CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"login.cjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\r\nimport type { LoginParams, LoginResult } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElInput } from 'element-plus'\r\nimport { defineComponent, reactive } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'SkyLoginPage',\r\n setup() {\r\n const router = useRouter()\r\n const { login } = useUser()\r\n const formData = reactive<LoginParams>({\r\n username: '',\r\n password: '',\r\n })\r\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\r\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const onSubmit = async () => {\r\n const res = await execute()\r\n if (res) {\r\n login(res)\r\n // window.location.reload()\r\n router.replace({ name: skyConfig.welcomeRouteName })\r\n }\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-page-login\">\r\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\r\n <div class=\"sky-page-login__main\">\r\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\r\n <div>\r\n <ElInput\r\n model-value={formData.username}\r\n onUpdate:modelValue={(value) => (formData.username = value)}\r\n placeholder=\"用户名\"\r\n />\r\n </div>\r\n <div>\r\n <ElInput\r\n model-value={formData.password}\r\n onUpdate:modelValue={(value) => (formData.password = value)}\r\n placeholder=\"密码\"\r\n type=\"password\"\r\n show-password\r\n />\r\n </div>\r\n <div>\r\n <ElButton\r\n class=\"sky-page-login__button\"\r\n type=\"primary\"\r\n size=\"large\"\r\n loading={isLoading.value}\r\n onClick={onSubmit}\r\n >\r\n 登录\r\n </ElButton>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":"w6BAQAA,EAAAC,kBAAA,CACEC,KAAAA,eACAC,OAAAA,CACE,MAAAC,EAAAC,EAAAA,UAAA,GACQL,MAAAA,6BAENM,SAAAA,GACAC,SAAAA,EACF,CAAA,aACiBC,UAAAA,8EAIbC,UAAAA,EACF,CAAA,EAGFC,EAAA,SAAA,CACE,MAAAC,EAAA,MAAAC,EAAA,EACAD,qDAGoD,CAAA,IAItD,MAAA,IAAAE,EAAAA,YAAA,MAAA,CAAO,MAAA,gBAAA,EAAA,CAAAC,EAAAA,UAAA,UAAAD,EAAAA,YAAA,MAAA,CAEgB,MAAA,uBAAA,IAAAC,EAAAA,UAAA,QAA6D,EAAA,IAAA,EAAAD,EAAAA,YAAA,MAAA,CAAI,MAAA,sBAAA,EAAA,CAAAA,EAAAA,YAAA,KAAA,CAAA,MAAA,uBAAA,EAAA,CAAAE,EAAAA,gBAAA,cAAA,CAAA,CAAA,EAAAF,cAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAKhD,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAG,UAAA,0BAM7B,sBAAAC,GAAAC,EAAA,SAAAD,EAC6B,YAAA,KAAA,KAAA,WAAA,gBAAA,EAAA,EAAA,IAAA,CAAA,CAAA,EAAAJ,EAAAA,YAAA,MAAA,KAAA,CAAAA,EAAAA,YAAAM,WAAA,CAAA,MAAA,yBAAA,KAAA,UAAA,KAAA,iCAY1C,EAAA,8CAQ7B,CACF,CAAA"}
|
package/dist/pages/login.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.mjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\nimport type { LoginParams, LoginResult } from '@/provides'\nimport { skyConfig } from '@/setup'\nimport { useAsyncState } from '@vueuse/core'\nimport { ElButton, ElInput } from 'element-plus'\nimport { defineComponent, reactive } from 'vue'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyLoginPage',\n setup() {\n const router = useRouter()\n const { login } = useUser()\n const formData = reactive<LoginParams>({\n username: '',\n password: '',\n })\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\n undefined,\n {\n immediate: false,\n },\n )\n\n const onSubmit = async () => {\n const res = await execute()\n if (res) {\n login(res)\n // window.location.reload()\n router.replace({ name: skyConfig.welcomeRouteName })\n }\n }\n\n return () => (\n <div class=\"sky-page-login\">\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\n <div class=\"sky-page-login__main\">\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\n <div>\n <ElInput\n model-value={formData.username}\n onUpdate:modelValue={(value) => (formData.username = value)}\n placeholder=\"用户名\"\n />\n </div>\n <div>\n <ElInput\n model-value={formData.password}\n onUpdate:modelValue={(value) => (formData.password = value)}\n placeholder=\"密码\"\n type=\"password\"\n show-password\n />\n </div>\n <div>\n <ElButton\n class=\"sky-page-login__button\"\n type=\"primary\"\n size=\"large\"\n loading={isLoading.value}\n onClick={onSubmit}\n >\n 登录\n </ElButton>\n </div>\n </div>\n </div>\n )\n },\n})\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;AACE,UAAAC,IAAAC,EAAA;MACQL,OAAAA;AAAAA;MAENM,UAAAA;AAAAA,MACAC,UAAAA;AAAAA,IACF,CAAA;;MACiBC,WAAAA;AAAAA;;;MAIbC,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;AACE,YAAAC,IAAA,MAAAC,EAAA;AACA,MAAAD;;MAGoD,CAAA;AAAA;AAItD,WAAA,MAAAE,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA,IAAA,GAAA,CAAAC,EAAA,YAAAD,EAAA,OAAA;AAAA,MAEgB,OAAA;AAAA,MAAA,KAAAC,EAAA;AAAA,IAA6D,GAAA,IAAA,GAAAD,EAAA,OAAA;AAAA,MAAI,OAAA;AAAA,IAAA,GAAA,CAAAA,EAAA,MAAA;AAAA,MAAA,OAAA;AAAA,IAAA,GAAA,CAAAE,EAAA,cAAA,CAAA,CAAA,GAAAF,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAKhD,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAM7B,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,MAAA,MAAA;AAAA,MAAA,iBAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAM,GAAA;AAAA,MAAA,OAAA;AAAA,MAAA,MAAA;AAAA,MAAA,MAAA;AAAA;;IAY1C,GAAA;AAAA;;EAQ7B;AACF,CAAA;"}
|
|
1
|
+
{"version":3,"file":"login.mjs","sources":["../../src/pages/login.tsx"],"sourcesContent":["import { useUser } from '@/hooks'\r\nimport type { LoginParams, LoginResult } from '@/provides'\r\nimport { skyConfig } from '@/setup'\r\nimport { useAsyncState } from '@vueuse/core'\r\nimport { ElButton, ElInput } from 'element-plus'\r\nimport { defineComponent, reactive } from 'vue'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'SkyLoginPage',\r\n setup() {\r\n const router = useRouter()\r\n const { login } = useUser()\r\n const formData = reactive<LoginParams>({\r\n username: '',\r\n password: '',\r\n })\r\n const { execute, isLoading } = useAsyncState<LoginResult | undefined>(\r\n async () => skyConfig.dataProvider?.login?.({ ...formData }),\r\n undefined,\r\n {\r\n immediate: false,\r\n },\r\n )\r\n\r\n const onSubmit = async () => {\r\n const res = await execute()\r\n if (res) {\r\n login(res)\r\n // window.location.reload()\r\n router.replace({ name: skyConfig.welcomeRouteName })\r\n }\r\n }\r\n\r\n return () => (\r\n <div class=\"sky-page-login\">\r\n {skyConfig.loginImg && <img class=\"sky-page-login__back\" src={skyConfig.loginImg} />}\r\n <div class=\"sky-page-login__main\">\r\n <h3 class=\"sky-page-login__title\">登录进入 Skyline</h3>\r\n <div>\r\n <ElInput\r\n model-value={formData.username}\r\n onUpdate:modelValue={(value) => (formData.username = value)}\r\n placeholder=\"用户名\"\r\n />\r\n </div>\r\n <div>\r\n <ElInput\r\n model-value={formData.password}\r\n onUpdate:modelValue={(value) => (formData.password = value)}\r\n placeholder=\"密码\"\r\n type=\"password\"\r\n show-password\r\n />\r\n </div>\r\n <div>\r\n <ElButton\r\n class=\"sky-page-login__button\"\r\n type=\"primary\"\r\n size=\"large\"\r\n loading={isLoading.value}\r\n onClick={onSubmit}\r\n >\r\n 登录\r\n </ElButton>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["login","defineComponent","name","setup","router","useRouter","username","password","isLoading","immediate","onSubmit","res","execute","_createVNode","skyConfig","_createTextVNode","ElInput","value","formData","ElButton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;AACE,UAAAC,IAAAC,EAAA;MACQL,OAAAA;AAAAA;MAENM,UAAAA;AAAAA,MACAC,UAAAA;AAAAA,IACF,CAAA;;MACiBC,WAAAA;AAAAA;;;MAIbC,WAAAA;AAAAA,IACF,CAAA,GAGFC,IAAA,YAAA;AACE,YAAAC,IAAA,MAAAC,EAAA;AACA,MAAAD;;MAGoD,CAAA;AAAA;AAItD,WAAA,MAAAE,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA,IAAA,GAAA,CAAAC,EAAA,YAAAD,EAAA,OAAA;AAAA,MAEgB,OAAA;AAAA,MAAA,KAAAC,EAAA;AAAA,IAA6D,GAAA,IAAA,GAAAD,EAAA,OAAA;AAAA,MAAI,OAAA;AAAA,IAAA,GAAA,CAAAA,EAAA,MAAA;AAAA,MAAA,OAAA;AAAA,IAAA,GAAA,CAAAE,EAAA,cAAA,CAAA,CAAA,GAAAF,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAKhD,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAG,GAAA;AAAA;MAM7B,uBAAA,CAAAC,MAAAC,EAAA,WAAAD;AAAA,MAC6B,aAAA;AAAA,MAAA,MAAA;AAAA,MAAA,iBAAA;AAAA,IAAA,GAAA,IAAA,CAAA,CAAA,GAAAJ,EAAA,OAAA,MAAA,CAAAA,EAAAM,GAAA;AAAA,MAAA,OAAA;AAAA,MAAA,MAAA;AAAA,MAAA,MAAA;AAAA;;IAY1C,GAAA;AAAA;;EAQ7B;AACF,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-found.cjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyNotFoundPage',\n setup() {\n const { t } = useI18n()\n const router = useRouter()\n return () => (\n <div class=\"sky-page-not-found\">\n <ElEmpty description={t('notFound')}>\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\n </ElEmpty>\n </div>\n )\n },\n})\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":"wTAKAA,EAAAC,kBAAA,CACEC,KAAAA,kBACAC,OAAAA,OACUC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EACA,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,yEAEgC,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,QAAA,IAAAH,EAAA,GAAA,EAAA,CACK,EAAA,sCAAA,CAAA,CAAA,KAI9C,CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"not-found.cjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'SkyNotFoundPage',\r\n setup() {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n return () => (\r\n <div class=\"sky-page-not-found\">\r\n <ElEmpty description={t('notFound')}>\r\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\r\n </ElEmpty>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":"wTAKAA,EAAAC,kBAAA,CACEC,KAAAA,kBACAC,OAAAA,OACUC,EAAAA,eACRC,EAAAC,EAAAA,UAAA,EACA,MAAA,IAAAC,EAAAA,YAAA,MAAA,CAAO,MAAA,yEAEgC,EAAA,CAAAC,QAAAA,IAAAA,CAAAA,EAAAA,YAAAA,WAAAA,CAAA,QAAA,IAAAH,EAAA,GAAA,EAAA,CACK,EAAA,sCAAA,CAAA,CAAA,KAI9C,CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"not-found.mjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\nimport { defineComponent } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport { useRouter } from 'vue-router'\n\nexport default defineComponent({\n name: 'SkyNotFoundPage',\n setup() {\n const { t } = useI18n()\n const router = useRouter()\n return () => (\n <div class=\"sky-page-not-found\">\n <ElEmpty description={t('notFound')}>\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\n </ElEmpty>\n </div>\n )\n },\n})\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":";;;;;;AAKA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;;MACUC;AAAAA,aACRC,IAAAC,EAAA;AACA,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;IAEgC,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,QAAA,SAAA,MAAAH,EAAA,GAAA,EAAA;AAAA,MACK,GAAA;AAAA;MAAA,CAAA,CAAA;AAAA;EAI9C;AACF,CAAA;"}
|
|
1
|
+
{"version":3,"file":"not-found.mjs","sources":["../../src/pages/not-found.tsx"],"sourcesContent":["import { ElButton, ElEmpty } from 'element-plus'\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n'\r\nimport { useRouter } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n name: 'SkyNotFoundPage',\r\n setup() {\r\n const { t } = useI18n()\r\n const router = useRouter()\r\n return () => (\r\n <div class=\"sky-page-not-found\">\r\n <ElEmpty description={t('notFound')}>\r\n <ElButton onClick={() => router.go(-1)}>返回</ElButton>\r\n </ElEmpty>\r\n </div>\r\n )\r\n },\r\n})\r\n"],"names":["notFound","defineComponent","name","setup","t","router","useRouter","_createVNode","default"],"mappings":";;;;;;AAKA,MAAAA,IAAA,gBAAAC,EAAA;AAAA,EACEC,MAAAA;AAAAA,EACAC,QAAAA;;MACUC;AAAAA,aACRC,IAAAC,EAAA;AACA,WAAA,MAAAC,EAAA,OAAA;AAAA,MAAO,OAAA;AAAA;;IAEgC,GAAA;AAAA,MAAAC,SAAAA,MAAAA,CAAAA,EAAAA,GAAAA;AAAAA,QAAA,SAAA,MAAAH,EAAA,GAAA,EAAA;AAAA,MACK,GAAA;AAAA;MAAA,CAAA,CAAA;AAAA;EAI9C;AACF,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"welcome.cjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'SkyWelcomePage',\r\n setup() {\r\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\r\n },\r\n})\r\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'\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
|
+
{"version":3,"file":"welcome.mjs","sources":["../../src/pages/welcome.tsx"],"sourcesContent":["import { defineComponent } from 'vue'\r\n\r\nexport default defineComponent({\r\n name: 'SkyWelcomePage',\r\n setup() {\r\n return () => <div style=\"padding: 20px;\">欢迎进入 Skyline Admin</div>\r\n },\r\n})\r\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;"}
|
package/dist/setup/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),i=require("../i18n/locales/en.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),i=require("../i18n/locales/en.cjs"),y=require("vue-i18n"),r=require("element-plus"),s=()=>Math.random().toString(16).slice(2),n=e=>`/sky/layout/${e}`,l=e=>`/sky/layout/${e}/create`,u=e=>`/sky/layout/${e}/edit`,m=e=>`/sky/layout/${e}/show`,t={sizeName:"sky:size",langName:"sky:lang",tokenName:"sky:user:token",usernameName:"sky:user:username",collapseName:"sky:menu:collapse",tabsName:"sky:tab:tabs",tabListStackName:"sky:tab:tabListStack",notFoundRouteName:"/sky/not-found",loginRouteName:"/sky/login",welcomeRouteName:"/sky/welcome",layoutRouteName:"/sky/layout",permissionThrottle:5e3,getRandomRouteName:s,getListRouteName:n,getCreateRouteName:l,getEditRouteName:u,getShowRouteName:m,locales:{en:i.default},themeEnabled:!1,getIconFnName:"getIconFn"},g={install:(e,c)=>{Object.assign(t,c),e.use(y.createI18n({legacy:!1,locale:"en",fallbackLocale:"en",messages:t.locales})),e.provide(t.getIconFnName,o=>{if(t.icons?.[o])return a.h(r.ElIcon,null,{default:()=>a.h(t.icons[o])})})}};exports.getCreateRouteName=l;exports.getEditRouteName=u;exports.getListRouteName=n;exports.getRandomRouteName=s;exports.getShowRouteName=m;exports.skyAdmin=g;exports.skyConfig=t;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
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'\r\nimport { h, type App, type Component, type VNode } from 'vue'\r\nimport { default as en } from '@/i18n/locales/en
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\r\nimport { h, type App, type Component, type VNode } from 'vue'\r\nimport { default as en } from '@/i18n/locales/en'\r\nimport { createI18n } from 'vue-i18n'\r\nimport type { RouteParamsGeneric } from 'vue-router'\r\nimport { ElIcon } from 'element-plus'\r\n\r\nexport type SkyLanguage = typeof en\r\n\r\nexport type SkyComponent = Component & {\r\n title?: string\r\n // 是否添加到 keepAlive 列表\r\n keepAliveName?: string\r\n icon?: string\r\n}\r\n\r\nexport interface SkyResource {\r\n name: string\r\n list?: SkyComponent\r\n create?: SkyComponent\r\n edit?: SkyComponent\r\n show?: SkyComponent\r\n}\r\n\r\nexport interface SkyMenu {\r\n routeName: string\r\n routeParams?: RouteParamsGeneric\r\n title: string\r\n icon?: string\r\n children?: SkyMenu[]\r\n permission: CanAccessItem\r\n}\r\n\r\nexport type SkyConfig = {\r\n sizeName: string\r\n langName: string\r\n tokenName: string\r\n usernameName: string\r\n collapseName: string\r\n tabsName: string\r\n tabListStackName: string\r\n notFoundRouteName: string\r\n loginRouteName: string\r\n welcomeRouteName: string\r\n layoutRouteName: string\r\n permissionThrottle: number\r\n dataProvider?: DataProvider\r\n icons?: Record<string, Component>\r\n menus?: SkyMenu[]\r\n resources?: SkyResource[] | (() => Promise<SkyResource[]>)\r\n getRandomRouteName: () => string\r\n getListRouteName: (resource: string) => string\r\n getCreateRouteName: (resource: string) => string\r\n getEditRouteName: (resource: string) => string\r\n getShowRouteName: (resource: string) => string\r\n locales: Record<string, SkyLanguage>\r\n loginPage?: Component | Promise<Component>\r\n layoutPage?: Component | Promise<Component>\r\n notFoundPage?: Component | Promise<Component>\r\n welcomePage?: Component | Promise<Component>\r\n logoImg?: string\r\n loginImg?: string\r\n themeEnabled: boolean\r\n getIconFnName: string\r\n}\r\n\r\nexport type SkyConfigKey = keyof SkyConfig\r\n\r\nexport const getRandomRouteName = () => Math.random().toString(16).slice(2)\r\nexport const getListRouteName = (resource: string) => `/sky/layout/${resource}`\r\nexport const getCreateRouteName = (resource: string) => `/sky/layout/${resource}/create`\r\nexport const getEditRouteName = (resource: string) => `/sky/layout/${resource}/edit`\r\nexport const getShowRouteName = (resource: string) => `/sky/layout/${resource}/show`\r\n\r\nexport const skyConfig: SkyConfig = {\r\n sizeName: 'sky:size',\r\n langName: 'sky:lang',\r\n tokenName: 'sky:user:token',\r\n usernameName: 'sky:user:username',\r\n collapseName: 'sky:menu:collapse',\r\n tabsName: 'sky:tab:tabs',\r\n tabListStackName: 'sky:tab:tabListStack',\r\n notFoundRouteName: '/sky/not-found',\r\n loginRouteName: '/sky/login',\r\n welcomeRouteName: '/sky/welcome',\r\n layoutRouteName: '/sky/layout',\r\n permissionThrottle: 5000,\r\n getRandomRouteName,\r\n getListRouteName,\r\n getCreateRouteName,\r\n getEditRouteName,\r\n getShowRouteName,\r\n locales: {\r\n en,\r\n },\r\n themeEnabled: false,\r\n getIconFnName: 'getIconFn',\r\n}\r\n\r\nexport type GetIconFn = (icon: string) => VNode | undefined\r\n\r\nexport const skyAdmin = {\r\n install: (app: App, config: Partial<SkyConfig>) => {\r\n Object.assign(skyConfig, config)\r\n\r\n app.use(\r\n createI18n({\r\n // 适配 composition API\r\n legacy: false,\r\n locale: 'en',\r\n fallbackLocale: 'en',\r\n messages: skyConfig.locales,\r\n }),\r\n )\r\n\r\n app.provide<GetIconFn>(skyConfig.getIconFnName, (icon) => {\r\n if (skyConfig.icons?.[icon]) {\r\n return h(ElIcon, null, {\r\n default: () => h(skyConfig.icons![icon]!),\r\n })\r\n }\r\n })\r\n },\r\n}\r\n"],"names":["getRandomRouteName","getListRouteName","resource","getCreateRouteName","getEditRouteName","getShowRouteName","skyConfig","en","skyAdmin","app","config","createI18n","icon","h","ElIcon"],"mappings":"2LAoEaA,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.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CanAccessItem, DataProvider } from '../provides/dataProvider';
|
|
2
2
|
import { App, Component, VNode } from 'vue';
|
|
3
|
-
import { default as en } from '../i18n/locales/en
|
|
3
|
+
import { default as en } from '../i18n/locales/en';
|
|
4
4
|
import { RouteParamsGeneric } from 'vue-router';
|
|
5
5
|
export type SkyLanguage = typeof en;
|
|
6
6
|
export type SkyComponent = Component & {
|
package/dist/setup/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { h as a } from "vue";
|
|
2
|
-
import n from "../i18n/locales/en.
|
|
2
|
+
import n from "../i18n/locales/en.mjs";
|
|
3
3
|
import { createI18n as l } from "vue-i18n";
|
|
4
4
|
import { ElIcon as m } from "element-plus";
|
|
5
5
|
const c = () => Math.random().toString(16).slice(2), u = (e) => `/sky/layout/${e}`, i = (e) => `/sky/layout/${e}/create`, y = (e) => `/sky/layout/${e}/edit`, r = (e) => `/sky/layout/${e}/show`, t = {
|
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'\r\nimport { h, type App, type Component, type VNode } from 'vue'\r\nimport { default as en } from '@/i18n/locales/en
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/setup/index.ts"],"sourcesContent":["import type { CanAccessItem, DataProvider } from '@/provides/dataProvider'\r\nimport { h, type App, type Component, type VNode } from 'vue'\r\nimport { default as en } from '@/i18n/locales/en'\r\nimport { createI18n } from 'vue-i18n'\r\nimport type { RouteParamsGeneric } from 'vue-router'\r\nimport { ElIcon } from 'element-plus'\r\n\r\nexport type SkyLanguage = typeof en\r\n\r\nexport type SkyComponent = Component & {\r\n title?: string\r\n // 是否添加到 keepAlive 列表\r\n keepAliveName?: string\r\n icon?: string\r\n}\r\n\r\nexport interface SkyResource {\r\n name: string\r\n list?: SkyComponent\r\n create?: SkyComponent\r\n edit?: SkyComponent\r\n show?: SkyComponent\r\n}\r\n\r\nexport interface SkyMenu {\r\n routeName: string\r\n routeParams?: RouteParamsGeneric\r\n title: string\r\n icon?: string\r\n children?: SkyMenu[]\r\n permission: CanAccessItem\r\n}\r\n\r\nexport type SkyConfig = {\r\n sizeName: string\r\n langName: string\r\n tokenName: string\r\n usernameName: string\r\n collapseName: string\r\n tabsName: string\r\n tabListStackName: string\r\n notFoundRouteName: string\r\n loginRouteName: string\r\n welcomeRouteName: string\r\n layoutRouteName: string\r\n permissionThrottle: number\r\n dataProvider?: DataProvider\r\n icons?: Record<string, Component>\r\n menus?: SkyMenu[]\r\n resources?: SkyResource[] | (() => Promise<SkyResource[]>)\r\n getRandomRouteName: () => string\r\n getListRouteName: (resource: string) => string\r\n getCreateRouteName: (resource: string) => string\r\n getEditRouteName: (resource: string) => string\r\n getShowRouteName: (resource: string) => string\r\n locales: Record<string, SkyLanguage>\r\n loginPage?: Component | Promise<Component>\r\n layoutPage?: Component | Promise<Component>\r\n notFoundPage?: Component | Promise<Component>\r\n welcomePage?: Component | Promise<Component>\r\n logoImg?: string\r\n loginImg?: string\r\n themeEnabled: boolean\r\n getIconFnName: string\r\n}\r\n\r\nexport type SkyConfigKey = keyof SkyConfig\r\n\r\nexport const getRandomRouteName = () => Math.random().toString(16).slice(2)\r\nexport const getListRouteName = (resource: string) => `/sky/layout/${resource}`\r\nexport const getCreateRouteName = (resource: string) => `/sky/layout/${resource}/create`\r\nexport const getEditRouteName = (resource: string) => `/sky/layout/${resource}/edit`\r\nexport const getShowRouteName = (resource: string) => `/sky/layout/${resource}/show`\r\n\r\nexport const skyConfig: SkyConfig = {\r\n sizeName: 'sky:size',\r\n langName: 'sky:lang',\r\n tokenName: 'sky:user:token',\r\n usernameName: 'sky:user:username',\r\n collapseName: 'sky:menu:collapse',\r\n tabsName: 'sky:tab:tabs',\r\n tabListStackName: 'sky:tab:tabListStack',\r\n notFoundRouteName: '/sky/not-found',\r\n loginRouteName: '/sky/login',\r\n welcomeRouteName: '/sky/welcome',\r\n layoutRouteName: '/sky/layout',\r\n permissionThrottle: 5000,\r\n getRandomRouteName,\r\n getListRouteName,\r\n getCreateRouteName,\r\n getEditRouteName,\r\n getShowRouteName,\r\n locales: {\r\n en,\r\n },\r\n themeEnabled: false,\r\n getIconFnName: 'getIconFn',\r\n}\r\n\r\nexport type GetIconFn = (icon: string) => VNode | undefined\r\n\r\nexport const skyAdmin = {\r\n install: (app: App, config: Partial<SkyConfig>) => {\r\n Object.assign(skyConfig, config)\r\n\r\n app.use(\r\n createI18n({\r\n // 适配 composition API\r\n legacy: false,\r\n locale: 'en',\r\n fallbackLocale: 'en',\r\n messages: skyConfig.locales,\r\n }),\r\n )\r\n\r\n app.provide<GetIconFn>(skyConfig.getIconFnName, (icon) => {\r\n if (skyConfig.icons?.[icon]) {\r\n return h(ElIcon, null, {\r\n default: () => h(skyConfig.icons![icon]!),\r\n })\r\n }\r\n })\r\n },\r\n}\r\n"],"names":["getRandomRouteName","getListRouteName","resource","getCreateRouteName","getEditRouteName","getShowRouteName","skyConfig","en","skyAdmin","app","config","createI18n","icon","h","ElIcon"],"mappings":";;;;AAoEO,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;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skyline-vue-admin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"glob": "^13.0.0",
|
|
38
38
|
"magic-string": "^0.30.21",
|
|
39
39
|
"prettier": "^3.7.4",
|
|
40
|
+
"sass": "^1.95.0",
|
|
40
41
|
"typescript": "~5.9.3",
|
|
41
42
|
"vite": "^7.2.4",
|
|
42
43
|
"vite-plugin-dts": "^4.5.4",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={defaultListName:"List",defaultCreateName:"Create",defaultEditName:"Edit",defaultShowName:"Show"},t={light:"Light",dark:"Dark",auto:"Auto"},o={default:"Default",large:"Large",small:"Small"},s={zhCn:"简体中文",en:"English"},u={edit:"Edit",logout:"Logout"},n={show:"Show",edit:"Edit",add:"Add",remove:"Remove",submit:"Save",query:"Query",export:"Export"},r={success:"Save Successfully"},l="items selected",d={remove:"Are you sure to delete this?"},i="Root",a="Not Permission",c="Not Found",m={drop:"Drop file here or",click:"click to upload"},f={resource:e,theme:t,size:o,lang:s,user:u,button:n,submit:r,selectedItems:l,popconfirm:d,treeRootNode:i,notPermission:a,notFound:c,upload:m};exports.button=n;exports.default=f;exports.lang=s;exports.notFound=c;exports.notPermission=a;exports.popconfirm=d;exports.resource=e;exports.selectedItems=l;exports.size=o;exports.submit=r;exports.theme=t;exports.treeRootNode=i;exports.upload=m;exports.user=u;
|
|
2
|
-
//# sourceMappingURL=en.json.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
"resource": {
|
|
3
|
-
"defaultListName": "List",
|
|
4
|
-
"defaultCreateName": "Create",
|
|
5
|
-
"defaultEditName": "Edit",
|
|
6
|
-
"defaultShowName": "Show"
|
|
7
|
-
},
|
|
8
|
-
"theme": {
|
|
9
|
-
"light": "Light",
|
|
10
|
-
"dark": "Dark",
|
|
11
|
-
"auto": "Auto"
|
|
12
|
-
},
|
|
13
|
-
"size": {
|
|
14
|
-
"default": "Default",
|
|
15
|
-
"large": "Large",
|
|
16
|
-
"small": "Small"
|
|
17
|
-
},
|
|
18
|
-
"lang": {
|
|
19
|
-
"zhCn": "简体中文",
|
|
20
|
-
"en": "English"
|
|
21
|
-
},
|
|
22
|
-
"user": {
|
|
23
|
-
"edit": "Edit",
|
|
24
|
-
"logout": "Logout"
|
|
25
|
-
},
|
|
26
|
-
"button": {
|
|
27
|
-
"show": "Show",
|
|
28
|
-
"edit": "Edit",
|
|
29
|
-
"add": "Add",
|
|
30
|
-
"remove": "Remove",
|
|
31
|
-
"submit": "Save",
|
|
32
|
-
"query": "Query",
|
|
33
|
-
"export": "Export"
|
|
34
|
-
},
|
|
35
|
-
"submit": {
|
|
36
|
-
"success": "Save Successfully"
|
|
37
|
-
},
|
|
38
|
-
"selectedItems": "items selected",
|
|
39
|
-
"popconfirm": {
|
|
40
|
-
"remove": "Are you sure to delete this?"
|
|
41
|
-
},
|
|
42
|
-
"treeRootNode": "Root",
|
|
43
|
-
"notPermission": "Not Permission",
|
|
44
|
-
"notFound": "Not Found",
|
|
45
|
-
"upload": {
|
|
46
|
-
"drop": "Drop file here or",
|
|
47
|
-
"click": "click to upload"
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
;
|
|
51
|
-
|
|
52
|
-
export default _default;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
const e = { defaultListName: "List", defaultCreateName: "Create", defaultEditName: "Edit", defaultShowName: "Show" }, t = { light: "Light", dark: "Dark", auto: "Auto" }, o = { default: "Default", large: "Large", small: "Small" }, s = { zhCn: "简体中文", en: "English" }, a = { edit: "Edit", logout: "Logout" }, n = { show: "Show", edit: "Edit", add: "Add", remove: "Remove", submit: "Save", query: "Query", export: "Export" }, u = { success: "Save Successfully" }, c = "items selected", d = { remove: "Are you sure to delete this?" }, l = "Root", r = "Not Permission", i = "Not Found", m = { drop: "Drop file here or", click: "click to upload" }, h = {
|
|
2
|
-
resource: e,
|
|
3
|
-
theme: t,
|
|
4
|
-
size: o,
|
|
5
|
-
lang: s,
|
|
6
|
-
user: a,
|
|
7
|
-
button: n,
|
|
8
|
-
submit: u,
|
|
9
|
-
selectedItems: c,
|
|
10
|
-
popconfirm: d,
|
|
11
|
-
treeRootNode: l,
|
|
12
|
-
notPermission: r,
|
|
13
|
-
notFound: i,
|
|
14
|
-
upload: m
|
|
15
|
-
};
|
|
16
|
-
export {
|
|
17
|
-
n as button,
|
|
18
|
-
h as default,
|
|
19
|
-
s as lang,
|
|
20
|
-
i as notFound,
|
|
21
|
-
r as notPermission,
|
|
22
|
-
d as popconfirm,
|
|
23
|
-
e as resource,
|
|
24
|
-
c as selectedItems,
|
|
25
|
-
o as size,
|
|
26
|
-
u as submit,
|
|
27
|
-
t as theme,
|
|
28
|
-
l as treeRootNode,
|
|
29
|
-
m as upload,
|
|
30
|
-
a as user
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=en.json.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"en.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
|