feat(package): 新增一些案例;但是 tailwindcss 仅在子项目生效

This commit is contained in:
2025-12-31 15:54:36 +08:00
parent 4fc473fff2
commit c8b0361e59
22 changed files with 887 additions and 32 deletions

View File

@@ -0,0 +1,38 @@
<script setup lang="ts">
import { zhCN, dateZhCN } from 'naive-ui';
import { omit } from 'naive-ui/es/_utils';
import { useAttrs } from 'vue';
import { storeToRefs } from 'pinia';
import { useLocalConfigStore } from '../../stores/useLocalConfigStore';
import { LayoutProvider } from '../layouts';
const { naiveThemeProps } = storeToRefs(useLocalConfigStore());
defineOptions({
inheritAttrs: false,
});
const attrs = useAttrs();
</script>
<template>
<n-config-provider
v-bind="omit(attrs, ['locale', 'date-locale', 'theme-overrides'])"
:locale="zhCN"
:date-locale="dateZhCN"
:theme-overrides="naiveThemeProps"
>
<n-dialog-provider>
<n-message-provider>
<n-notification-provider>
<n-loading-bar-provider>
<layout-provider>
<slot />
</layout-provider>
</n-loading-bar-provider>
</n-notification-provider>
</n-message-provider>
</n-dialog-provider>
</n-config-provider>
</template>

View File

@@ -0,0 +1,3 @@
import ConfigProvider from './ConfigProvider.vue';
export const AppConfigProvider = ConfigProvider;

View File

@@ -0,0 +1 @@
export * from './config-provider';

View File

@@ -0,0 +1,8 @@
<script setup lang="ts">
import Default from './default/Index.vue';
console.log('Provider layout loaded');
</script>
<template>
<Default> <slot /> </Default>
</template>

View File

@@ -0,0 +1,33 @@
<script setup lang="ts">
import { useLoadingBar } from 'naive-ui';
import { loadingBarRef } from '../../../core/router/guards';
import { onMounted } from 'vue';
import { storeToRefs } from 'pinia';
import { useLocalConfigStore } from '../../../stores/useLocalConfigStore';
const { primaryColor } = storeToRefs(useLocalConfigStore());
const loadingBar = useLoadingBar();
onMounted(() => {
loadingBarRef.value = loadingBar;
});
function pickerThemeColor() {
loadingBarRef.value?.start();
setTimeout(() => {
loadingBarRef.value?.finish();
}, 500);
}
</script>
<template>
<n-layout position="absolute">
<n-layout-header bordered class="h-12"> </n-layout-header>
<n-layout position="absolute" has-sider class="top-12!">
<n-layout-sider bordered />
<n-layout-content>
<slot />
</n-layout-content>
</n-layout>
</n-layout>
</template>

View File

@@ -0,0 +1,6 @@
import Provider from './Provider.vue';
import Default from './default/index.vue';
export const LayoutProvider = Provider;
export const LayoutDefault = Default;