From a43e286186021577f8c78702dbd5636cfb0de56a Mon Sep 17 00:00:00 2001
From: kailong321200875 <321200875@qq.com>
Date: Mon, 17 Apr 2023 09:23:03 +0800
Subject: [PATCH] wip: v2 coding
---
package.json | 3 ++
.../Descriptions/src/Descriptions.vue | 2 +-
src/layout/components/useRenderLayout.tsx | 4 +-
src/main.ts | 2 +-
src/plugins/unocss/index.ts | 1 +
src/plugins/windi.css/index.ts | 3 --
src/views/Dashboard/Workplace.vue | 2 +-
src/views/Login/Login.vue | 20 +++++----
src/views/Login/components/LoginForm.vue | 2 +-
src/views/Login/components/RegisterForm.vue | 2 +-
tsconfig.json | 9 ++--
uno.config.ts | 45 +++++++++++++++++++
vite.config.ts | 11 +++--
13 files changed, 79 insertions(+), 27 deletions(-)
create mode 100644 src/plugins/unocss/index.ts
delete mode 100644 src/plugins/windi.css/index.ts
create mode 100644 uno.config.ts
diff --git a/package.json b/package.json
index 2b7e2e3..5541ed8 100644
--- a/package.json
+++ b/package.json
@@ -66,9 +66,11 @@
"@types/qs": "^6.9.7",
"@typescript-eslint/eslint-plugin": "^5.58.0",
"@typescript-eslint/parser": "^5.58.0",
+ "@unocss/preset-wind": "^0.51.4",
"@vitejs/plugin-legacy": "^4.0.2",
"@vitejs/plugin-vue": "^4.1.0",
"@vitejs/plugin-vue-jsx": "^3.0.1",
+ "@vue-macros/volar": "^0.9.5",
"autoprefixer": "^10.4.14",
"consola": "^3.0.1",
"eslint": "^8.38.0",
@@ -94,6 +96,7 @@
"stylelint-order": "^6.0.3",
"terser": "^5.16.9",
"typescript": "5.0.4",
+ "unocss": "^0.51.4",
"unplugin-vue-define-options": "^1.3.3",
"vite": "4.2.1",
"vite-plugin-ejs": "^1.6.4",
diff --git a/src/components/Descriptions/src/Descriptions.vue b/src/components/Descriptions/src/Descriptions.vue
index 8b0455e..987fe9f 100644
--- a/src/components/Descriptions/src/Descriptions.vue
+++ b/src/components/Descriptions/src/Descriptions.vue
@@ -68,7 +68,7 @@ const toggleClick = () => {
{
class={[
{
'fixed top-0 left-0 z-10': fixedHeader.value,
- 'w-[calc(100%-var(--left-menu-min-width))] left-[var(--left-menu-min-width)]':
+ 'w-[calc(100%-var(--left-menu-min-width))] !left-[var(--left-menu-min-width)]':
collapse.value && fixedHeader.value && !mobile.value,
- 'w-[calc(100%-var(--left-menu-max-width))] left-[var(--left-menu-max-width)]':
+ 'w-[calc(100%-var(--left-menu-max-width))] !left-[var(--left-menu-max-width)]':
!collapse.value && fixedHeader.value && !mobile.value,
'!w-full !left-0': mobile.value
}
diff --git a/src/main.ts b/src/main.ts
index c2ba4b2..1142cdd 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,5 +1,5 @@
// 引入windi css
-import '@/plugins/windi.css'
+import '@/plugins/unocss'
// 导入全局的svg图标
import '@/plugins/svgIcon'
diff --git a/src/plugins/unocss/index.ts b/src/plugins/unocss/index.ts
new file mode 100644
index 0000000..d366b5a
--- /dev/null
+++ b/src/plugins/unocss/index.ts
@@ -0,0 +1 @@
+import 'virtual:uno.css'
diff --git a/src/plugins/windi.css/index.ts b/src/plugins/windi.css/index.ts
deleted file mode 100644
index dbdfbbf..0000000
--- a/src/plugins/windi.css/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import 'virtual:windi.css'
-
-import 'virtual:windi-devtools'
diff --git a/src/views/Dashboard/Workplace.vue b/src/views/Dashboard/Workplace.vue
index 16aa010..92858c8 100644
--- a/src/views/Dashboard/Workplace.vue
+++ b/src/views/Dashboard/Workplace.vue
@@ -133,7 +133,7 @@ const { t } = useI18n()
-
+
{{ t('workplace.project') }}
{

@@ -54,30 +54,32 @@ const toLogin = () => {
-
-
-
+
+
+
{{ underlineToHump(appStore.getTitle) }}
-
+
diff --git a/src/views/Login/components/LoginForm.vue b/src/views/Login/components/LoginForm.vue
index fa43b2d..c281d52 100644
--- a/src/views/Login/components/LoginForm.vue
+++ b/src/views/Login/components/LoginForm.vue
@@ -191,7 +191,7 @@ const toRegister = () => {
label-position="top"
hide-required-asterisk
size="large"
- class="dark:(border-1 border-[var(--el-border-color)] border-solid)"
+ class="dark:border-1 dark:border-[var(--el-border-color)] dark:border-solid"
@register="register"
>
diff --git a/src/views/Login/components/RegisterForm.vue b/src/views/Login/components/RegisterForm.vue
index fc0fb78..34ca0cc 100644
--- a/src/views/Login/components/RegisterForm.vue
+++ b/src/views/Login/components/RegisterForm.vue
@@ -116,7 +116,7 @@ const loginRegister = async () => {
label-position="top"
hide-required-asterisk
size="large"
- class="dark:(border-1 border-[var(--el-border-color)] border-solid)"
+ class="dark:border-1 dark:border-[var(--el-border-color)] dark:border-solid"
@register="register"
>
diff --git a/tsconfig.json b/tsconfig.json
index d53cf62..04de651 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -10,7 +10,7 @@
"resolveJsonModule": true,
"esModuleInterop": true,
"lib": ["esnext", "dom"],
- "baseUrl": ".",
+ "baseUrl": "./",
"allowJs": true,
"forceConsistentCasingInFileNames": true,
"allowSyntheticDefaultImports": true,
@@ -31,9 +31,8 @@
"@types/qrcode",
"vite-plugin-svg-icons/client",
"unplugin-vue-define-options/macros-global"
- ],
- "typeRoots": ["./node_modules/@types/", "./types"]
+ ]
},
- "include": ["src/**/*", "types/**/*.d.ts", "mock/**/*.ts"],
- "exclude": ["dist", "node_modules"]
+ "include": ["src", "types/**/*.d.ts", "mock/**/*.ts"]
+ // "exclude": ["dist", "node_modules"]
}
diff --git a/uno.config.ts b/uno.config.ts
new file mode 100644
index 0000000..191fc66
--- /dev/null
+++ b/uno.config.ts
@@ -0,0 +1,45 @@
+import { defineConfig, toEscapedSelector as e, presetUno } from 'unocss'
+
+export default defineConfig({
+ // ...UnoCSS options
+ rules: [
+ [
+ 'v-dark',
+ {
+ 'background-color': 'var(--dark-bg-color)'
+ }
+ ],
+ [/^border-top-(\d+)$/, (match) => ({ 'border-top-width': `${match[1]}px` })],
+ [/^border-left-(\d+)$/, (match) => ({ 'border-left-width': `${match[1]}px` })],
+ [/^border-right-(\d+)$/, (match) => ({ 'border-right-width': `${match[1]}px` })],
+ [/^border-bottom-(\d+)$/, (match) => ({ 'border-bottom-width': `${match[1]}px` })],
+ [
+ /^hover-trigger(.+)$/,
+ ([, name], { rawSelector, currentSelector, variantHandlers, theme }) => {
+ console.log(variantHandlers)
+ // if you want, you can disable the variants for this rule
+ if (variantHandlers.length) return
+ const selector = e(rawSelector)
+ // return a string instead of an object
+ return `
+${selector} {
+ display: flex;
+ height: 100%;
+ padding: 1px 10px 0;
+ cursor: pointer;
+ align-items: center;
+ transition: background var(--transition-time-02);
+}
+/* you can have multiple rules */
+${selector}:hover {
+ background-color: var(--top-header-hover-color);
+}
+.dark ${selector} {
+ background-color: var(--el-bg-color-overlay);
+}
+`
+ }
+ ]
+ ],
+ presets: [presetUno({ dark: 'class', attributify: false })]
+})
diff --git a/vite.config.ts b/vite.config.ts
index 2bc1350..4aa32ca 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -3,7 +3,7 @@ import { loadEnv } from 'vite'
import type { UserConfig, ConfigEnv } from 'vite'
import Vue from '@vitejs/plugin-vue'
import VueJsx from '@vitejs/plugin-vue-jsx'
-import WindiCSS from 'vite-plugin-windicss'
+// import WindiCSS from 'vite-plugin-windicss'
import progress from 'vite-plugin-progress'
import EslintPlugin from 'vite-plugin-eslint'
import { ViteEjsPlugin } from "vite-plugin-ejs"
@@ -11,8 +11,11 @@ import { viteMockServe } from 'vite-plugin-mock'
import PurgeIcons from 'vite-plugin-purge-icons'
import VueI18nPlugin from "@intlify/unplugin-vue-i18n/vite"
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
+// @ts-expect-error
import DefineOptions from "unplugin-vue-define-options/vite"
import { createStyleImportPlugin, ElementPlusResolve } from 'vite-plugin-style-import'
+import UnoCSS from 'unocss/vite'
+// import { sveltekit } from '@sveltejs/kit/vite'
// https://vitejs.dev/config/
const root = process.cwd()
@@ -34,7 +37,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
plugins: [
Vue(),
VueJsx(),
- WindiCSS(),
+ // WindiCSS(),
progress(),
createStyleImportPlugin({
resolves: [ElementPlusResolve()],
@@ -75,7 +78,9 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
DefineOptions(),
ViteEjsPlugin({
title: env.VITE_APP_TITLE
- })
+ }),
+ UnoCSS(),
+ // sveltekit(),
],
css: {