feat: 重构页面结构,删除不必要的页面,添加新页面,优化暗黑主题样式
This commit is contained in:
@ -1,14 +1,5 @@
|
|||||||
@mixin dark-theme {
|
:root[class*='app-dark'] {
|
||||||
--surface-ground: var(--p-surface-950);
|
--surface-ground: var(--p-surface-950);
|
||||||
--code-background: var(--p-surface-800);
|
--code-background: var(--p-surface-800);
|
||||||
--code-color: var(--p-surface-100);
|
--code-color: var(--p-surface-100);
|
||||||
}
|
}
|
||||||
:root[class*='app-dark'] {
|
|
||||||
@include dark-theme;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:root {
|
|
||||||
@include dark-theme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
3
src/pages/_1.page.vue
Normal file
3
src/pages/_1.page.vue
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
<p class="dark:bg-gray-800 bg-white text-gray-900 dark:text-gray-100">CONTENT</p>
|
||||||
|
</template>
|
@ -1 +0,0 @@
|
|||||||
<template>src/pages/a/a1.page.vue</template>
|
|
@ -1 +0,0 @@
|
|||||||
<template>src/pages/a/a2.page.vue</template>
|
|
@ -1 +0,0 @@
|
|||||||
<template>src/pages/a/b/c.page.vue</template>
|
|
@ -1 +0,0 @@
|
|||||||
<template>src/pages/a/b/index.page.vue</template>
|
|
@ -1,5 +0,0 @@
|
|||||||
<template>src/pages/a/index.page.vue</template>
|
|
||||||
|
|
||||||
<script setup lang="ts"></script>
|
|
||||||
|
|
||||||
<style scoped></style>
|
|
@ -77,5 +77,5 @@ watch(
|
|||||||
|
|
||||||
<route lang="yaml">
|
<route lang="yaml">
|
||||||
meta:
|
meta:
|
||||||
layout: second
|
// layout: second
|
||||||
</route>
|
</route>
|
||||||
|
@ -38,7 +38,7 @@ const route = useRoute('DataLoadersIdSub1UserId');
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div flex="~ row">
|
<div flex="~ row">
|
||||||
<button class="green" @click="$router.back()">Back</button>
|
<Button class="green" @click="$router.back()" label="Back" />
|
||||||
</div>
|
</div>
|
||||||
<h1>Pinia Colada Loader Example</h1>
|
<h1>Pinia Colada Loader Example</h1>
|
||||||
<pre>route.params: {{ route.params }}</pre>
|
<pre>route.params: {{ route.params }}</pre>
|
||||||
@ -46,8 +46,8 @@ const route = useRoute('DataLoadersIdSub1UserId');
|
|||||||
<fieldset class="flex items-center gap-4">
|
<fieldset class="flex items-center gap-4">
|
||||||
<legend>Controls</legend>
|
<legend>Controls</legend>
|
||||||
|
|
||||||
<button @click="refresh()">Refresh</button>
|
<Button @click="refresh()" label="Refresh" />
|
||||||
<button @click="reload()">Refetch</button>
|
<Button @click="reload()" label="Refetch" />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
@ -63,7 +63,7 @@ const route = useRoute('DataLoadersIdSub1UserId');
|
|||||||
|
|
||||||
<h2>State</h2>
|
<h2>State</h2>
|
||||||
<!-- user 是 ShallowRef 的,所以修改 user 的属性不会触发重新渲染 -->
|
<!-- user 是 ShallowRef 的,所以修改 user 的属性不会触发重新渲染 -->
|
||||||
<button @click="user.name = 'Changed name'">Change user data</button>
|
<Button @click="user.name = 'Changed name'" label="Change user.name" />
|
||||||
<p>
|
<p>
|
||||||
<code>status: {{ status }}</code>
|
<code>status: {{ status }}</code>
|
||||||
<br />
|
<br />
|
||||||
@ -73,117 +73,9 @@ const route = useRoute('DataLoadersIdSub1UserId');
|
|||||||
<pre v-else>user: <p>{{ user == null ? String(user) : user }}</p></pre>
|
<pre v-else>user: <p>{{ user == null ? String(user) : user }}</p></pre>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less"></style>
|
||||||
button {
|
|
||||||
padding: 0.5rem 1rem;
|
|
||||||
border-radius: 4px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
background: #f5f5f5;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all 0.2s;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #e5e5e5;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.green {
|
|
||||||
background: #4caf50;
|
|
||||||
color: white;
|
|
||||||
border-color: #45a049;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #45a049;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
background: #2a2a2a;
|
|
||||||
border-color: #444;
|
|
||||||
color: #fff;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.green {
|
|
||||||
background: #2e7d32;
|
|
||||||
border-color: #1b5e20;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #1b5e20;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset {
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
border-radius: 6px;
|
|
||||||
padding: 1rem;
|
|
||||||
margin: 1rem 0;
|
|
||||||
|
|
||||||
legend {
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
border-color: #444;
|
|
||||||
background: #1a1a1a;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
background: #f8f8f8;
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 4px;
|
|
||||||
overflow-x: auto;
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
background: #1a1a1a;
|
|
||||||
color: #e0e0e0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex.items-center {
|
|
||||||
a {
|
|
||||||
color: #2196f3;
|
|
||||||
text-decoration: none;
|
|
||||||
padding: 0.5rem;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
color: #64b5f6;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: #90caf9;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
background: #f1f1f1;
|
|
||||||
padding: 0.2rem 0.4rem;
|
|
||||||
border-radius: 3px;
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
background: #2a2a2a;
|
|
||||||
color: #e0e0e0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:deep(body) {
|
|
||||||
background: #121212;
|
|
||||||
color: #e0e0e0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<route lang="yaml">
|
<route lang="yaml">
|
||||||
meta:
|
meta:
|
||||||
layout: second
|
// layout: second
|
||||||
</route>
|
</route>
|
||||||
|
@ -16,11 +16,13 @@ export function install({ app }: { app: import('vue').App<Element> }) {
|
|||||||
pending: '待上传',
|
pending: '待上传',
|
||||||
completed: '已上传',
|
completed: '已上传',
|
||||||
}, // usePrimeVue().config.locale
|
}, // usePrimeVue().config.locale
|
||||||
theme: { preset: Aura },
|
theme: {
|
||||||
|
preset: Aura,
|
||||||
options: {
|
options: {
|
||||||
prefix: 'p',
|
prefix: 'p',
|
||||||
darkModeSelector: 'system',
|
darkModeSelector: '.app-dark' /* 'system' */,
|
||||||
cssLayer: false,
|
cssLayer: false,
|
||||||
},
|
},
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
6
typed-router.d.ts
vendored
6
typed-router.d.ts
vendored
@ -19,13 +19,9 @@ declare module 'vue-router/auto-routes' {
|
|||||||
*/
|
*/
|
||||||
export interface RouteNamedMap {
|
export interface RouteNamedMap {
|
||||||
'Root': RouteRecordInfo<'Root', '/', Record<never, never>, Record<never, never>>,
|
'Root': RouteRecordInfo<'Root', '/', Record<never, never>, Record<never, never>>,
|
||||||
|
'1': RouteRecordInfo<'1', '/_1', Record<never, never>, Record<never, never>>,
|
||||||
'$Path': RouteRecordInfo<'$Path', '/:path(.*)', { path: ParamValue<true> }, { path: ParamValue<false> }>,
|
'$Path': RouteRecordInfo<'$Path', '/:path(.*)', { path: ParamValue<true> }, { path: ParamValue<false> }>,
|
||||||
'中文页面': RouteRecordInfo<'中文页面', '/中文-页面', Record<never, never>, Record<never, never>>,
|
'中文页面': RouteRecordInfo<'中文页面', '/中文-页面', Record<never, never>, Record<never, never>>,
|
||||||
'A': RouteRecordInfo<'A', '/a', Record<never, never>, Record<never, never>>,
|
|
||||||
'AA1': RouteRecordInfo<'AA1', '/a/a1', Record<never, never>, Record<never, never>>,
|
|
||||||
'AA2': RouteRecordInfo<'AA2', '/a/a2', Record<never, never>, Record<never, never>>,
|
|
||||||
'AB': RouteRecordInfo<'AB', '/a/b', Record<never, never>, Record<never, never>>,
|
|
||||||
'ABC': RouteRecordInfo<'ABC', '/a/b/c', Record<never, never>, Record<never, never>>,
|
|
||||||
'Api': RouteRecordInfo<'Api', '/api', Record<never, never>, Record<never, never>>,
|
'Api': RouteRecordInfo<'Api', '/api', Record<never, never>, Record<never, never>>,
|
||||||
'DataLoadersId': RouteRecordInfo<'DataLoadersId', '/data-loaders/:id', { id: ParamValue<true> }, { id: ParamValue<false> }>,
|
'DataLoadersId': RouteRecordInfo<'DataLoadersId', '/data-loaders/:id', { id: ParamValue<true> }, { id: ParamValue<false> }>,
|
||||||
'DataLoadersIdSub1UserId': RouteRecordInfo<'DataLoadersIdSub1UserId', '/data-loaders/:id/sub-1/:userId', { id: ParamValue<true>, userId: ParamValue<true> }, { id: ParamValue<false>, userId: ParamValue<false> }>,
|
'DataLoadersIdSub1UserId': RouteRecordInfo<'DataLoadersIdSub1UserId', '/data-loaders/:id/sub-1/:userId', { id: ParamValue<true>, userId: ParamValue<true> }, { id: ParamValue<false>, userId: ParamValue<false> }>,
|
||||||
|
@ -47,34 +47,13 @@ export default defineConfig({
|
|||||||
presets: [
|
presets: [
|
||||||
presetUno({
|
presetUno({
|
||||||
/* prefix: "u-", */
|
/* prefix: "u-", */
|
||||||
|
dark: {
|
||||||
|
dark: '.app-dark',
|
||||||
|
},
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// https://unocss.dev/presets/rem-to-px
|
|
||||||
// presetRemToPx({ baseFontSize: 4 }),
|
|
||||||
|
|
||||||
// https://unocss.dev/presets/attributify
|
// https://unocss.dev/presets/attributify
|
||||||
presetAttributify(),
|
presetAttributify(),
|
||||||
|
|
||||||
// presetIcons({
|
|
||||||
// /*extraProperties: {
|
|
||||||
// display: "inline-block",
|
|
||||||
// "vertical-align": "middle",
|
|
||||||
// },*/
|
|
||||||
// cdn: 'https://esm.sh/',
|
|
||||||
// customizations: {
|
|
||||||
// iconCustomizer(collection, icon, props) {
|
|
||||||
// props.width = '1em';
|
|
||||||
// props.height = '1em';
|
|
||||||
// },
|
|
||||||
// },
|
|
||||||
// collections: {
|
|
||||||
// icon: FileSystemIconLoader('src/assets/icons/svgs', (svg) => {
|
|
||||||
// return svg.replace(/#000000|#000/g, 'currentColor');
|
|
||||||
// }),
|
|
||||||
// carbon: () => import('@iconify-json/carbon/icons.json').then((i) => i.default),
|
|
||||||
// },
|
|
||||||
// warn: true,
|
|
||||||
// }), // https://unocss.dev/presets/icons
|
|
||||||
],
|
],
|
||||||
transformers: [
|
transformers: [
|
||||||
//https://unocss.dev/transformers/variant-group
|
//https://unocss.dev/transformers/variant-group
|
||||||
|
Reference in New Issue
Block a user