mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-30 09:24:46 +08:00
Merge branch 'main' into gitee
This commit is contained in:
commit
b3983df384
@ -1,3 +1,33 @@
|
|||||||
|
# 5.4.0 (2024-04-18)
|
||||||
|
|
||||||
|
### 🎫 Feat
|
||||||
|
|
||||||
|
- Add global disabled attribute `disabled` to `ReSegmented` component
|
||||||
|
- Added mind map examples
|
||||||
|
- Functional pop-up box `ReDialog` adds `Popconfirm` bubble confirmation box
|
||||||
|
- `pure-table` adds `headerSlot` custom header slot usage example
|
||||||
|
- The route adds a configurable `fixedTag` attribute, which determines whether the current menu name is fixedly displayed on the tab and cannot be closed.
|
||||||
|
- Added account setting function page and compatible with mobile terminals
|
||||||
|
- Upgrade `eslint9` and related compatibility processing
|
||||||
|
- Added global configuration `MaxTagsLevel` property to set the maximum number of open tabs
|
||||||
|
- Full coverage of the internationalization of the core code of the framework (only the internationalization of the business code needs to be processed)
|
||||||
|
|
||||||
|
### 🐞 Bug fixes
|
||||||
|
|
||||||
|
- Fixed the issue where columns cannot be dragged normally when there are multiple `RePureTableBar` components on a page
|
||||||
|
- Fixed the problem of icon display style after the third-level menu is folded to the left
|
||||||
|
- Fixed the issue where the font color does not take effect after refreshing the account settings page
|
||||||
|
- Fixed the issue where the `refreshToken` parameter is empty when calling the refresh `token` interface
|
||||||
|
|
||||||
|
### 🍏 Perf
|
||||||
|
|
||||||
|
- Optimize login interface
|
||||||
|
- Optimize the logic of obtaining the top menu
|
||||||
|
- Optimize request whitelist logic and be compatible with more scenarios
|
||||||
|
- Simplified export and import usage in `store` files
|
||||||
|
- Removed unnecessary `cloc` tool dependency package, which uses the `GPL` open source license and is controversial
|
||||||
|
- Optimize the types of `post` and `get` utility functions in `src/utils/http` files
|
||||||
|
|
||||||
# 5.3.0 (2024-03-28)
|
# 5.3.0 (2024-03-28)
|
||||||
|
|
||||||
### ✔️ refactor
|
### ✔️ refactor
|
||||||
|
30
CHANGELOG.md
30
CHANGELOG.md
@ -1,3 +1,33 @@
|
|||||||
|
# 5.4.0 (2024-04-18)
|
||||||
|
|
||||||
|
### 🎫 Feat
|
||||||
|
|
||||||
|
- Add global disabled attribute `disabled` to `ReSegmented` component
|
||||||
|
- Added mind map examples
|
||||||
|
- Functional pop-up box `ReDialog` adds `Popconfirm` bubble confirmation box
|
||||||
|
- `pure-table` adds `headerSlot` custom header slot usage example
|
||||||
|
- The route adds a configurable `fixedTag` attribute, which determines whether the current menu name is fixedly displayed on the tab and cannot be closed.
|
||||||
|
- Added account setting function page and compatible with mobile terminals
|
||||||
|
- Upgrade `eslint9` and related compatibility processing
|
||||||
|
- Added global configuration `MaxTagsLevel` property to set the maximum number of open tabs
|
||||||
|
- Full coverage of the internationalization of the core code of the framework (only the internationalization of the business code needs to be processed)
|
||||||
|
|
||||||
|
### 🐞 Bug fixes
|
||||||
|
|
||||||
|
- Fixed the issue where columns cannot be dragged normally when there are multiple `RePureTableBar` components on a page
|
||||||
|
- Fixed the problem of icon display style after the third-level menu is folded to the left
|
||||||
|
- Fixed the issue where the font color does not take effect after refreshing the account settings page
|
||||||
|
- Fixed the issue where the `refreshToken` parameter is empty when calling the refresh `token` interface
|
||||||
|
|
||||||
|
### 🍏 Perf
|
||||||
|
|
||||||
|
- Optimize login interface
|
||||||
|
- Optimize the logic of obtaining the top menu
|
||||||
|
- Optimize request whitelist logic and be compatible with more scenarios
|
||||||
|
- Simplified export and import usage in `store` files
|
||||||
|
- Removed unnecessary `cloc` tool dependency package, which uses the `GPL` open source license and is controversial
|
||||||
|
- Optimize the types of `post` and `get` utility functions in `src/utils/http` files
|
||||||
|
|
||||||
# 5.3.0 (2024-03-28)
|
# 5.3.0 (2024-03-28)
|
||||||
|
|
||||||
### ✔️ refactor
|
### ✔️ refactor
|
||||||
|
@ -1,3 +1,33 @@
|
|||||||
|
# 5.4.0 (2024-04-18)
|
||||||
|
|
||||||
|
### 🎫 Feat
|
||||||
|
|
||||||
|
- 分段控制器组件添加全局禁用属性`disabled`
|
||||||
|
- 添加思维导图示例
|
||||||
|
- 函数式弹框`ReDialog`添加`Popconfirm`气泡确认框
|
||||||
|
- `pure-table`添加`headerSlot`自定义表头插槽用法示例
|
||||||
|
- 路由添加可配置的`fixedTag`属性,作用为当前菜单名称是否固定显示在标签页且不可关闭
|
||||||
|
- 添加账户设置功能页面且兼容移动端
|
||||||
|
- 升级`eslint9`,相关兼容处理
|
||||||
|
- 添加全局配置`MaxTagsLevel`属性,可设置打开标签页最大数
|
||||||
|
- 框架核心代码国际化全量覆盖(仅需处理业务代码国际化即可)
|
||||||
|
|
||||||
|
### 🐞 Bug fixes
|
||||||
|
|
||||||
|
- 修复当一个页面存在多个`RePureTableBar`组件,列无法正常拖动问题
|
||||||
|
- 修复三级菜单向左折叠后图标显示样式问题
|
||||||
|
- 修复账户设置页面,刷新后字体颜色未生效的问题
|
||||||
|
- 修复调用刷新`token`接口时,`refreshToken`参数为空的问题
|
||||||
|
|
||||||
|
### 🍏 Perf
|
||||||
|
|
||||||
|
- 优化登录接口
|
||||||
|
- 优化获取顶级菜单逻辑
|
||||||
|
- 优化请求白名单逻辑,兼容更多场景
|
||||||
|
- 简化`store`文件中导出和导入用法
|
||||||
|
- 移除非必要的`cloc`工具依赖包,它使用`GPL`开源许可证具有争议性
|
||||||
|
- 优化`src/utils/http`文件中`post`和`get`工具函数的类型
|
||||||
|
|
||||||
# 5.3.0 (2024-03-28)
|
# 5.3.0 (2024-03-28)
|
||||||
|
|
||||||
### ✔️ refactor
|
### ✔️ refactor
|
||||||
|
@ -36,8 +36,6 @@ const include = [
|
|||||||
"vue-json-pretty",
|
"vue-json-pretty",
|
||||||
"@logicflow/core",
|
"@logicflow/core",
|
||||||
"@pureadmin/utils",
|
"@pureadmin/utils",
|
||||||
"@vue-office/docx",
|
|
||||||
"@vue-office/excel",
|
|
||||||
"@wangeditor/editor",
|
"@wangeditor/editor",
|
||||||
"responsive-storage",
|
"responsive-storage",
|
||||||
"plus-pro-components",
|
"plus-pro-components",
|
||||||
|
@ -166,8 +166,6 @@ menus:
|
|||||||
pureSwiper: Swiper Plugin
|
pureSwiper: Swiper Plugin
|
||||||
pureVirtualList: Virtual List
|
pureVirtualList: Virtual List
|
||||||
purePdf: PDF Preview
|
purePdf: PDF Preview
|
||||||
pureWord: Word Preview
|
|
||||||
pureExcels: Excel Preview
|
|
||||||
pureExcel: Export Excel
|
pureExcel: Export Excel
|
||||||
pureInfiniteScroll: Table Infinite Scroll
|
pureInfiniteScroll: Table Infinite Scroll
|
||||||
pureSensitive: Sensitive Filter
|
pureSensitive: Sensitive Filter
|
||||||
|
@ -166,8 +166,6 @@ menus:
|
|||||||
pureSwiper: Swiper插件
|
pureSwiper: Swiper插件
|
||||||
pureVirtualList: 虚拟列表
|
pureVirtualList: 虚拟列表
|
||||||
purePdf: PDF预览
|
purePdf: PDF预览
|
||||||
pureWord: Word预览
|
|
||||||
pureExcels: Excel预览
|
|
||||||
pureExcel: 导出Excel
|
pureExcel: 导出Excel
|
||||||
pureInfiniteScroll: 表格无限滚动
|
pureInfiniteScroll: 表格无限滚动
|
||||||
pureSensitive: 敏感词过滤
|
pureSensitive: 敏感词过滤
|
||||||
|
30
package.json
30
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "vue-pure-admin",
|
"name": "vue-pure-admin",
|
||||||
"version": "5.3.0",
|
"version": "5.4.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -57,8 +57,6 @@
|
|||||||
"@pureadmin/utils": "^2.4.7",
|
"@pureadmin/utils": "^2.4.7",
|
||||||
"@vue-flow/background": "^1.3.0",
|
"@vue-flow/background": "^1.3.0",
|
||||||
"@vue-flow/core": "^1.33.5",
|
"@vue-flow/core": "^1.33.5",
|
||||||
"@vue-office/docx": "^1.6.0",
|
|
||||||
"@vue-office/excel": "^1.7.6",
|
|
||||||
"@vueuse/core": "^10.9.0",
|
"@vueuse/core": "^10.9.0",
|
||||||
"@vueuse/motion": "^2.1.0",
|
"@vueuse/motion": "^2.1.0",
|
||||||
"@wangeditor/editor": "^5.1.23",
|
"@wangeditor/editor": "^5.1.23",
|
||||||
@ -67,11 +65,11 @@
|
|||||||
"animate.css": "^4.1.1",
|
"animate.css": "^4.1.1",
|
||||||
"axios": "^1.6.8",
|
"axios": "^1.6.8",
|
||||||
"china-area-data": "^5.0.1",
|
"china-area-data": "^5.0.1",
|
||||||
"cropperjs": "^1.6.1",
|
"cropperjs": "^1.6.2",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"echarts": "^5.5.0",
|
"echarts": "^5.5.0",
|
||||||
"el-table-infinite-scroll": "^3.0.3",
|
"el-table-infinite-scroll": "^3.0.3",
|
||||||
"element-plus": "2.6.3",
|
"element-plus": "^2.7.1",
|
||||||
"intro.js": "^7.2.0",
|
"intro.js": "^7.2.0",
|
||||||
"js-cookie": "^3.0.5",
|
"js-cookie": "^3.0.5",
|
||||||
"jsbarcode": "^3.11.6",
|
"jsbarcode": "^3.11.6",
|
||||||
@ -82,7 +80,7 @@
|
|||||||
"nprogress": "^0.2.0",
|
"nprogress": "^0.2.0",
|
||||||
"path": "^0.12.7",
|
"path": "^0.12.7",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^2.1.7",
|
||||||
"pinyin-pro": "^3.20.1",
|
"pinyin-pro": "^3.20.2",
|
||||||
"plus-pro-components": "^0.0.11",
|
"plus-pro-components": "^0.0.11",
|
||||||
"qrcode": "^1.5.3",
|
"qrcode": "^1.5.3",
|
||||||
"qs": "^6.12.1",
|
"qs": "^6.12.1",
|
||||||
@ -93,11 +91,11 @@
|
|||||||
"v-contextmenu": "^3.2.0",
|
"v-contextmenu": "^3.2.0",
|
||||||
"v3-infinite-loading": "^1.3.1",
|
"v3-infinite-loading": "^1.3.1",
|
||||||
"version-rocket": "^1.7.1",
|
"version-rocket": "^1.7.1",
|
||||||
"vue": "^3.4.23",
|
"vue": "^3.4.24",
|
||||||
"vue-i18n": "^9.12.1",
|
"vue-i18n": "^9.13.1",
|
||||||
"vue-json-pretty": "^2.4.0",
|
"vue-json-pretty": "^2.4.0",
|
||||||
"vue-pdf-embed": "^2.0.3",
|
"vue-pdf-embed": "^2.0.3",
|
||||||
"vue-router": "^4.3.1",
|
"vue-router": "^4.3.2",
|
||||||
"vue-tippy": "^6.4.1",
|
"vue-tippy": "^6.4.1",
|
||||||
"vue-types": "^5.1.1",
|
"vue-types": "^5.1.1",
|
||||||
"vue-virtual-scroller": "2.0.0-beta.8",
|
"vue-virtual-scroller": "2.0.0-beta.8",
|
||||||
@ -105,7 +103,7 @@
|
|||||||
"vue3-danmaku": "^1.6.0",
|
"vue3-danmaku": "^1.6.0",
|
||||||
"vue3-puzzle-vcode": "^1.1.7",
|
"vue3-puzzle-vcode": "^1.1.7",
|
||||||
"vuedraggable": "^4.1.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"vxe-table": "^4.5.22",
|
"vxe-table": "^4.6.0",
|
||||||
"wavesurfer.js": "^7.7.11",
|
"wavesurfer.js": "^7.7.11",
|
||||||
"xgplayer": "^3.0.16",
|
"xgplayer": "^3.0.16",
|
||||||
"xlsx": "^0.18.5"
|
"xlsx": "^0.18.5"
|
||||||
@ -114,11 +112,11 @@
|
|||||||
"@commitlint/cli": "^19.2.2",
|
"@commitlint/cli": "^19.2.2",
|
||||||
"@commitlint/config-conventional": "^19.2.2",
|
"@commitlint/config-conventional": "^19.2.2",
|
||||||
"@commitlint/types": "^19.0.3",
|
"@commitlint/types": "^19.0.3",
|
||||||
"@eslint/js": "^9.0.0",
|
"@eslint/js": "^9.1.1",
|
||||||
"@faker-js/faker": "^8.4.1",
|
"@faker-js/faker": "^8.4.1",
|
||||||
"@iconify-icons/ep": "^1.2.12",
|
"@iconify-icons/ep": "^1.2.12",
|
||||||
"@iconify-icons/ri": "^1.2.10",
|
"@iconify-icons/ri": "^1.2.10",
|
||||||
"@iconify/vue": "^4.1.1",
|
"@iconify/vue": "^4.1.2",
|
||||||
"@intlify/unplugin-vue-i18n": "^4.0.0",
|
"@intlify/unplugin-vue-i18n": "^4.0.0",
|
||||||
"@pureadmin/theme": "^3.2.0",
|
"@pureadmin/theme": "^3.2.0",
|
||||||
"@types/dagre": "^0.7.52",
|
"@types/dagre": "^0.7.52",
|
||||||
@ -130,15 +128,15 @@
|
|||||||
"@types/qrcode": "^1.5.5",
|
"@types/qrcode": "^1.5.5",
|
||||||
"@types/qs": "^6.9.15",
|
"@types/qs": "^6.9.15",
|
||||||
"@types/sortablejs": "^1.15.8",
|
"@types/sortablejs": "^1.15.8",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.7.0",
|
"@typescript-eslint/eslint-plugin": "^7.7.1",
|
||||||
"@typescript-eslint/parser": "^7.7.0",
|
"@typescript-eslint/parser": "^7.7.1",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "^5.0.4",
|
||||||
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
"@vitejs/plugin-vue-jsx": "^3.1.0",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
"boxen": "^7.1.1",
|
"boxen": "^7.1.1",
|
||||||
"cssnano": "^6.1.2",
|
"cssnano": "^6.1.2",
|
||||||
"dagre": "^0.8.5",
|
"dagre": "^0.8.5",
|
||||||
"eslint": "^9.0.0",
|
"eslint": "^9.1.1",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-define-config": "^2.1.0",
|
"eslint-define-config": "^2.1.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
@ -162,7 +160,7 @@
|
|||||||
"svgo": "^3.2.0",
|
"svgo": "^3.2.0",
|
||||||
"tailwindcss": "^3.4.3",
|
"tailwindcss": "^3.4.3",
|
||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"vite": "^5.2.9",
|
"vite": "^5.2.10",
|
||||||
"vite-plugin-cdn-import": "^0.3.5",
|
"vite-plugin-cdn-import": "^0.3.5",
|
||||||
"vite-plugin-compression": "^0.5.1",
|
"vite-plugin-compression": "^0.5.1",
|
||||||
"vite-plugin-fake-server": "^2.1.1",
|
"vite-plugin-fake-server": "^2.1.1",
|
||||||
|
832
pnpm-lock.yaml
generated
832
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"Version": "5.3.0",
|
"Version": "5.4.0",
|
||||||
"Title": "PureAdmin",
|
"Title": "PureAdmin",
|
||||||
"FixedHeader": true,
|
"FixedHeader": true,
|
||||||
"HiddenSideBar": false,
|
"HiddenSideBar": false,
|
||||||
|
@ -3,8 +3,12 @@ import { http } from "@/utils/http";
|
|||||||
export type UserResult = {
|
export type UserResult = {
|
||||||
success: boolean;
|
success: boolean;
|
||||||
data: {
|
data: {
|
||||||
|
/** 头像 */
|
||||||
|
avatar: string;
|
||||||
/** 用户名 */
|
/** 用户名 */
|
||||||
username: string;
|
username: string;
|
||||||
|
/** 昵称 */
|
||||||
|
nickname: string;
|
||||||
/** 当前登录用户的角色 */
|
/** 当前登录用户的角色 */
|
||||||
roles: Array<string>;
|
roles: Array<string>;
|
||||||
/** `token` */
|
/** `token` */
|
||||||
|
@ -16,6 +16,7 @@ import {
|
|||||||
// Export,
|
// Export,
|
||||||
// Keyboard,
|
// Keyboard,
|
||||||
// Validator,
|
// Validator,
|
||||||
|
Custom,
|
||||||
// 可选组件
|
// 可选组件
|
||||||
Icon,
|
Icon,
|
||||||
Column,
|
Column,
|
||||||
@ -64,14 +65,15 @@ VXETable.config({
|
|||||||
|
|
||||||
export function useVxeTable(app: App) {
|
export function useVxeTable(app: App) {
|
||||||
// 表格功能
|
// 表格功能
|
||||||
// app.use(Filter)
|
app
|
||||||
|
// .use(Filter)
|
||||||
// .use(Edit)
|
// .use(Edit)
|
||||||
// .use(Menu)
|
// .use(Menu)
|
||||||
// .use(Export)
|
// .use(Export)
|
||||||
// .use(Keyboard)
|
// .use(Keyboard)
|
||||||
// .use(Validator)
|
// .use(Validator)
|
||||||
|
.use(Custom)
|
||||||
// 可选组件
|
// 可选组件
|
||||||
app
|
|
||||||
.use(Icon)
|
.use(Icon)
|
||||||
.use(Column)
|
.use(Column)
|
||||||
// .use(Colgroup)
|
// .use(Colgroup)
|
||||||
|
@ -95,22 +95,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: "/able/word",
|
|
||||||
name: "Word",
|
|
||||||
component: () => import("@/views/able/word.vue"),
|
|
||||||
meta: {
|
|
||||||
title: $t("menus.pureWord")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/able/excels",
|
|
||||||
name: "Excels",
|
|
||||||
component: () => import("@/views/able/excels.vue"),
|
|
||||||
meta: {
|
|
||||||
title: $t("menus.pureExcels")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "/able/pdf",
|
path: "/able/pdf",
|
||||||
name: "Pdf",
|
name: "Pdf",
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
import { defineStore } from "pinia";
|
||||||
import {
|
import {
|
||||||
type appType,
|
type appType,
|
||||||
store,
|
store,
|
||||||
getConfig,
|
getConfig,
|
||||||
defineStore,
|
|
||||||
storageLocal,
|
storageLocal,
|
||||||
deviceDetection,
|
deviceDetection,
|
||||||
responsiveStorageNameSpace
|
responsiveStorageNameSpace
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
import { defineStore } from "pinia";
|
||||||
import {
|
import {
|
||||||
store,
|
store,
|
||||||
getConfig,
|
getConfig,
|
||||||
defineStore,
|
|
||||||
storageLocal,
|
storageLocal,
|
||||||
responsiveStorageNameSpace
|
responsiveStorageNameSpace
|
||||||
} from "../utils";
|
} from "../utils";
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { defineStore } from "pinia";
|
||||||
import {
|
import {
|
||||||
type multiType,
|
type multiType,
|
||||||
type positionType,
|
type positionType,
|
||||||
@ -7,7 +8,6 @@ import {
|
|||||||
isNumber,
|
isNumber,
|
||||||
isBoolean,
|
isBoolean,
|
||||||
getConfig,
|
getConfig,
|
||||||
defineStore,
|
|
||||||
routerArrays,
|
routerArrays,
|
||||||
storageLocal,
|
storageLocal,
|
||||||
responsiveStorageNameSpace
|
responsiveStorageNameSpace
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { defineStore } from "pinia";
|
||||||
import {
|
import {
|
||||||
type cacheType,
|
type cacheType,
|
||||||
store,
|
store,
|
||||||
@ -5,7 +6,6 @@ import {
|
|||||||
ascending,
|
ascending,
|
||||||
getKeyList,
|
getKeyList,
|
||||||
filterTree,
|
filterTree,
|
||||||
defineStore,
|
|
||||||
constantMenus,
|
constantMenus,
|
||||||
filterNoPermissionTree,
|
filterNoPermissionTree,
|
||||||
formatFlatteningRoutes
|
formatFlatteningRoutes
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { type setType, store, defineStore, getConfig } from "../utils";
|
import { defineStore } from "pinia";
|
||||||
|
import { type setType, store, getConfig } from "../utils";
|
||||||
|
|
||||||
export const useSettingStore = defineStore({
|
export const useSettingStore = defineStore({
|
||||||
id: "pure-setting",
|
id: "pure-setting",
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
|
import { defineStore } from "pinia";
|
||||||
import {
|
import {
|
||||||
type userType,
|
type userType,
|
||||||
store,
|
store,
|
||||||
router,
|
router,
|
||||||
defineStore,
|
|
||||||
resetRouter,
|
resetRouter,
|
||||||
routerArrays,
|
routerArrays,
|
||||||
storageLocal
|
storageLocal
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
export { store } from "@/store";
|
export { store } from "@/store";
|
||||||
export { defineStore } from "pinia";
|
|
||||||
export { routerArrays } from "@/layout/types";
|
export { routerArrays } from "@/layout/types";
|
||||||
export { router, resetRouter, constantMenus } from "@/router";
|
export { router, resetRouter, constantMenus } from "@/router";
|
||||||
export { getConfig, responsiveStorageNameSpace } from "@/config";
|
export { getConfig, responsiveStorageNameSpace } from "@/config";
|
||||||
|
@ -86,7 +86,8 @@ html.dark {
|
|||||||
background: var(--el-bg-color) !important;
|
background: var(--el-bg-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-main {
|
.app-main,
|
||||||
|
.app-main-nofixed-header {
|
||||||
background: #020409 !important;
|
background: #020409 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import "@vue-office/excel/lib/index.css";
|
|
||||||
import VueOfficeExcel from "@vue-office/excel";
|
|
||||||
|
|
||||||
defineOptions({
|
|
||||||
name: "Excels"
|
|
||||||
});
|
|
||||||
|
|
||||||
const excel = "https://xiaoxian521.github.io/hyperlink/other/excel.xlsx";
|
|
||||||
|
|
||||||
function renderedHandler() {
|
|
||||||
console.log("渲染完成");
|
|
||||||
}
|
|
||||||
|
|
||||||
function errorHandler() {
|
|
||||||
console.log("渲染失败");
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<vue-office-excel
|
|
||||||
:src="excel"
|
|
||||||
style="height: 100vh"
|
|
||||||
@rendered="renderedHandler"
|
|
||||||
@error="errorHandler"
|
|
||||||
/>
|
|
||||||
</template>
|
|
@ -1,18 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import "@vue-office/docx/lib/index.css";
|
|
||||||
import VueOfficeDocx from "@vue-office/docx";
|
|
||||||
|
|
||||||
defineOptions({
|
|
||||||
name: "Word"
|
|
||||||
});
|
|
||||||
|
|
||||||
const docx = "https://xiaoxian521.github.io/hyperlink/other/word.docx";
|
|
||||||
|
|
||||||
function rendered() {
|
|
||||||
console.log("渲染完成");
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<vue-office-docx :src="docx" @rendered="rendered" />
|
|
||||||
</template>
|
|
@ -13,7 +13,7 @@ defineOptions({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const imgSrc = ref("");
|
const imgSrc = ref("");
|
||||||
const cropperInfo = ref();
|
const cropperBlob = ref();
|
||||||
const cropRef = ref();
|
const cropRef = ref();
|
||||||
const uploadRef = ref();
|
const uploadRef = ref();
|
||||||
const isShow = ref(false);
|
const isShow = ref(false);
|
||||||
@ -66,11 +66,11 @@ const handleClose = () => {
|
|||||||
isShow.value = false;
|
isShow.value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
const onCropper = info => (cropperInfo.value = info);
|
const onCropper = ({ blob }) => (cropperBlob.value = blob);
|
||||||
|
|
||||||
const handleSubmitImage = () => {
|
const handleSubmitImage = () => {
|
||||||
const formData = createFormData({
|
const formData = createFormData({
|
||||||
files: new File([cropperInfo.value], "avatar")
|
files: new File([cropperBlob.value], "avatar")
|
||||||
});
|
});
|
||||||
formUpload(formData)
|
formUpload(formData)
|
||||||
.then(({ success, data }) => {
|
.then(({ success, data }) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user