mirror of
				https://github.com/pure-admin/vue-pure-admin.git
				synced 2025-11-03 13:44:47 +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