mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-11-03 13:44:47 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c84c447f3e | ||
|
|
53c715873c | ||
|
|
c80818d792 | ||
|
|
17936d476c |
@@ -1,3 +1,11 @@
|
||||
# 3.9.2 (2022-12-03)
|
||||
|
||||
### 🍏 Perf
|
||||
|
||||
- Global coverage of `el-dialog`, `el-drawer`, `el-message-box`, `el-notification` components of `element-plus`The style of the close icon in the upper right corner makes it more vivid [specific modification Code record](https://github.com/xiaoxian521/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
|
||||
- The packaging output information is compatible with different packaging output paths
|
||||
- Optimize some animations
|
||||
|
||||
# 3.9.1 (2022-12-02)
|
||||
|
||||
### 🎫 Feat
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
# 3.9.2 (2022-12-03)
|
||||
|
||||
### 🍏 Perf
|
||||
|
||||
- Global coverage of `el-dialog`, `el-drawer`, `el-message-box`, `el-notification` components of `element-plus`The style of the close icon in the upper right corner makes it more vivid [specific modification Code record](https://github.com/xiaoxian521/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
|
||||
- The packaging output information is compatible with different packaging output paths
|
||||
- Optimize some animations
|
||||
|
||||
# 3.9.1 (2022-12-02)
|
||||
|
||||
### 🎫 Feat
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
# 3.9.2 (2022-12-03)
|
||||
|
||||
### 🍏 Perf
|
||||
|
||||
- 全局覆盖 `element-plus` 的 `el-dialog`、`el-drawer`、`el-message-box`、`el-notification` 组件右上角关闭图标的样式,使其表现更鲜明 [具体代码修改记录](https://github.com/xiaoxian521/vue-pure-admin/commit/c80818d792276666aaea4b18413a0f08777f2ed1)
|
||||
- 打包输出信息兼容不同打包输出路径
|
||||
- 优化一些动画
|
||||
|
||||
# 3.9.1 (2022-12-02)
|
||||
|
||||
### 🎫 Feat
|
||||
|
||||
@@ -9,10 +9,12 @@ export function viteBuildInfo(): Plugin {
|
||||
let config: { command: string };
|
||||
let startTime: Dayjs;
|
||||
let endTime: Dayjs;
|
||||
let outDir: string;
|
||||
return {
|
||||
name: "vite:buildInfo",
|
||||
configResolved(resolvedConfig: { command: string }) {
|
||||
configResolved(resolvedConfig) {
|
||||
config = resolvedConfig;
|
||||
outDir = resolvedConfig.build?.outDir ?? "dist";
|
||||
},
|
||||
buildStart() {
|
||||
console.log(
|
||||
@@ -32,6 +34,7 @@ export function viteBuildInfo(): Plugin {
|
||||
if (config.command === "build") {
|
||||
endTime = dayjs(new Date());
|
||||
getPackageSize({
|
||||
folder: outDir,
|
||||
callback: (size: string) => {
|
||||
console.log(
|
||||
bold(
|
||||
|
||||
18
package.json
18
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vue-pure-admin",
|
||||
"version": "3.9.1",
|
||||
"version": "3.9.2",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "NODE_OPTIONS=--max-old-space-size=4096 vite",
|
||||
@@ -35,8 +35,8 @@
|
||||
"@logicflow/core": "^1.1.30",
|
||||
"@logicflow/extension": "^1.1.30",
|
||||
"@pureadmin/descriptions": "^1.1.0",
|
||||
"@pureadmin/table": "^1.8.1",
|
||||
"@pureadmin/utils": "^1.7.1",
|
||||
"@pureadmin/table": "^1.8.2",
|
||||
"@pureadmin/utils": "^1.7.2",
|
||||
"@vueuse/core": "^9.6.0",
|
||||
"@vueuse/motion": "2.0.0-beta.12",
|
||||
"@wangeditor/editor": "^5.1.21",
|
||||
@@ -56,27 +56,27 @@
|
||||
"lodash": "^4.17.21",
|
||||
"lodash-es": "^4.17.21",
|
||||
"lodash-unified": "^1.0.2",
|
||||
"md-editor-v3": "^2.4.2",
|
||||
"md-editor-v3": "^2.5.0",
|
||||
"mitt": "^3.0.0",
|
||||
"mockjs": "^1.1.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"path": "^0.12.7",
|
||||
"pinia": "^2.0.26",
|
||||
"pinia": "^2.0.27",
|
||||
"qrcode": "^1.5.1",
|
||||
"qs": "^6.11.0",
|
||||
"responsive-storage": "^2.1.0",
|
||||
"sortablejs": "^1.15.0",
|
||||
"swiper": "^8.4.4",
|
||||
"swiper": "^8.4.5",
|
||||
"typeit": "^8.7.0",
|
||||
"v-contextmenu": "3.0.0",
|
||||
"vue": "^3.2.45",
|
||||
"vue-i18n": "^9.2.2",
|
||||
"vue-json-pretty": "^2.2.2",
|
||||
"vue-pdf-embed": "^1.1.4",
|
||||
"vue-json-pretty": "^2.2.3",
|
||||
"vue-pdf-embed": "^1.1.5",
|
||||
"vue-router": "^4.1.6",
|
||||
"vue-types": "^4.2.1",
|
||||
"vue-virtual-scroller": "^2.0.0-alpha.1",
|
||||
"vue3-danmaku": "^1.0.0",
|
||||
"vue3-danmaku": "^1.1.0",
|
||||
"vuedraggable": "^4.1.0",
|
||||
"vxe-table": "^4.3.6",
|
||||
"xe-utils": "^3.5.7",
|
||||
|
||||
40
pnpm-lock.yaml
generated
40
pnpm-lock.yaml
generated
@@ -14,9 +14,9 @@ specifiers:
|
||||
"@logicflow/core": ^1.1.30
|
||||
"@logicflow/extension": ^1.1.30
|
||||
"@pureadmin/descriptions": ^1.1.0
|
||||
"@pureadmin/table": ^1.8.1
|
||||
"@pureadmin/table": ^1.8.2
|
||||
"@pureadmin/theme": ^2.4.0
|
||||
"@pureadmin/utils": ^1.7.1
|
||||
"@pureadmin/utils": ^1.7.2
|
||||
"@types/element-resize-detector": 1.1.3
|
||||
"@types/intro.js": ^5.1.0
|
||||
"@types/js-cookie": ^3.0.1
|
||||
@@ -62,13 +62,13 @@ specifiers:
|
||||
lodash: ^4.17.21
|
||||
lodash-es: ^4.17.21
|
||||
lodash-unified: ^1.0.2
|
||||
md-editor-v3: ^2.4.2
|
||||
md-editor-v3: ^2.5.0
|
||||
mitt: ^3.0.0
|
||||
mockjs: ^1.1.0
|
||||
nprogress: ^0.2.0
|
||||
path: ^0.12.7
|
||||
picocolors: ^1.0.0
|
||||
pinia: ^2.0.26
|
||||
pinia: ^2.0.27
|
||||
postcss: ^8.4.18
|
||||
postcss-html: ^1.5.0
|
||||
postcss-import: ^15.0.0
|
||||
@@ -90,7 +90,7 @@ specifiers:
|
||||
stylelint-config-standard: ^29.0.0
|
||||
stylelint-order: ^5.0.0
|
||||
svgo: ^3.0.2
|
||||
swiper: ^8.4.4
|
||||
swiper: ^8.4.5
|
||||
tailwindcss: ^3.2.4
|
||||
terser: ^5.15.1
|
||||
typeit: ^8.7.0
|
||||
@@ -106,13 +106,13 @@ specifiers:
|
||||
vue: ^3.2.45
|
||||
vue-eslint-parser: ^9.1.0
|
||||
vue-i18n: ^9.2.2
|
||||
vue-json-pretty: ^2.2.2
|
||||
vue-pdf-embed: ^1.1.4
|
||||
vue-json-pretty: ^2.2.3
|
||||
vue-pdf-embed: ^1.1.5
|
||||
vue-router: ^4.1.6
|
||||
vue-tsc: ^1.0.9
|
||||
vue-types: ^4.2.1
|
||||
vue-virtual-scroller: ^2.0.0-alpha.1
|
||||
vue3-danmaku: ^1.0.0
|
||||
vue3-danmaku: ^1.1.0
|
||||
vuedraggable: ^4.1.0
|
||||
vxe-table: ^4.3.6
|
||||
xe-utils: ^3.5.7
|
||||
@@ -126,8 +126,8 @@ dependencies:
|
||||
"@logicflow/core": 1.1.31
|
||||
"@logicflow/extension": 1.1.31
|
||||
"@pureadmin/descriptions": 1.1.1_element-plus@2.2.26
|
||||
"@pureadmin/table": 1.8.1_element-plus@2.2.26
|
||||
"@pureadmin/utils": 1.7.1_aotapuqn7htzdjltsyimavekky
|
||||
"@pureadmin/table": 1.8.2_element-plus@2.2.26
|
||||
"@pureadmin/utils": 1.7.2_aotapuqn7htzdjltsyimavekky
|
||||
"@vueuse/core": 9.6.0_vue@3.2.45
|
||||
"@vueuse/motion": 2.0.0-beta.12_vue@3.2.45
|
||||
"@wangeditor/editor": 5.1.23
|
||||
@@ -147,7 +147,7 @@ dependencies:
|
||||
lodash: 4.17.21
|
||||
lodash-es: 4.17.21
|
||||
lodash-unified: 1.0.3_3ib2ivapxullxkx3xftsimdk7u
|
||||
md-editor-v3: 2.4.2
|
||||
md-editor-v3: 2.5.0
|
||||
mitt: 3.0.0
|
||||
mockjs: 1.1.0
|
||||
nprogress: 0.2.0
|
||||
@@ -167,7 +167,7 @@ dependencies:
|
||||
vue-router: 4.1.6_vue@3.2.45
|
||||
vue-types: 4.2.1_vue@3.2.45
|
||||
vue-virtual-scroller: 2.0.0-beta.3_vue@3.2.45
|
||||
vue3-danmaku: 1.0.0_vue@3.2.45
|
||||
vue3-danmaku: 1.1.0_vue@3.2.45
|
||||
vuedraggable: 4.1.0_vue@3.2.45
|
||||
vxe-table: 4.3.6_vue@3.2.45+xe-utils@3.5.7
|
||||
xe-utils: 3.5.7
|
||||
@@ -1277,10 +1277,10 @@ packages:
|
||||
vue: 3.2.45
|
||||
dev: false
|
||||
|
||||
/@pureadmin/table/1.8.1_element-plus@2.2.26:
|
||||
/@pureadmin/table/1.8.2_element-plus@2.2.26:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-oZ5GYmLTDgQ64U6+yKFjvpZG2Seuudk3hOWnUogMvKxhIvaRQsGBHbvyg47asMmXxUyeilq+nRumyuiuV7WJTg==
|
||||
integrity: sha512-FGh1aOfgQtX16pCnP+bxg49TetcZDhdykIue0m5d8NIj6zkvJP53JU+DkUpvqvKmUiMsvIwme6e17BLZMmMiOw==
|
||||
}
|
||||
peerDependencies:
|
||||
element-plus: ^2.0.0
|
||||
@@ -1300,10 +1300,10 @@ packages:
|
||||
string-hash: 1.1.3
|
||||
dev: true
|
||||
|
||||
/@pureadmin/utils/1.7.1_aotapuqn7htzdjltsyimavekky:
|
||||
/@pureadmin/utils/1.7.2_aotapuqn7htzdjltsyimavekky:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-LqYdMR1xvRDtPp66osOY6usmta6LNGMuON14iONv4ZUC/esQ3RflHlT5glGjOfGUSGCk8O94F5LVS/PVC9Q3Ng==
|
||||
integrity: sha512-L8tmogs9HCX6nuga1g79DcZr3KXNoWnIFcyP2z4zpmUmdBBAmMpXXz3Z+emI6HELmZu8DFx+v1MfKxccgsODRQ==
|
||||
}
|
||||
peerDependencies:
|
||||
dayjs: "*"
|
||||
@@ -5895,10 +5895,10 @@ packages:
|
||||
}
|
||||
dev: true
|
||||
|
||||
/md-editor-v3/2.4.2:
|
||||
/md-editor-v3/2.5.0:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-qVbvfIifrXwfi9In8l14nW+A5MXaE9UxN7d+Iw2QtXFV0kaDfS5H2Z5kMeVP61GaLLkdbOi4GCt0X2izZ0rdJw==
|
||||
integrity: sha512-qB6w4jQU7uItAcJYuG/JaFVLDWZ2NgegLsCHNeQV5R1CgMC8MKJYcFxMpCDf8YNRMrN9zK0Kd+grYp1rq4KhNw==
|
||||
}
|
||||
engines: { node: ">=12.0.0" }
|
||||
dev: false
|
||||
@@ -8862,10 +8862,10 @@ packages:
|
||||
"@vue/server-renderer": 3.2.45_vue@3.2.45
|
||||
"@vue/shared": 3.2.45
|
||||
|
||||
/vue3-danmaku/1.0.0_vue@3.2.45:
|
||||
/vue3-danmaku/1.1.0_vue@3.2.45:
|
||||
resolution:
|
||||
{
|
||||
integrity: sha512-1DVPQeQBdv/iGyuumebZLKPHcfvSgPwxe/ExKF1jc/dJ3MINbXkw23iIajE8JKNvttagOX7eZnuwWnQ4ug8pqg==
|
||||
integrity: sha512-8I+WOC8/79I2/8PRZ2fPIPd45pM4G3l7SkS9l8IvdpFjf2CzZgAp5rF+5BMcURDQu0ckVVYSmUb6TU0r0YJ3LQ==
|
||||
}
|
||||
peerDependencies:
|
||||
vue: ^3.0.0
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Version": "3.9.1",
|
||||
"Version": "3.9.2",
|
||||
"Title": "PureAdmin",
|
||||
"FixedHeader": true,
|
||||
"HiddenSideBar": false,
|
||||
|
||||
@@ -1,11 +1,27 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { onClickOutside } from "@vueuse/core";
|
||||
import { ref, computed } from "vue";
|
||||
import { emitter } from "@/utils/mitt";
|
||||
import { onClickOutside } from "@vueuse/core";
|
||||
import Close from "@iconify-icons/ep/close";
|
||||
|
||||
const show = ref<Boolean>(false);
|
||||
const target = ref(null);
|
||||
const show = ref<Boolean>(false);
|
||||
|
||||
const iconClass = computed(() => {
|
||||
return [
|
||||
"mr-[20px]",
|
||||
"outline-none",
|
||||
"width-[20px]",
|
||||
"height-[20px]",
|
||||
"rounded-[4px]",
|
||||
"cursor-pointer",
|
||||
"transition-colors",
|
||||
"hover:bg-[#0000000f]",
|
||||
"dark:hover:bg-[#ffffff1f]",
|
||||
"dark:hover:text-[#ffffffd9]"
|
||||
];
|
||||
});
|
||||
|
||||
onClickOutside(target, (event: any) => {
|
||||
if (event.clientX > target.value.offsetLeft) return;
|
||||
show.value = false;
|
||||
@@ -23,9 +39,11 @@ emitter.on("openPanel", () => {
|
||||
<div class="right-panel-items">
|
||||
<div class="project-configuration">
|
||||
<h4 class="dark:text-white">项目配置</h4>
|
||||
<span title="关闭配置">
|
||||
<span title="关闭配置" :class="iconClass">
|
||||
<IconifyIconOffline
|
||||
class="dark:text-white"
|
||||
width="20px"
|
||||
height="20px"
|
||||
:icon="Close"
|
||||
@click="show = !show"
|
||||
/>
|
||||
@@ -69,7 +87,6 @@ emitter.on("openPanel", () => {
|
||||
box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.05);
|
||||
transition: all 0.25s cubic-bezier(0.7, 0.3, 0.1, 1);
|
||||
transform: translate(100%);
|
||||
// background: #fff;
|
||||
z-index: 40000;
|
||||
}
|
||||
|
||||
@@ -125,16 +142,6 @@ emitter.on("openPanel", () => {
|
||||
align-items: center;
|
||||
top: 15px;
|
||||
margin-left: 10px;
|
||||
|
||||
svg {
|
||||
font-size: 20px;
|
||||
margin-right: 20px;
|
||||
|
||||
&:hover {
|
||||
cursor: pointer;
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.el-divider--horizontal) {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { ref } from "vue";
|
||||
import { ref, computed } from "vue";
|
||||
import { useNav } from "@/layout/hooks/useNav";
|
||||
import MenuFold from "@iconify-icons/ri/menu-fold-fill";
|
||||
import MenuUnfold from "@iconify-icons/ri/menu-unfold-fill";
|
||||
|
||||
interface Props {
|
||||
isActive: boolean;
|
||||
@@ -15,6 +14,22 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
const visible = ref(false);
|
||||
const { tooltipEffect } = useNav();
|
||||
|
||||
const iconClass = computed(() => {
|
||||
return [
|
||||
"ml-4",
|
||||
"mb-1",
|
||||
"w-[16px]",
|
||||
"h-[16px]",
|
||||
"inline-block",
|
||||
"align-middle",
|
||||
"text-primary",
|
||||
"cursor-pointer",
|
||||
"duration-[360ms]",
|
||||
"hover:text-primary",
|
||||
"dark:hover:!text-white"
|
||||
];
|
||||
});
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: "toggleClick"): void;
|
||||
}>();
|
||||
@@ -33,8 +48,9 @@ const toggleClick = () => {
|
||||
:content="props.isActive ? '点击折叠' : '点击展开'"
|
||||
>
|
||||
<IconifyIconOffline
|
||||
:icon="props.isActive ? MenuFold : MenuUnfold"
|
||||
class="cursor-pointer inline-block align-middle text-primary hover:text-primary dark:hover:!text-white w-[16px] h-[16px] ml-4 mb-1"
|
||||
:icon="MenuFold"
|
||||
:class="iconClass"
|
||||
:style="{ transform: props.isActive ? 'none' : 'rotateY(180deg)' }"
|
||||
@click="toggleClick"
|
||||
@mouseenter="visible = true"
|
||||
@mouseleave="visible = false"
|
||||
|
||||
@@ -187,6 +187,19 @@ html.dark {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* 全局覆盖element-plus的el-dialog、el-drawer、el-message-box、el-notification组件右上角关闭图标的样式,表现更鲜明 */
|
||||
.el-icon {
|
||||
&.el-dialog__close,
|
||||
&.el-drawer__close,
|
||||
&.el-message-box__close,
|
||||
&.el-notification__closeBtn {
|
||||
&:hover {
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
background-color: rgba(255, 255, 255, 0.12);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 克隆并自定义 ElMessage 样式,不会影响 ElMessage 原本样式,在 src/utils/message.ts 中调用自定义样式 ElMessage 方法即可,非暗黑模式在 src/style/element-plus.scss 文件进行了适配 */
|
||||
.pure-message {
|
||||
background-image: initial !important;
|
||||
|
||||
@@ -69,6 +69,33 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* 全局覆盖element-plus的el-dialog、el-drawer、el-message-box、el-notification组件右上角关闭图标的样式,表现更鲜明 */
|
||||
.el-dialog__headerbtn,
|
||||
.el-message-box__headerbtn {
|
||||
&:hover {
|
||||
.el-dialog__close {
|
||||
color: var(--el-color-info) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.el-icon {
|
||||
&.el-dialog__close,
|
||||
&.el-drawer__close,
|
||||
&.el-message-box__close,
|
||||
&.el-notification__closeBtn {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
outline: none;
|
||||
border-radius: 4px;
|
||||
transition: background-color 0.2s, color 0.2s;
|
||||
&:hover {
|
||||
color: rgba(0, 0, 0, 0.88) !important;
|
||||
background-color: rgba(0, 0, 0, 0.06);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 克隆并自定义 ElMessage 样式,不会影响 ElMessage 原本样式,在 src/utils/message.ts 中调用自定义样式 ElMessage 方法即可,暗黑模式在 src/style/dark.scss 文件进行了适配 */
|
||||
.pure-message {
|
||||
border-width: 0 !important;
|
||||
|
||||
Reference in New Issue
Block a user