Skip to content

Commit

Permalink
release: update 5.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaoxian521 committed Aug 20, 2024
1 parent c94c3dd commit 06c77d5
Show file tree
Hide file tree
Showing 23 changed files with 1,662 additions and 1,294 deletions.
35 changes: 26 additions & 9 deletions mock/asyncRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,34 @@ const permissionRouter = {
}
},
{
path: "/permission/button/index",
name: "PermissionButton",
path: "/permission/button",
meta: {
title: "按钮权限",
roles: ["admin", "common"],
auths: [
"permission:btn:add",
"permission:btn:edit",
"permission:btn:delete"
]
}
roles: ["admin", "common"]
},
children: [
{
path: "/permission/button/router",
component: "permission/button/index",
name: "PermissionButtonRouter",
meta: {
title: "路由返回按钮权限",
auths: [
"permission:btn:add",
"permission:btn:edit",
"permission:btn:delete"
]
}
},
{
path: "/permission/button/login",
component: "permission/button/perms",
name: "PermissionButtonLogin",
meta: {
title: "登录接口返回按钮权限"
}
}
]
}
]
};
Expand Down
3 changes: 3 additions & 0 deletions mock/login.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ export default defineFakeRoute([
nickname: "小铭",
// 一个用户可能有多个角色
roles: ["admin"],
// 按钮级别权限
permissions: ["*:*:*"],
accessToken: "eyJhbGciOiJIUzUxMiJ9.admin",
refreshToken: "eyJhbGciOiJIUzUxMiJ9.adminRefresh",
expires: "2030/10/30 00:00:00"
Expand All @@ -28,6 +30,7 @@ export default defineFakeRoute([
username: "common",
nickname: "小林",
roles: ["common"],
permissions: ["permission:btn:add", "permission:btn:edit"],
accessToken: "eyJhbGciOiJIUzUxMiJ9.common",
refreshToken: "eyJhbGciOiJIUzUxMiJ9.commonRefresh",
expires: "2030/10/30 00:00:00"
Expand Down
80 changes: 40 additions & 40 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "electron-pure-admin",
"version": "5.7.0",
"version": "5.8.0",
"description": "electron-pure-admin",
"private": true,
"type": "module",
Expand Down Expand Up @@ -54,35 +54,35 @@
},
"dependencies": {
"@pureadmin/descriptions": "^1.2.1",
"@pureadmin/table": "^3.1.2",
"@pureadmin/utils": "^2.4.7",
"@vueuse/core": "^10.11.0",
"@pureadmin/table": "^3.2.0",
"@pureadmin/utils": "^2.4.8",
"@vueuse/core": "^11.0.1",
"@vueuse/motion": "^2.2.3",
"animate.css": "^4.1.1",
"axios": "^1.7.2",
"dayjs": "^1.11.11",
"axios": "^1.7.4",
"dayjs": "^1.11.12",
"echarts": "^5.5.1",
"element-plus": "^2.7.6",
"element-plus": "^2.8.0",
"js-cookie": "^3.0.5",
"localforage": "^1.10.0",
"mitt": "^3.0.1",
"nprogress": "^0.2.0",
"path": "^0.12.7",
"pinia": "^2.1.7",
"pinyin-pro": "^3.23.0",
"qs": "^6.12.2",
"pinia": "^2.2.2",
"pinyin-pro": "^3.24.2",
"qs": "^6.13.0",
"responsive-storage": "^2.2.0",
"sortablejs": "^1.15.2",
"vue": "^3.4.31",
"vue-router": "^4.4.0",
"vue": "^3.4.38",
"vue-router": "^4.4.3",
"vue-tippy": "^6.4.4",
"vue-types": "^5.1.2"
"vue-types": "^5.1.3"
},
"devDependencies": {
"@commitlint/cli": "^19.3.0",
"@commitlint/cli": "^19.4.0",
"@commitlint/config-conventional": "^19.2.2",
"@commitlint/types": "^19.0.3",
"@eslint/js": "^9.6.0",
"@eslint/js": "^9.9.0",
"@faker-js/faker": "^8.4.1",
"@iconify-icons/ep": "^1.2.12",
"@iconify-icons/ri": "^1.2.10",
Expand All @@ -91,61 +91,61 @@
"@types/args": "^5.0.3",
"@types/gradient-string": "^1.1.6",
"@types/js-cookie": "^3.0.6",
"@types/node": "^20.14.9",
"@types/node": "^22.4.1",
"@types/nprogress": "^0.2.3",
"@types/qs": "^6.9.15",
"@types/sortablejs": "^1.15.8",
"@typescript-eslint/eslint-plugin": "^7.15.0",
"@typescript-eslint/parser": "^7.15.0",
"@vitejs/plugin-vue": "^5.0.5",
"@vitejs/plugin-vue-jsx": "^4.0.0",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"@vitejs/plugin-vue": "^5.1.2",
"@vitejs/plugin-vue-jsx": "^4.0.1",
"args": "^5.0.3",
"autoprefixer": "^10.4.19",
"boxen": "^7.1.1",
"autoprefixer": "^10.4.20",
"boxen": "^8.0.1",
"cross-env": "^7.0.3",
"cssnano": "^7.0.3",
"cssnano": "^7.0.5",
"electron": "^31.1.0",
"electron-builder": "^24.13.3",
"eslint": "^9.6.0",
"eslint": "^9.9.0",
"eslint-config-prettier": "^9.1.0",
"eslint-define-config": "^2.1.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-vue": "^9.27.0",
"esno": "^4.7.0",
"gradient-string": "^2.0.2",
"husky": "^9.0.11",
"icon-gen": "^4.0.0",
"husky": "^9.1.4",
"icon-gen": "^5.0.0",
"jimp": "^0.22.12",
"lint-staged": "^15.2.7",
"postcss": "^8.4.39",
"lint-staged": "^15.2.9",
"postcss": "^8.4.41",
"postcss-html": "^1.7.0",
"postcss-import": "^16.1.0",
"postcss-scss": "^4.0.9",
"prettier": "^3.3.2",
"rimraf": "^5.0.7",
"prettier": "^3.3.3",
"rimraf": "^6.0.1",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.77.6",
"stylelint": "^16.6.1",
"sass": "^1.77.8",
"stylelint": "^16.8.2",
"stylelint-config-recess-order": "^5.0.1",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard-scss": "^13.1.0",
"stylelint-prettier": "^5.0.0",
"stylelint-prettier": "^5.0.2",
"svgo": "^3.3.2",
"tailwindcss": "^3.4.4",
"typescript": "^5.5.3",
"vite": "^5.3.2",
"tailwindcss": "^3.4.10",
"typescript": "^5.5.4",
"vite": "^5.4.1",
"vite-plugin-cdn-import": "^1.0.1",
"vite-plugin-checker": "^0.7.0",
"vite-plugin-checker": "^0.7.2",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-electron": "^0.28.7",
"vite-plugin-electron-renderer": "^0.14.5",
"vite-plugin-fake-server": "^2.1.1",
"vite-plugin-remove-console": "^2.2.0",
"vite-plugin-router-warn": "^1.0.0",
"vite-plugin-vue-inspector": "^5.1.2",
"vite-plugin-vue-inspector": "^5.1.3",
"vite-svg-loader": "^5.1.0",
"vue-eslint-parser": "^9.4.3",
"vue-tsc": "^2.0.24"
"vue-tsc": "^2.0.29"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
Expand Down
2 changes: 1 addition & 1 deletion public/platform-config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"Version": "5.7.0",
"Version": "5.8.0",
"Title": "PureAdmin",
"FixedHeader": true,
"HiddenSideBar": false,
Expand Down
2 changes: 2 additions & 0 deletions src/api/user.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ export type UserResult = {
nickname: string;
/** 当前登录用户的角色 */
roles: Array<string>;
/** 按钮级别权限 */
permissions: Array<string>;
/** `token` */
accessToken: string;
/** 用于调用刷新`accessToken`的接口时所需的`token` */
Expand Down
22 changes: 20 additions & 2 deletions src/components/ReDialog/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ defineOptions({
name: "ReDialog"
});
const sureBtnMap = ref({});
const fullscreen = ref(false);
const footerButtons = computed(() => {
Expand Down Expand Up @@ -43,10 +44,26 @@ const footerButtons = computed(() => {
bg: true,
popconfirm: options?.popconfirm,
btnClick: ({ dialog: { options, index } }) => {
const done = () =>
if (options?.sureBtnLoading) {
sureBtnMap.value[index] = Object.assign(
{},
sureBtnMap.value[index],
{
loading: true
}
);
}
const closeLoading = () => {
if (options?.sureBtnLoading) {
sureBtnMap.value[index].loading = false;
}
};
const done = () => {
closeLoading();
closeDialog(options, index, { command: "sure" });
};
if (options?.beforeSure && isFunction(options?.beforeSure)) {
options.beforeSure(done, { options, index });
options.beforeSure(done, { options, index, closeLoading });
} else {
done();
}
Expand Down Expand Up @@ -172,6 +189,7 @@ function handleClose(
<el-button
v-else
v-bind="btn"
:loading="key === 1 && sureBtnMap[index]?.loading"
@click="
btn.btnClick({
dialog: { options, index },
Expand Down
15 changes: 10 additions & 5 deletions src/components/ReDialog/type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ type DialogProps = {
type Popconfirm = {
/** 标题 */
title?: string;
/** 确认按钮文字 */
/** 确定按钮文字 */
confirmButtonText?: string;
/** 取消按钮文字 */
cancelButtonText?: string;
/** 确认按钮类型,默认 `primary` */
/** 确定按钮类型,默认 `primary` */
confirmButtonType?: ButtonType;
/** 取消按钮类型,默认 `text` */
cancelButtonType?: ButtonType;
Expand Down Expand Up @@ -121,7 +121,7 @@ type ButtonProps = {
round?: boolean;
/** 是否为圆形按钮,默认 `false` */
circle?: boolean;
/** 确认按钮的 `Popconfirm` 气泡确认框相关配置 */
/** 确定按钮的 `Popconfirm` 气泡确认框相关配置 */
popconfirm?: Popconfirm;
/** 是否为加载中状态,默认 `false` */
loading?: boolean;
Expand Down Expand Up @@ -160,8 +160,10 @@ interface DialogOptions extends DialogProps {
props?: any;
/** 是否隐藏 `Dialog` 按钮操作区的内容 */
hideFooter?: boolean;
/** 确认按钮的 `Popconfirm` 气泡确认框相关配置 */
/** 确定按钮的 `Popconfirm` 气泡确认框相关配置 */
popconfirm?: Popconfirm;
/** 点击确定按钮后是否开启 `loading` 加载动画 */
sureBtnLoading?: boolean;
/**
* @description 自定义对话框标题的内容渲染器
* @see {@link https://element-plus.org/zh-CN/component/dialog.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E5%A4%B4%E9%83%A8}
Expand Down Expand Up @@ -259,10 +261,13 @@ interface DialogOptions extends DialogProps {
done: Function,
{
options,
index
index,
closeLoading
}: {
options: DialogOptions;
index: number;
/** 关闭确定按钮的 `loading` 加载动画 */
closeLoading: Function;
}
) => void;
}
Expand Down
5 changes: 5 additions & 0 deletions src/components/RePerms/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import perms from "./src/perms";

const Perms = perms;

export { Perms };
20 changes: 20 additions & 0 deletions src/components/RePerms/src/perms.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { defineComponent, Fragment } from "vue";
import { hasPerms } from "@/utils/auth";

export default defineComponent({
name: "Perms",
props: {
value: {
type: undefined,
default: []
}
},
setup(props, { slots }) {
return () => {
if (!slots) return null;
return hasPerms(props.value) ? (
<Fragment>{slots.default?.()}</Fragment>
) : null;
};
}
});
24 changes: 23 additions & 1 deletion src/components/RePureTableBar/src/bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {
getKeyList
} from "@pureadmin/utils";

import Fullscreen from "@iconify-icons/ri/fullscreen-fill";
import ExitFullscreen from "@iconify-icons/ri/fullscreen-exit-fill";
import DragIcon from "@/assets/table-bar/drag.svg?component";
import ExpandIcon from "@/assets/table-bar/expand.svg?component";
import RefreshIcon from "@/assets/table-bar/refresh.svg?component";
Expand Down Expand Up @@ -56,6 +58,7 @@ export default defineComponent({
const size = ref("default");
const loading = ref(false);
const checkAll = ref(true);
const isFullscreen = ref(false);
const isIndeterminate = ref(false);
const instance = getCurrentInstance()!;
const isExpandAll = ref(props.isExpandAll);
Expand Down Expand Up @@ -239,7 +242,18 @@ export default defineComponent({

return () => (
<>
<div {...attrs} class="w-[99/100] mt-2 px-2 pb-2 bg-bg_color">
<div
{...attrs}
class={[
"w-[99/100]",
"px-2",
"pb-2",
"bg-bg_color",
isFullscreen.value
? ["!w-full", "!h-full", "z-[2002]", "fixed", "inset-0"]
: "mt-2"
]}
>
<div class="flex justify-between w-full h-[60px] p-4">
{slots?.title ? (
slots.title()
Expand Down Expand Up @@ -353,6 +367,14 @@ export default defineComponent({
</el-scrollbar>
</div>
</el-popover>
<el-divider direction="vertical" />

<iconifyIconOffline
class={["w-[16px]", iconClass.value]}
icon={isFullscreen.value ? ExitFullscreen : Fullscreen}
v-tippy={isFullscreen.value ? "退出全屏" : "全屏"}
onClick={() => (isFullscreen.value = !isFullscreen.value)}
/>
</div>
</div>
{slots.default({
Expand Down
Loading

0 comments on commit 06c77d5

Please sign in to comment.