mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-06 00:18:51 +08:00
Merge e3564eab96540a7be90f52c2ddece521a8eebf48 into 4db365038caec7e6e15fddcacfab4d391334effb
This commit is contained in:
commit
b18f09307b
@ -6,6 +6,7 @@ import svgLoader from "vite-svg-loader";
|
|||||||
import Icons from "unplugin-icons/vite";
|
import Icons from "unplugin-icons/vite";
|
||||||
import type { PluginOption } from "vite";
|
import type { PluginOption } from "vite";
|
||||||
import vueJsx from "@vitejs/plugin-vue-jsx";
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
||||||
|
import tailwindcss from "@tailwindcss/vite";
|
||||||
import { configCompressPlugin } from "./compress";
|
import { configCompressPlugin } from "./compress";
|
||||||
import removeNoMatch from "vite-plugin-router-warn";
|
import removeNoMatch from "vite-plugin-router-warn";
|
||||||
import { visualizer } from "rollup-plugin-visualizer";
|
import { visualizer } from "rollup-plugin-visualizer";
|
||||||
@ -20,6 +21,7 @@ export function getPluginsList(
|
|||||||
): PluginOption[] {
|
): PluginOption[] {
|
||||||
const lifecycle = process.env.npm_lifecycle_event;
|
const lifecycle = process.env.npm_lifecycle_event;
|
||||||
return [
|
return [
|
||||||
|
tailwindcss(),
|
||||||
vue({
|
vue({
|
||||||
template: {
|
template: {
|
||||||
compilerOptions: {
|
compilerOptions: {
|
||||||
|
77
package.json
77
package.json
@ -56,23 +56,23 @@
|
|||||||
"@pureadmin/table": "^3.2.1",
|
"@pureadmin/table": "^3.2.1",
|
||||||
"@pureadmin/utils": "^2.6.0",
|
"@pureadmin/utils": "^2.6.0",
|
||||||
"@vue-flow/background": "^1.3.2",
|
"@vue-flow/background": "^1.3.2",
|
||||||
"@vue-flow/core": "^1.42.1",
|
"@vue-flow/core": "^1.42.4",
|
||||||
"@vueuse/core": "^12.5.0",
|
"@vueuse/core": "^12.8.2",
|
||||||
"@vueuse/motion": "^2.2.6",
|
"@vueuse/motion": "^2.2.6",
|
||||||
"@wangeditor/editor": "^5.1.23",
|
"@wangeditor/editor": "^5.1.23",
|
||||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||||
"@zxcvbn-ts/core": "^3.0.4",
|
"@zxcvbn-ts/core": "^3.0.4",
|
||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.8.4",
|
||||||
"china-area-data": "^5.0.1",
|
"china-area-data": "^5.0.1",
|
||||||
"codemirror": "^5.65.18",
|
"codemirror": "^5.65.19",
|
||||||
"codemirror-editor-vue3": "^2.8.0",
|
"codemirror-editor-vue3": "^2.8.0",
|
||||||
"cropperjs": "^1.6.2",
|
"cropperjs": "^1.6.2",
|
||||||
"dayjs": "^1.11.13",
|
"dayjs": "^1.11.13",
|
||||||
"deep-chat": "^2.1.1",
|
"deep-chat": "^2.1.1",
|
||||||
"echarts": "^5.6.0",
|
"echarts": "^5.6.0",
|
||||||
"el-table-infinite-scroll": "^3.0.6",
|
"el-table-infinite-scroll": "^3.0.6",
|
||||||
"element-plus": "^2.9.4",
|
"element-plus": "^2.9.7",
|
||||||
"highlight.js": "^11.11.1",
|
"highlight.js": "^11.11.1",
|
||||||
"intro.js": "^7.2.0",
|
"intro.js": "^7.2.0",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
@ -85,23 +85,23 @@
|
|||||||
"path-browserify": "^1.0.1",
|
"path-browserify": "^1.0.1",
|
||||||
"pinia": "^3.0.1",
|
"pinia": "^3.0.1",
|
||||||
"pinyin-pro": "^3.26.0",
|
"pinyin-pro": "^3.26.0",
|
||||||
"plus-pro-components": "^0.1.20",
|
"plus-pro-components": "^0.1.21",
|
||||||
"qrcode": "^1.5.4",
|
"qrcode": "^1.5.4",
|
||||||
"qs": "^6.14.0",
|
"qs": "^6.14.0",
|
||||||
"responsive-storage": "^2.2.0",
|
"responsive-storage": "^2.2.0",
|
||||||
"sortablejs": "^1.15.6",
|
"sortablejs": "^1.15.6",
|
||||||
"swiper": "^11.2.3",
|
"swiper": "^11.2.6",
|
||||||
"typeit": "^8.8.7",
|
"typeit": "^8.8.7",
|
||||||
"v-contextmenu": "^3.2.0",
|
"v-contextmenu": "^3.2.0",
|
||||||
"v3-infinite-loading": "^1.3.2",
|
"v3-infinite-loading": "^1.3.2",
|
||||||
"vditor": "^3.10.9",
|
"vditor": "^3.10.9",
|
||||||
"version-rocket": "^1.7.4",
|
"version-rocket": "^1.7.4",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.13",
|
||||||
"vue-i18n": "^11.1.1",
|
"vue-i18n": "^11.1.2",
|
||||||
"vue-json-pretty": "^2.4.0",
|
"vue-json-pretty": "^2.4.0",
|
||||||
"vue-pdf-embed": "^2.1.2",
|
"vue-pdf-embed": "^2.1.2",
|
||||||
"vue-router": "^4.5.0",
|
"vue-router": "^4.5.0",
|
||||||
"vue-tippy": "^6.6.0",
|
"vue-tippy": "^6.7.0",
|
||||||
"vue-types": "^5.1.3",
|
"vue-types": "^5.1.3",
|
||||||
"vue-virtual-scroller": "2.0.0-beta.8",
|
"vue-virtual-scroller": "2.0.0-beta.8",
|
||||||
"vue-waterfall-plugin-next": "^2.6.5",
|
"vue-waterfall-plugin-next": "^2.6.5",
|
||||||
@ -109,63 +109,63 @@
|
|||||||
"vue3-puzzle-vcode": "^1.1.7",
|
"vue3-puzzle-vcode": "^1.1.7",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"vxe-table": "4.6.25",
|
"vxe-table": "4.6.25",
|
||||||
"wavesurfer.js": "^7.9.1",
|
"wavesurfer.js": "^7.9.4",
|
||||||
"xgplayer": "^3.0.20",
|
"xgplayer": "^3.0.21",
|
||||||
"xlsx": "^0.18.5"
|
"xlsx": "^0.18.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.7.1",
|
"@commitlint/cli": "^19.8.0",
|
||||||
"@commitlint/config-conventional": "^19.7.1",
|
"@commitlint/config-conventional": "^19.8.0",
|
||||||
"@commitlint/types": "^19.5.0",
|
"@commitlint/types": "^19.8.0",
|
||||||
"@eslint/js": "^9.20.0",
|
"@eslint/js": "^9.23.0",
|
||||||
"@faker-js/faker": "^9.5.0",
|
"@faker-js/faker": "^9.6.0",
|
||||||
"@iconify/json": "^2.2.319",
|
"@iconify/json": "^2.2.321",
|
||||||
"@iconify/vue": "4.2.0",
|
"@iconify/vue": "4.2.0",
|
||||||
"@intlify/unplugin-vue-i18n": "^6.0.3",
|
"@intlify/unplugin-vue-i18n": "^6.0.5",
|
||||||
|
"@tailwindcss/vite": "^4.0.17",
|
||||||
"@types/codemirror": "^5.60.15",
|
"@types/codemirror": "^5.60.15",
|
||||||
"@types/dagre": "^0.7.52",
|
"@types/dagre": "^0.7.52",
|
||||||
"@types/intro.js": "^5.1.5",
|
"@types/intro.js": "^5.1.5",
|
||||||
"@types/js-cookie": "^3.0.6",
|
"@types/js-cookie": "^3.0.6",
|
||||||
"@types/node": "^20.17.19",
|
"@types/node": "^20.17.28",
|
||||||
"@types/nprogress": "^0.2.3",
|
"@types/nprogress": "^0.2.3",
|
||||||
"@types/path-browserify": "^1.0.3",
|
"@types/path-browserify": "^1.0.3",
|
||||||
"@types/qrcode": "^1.5.5",
|
"@types/qrcode": "^1.5.5",
|
||||||
"@types/qs": "^6.9.18",
|
"@types/qs": "^6.9.18",
|
||||||
"@types/sortablejs": "^1.15.8",
|
"@types/sortablejs": "^1.15.8",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.24.0",
|
"@typescript-eslint/eslint-plugin": "^8.28.0",
|
||||||
"@typescript-eslint/parser": "^8.24.0",
|
"@typescript-eslint/parser": "^8.28.0",
|
||||||
"@vitejs/plugin-vue": "^5.2.1",
|
"@vitejs/plugin-vue": "^5.2.3",
|
||||||
"@vitejs/plugin-vue-jsx": "^4.1.1",
|
"@vitejs/plugin-vue-jsx": "^4.1.2",
|
||||||
"autoprefixer": "^10.4.20",
|
|
||||||
"boxen": "^8.0.1",
|
"boxen": "^8.0.1",
|
||||||
"code-inspector-plugin": "^0.20.0",
|
"code-inspector-plugin": "^0.20.7",
|
||||||
"cssnano": "^7.0.6",
|
"cssnano": "^7.0.6",
|
||||||
"dagre": "^0.8.5",
|
"dagre": "^0.8.5",
|
||||||
"eslint": "^9.23.0",
|
"eslint": "^9.23.0",
|
||||||
"eslint-config-prettier": "^10.0.1",
|
"eslint-config-prettier": "^10.1.1",
|
||||||
"eslint-plugin-prettier": "^5.2.3",
|
"eslint-plugin-prettier": "^5.2.5",
|
||||||
"eslint-plugin-vue": "^9.32.0",
|
"eslint-plugin-vue": "^9.33.0",
|
||||||
"gradient-string": "^3.0.0",
|
"gradient-string": "^3.0.0",
|
||||||
"husky": "^9.1.7",
|
"husky": "^9.1.7",
|
||||||
"lint-staged": "^15.4.3",
|
"lint-staged": "^15.5.0",
|
||||||
"postcss": "^8.5.2",
|
"postcss": "^8.5.3",
|
||||||
"postcss-html": "^1.8.0",
|
"postcss-html": "^1.8.0",
|
||||||
"postcss-import": "^16.1.0",
|
"postcss-load-config": "^6.0.1",
|
||||||
"postcss-scss": "^4.0.9",
|
"postcss-scss": "^4.0.9",
|
||||||
"prettier": "^3.5.1",
|
"prettier": "^3.5.3",
|
||||||
"rimraf": "^6.0.1",
|
"rimraf": "^6.0.1",
|
||||||
"rollup-plugin-visualizer": "^5.14.0",
|
"rollup-plugin-visualizer": "^5.14.0",
|
||||||
"sass": "^1.85.0",
|
"sass": "^1.86.0",
|
||||||
"stylelint": "^16.14.1",
|
"stylelint": "^16.17.0",
|
||||||
"stylelint-config-recess-order": "^6.0.0",
|
"stylelint-config-recess-order": "^6.0.0",
|
||||||
"stylelint-config-recommended-vue": "^1.6.0",
|
"stylelint-config-recommended-vue": "^1.6.0",
|
||||||
"stylelint-config-standard-scss": "^14.0.0",
|
"stylelint-config-standard-scss": "^14.0.0",
|
||||||
"stylelint-prettier": "^5.0.3",
|
"stylelint-prettier": "^5.0.3",
|
||||||
"svgo": "^3.3.2",
|
"svgo": "^3.3.2",
|
||||||
"tailwindcss": "3.4.17",
|
"tailwindcss": "^4.0.17",
|
||||||
"typescript": "^5.7.3",
|
"typescript": "^5.8.2",
|
||||||
"unplugin-icons": "^22.1.0",
|
"unplugin-icons": "^22.1.0",
|
||||||
"vite": "^6.1.0",
|
"vite": "^6.2.3",
|
||||||
"vite-plugin-cdn-import": "^1.0.1",
|
"vite-plugin-cdn-import": "^1.0.1",
|
||||||
"vite-plugin-compression": "^0.5.1",
|
"vite-plugin-compression": "^0.5.1",
|
||||||
"vite-plugin-fake-server": "^2.2.0",
|
"vite-plugin-fake-server": "^2.2.0",
|
||||||
@ -173,7 +173,7 @@
|
|||||||
"vite-plugin-router-warn": "^1.0.0",
|
"vite-plugin-router-warn": "^1.0.0",
|
||||||
"vite-svg-loader": "^5.1.0",
|
"vite-svg-loader": "^5.1.0",
|
||||||
"vue-eslint-parser": "^9.4.3",
|
"vue-eslint-parser": "^9.4.3",
|
||||||
"vue-tsc": "^2.2.0"
|
"vue-tsc": "^2.2.8"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^18.18.0 || ^20.9.0 || >=22.0.0",
|
"node": "^18.18.0 || ^20.9.0 || >=22.0.0",
|
||||||
@ -183,6 +183,7 @@
|
|||||||
"allowedDeprecatedVersions": {
|
"allowedDeprecatedVersions": {
|
||||||
"are-we-there-yet": "*",
|
"are-we-there-yet": "*",
|
||||||
"sourcemap-codec": "*",
|
"sourcemap-codec": "*",
|
||||||
|
"lodash.isequal": "*",
|
||||||
"domexception": "*",
|
"domexception": "*",
|
||||||
"w3c-hr-time": "*",
|
"w3c-hr-time": "*",
|
||||||
"inflight": "*",
|
"inflight": "*",
|
||||||
|
3682
pnpm-lock.yaml
generated
3682
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -3,10 +3,6 @@
|
|||||||
/** @type {import('postcss-load-config').Config} */
|
/** @type {import('postcss-load-config').Config} */
|
||||||
export default {
|
export default {
|
||||||
plugins: {
|
plugins: {
|
||||||
"postcss-import": {},
|
|
||||||
"tailwindcss/nesting": {},
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
...(process.env.NODE_ENV === "production" ? { cssnano: {} } : {})
|
...(process.env.NODE_ENV === "production" ? { cssnano: {} } : {})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -119,7 +119,7 @@ export default defineComponent({
|
|||||||
"p-[6px]",
|
"p-[6px]",
|
||||||
"h-[30px]",
|
"h-[30px]",
|
||||||
"w-[30px]",
|
"w-[30px]",
|
||||||
"outline-none",
|
"outline-hidden",
|
||||||
"rounded-[4px]",
|
"rounded-[4px]",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"hover:bg-[rgba(0,0,0,0.06)]"
|
"hover:bg-[rgba(0,0,0,0.06)]"
|
||||||
|
@ -79,7 +79,7 @@ const fullscreenClass = computed(() => {
|
|||||||
"el-dialog__close",
|
"el-dialog__close",
|
||||||
"-translate-x-2",
|
"-translate-x-2",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"hover:!text-[red]"
|
"hover:text-[red]!"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -87,9 +87,9 @@ export default defineComponent({
|
|||||||
"text-black",
|
"text-black",
|
||||||
"dark:text-white",
|
"dark:text-white",
|
||||||
"duration-100",
|
"duration-100",
|
||||||
"hover:!text-primary",
|
"hover:text-primary!",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"outline-none"
|
"outline-hidden"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -255,12 +255,12 @@ export default defineComponent({
|
|||||||
<div
|
<div
|
||||||
{...attrs}
|
{...attrs}
|
||||||
class={[
|
class={[
|
||||||
"w-[99/100]",
|
"w-99/100",
|
||||||
"px-2",
|
"px-2",
|
||||||
"pb-2",
|
"pb-2",
|
||||||
"bg-bg_color",
|
"bg-bg_color",
|
||||||
isFullscreen.value
|
isFullscreen.value
|
||||||
? ["!w-full", "!h-full", "z-[2002]", "fixed", "inset-0"]
|
? ["w-full!", "h-full!", "z-2002", "fixed", "inset-0"]
|
||||||
: "mt-2"
|
: "mt-2"
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
@ -317,7 +317,7 @@ export default defineComponent({
|
|||||||
>
|
>
|
||||||
<div class={[topClass.value]}>
|
<div class={[topClass.value]}>
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
class="!-mr-1"
|
class="-mr-1!"
|
||||||
label="列展示"
|
label="列展示"
|
||||||
v-model={checkAll.value}
|
v-model={checkAll.value}
|
||||||
indeterminate={isIndeterminate.value}
|
indeterminate={isIndeterminate.value}
|
||||||
@ -347,8 +347,8 @@ export default defineComponent({
|
|||||||
class={[
|
class={[
|
||||||
"drag-btn w-[16px] mr-2",
|
"drag-btn w-[16px] mr-2",
|
||||||
isFixedColumn(item)
|
isFixedColumn(item)
|
||||||
? "!cursor-no-drop"
|
? "cursor-no-drop!"
|
||||||
: "!cursor-grab"
|
: "cursor-grab!"
|
||||||
]}
|
]}
|
||||||
onMouseenter={(event: {
|
onMouseenter={(event: {
|
||||||
preventDefault: () => void;
|
preventDefault: () => void;
|
||||||
|
@ -80,9 +80,9 @@ export default defineComponent({
|
|||||||
"text-black",
|
"text-black",
|
||||||
"dark:text-white",
|
"dark:text-white",
|
||||||
"duration-100",
|
"duration-100",
|
||||||
"hover:!text-primary",
|
"hover:text-primary!",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"outline-none"
|
"outline-hidden"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -248,12 +248,12 @@ export default defineComponent({
|
|||||||
<div
|
<div
|
||||||
{...attrs}
|
{...attrs}
|
||||||
class={[
|
class={[
|
||||||
"w-[99/100]",
|
"w-99/100",
|
||||||
"px-2",
|
"px-2",
|
||||||
"pb-2",
|
"pb-2",
|
||||||
"bg-bg_color",
|
"bg-bg_color",
|
||||||
isFullscreen.value
|
isFullscreen.value
|
||||||
? ["!w-full", "!h-full", "z-[2002]", "fixed", "inset-0"]
|
? ["w-full!", "h-full!", "z-2002", "fixed", "inset-0"]
|
||||||
: "mt-2"
|
: "mt-2"
|
||||||
]}
|
]}
|
||||||
>
|
>
|
||||||
@ -310,7 +310,7 @@ export default defineComponent({
|
|||||||
>
|
>
|
||||||
<div class={[topClass.value]}>
|
<div class={[topClass.value]}>
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
class="!-mr-1"
|
class="-mr-1!"
|
||||||
label="列展示"
|
label="列展示"
|
||||||
v-model={checkAll.value}
|
v-model={checkAll.value}
|
||||||
indeterminate={isIndeterminate.value}
|
indeterminate={isIndeterminate.value}
|
||||||
@ -340,8 +340,8 @@ export default defineComponent({
|
|||||||
class={[
|
class={[
|
||||||
"drag-btn w-[16px] mr-2",
|
"drag-btn w-[16px] mr-2",
|
||||||
isFixedColumn(item)
|
isFixedColumn(item)
|
||||||
? "!cursor-no-drop"
|
? "cursor-no-drop!"
|
||||||
: "!cursor-grab"
|
: "cursor-grab!"
|
||||||
]}
|
]}
|
||||||
onMouseenter={(event: {
|
onMouseenter={(event: {
|
||||||
preventDefault: () => void;
|
preventDefault: () => void;
|
||||||
|
@ -33,7 +33,7 @@ const { t, locale, translationCh, translationEn } = useTranslationLang();
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="navbar bg-[#fff] shadow-sm shadow-[rgba(0,21,41,0.08)]">
|
<div class="navbar bg-[#fff] shadow-xs shadow-[rgba(0,21,41,0.08)]">
|
||||||
<LaySidebarTopCollapse
|
<LaySidebarTopCollapse
|
||||||
v-if="device === 'mobile'"
|
v-if="device === 'mobile'"
|
||||||
class="hamburger-container"
|
class="hamburger-container"
|
||||||
@ -54,13 +54,13 @@ const { t, locale, translationCh, translationEn } = useTranslationLang();
|
|||||||
<!-- 国际化 -->
|
<!-- 国际化 -->
|
||||||
<el-dropdown id="header-translation" trigger="click">
|
<el-dropdown id="header-translation" trigger="click">
|
||||||
<GlobalizationIcon
|
<GlobalizationIcon
|
||||||
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-none"
|
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden"
|
||||||
/>
|
/>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="translation">
|
<el-dropdown-menu class="translation">
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'zh')"
|
:style="getDropdownItemStyle(locale, 'zh')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'zh')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
|
||||||
@click="translationCh"
|
@click="translationCh"
|
||||||
>
|
>
|
||||||
<IconifyIconOffline
|
<IconifyIconOffline
|
||||||
@ -72,7 +72,7 @@ const { t, locale, translationCh, translationEn } = useTranslationLang();
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'en')"
|
:style="getDropdownItemStyle(locale, 'en')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'en')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
|
||||||
@click="translationEn"
|
@click="translationEn"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'en'" class="check-en">
|
<span v-show="locale === 'en'" class="check-en">
|
||||||
|
@ -16,7 +16,7 @@ const iconClass = computed(() => {
|
|||||||
"flex",
|
"flex",
|
||||||
"justify-center",
|
"justify-center",
|
||||||
"items-center",
|
"items-center",
|
||||||
"outline-none",
|
"outline-hidden",
|
||||||
"rounded-[4px]",
|
"rounded-[4px]",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"transition-colors",
|
"transition-colors",
|
||||||
|
@ -429,7 +429,7 @@ onUnmounted(() => removeMatchMedia);
|
|||||||
height="20"
|
height="20"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class="flex-grow border-b border-dashed"
|
class="grow border-b border-dashed"
|
||||||
style="border-color: var(--el-color-primary)"
|
style="border-color: var(--el-color-primary)"
|
||||||
/>
|
/>
|
||||||
<IconifyIconOffline
|
<IconifyIconOffline
|
||||||
|
@ -84,13 +84,13 @@ onMounted(() => {
|
|||||||
<!-- 国际化 -->
|
<!-- 国际化 -->
|
||||||
<el-dropdown id="header-translation" trigger="click">
|
<el-dropdown id="header-translation" trigger="click">
|
||||||
<GlobalizationIcon
|
<GlobalizationIcon
|
||||||
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-none"
|
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden"
|
||||||
/>
|
/>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="translation">
|
<el-dropdown-menu class="translation">
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'zh')"
|
:style="getDropdownItemStyle(locale, 'zh')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'zh')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
|
||||||
@click="translationCh"
|
@click="translationCh"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'zh'" class="check-zh">
|
<span v-show="locale === 'zh'" class="check-zh">
|
||||||
@ -100,7 +100,7 @@ onMounted(() => {
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'en')"
|
:style="getDropdownItemStyle(locale, 'en')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'en')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
|
||||||
@click="translationEn"
|
@click="translationEn"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'en'" class="check-en">
|
<span v-show="locale === 'en'" class="check-en">
|
||||||
|
@ -105,13 +105,13 @@ watch(
|
|||||||
<!-- 国际化 -->
|
<!-- 国际化 -->
|
||||||
<el-dropdown id="header-translation" trigger="click">
|
<el-dropdown id="header-translation" trigger="click">
|
||||||
<GlobalizationIcon
|
<GlobalizationIcon
|
||||||
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-none"
|
class="navbar-bg-hover w-[40px] h-[48px] p-[11px] cursor-pointer outline-hidden"
|
||||||
/>
|
/>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="translation">
|
<el-dropdown-menu class="translation">
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'zh')"
|
:style="getDropdownItemStyle(locale, 'zh')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'zh')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
|
||||||
@click="translationCh"
|
@click="translationCh"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'zh'" class="check-zh">
|
<span v-show="locale === 'zh'" class="check-zh">
|
||||||
@ -121,7 +121,7 @@ watch(
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'en')"
|
:style="getDropdownItemStyle(locale, 'en')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'en')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
|
||||||
@click="translationEn"
|
@click="translationEn"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'en'" class="check-en">
|
<span v-show="locale === 'en'" class="check-en">
|
||||||
|
@ -105,12 +105,12 @@ watch(
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-breadcrumb class="!leading-[50px] select-none" separator="/">
|
<el-breadcrumb class="leading-[50px]! select-none" separator="/">
|
||||||
<transition-group name="breadcrumb">
|
<transition-group name="breadcrumb">
|
||||||
<el-breadcrumb-item
|
<el-breadcrumb-item
|
||||||
v-for="item in levelList"
|
v-for="item in levelList"
|
||||||
:key="item.path"
|
:key="item.path"
|
||||||
class="!inline !items-stretch"
|
class="inline! items-stretch!"
|
||||||
>
|
>
|
||||||
<a @click.prevent="handleLink(item)">
|
<a @click.prevent="handleLink(item)">
|
||||||
{{ transformI18n(item.meta.title) }}
|
{{ transformI18n(item.meta.title) }}
|
||||||
|
@ -144,7 +144,7 @@ function resolvePath(routePath) {
|
|||||||
item?.pathList?.length === 2)
|
item?.pathList?.length === 2)
|
||||||
"
|
"
|
||||||
truncated
|
truncated
|
||||||
class="!w-full !pl-4 !text-inherit"
|
class="w-full! pl-4! text-inherit!"
|
||||||
>
|
>
|
||||||
{{ transformI18n(onlyOneChild.meta.title) }}
|
{{ transformI18n(onlyOneChild.meta.title) }}
|
||||||
</el-text>
|
</el-text>
|
||||||
@ -156,7 +156,7 @@ function resolvePath(routePath) {
|
|||||||
offset: [0, -10],
|
offset: [0, -10],
|
||||||
theme: tooltipEffect
|
theme: tooltipEffect
|
||||||
}"
|
}"
|
||||||
class="!w-full !text-inherit"
|
class="w-full! text-inherit!"
|
||||||
>
|
>
|
||||||
{{ transformI18n(onlyOneChild.meta.title) }}
|
{{ transformI18n(onlyOneChild.meta.title) }}
|
||||||
</ReText>
|
</ReText>
|
||||||
@ -196,9 +196,9 @@ function resolvePath(routePath) {
|
|||||||
theme: tooltipEffect
|
theme: tooltipEffect
|
||||||
}"
|
}"
|
||||||
:class="{
|
:class="{
|
||||||
'!w-full': true,
|
'w-full!': true,
|
||||||
'!text-inherit': true,
|
'text-inherit!': true,
|
||||||
'!pl-4':
|
'pl-4!':
|
||||||
layout !== 'horizontal' &&
|
layout !== 'horizontal' &&
|
||||||
isCollapse &&
|
isCollapse &&
|
||||||
!toRaw(item.meta.icon) &&
|
!toRaw(item.meta.icon) &&
|
||||||
|
@ -32,7 +32,7 @@ const toggleClick = () => {
|
|||||||
>
|
>
|
||||||
<IconifyIconOffline
|
<IconifyIconOffline
|
||||||
:icon="isActive ? MenuFold : MenuUnfold"
|
:icon="isActive ? MenuFold : MenuUnfold"
|
||||||
class="inline-block align-middle hover:text-primary dark:hover:!text-white"
|
class="inline-block align-middle hover:text-primary dark:hover:text-white!"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -589,7 +589,7 @@ onBeforeUnmount(() => {
|
|||||||
>
|
>
|
||||||
<template v-if="showModel !== 'chrome'">
|
<template v-if="showModel !== 'chrome'">
|
||||||
<span
|
<span
|
||||||
class="tag-title dark:!text-text_color_primary dark:hover:!text-primary"
|
class="tag-title dark:text-text_color_primary! dark:hover:text-primary!"
|
||||||
>
|
>
|
||||||
{{ transformI18n(item.meta.title) }}
|
{{ transformI18n(item.meta.title) }}
|
||||||
</span>
|
</span>
|
||||||
|
@ -64,7 +64,7 @@ export function useNav() {
|
|||||||
|
|
||||||
const getDropdownItemClass = computed(() => {
|
const getDropdownItemClass = computed(() => {
|
||||||
return (locale, t) => {
|
return (locale, t) => {
|
||||||
return locale === t ? "" : "dark:hover:!text-primary";
|
return locale === t ? "" : "dark:hover:text-primary!";
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,21 +1,44 @@
|
|||||||
@tailwind base;
|
@import "tailwindcss";
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
|
|
||||||
@layer components {
|
@custom-variant dark (&:is(.dark *));
|
||||||
.flex-c {
|
|
||||||
@apply flex justify-center items-center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-ac {
|
@theme {
|
||||||
@apply flex justify-around items-center;
|
--color-bg_color: var(--el-bg-color);
|
||||||
}
|
--color-primary: var(--el-color-primary);
|
||||||
|
--color-text_color_primary: var(--el-text-color-primary);
|
||||||
|
--color-text_color_regular: var(--el-text-color-regular);
|
||||||
|
}
|
||||||
|
|
||||||
.flex-bc {
|
/*
|
||||||
@apply flex justify-between items-center;
|
The default border color has changed to `currentColor` in Tailwind CSS v4,
|
||||||
}
|
so we've added these compatibility styles to make sure everything still
|
||||||
|
looks the same as it did with Tailwind CSS v3.
|
||||||
|
|
||||||
.navbar-bg-hover {
|
If we ever want to remove these styles, we need to add an explicit border
|
||||||
@apply dark:text-white dark:hover:!bg-[#242424];
|
color utility to any element that depends on these defaults.
|
||||||
|
*/
|
||||||
|
@layer base {
|
||||||
|
*,
|
||||||
|
::after,
|
||||||
|
::before,
|
||||||
|
::backdrop,
|
||||||
|
::file-selector-button {
|
||||||
|
border-color: var(--color-gray-200, currentColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@utility flex-c {
|
||||||
|
@apply flex justify-center items-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@utility flex-ac {
|
||||||
|
@apply flex justify-around items-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@utility flex-bc {
|
||||||
|
@apply flex justify-between items-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
@utility navbar-bg-hover {
|
||||||
|
@apply dark:text-white dark:hover:bg-[#242424]!;
|
||||||
|
}
|
||||||
|
@ -76,7 +76,7 @@ function onReset() {
|
|||||||
immediate: true,
|
immediate: true,
|
||||||
timeout: 1000
|
timeout: 1000
|
||||||
}"
|
}"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
clearable
|
clearable
|
||||||
@clear="onInput"
|
@clear="onInput"
|
||||||
/>
|
/>
|
||||||
@ -86,7 +86,7 @@ function onReset() {
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="searchTwo"
|
v-model="searchTwo"
|
||||||
v-optimize="{ event: 'input', fn: onInputTwo, timeout: 400 }"
|
v-optimize="{ event: 'input', fn: onInputTwo, timeout: 400 }"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -100,7 +100,7 @@ function onReset() {
|
|||||||
timeout: 400,
|
timeout: 400,
|
||||||
params: { name: '小明', sex: '男' }
|
params: { name: '小明', sex: '男' }
|
||||||
}"
|
}"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -112,7 +112,7 @@ function onReset() {
|
|||||||
<el-input
|
<el-input
|
||||||
v-model="searchFour"
|
v-model="searchFour"
|
||||||
v-optimize:throttle="{ event: 'input', fn: onInputFour, timeout: 1000 }"
|
v-optimize:throttle="{ event: 'input', fn: onInputFour, timeout: 1000 }"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -125,7 +125,7 @@ function onReset() {
|
|||||||
fn: onInputFive,
|
fn: onInputFive,
|
||||||
params: { name: '小明', sex: '男' }
|
params: { name: '小明', sex: '男' }
|
||||||
}"
|
}"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@ -134,7 +134,7 @@ function onReset() {
|
|||||||
|
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
文本复制指令(双击输入框内容即可复制)
|
文本复制指令(双击输入框内容即可复制)
|
||||||
<el-input v-model="searchSix" v-copy="searchSix" class="!w-[200px]" />
|
<el-input v-model="searchSix" v-copy="searchSix" class="w-[200px]!" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
文本复制指令(自定义触发事件,单击复制)
|
文本复制指令(自定义触发事件,单击复制)
|
||||||
|
@ -83,7 +83,7 @@ const tableData: User[] = [
|
|||||||
<span class="font-medium">打印功能(报表、图表、图片)</span>
|
<span class="font-medium">打印功能(报表、图表、图片)</span>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="value"
|
v-model="value"
|
||||||
class="!w-[100px] mr-2"
|
class="w-[100px]! mr-2"
|
||||||
placeholder="Select"
|
placeholder="Select"
|
||||||
size="small"
|
size="small"
|
||||||
>
|
>
|
||||||
|
@ -53,7 +53,7 @@ onBeforeUnmount(() => {
|
|||||||
代码位置 src/views/able/watermark.vue
|
代码位置 src/views/able/watermark.vue
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<el-space wrap class="!mb-2">
|
<el-space wrap class="mb-2!">
|
||||||
<span> 请输入要创建水印的值:</span>
|
<span> 请输入要创建水印的值:</span>
|
||||||
<el-input v-model="value" class="mr-4" style="width: 200px" clearable />
|
<el-input v-model="value" class="mr-4" style="width: 200px" clearable />
|
||||||
<span>请选择要创建水印的颜色:</span>
|
<span>请选择要创建水印的颜色:</span>
|
||||||
|
@ -103,7 +103,7 @@ onBeforeUnmount(() => {
|
|||||||
</template>
|
</template>
|
||||||
<div
|
<div
|
||||||
v-loading="loading"
|
v-loading="loading"
|
||||||
class="w-8/12 !m-auto !mt-[20px]"
|
class="w-8/12 m-auto! mt-[20px]!"
|
||||||
element-loading-background="transparent"
|
element-loading-background="transparent"
|
||||||
>
|
>
|
||||||
<div ref="wavesurferRef" />
|
<div ref="wavesurferRef" />
|
||||||
|
@ -7,7 +7,7 @@ export function useColumns() {
|
|||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
cellRenderer: () => {
|
cellRenderer: () => {
|
||||||
return (
|
return (
|
||||||
<el-tag size="large" class="!text-base">
|
<el-tag size="large" class="text-base!">
|
||||||
{version}
|
{version}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
);
|
);
|
||||||
@ -18,7 +18,7 @@ export function useColumns() {
|
|||||||
minWidth: 120,
|
minWidth: 120,
|
||||||
cellRenderer: () => {
|
cellRenderer: () => {
|
||||||
return (
|
return (
|
||||||
<el-tag size="large" class="!text-base">
|
<el-tag size="large" class="text-base!">
|
||||||
{lastBuildTime}
|
{lastBuildTime}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
);
|
);
|
||||||
@ -29,7 +29,7 @@ export function useColumns() {
|
|||||||
minWidth: 140,
|
minWidth: 140,
|
||||||
cellRenderer: () => {
|
cellRenderer: () => {
|
||||||
return (
|
return (
|
||||||
<el-tag size="large" class="!text-base">
|
<el-tag size="large" class="text-base!">
|
||||||
{engines.node}
|
{engines.node}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
);
|
);
|
||||||
@ -40,7 +40,7 @@ export function useColumns() {
|
|||||||
minWidth: 140,
|
minWidth: 140,
|
||||||
cellRenderer: () => {
|
cellRenderer: () => {
|
||||||
return (
|
return (
|
||||||
<el-tag size="large" class="!text-base">
|
<el-tag size="large" class="text-base!">
|
||||||
{engines.pnpm}
|
{engines.pnpm}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
);
|
);
|
||||||
|
@ -70,12 +70,12 @@ getMine().then(res => {
|
|||||||
<el-container class="h-full">
|
<el-container class="h-full">
|
||||||
<el-aside
|
<el-aside
|
||||||
v-if="isOpen"
|
v-if="isOpen"
|
||||||
class="pure-account-settings overflow-hidden px-2 dark:!bg-[var(--el-bg-color)] border-r-[1px] border-[var(--pure-border-color)]"
|
class="pure-account-settings overflow-hidden px-2 dark:bg-(--el-bg-color)! border-r-[1px] border-[var(--pure-border-color)]"
|
||||||
:width="deviceDetection() ? '180px' : '240px'"
|
:width="deviceDetection() ? '180px' : '240px'"
|
||||||
>
|
>
|
||||||
<el-menu :default-active="witchPane" class="pure-account-settings-menu">
|
<el-menu :default-active="witchPane" class="pure-account-settings-menu">
|
||||||
<el-menu-item
|
<el-menu-item
|
||||||
class="hover:!transition-all hover:!duration-200 hover:!text-base !h-[50px]"
|
class="hover:transition-all! hover:duration-200! hover:text-base! h-[50px]!"
|
||||||
@click="router.go(-1)"
|
@click="router.go(-1)"
|
||||||
>
|
>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
@ -86,10 +86,10 @@ getMine().then(res => {
|
|||||||
<div class="flex items-center ml-8 mt-4 mb-4">
|
<div class="flex items-center ml-8 mt-4 mb-4">
|
||||||
<el-avatar :size="48" :src="userInfo.avatar" />
|
<el-avatar :size="48" :src="userInfo.avatar" />
|
||||||
<div class="ml-4 flex flex-col max-w-[130px]">
|
<div class="ml-4 flex flex-col max-w-[130px]">
|
||||||
<ReText class="font-bold !self-baseline">
|
<ReText class="font-bold self-baseline!">
|
||||||
{{ userInfo.nickname }}
|
{{ userInfo.nickname }}
|
||||||
</ReText>
|
</ReText>
|
||||||
<ReText class="!self-baseline" type="info">
|
<ReText class="self-baseline!" type="info">
|
||||||
{{ userInfo.username }}
|
{{ userInfo.username }}
|
||||||
</ReText>
|
</ReText>
|
||||||
</div>
|
</div>
|
||||||
|
@ -36,6 +36,6 @@ watch(animate, () => {
|
|||||||
代码位置 src/views/components/animatecss.vue
|
代码位置 src/views/components/animatecss.vue
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<ReAnimateSelector v-model="animate" class="!w-[200px]" />
|
<ReAnimateSelector v-model="animate" class="w-[200px]!" />
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
@ -221,7 +221,7 @@ watch(size, val =>
|
|||||||
<p>可控制间距的按钮样式</p>
|
<p>可控制间距的按钮样式</p>
|
||||||
<el-slider
|
<el-slider
|
||||||
v-model="spaceSize"
|
v-model="spaceSize"
|
||||||
class="mb-2 !w-[300px]"
|
class="mb-2 w-[300px]!"
|
||||||
:show-tooltip="false"
|
:show-tooltip="false"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
/>
|
/>
|
||||||
|
@ -164,7 +164,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value"
|
v-model="value"
|
||||||
type="date"
|
type="date"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:disabled-date="disabledDate"
|
:disabled-date="disabledDate"
|
||||||
:shortcuts="shortcuts"
|
:shortcuts="shortcuts"
|
||||||
@ -180,7 +180,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value1"
|
v-model="value1"
|
||||||
type="week"
|
type="week"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
format="YYYY年第ww周"
|
format="YYYY年第ww周"
|
||||||
placeholder="选择某年中的某周"
|
placeholder="选择某年中的某周"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
@ -189,7 +189,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value2"
|
v-model="value2"
|
||||||
type="month"
|
type="month"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="选择某月"
|
placeholder="选择某月"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
@ -197,7 +197,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value3"
|
v-model="value3"
|
||||||
type="year"
|
type="year"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="选择某年"
|
placeholder="选择某年"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
@ -205,7 +205,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value4"
|
v-model="value4"
|
||||||
type="dates"
|
type="dates"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="选择多个日期"
|
placeholder="选择多个日期"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
@ -216,7 +216,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value5"
|
v-model="value5"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
class="!w-[240px]"
|
class="w-[240px]!"
|
||||||
unlink-panels
|
unlink-panels
|
||||||
range-separator="至"
|
range-separator="至"
|
||||||
start-placeholder="开始时间"
|
start-placeholder="开始时间"
|
||||||
@ -261,7 +261,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value7"
|
v-model="value7"
|
||||||
type="date"
|
type="date"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="请选择日期"
|
placeholder="请选择日期"
|
||||||
format="YYYY/MM/DD"
|
format="YYYY/MM/DD"
|
||||||
:value-format="dateFormat"
|
:value-format="dateFormat"
|
||||||
@ -275,7 +275,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value8"
|
v-model="value8"
|
||||||
type="date"
|
type="date"
|
||||||
class="!w-[160px]"
|
class="w-[160px]!"
|
||||||
placeholder="请选择日期"
|
placeholder="请选择日期"
|
||||||
:prefix-icon="useRenderIcon('twemoji:spiral-calendar')"
|
:prefix-icon="useRenderIcon('twemoji:spiral-calendar')"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
|
@ -190,7 +190,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value"
|
v-model="value"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
placeholder="请选择日期时间"
|
placeholder="请选择日期时间"
|
||||||
:shortcuts="shortcuts"
|
:shortcuts="shortcuts"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
@ -213,7 +213,7 @@ watch(size, val =>
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="value1"
|
v-model="value1"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
placeholder="请选择日期时间"
|
placeholder="请选择日期时间"
|
||||||
format="YYYY/MM/DD hh:mm:ss"
|
format="YYYY/MM/DD hh:mm:ss"
|
||||||
:value-format="datetimeFormat"
|
:value-format="datetimeFormat"
|
||||||
|
@ -28,14 +28,14 @@ const newFormInline = ref(props.formInline);
|
|||||||
<el-form-item label="姓名">
|
<el-form-item label="姓名">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="newFormInline.user"
|
v-model="newFormInline.user"
|
||||||
class="!w-[220px]"
|
class="w-[220px]!"
|
||||||
placeholder="请输入姓名"
|
placeholder="请输入姓名"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="城市">
|
<el-form-item label="城市">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="newFormInline.region"
|
v-model="newFormInline.region"
|
||||||
class="!w-[220px]"
|
class="w-[220px]!"
|
||||||
placeholder="请选择城市"
|
placeholder="请选择城市"
|
||||||
>
|
>
|
||||||
<el-option label="上海" value="上海" />
|
<el-option label="上海" value="上海" />
|
||||||
|
@ -18,5 +18,5 @@ const data = useVModel(props, "data", emit);
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-input v-model="data" class="!w-[220px]" placeholder="请输入内容" />
|
<el-input v-model="data" class="w-[220px]!" placeholder="请输入内容" />
|
||||||
</template>
|
</template>
|
||||||
|
@ -28,14 +28,14 @@ const newFormInline = ref(props.formInline);
|
|||||||
<el-form-item label="姓名">
|
<el-form-item label="姓名">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="newFormInline.user"
|
v-model="newFormInline.user"
|
||||||
class="!w-[220px]"
|
class="w-[220px]!"
|
||||||
placeholder="请输入姓名"
|
placeholder="请输入姓名"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="城市">
|
<el-form-item label="城市">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="newFormInline.region"
|
v-model="newFormInline.region"
|
||||||
class="!w-[220px]"
|
class="w-[220px]!"
|
||||||
placeholder="请选择城市"
|
placeholder="请选择城市"
|
||||||
>
|
>
|
||||||
<el-option label="上海" value="上海" />
|
<el-option label="上海" value="上海" />
|
||||||
|
@ -18,5 +18,5 @@ const data = useVModel(props, "data", emit);
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<el-input v-model="data" class="!w-[220px]" placeholder="请输入内容" />
|
<el-input v-model="data" class="w-[220px]!" placeholder="请输入内容" />
|
||||||
</template>
|
</template>
|
||||||
|
@ -156,7 +156,7 @@ const handleInputConfirm = () => {
|
|||||||
v-if="inputVisible"
|
v-if="inputVisible"
|
||||||
ref="InputRef"
|
ref="InputRef"
|
||||||
v-model="inputValue"
|
v-model="inputValue"
|
||||||
class="ml-1 !w-20"
|
class="ml-1 w-20!"
|
||||||
size="small"
|
size="small"
|
||||||
@keyup.enter="handleInputConfirm"
|
@keyup.enter="handleInputConfirm"
|
||||||
@blur="handleInputConfirm"
|
@blur="handleInputConfirm"
|
||||||
|
@ -91,7 +91,7 @@ const endTime = ref("");
|
|||||||
<el-time-picker
|
<el-time-picker
|
||||||
v-model="value"
|
v-model="value"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
/>
|
/>
|
||||||
@ -100,7 +100,7 @@ const endTime = ref("");
|
|||||||
v-model="value1"
|
v-model="value1"
|
||||||
arrow-control
|
arrow-control
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
:size="dynamicSize"
|
:size="dynamicSize"
|
||||||
:disabled="size === 'disabled'"
|
:disabled="size === 'disabled'"
|
||||||
/>
|
/>
|
||||||
@ -110,7 +110,7 @@ const endTime = ref("");
|
|||||||
<p class="mb-2">限制时间选择范围</p>
|
<p class="mb-2">限制时间选择范围</p>
|
||||||
<el-time-picker
|
<el-time-picker
|
||||||
v-model="value2"
|
v-model="value2"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
:disabled-hours="disabledHours"
|
:disabled-hours="disabledHours"
|
||||||
:disabled-minutes="disabledMinutes"
|
:disabled-minutes="disabledMinutes"
|
||||||
:disabled-seconds="disabledSeconds"
|
:disabled-seconds="disabledSeconds"
|
||||||
@ -123,7 +123,7 @@ const endTime = ref("");
|
|||||||
<p class="mb-2">任意时间范围</p>
|
<p class="mb-2">任意时间范围</p>
|
||||||
<el-time-picker
|
<el-time-picker
|
||||||
v-model="value3"
|
v-model="value3"
|
||||||
class="!w-[220px]"
|
class="w-[220px]!"
|
||||||
is-range
|
is-range
|
||||||
range-separator="至"
|
range-separator="至"
|
||||||
start-placeholder="开始时间"
|
start-placeholder="开始时间"
|
||||||
@ -153,7 +153,7 @@ const endTime = ref("");
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="value4"
|
v-model="value4"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
start="08:30"
|
start="08:30"
|
||||||
step="00:15"
|
step="00:15"
|
||||||
end="18:30"
|
end="18:30"
|
||||||
@ -165,7 +165,7 @@ const endTime = ref("");
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="value5"
|
v-model="value5"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
start="00:00"
|
start="00:00"
|
||||||
step="00:30"
|
step="00:30"
|
||||||
end="23:59"
|
end="23:59"
|
||||||
@ -179,7 +179,7 @@ const endTime = ref("");
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="startTime"
|
v-model="startTime"
|
||||||
placeholder="开始时间"
|
placeholder="开始时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
:max-time="endTime"
|
:max-time="endTime"
|
||||||
start="08:30"
|
start="08:30"
|
||||||
step="00:15"
|
step="00:15"
|
||||||
@ -190,7 +190,7 @@ const endTime = ref("");
|
|||||||
<el-time-select
|
<el-time-select
|
||||||
v-model="endTime"
|
v-model="endTime"
|
||||||
placeholder="结束时间"
|
placeholder="结束时间"
|
||||||
class="!w-[140px]"
|
class="w-[140px]!"
|
||||||
:min-time="startTime"
|
:min-time="startTime"
|
||||||
start="08:30"
|
start="08:30"
|
||||||
step="00:15"
|
step="00:15"
|
||||||
|
@ -58,7 +58,7 @@ const resetForm = formEl => {
|
|||||||
drag
|
drag
|
||||||
multiple
|
multiple
|
||||||
action="#"
|
action="#"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
:auto-upload="false"
|
:auto-upload="false"
|
||||||
>
|
>
|
||||||
<div class="el-upload__text">
|
<div class="el-upload__text">
|
||||||
@ -79,7 +79,7 @@ const resetForm = formEl => {
|
|||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="validateForm.date"
|
v-model="validateForm.date"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
placeholder="请选择日期时间"
|
placeholder="请选择日期时间"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss"
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
/>
|
/>
|
||||||
|
@ -173,7 +173,7 @@ const onDownload = () => {
|
|||||||
id="pure-upload-item"
|
id="pure-upload-item"
|
||||||
:class="[
|
:class="[
|
||||||
'el-upload-list__item-actions',
|
'el-upload-list__item-actions',
|
||||||
fileList.length > 1 && '!cursor-move'
|
fileList.length > 1 && 'cursor-move!'
|
||||||
]"
|
]"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
@ -24,7 +24,7 @@ const filteredItems = computed(() => {
|
|||||||
水平模式 horizontal
|
水平模式 horizontal
|
||||||
<el-input
|
<el-input
|
||||||
v-model="search"
|
v-model="search"
|
||||||
class="mr-2 !w-[1/1.5]"
|
class="mr-2 w-[1/1.5]!"
|
||||||
clearable
|
clearable
|
||||||
placeholder="Filter..."
|
placeholder="Filter..."
|
||||||
style="width: 300px"
|
style="width: 300px"
|
||||||
|
@ -24,7 +24,7 @@ const filteredItems = computed(() => {
|
|||||||
垂直模式 vertical
|
垂直模式 vertical
|
||||||
<el-input
|
<el-input
|
||||||
v-model="search"
|
v-model="search"
|
||||||
class="!w-[350px]"
|
class="w-[350px]!"
|
||||||
clearable
|
clearable
|
||||||
placeholder="Filter..."
|
placeholder="Filter..."
|
||||||
/>
|
/>
|
||||||
|
@ -135,13 +135,13 @@ watch(loginDay, value => {
|
|||||||
<!-- 国际化 -->
|
<!-- 国际化 -->
|
||||||
<el-dropdown trigger="click">
|
<el-dropdown trigger="click">
|
||||||
<globalization
|
<globalization
|
||||||
class="hover:text-primary hover:!bg-[transparent] w-[20px] h-[20px] ml-1.5 cursor-pointer outline-none duration-300"
|
class="hover:text-primary hover:bg-[transparent]! w-[20px] h-[20px] ml-1.5 cursor-pointer outline-hidden duration-300"
|
||||||
/>
|
/>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu class="translation">
|
<el-dropdown-menu class="translation">
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'zh')"
|
:style="getDropdownItemStyle(locale, 'zh')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'zh')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'zh')]"
|
||||||
@click="translationCh"
|
@click="translationCh"
|
||||||
>
|
>
|
||||||
<IconifyIconOffline
|
<IconifyIconOffline
|
||||||
@ -153,7 +153,7 @@ watch(loginDay, value => {
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item
|
<el-dropdown-item
|
||||||
:style="getDropdownItemStyle(locale, 'en')"
|
:style="getDropdownItemStyle(locale, 'en')"
|
||||||
:class="['dark:!text-white', getDropdownItemClass(locale, 'en')]"
|
:class="['dark:text-white!', getDropdownItemClass(locale, 'en')]"
|
||||||
@click="translationEn"
|
@click="translationEn"
|
||||||
>
|
>
|
||||||
<span v-show="locale === 'en'" class="check-en">
|
<span v-show="locale === 'en'" class="check-en">
|
||||||
@ -173,7 +173,7 @@ watch(loginDay, value => {
|
|||||||
<div class="login-form">
|
<div class="login-form">
|
||||||
<avatar class="avatar" />
|
<avatar class="avatar" />
|
||||||
<Motion>
|
<Motion>
|
||||||
<h2 class="outline-none">
|
<h2 class="outline-hidden">
|
||||||
<TypeIt
|
<TypeIt
|
||||||
:options="{ strings: [title], cursor: false, speed: 100 }"
|
:options="{ strings: [title], cursor: false, speed: 100 }"
|
||||||
/>
|
/>
|
||||||
|
@ -39,14 +39,14 @@ const {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="用户名" prop="username">
|
<el-form-item label="用户名" prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.username"
|
v-model="form.username"
|
||||||
placeholder="请输入用户名"
|
placeholder="请输入用户名"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[150px]"
|
class="w-[150px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登录状态" prop="status">
|
<el-form-item label="登录状态" prop="status">
|
||||||
@ -54,7 +54,7 @@ const {
|
|||||||
v-model="form.status"
|
v-model="form.status"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[150px]"
|
class="w-[150px]!"
|
||||||
>
|
>
|
||||||
<el-option label="成功" value="1" />
|
<el-option label="成功" value="1" />
|
||||||
<el-option label="失败" value="0" />
|
<el-option label="失败" value="0" />
|
||||||
|
@ -39,14 +39,14 @@ const {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="所属模块" prop="module">
|
<el-form-item label="所属模块" prop="module">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.module"
|
v-model="form.module"
|
||||||
placeholder="请输入所属模块"
|
placeholder="请输入所属模块"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[170px]"
|
class="w-[170px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="操作状态" prop="status">
|
<el-form-item label="操作状态" prop="status">
|
||||||
@ -54,7 +54,7 @@ const {
|
|||||||
v-model="form.status"
|
v-model="form.status"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[150px]"
|
class="w-[150px]!"
|
||||||
>
|
>
|
||||||
<el-option label="成功" value="1" />
|
<el-option label="成功" value="1" />
|
||||||
<el-option label="失败" value="0" />
|
<el-option label="失败" value="0" />
|
||||||
|
@ -42,14 +42,14 @@ const {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="所属模块" prop="module">
|
<el-form-item label="所属模块" prop="module">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.module"
|
v-model="form.module"
|
||||||
placeholder="请输入所属模块"
|
placeholder="请输入所属模块"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[170px]"
|
class="w-[170px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="请求时间" prop="requestTime">
|
<el-form-item label="请求时间" prop="requestTime">
|
||||||
@ -137,7 +137,7 @@ const {
|
|||||||
>
|
>
|
||||||
<template #operation="{ row }">
|
<template #operation="{ row }">
|
||||||
<el-button
|
<el-button
|
||||||
class="reset-margin !outline-none"
|
class="reset-margin outline-hidden!"
|
||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
:size="size"
|
:size="size"
|
||||||
|
@ -33,14 +33,14 @@ const {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="用户名" prop="username">
|
<el-form-item label="用户名" prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.username"
|
v-model="form.username"
|
||||||
placeholder="请输入用户名"
|
placeholder="请输入用户名"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -60,7 +60,7 @@ function onChange() {
|
|||||||
代码位置 src/views/permission/page/index.vue
|
代码位置 src/views/permission/page/index.vue
|
||||||
</el-link>
|
</el-link>
|
||||||
</template>
|
</template>
|
||||||
<el-select v-model="username" class="!w-[160px]" @change="onChange">
|
<el-select v-model="username" class="w-[160px]!" @change="onChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in options"
|
v-for="item in options"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
|
@ -104,7 +104,7 @@ defineExpose({ getRef });
|
|||||||
<el-form-item label="排序">
|
<el-form-item label="排序">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="newFormInline.sort"
|
v-model="newFormInline.sort"
|
||||||
class="!w-full"
|
class="w-full!"
|
||||||
:min="0"
|
:min="0"
|
||||||
:max="9999"
|
:max="9999"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
|
@ -39,14 +39,14 @@ function onFullscreen() {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="部门名称:" prop="name">
|
<el-form-item label="部门名称:" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
placeholder="请输入部门名称"
|
placeholder="请输入部门名称"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态:" prop="status">
|
<el-form-item label="状态:" prop="status">
|
||||||
@ -54,7 +54,7 @@ function onFullscreen() {
|
|||||||
v-model="form.status"
|
v-model="form.status"
|
||||||
placeholder="请选择状态"
|
placeholder="请选择状态"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
>
|
>
|
||||||
<el-option label="启用" :value="1" />
|
<el-option label="启用" :value="1" />
|
||||||
<el-option label="停用" :value="0" />
|
<el-option label="停用" :value="0" />
|
||||||
|
@ -142,7 +142,7 @@ defineExpose({ getRef });
|
|||||||
<el-form-item label="菜单排序">
|
<el-form-item label="菜单排序">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="newFormInline.rank"
|
v-model="newFormInline.rank"
|
||||||
class="!w-full"
|
class="w-full!"
|
||||||
:min="1"
|
:min="1"
|
||||||
:max="9999"
|
:max="9999"
|
||||||
controls-position="right"
|
controls-position="right"
|
||||||
|
@ -40,14 +40,14 @@ function onFullscreen() {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="菜单名称:" prop="title">
|
<el-form-item label="菜单名称:" prop="title">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.title"
|
v-model="form.title"
|
||||||
placeholder="请输入菜单名称"
|
placeholder="请输入菜单名称"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -31,7 +31,7 @@ const iconClass = computed(() => {
|
|||||||
"flex",
|
"flex",
|
||||||
"justify-center",
|
"justify-center",
|
||||||
"items-center",
|
"items-center",
|
||||||
"outline-none",
|
"outline-hidden",
|
||||||
"rounded-[4px]",
|
"rounded-[4px]",
|
||||||
"cursor-pointer",
|
"cursor-pointer",
|
||||||
"transition-colors",
|
"transition-colors",
|
||||||
@ -96,14 +96,14 @@ onMounted(() => {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="角色名称:" prop="name">
|
<el-form-item label="角色名称:" prop="name">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
placeholder="请输入角色名称"
|
placeholder="请输入角色名称"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色标识:" prop="code">
|
<el-form-item label="角色标识:" prop="code">
|
||||||
@ -111,7 +111,7 @@ onMounted(() => {
|
|||||||
v-model="form.code"
|
v-model="form.code"
|
||||||
placeholder="请输入角色标识"
|
placeholder="请输入角色标识"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态:" prop="status">
|
<el-form-item label="状态:" prop="status">
|
||||||
@ -119,7 +119,7 @@ onMounted(() => {
|
|||||||
v-model="form.status"
|
v-model="form.status"
|
||||||
placeholder="请选择状态"
|
placeholder="请选择状态"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
>
|
>
|
||||||
<el-option label="已启用" value="1" />
|
<el-option label="已启用" value="1" />
|
||||||
<el-option label="已停用" value="0" />
|
<el-option label="已停用" value="0" />
|
||||||
@ -145,7 +145,7 @@ onMounted(() => {
|
|||||||
:class="['flex', deviceDetection() ? 'flex-wrap' : '']"
|
:class="['flex', deviceDetection() ? 'flex-wrap' : '']"
|
||||||
>
|
>
|
||||||
<PureTableBar
|
<PureTableBar
|
||||||
:class="[isShow && !deviceDetection() ? '!w-[60vw]' : 'w-full']"
|
:class="[isShow && !deviceDetection() ? 'w-[60vw]!' : 'w-full']"
|
||||||
style="transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1)"
|
style="transition: width 220ms cubic-bezier(0.4, 0, 0.2, 1)"
|
||||||
title="角色管理(仅演示,操作后不生效)"
|
title="角色管理(仅演示,操作后不生效)"
|
||||||
:columns="columns"
|
:columns="columns"
|
||||||
@ -263,7 +263,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="isShow"
|
v-if="isShow"
|
||||||
class="!min-w-[calc(100vw-60vw-268px)] w-full mt-2 px-2 pb-2 bg-bg_color ml-2 overflow-auto"
|
class="min-w-[calc(100vw-60vw-268px)]! w-full mt-2 px-2 pb-2 bg-bg_color ml-2 overflow-auto"
|
||||||
>
|
>
|
||||||
<div class="flex justify-between w-full px-3 pt-5 pb-4">
|
<div class="flex justify-between w-full px-3 pt-5 pb-4">
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
@ -94,11 +94,11 @@ export function useRole(treeRef: Ref) {
|
|||||||
];
|
];
|
||||||
// const buttonClass = computed(() => {
|
// const buttonClass = computed(() => {
|
||||||
// return [
|
// return [
|
||||||
// "!h-[20px]",
|
// "h-[20px]!",
|
||||||
// "reset-margin",
|
// "reset-margin",
|
||||||
// "!text-gray-500",
|
// "text-gray-500!",
|
||||||
// "dark:!text-white",
|
// "dark:text-white!",
|
||||||
// "dark:hover:!text-primary"
|
// "dark:hover:text-primary!"
|
||||||
// ];
|
// ];
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
@ -66,14 +66,14 @@ const {
|
|||||||
ref="formRef"
|
ref="formRef"
|
||||||
:inline="true"
|
:inline="true"
|
||||||
:model="form"
|
:model="form"
|
||||||
class="search-form bg-bg_color w-[99/100] pl-8 pt-[12px] overflow-auto"
|
class="search-form bg-bg_color w-99/100 pl-8 pt-[12px] overflow-auto"
|
||||||
>
|
>
|
||||||
<el-form-item label="用户名称:" prop="username">
|
<el-form-item label="用户名称:" prop="username">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="form.username"
|
v-model="form.username"
|
||||||
placeholder="请输入用户名称"
|
placeholder="请输入用户名称"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="手机号码:" prop="phone">
|
<el-form-item label="手机号码:" prop="phone">
|
||||||
@ -81,7 +81,7 @@ const {
|
|||||||
v-model="form.phone"
|
v-model="form.phone"
|
||||||
placeholder="请输入手机号码"
|
placeholder="请输入手机号码"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态:" prop="status">
|
<el-form-item label="状态:" prop="status">
|
||||||
@ -89,7 +89,7 @@ const {
|
|||||||
v-model="form.status"
|
v-model="form.status"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
class="!w-[180px]"
|
class="w-[180px]!"
|
||||||
>
|
>
|
||||||
<el-option label="已开启" value="1" />
|
<el-option label="已开启" value="1" />
|
||||||
<el-option label="已关闭" value="0" />
|
<el-option label="已关闭" value="0" />
|
||||||
|
@ -35,12 +35,12 @@ const defaultProps = {
|
|||||||
};
|
};
|
||||||
const buttonClass = computed(() => {
|
const buttonClass = computed(() => {
|
||||||
return [
|
return [
|
||||||
"!h-[20px]",
|
"h-[20px]!",
|
||||||
"!text-sm",
|
"text-sm!",
|
||||||
"reset-margin",
|
"reset-margin",
|
||||||
"!text-[var(--el-text-color-regular)]",
|
"text-(--el-text-color-regular)!",
|
||||||
"dark:!text-white",
|
"dark:text-white!",
|
||||||
"dark:hover:!text-primary"
|
"dark:hover:text-primary!"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -166,7 +166,7 @@ defineExpose({ onTreeReset });
|
|||||||
<template #default="{ node, data }">
|
<template #default="{ node, data }">
|
||||||
<div
|
<div
|
||||||
:class="[
|
:class="[
|
||||||
'rounded',
|
'rounded-sm',
|
||||||
'flex',
|
'flex',
|
||||||
'items-center',
|
'items-center',
|
||||||
'select-none',
|
'select-none',
|
||||||
@ -194,7 +194,7 @@ defineExpose({ onTreeReset });
|
|||||||
: Dept
|
: Dept
|
||||||
"
|
"
|
||||||
/>
|
/>
|
||||||
<span class="!w-[120px] !truncate" :title="node.label">
|
<span class="w-[120px]! truncate!" :title="node.label">
|
||||||
{{ node.label }}
|
{{ node.label }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -163,11 +163,11 @@ export function useUser(tableRef: Ref, treeRef: Ref) {
|
|||||||
];
|
];
|
||||||
const buttonClass = computed(() => {
|
const buttonClass = computed(() => {
|
||||||
return [
|
return [
|
||||||
"!h-[20px]",
|
"h-[20px]!",
|
||||||
"reset-margin",
|
"reset-margin",
|
||||||
"!text-gray-500",
|
"text-gray-500!",
|
||||||
"dark:!text-white",
|
"dark:text-white!",
|
||||||
"dark:hover:!text-primary"
|
"dark:hover:text-primary!"
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
// 重置的新密码
|
// 重置的新密码
|
||||||
|
@ -12,7 +12,7 @@ const { columns, dataList } = useColumns();
|
|||||||
</code>
|
</code>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
<pure-table
|
<pure-table
|
||||||
class="!w-[30vw]"
|
class="w-[30vw]!"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
border
|
border
|
||||||
:data="dataList"
|
:data="dataList"
|
||||||
|
@ -25,7 +25,7 @@ const {
|
|||||||
<el-select
|
<el-select
|
||||||
ref="selectRef"
|
ref="selectRef"
|
||||||
v-model="selectValue"
|
v-model="selectValue"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
clearable
|
clearable
|
||||||
multiple
|
multiple
|
||||||
@ -41,7 +41,7 @@ const {
|
|||||||
<el-form-item prop="sexValue">
|
<el-form-item prop="sexValue">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="searchForm.sexValue"
|
v-model="searchForm.sexValue"
|
||||||
class="!w-[120px]"
|
class="w-[120px]!"
|
||||||
placeholder="请选择性别"
|
placeholder="请选择性别"
|
||||||
:teleported="false"
|
:teleported="false"
|
||||||
clearable
|
clearable
|
||||||
@ -57,14 +57,14 @@ const {
|
|||||||
<el-form-item prop="searchDate">
|
<el-form-item prop="searchDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="searchForm.searchDate"
|
v-model="searchForm.searchDate"
|
||||||
class="!w-[150px]"
|
class="w-[150px]!"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="请选择日期"
|
placeholder="请选择日期"
|
||||||
format="YYYY/MM/DD"
|
format="YYYY/MM/DD"
|
||||||
value-format="YYYY-MM-D"
|
value-format="YYYY-MM-D"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item class="float-right !mr-0">
|
<el-form-item class="float-right mr-0!">
|
||||||
<el-button type="primary" text bg @click="onSearch">
|
<el-button type="primary" text bg @click="onSearch">
|
||||||
查询
|
查询
|
||||||
</el-button>
|
</el-button>
|
||||||
|
@ -17,7 +17,7 @@ const {
|
|||||||
<el-select
|
<el-select
|
||||||
ref="selectRef"
|
ref="selectRef"
|
||||||
v-model="selectValue"
|
v-model="selectValue"
|
||||||
class="!w-[200px]"
|
class="w-[200px]!"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
value-key="id"
|
value-key="id"
|
||||||
clearable
|
clearable
|
||||||
|
@ -93,7 +93,7 @@ function onCloseTags() {
|
|||||||
<el-divider />
|
<el-divider />
|
||||||
<el-tree-select
|
<el-tree-select
|
||||||
v-model="currentValues"
|
v-model="currentValues"
|
||||||
class="!w-[300px]"
|
class="w-[300px]!"
|
||||||
node-key="uniqueId"
|
node-key="uniqueId"
|
||||||
placeholder="请选择要关闭的标签"
|
placeholder="请选择要关闭的标签"
|
||||||
clearable
|
clearable
|
||||||
|
@ -80,11 +80,11 @@ const optionsBasis: Array<OptionsType> = [
|
|||||||
</div>
|
</div>
|
||||||
<ChartLine
|
<ChartLine
|
||||||
v-if="item.data.length > 1"
|
v-if="item.data.length > 1"
|
||||||
class="!w-1/2"
|
class="w-1/2!"
|
||||||
:color="item.color"
|
:color="item.color"
|
||||||
:data="item.data"
|
:data="item.data"
|
||||||
/>
|
/>
|
||||||
<ChartRound v-else class="!w-1/2" />
|
<ChartRound v-else class="w-1/2!" />
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</re-col>
|
</re-col>
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
import type { Config } from "tailwindcss";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
darkMode: "class",
|
|
||||||
corePlugins: {
|
|
||||||
preflight: false
|
|
||||||
},
|
|
||||||
content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
bg_color: "var(--el-bg-color)",
|
|
||||||
primary: "var(--el-color-primary)",
|
|
||||||
text_color_primary: "var(--el-text-color-primary)",
|
|
||||||
text_color_regular: "var(--el-text-color-regular)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} satisfies Config;
|
|
Loading…
x
Reference in New Issue
Block a user