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
						7076d2761a
					
				@ -37,6 +37,7 @@ const include = [
 | 
				
			|||||||
  "@pureadmin/utils",
 | 
					  "@pureadmin/utils",
 | 
				
			||||||
  "@wangeditor/editor",
 | 
					  "@wangeditor/editor",
 | 
				
			||||||
  "responsive-storage",
 | 
					  "responsive-storage",
 | 
				
			||||||
 | 
					  "plus-pro-components",
 | 
				
			||||||
  "@howdyjs/mouse-menu",
 | 
					  "@howdyjs/mouse-menu",
 | 
				
			||||||
  "@logicflow/extension",
 | 
					  "@logicflow/extension",
 | 
				
			||||||
  "vue-virtual-scroller",
 | 
					  "vue-virtual-scroller",
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,7 @@ menus:
 | 
				
			|||||||
  hsCollapse: Collapse
 | 
					  hsCollapse: Collapse
 | 
				
			||||||
  hsProgress: Progress
 | 
					  hsProgress: Progress
 | 
				
			||||||
  hsUpload: File Upload
 | 
					  hsUpload: File Upload
 | 
				
			||||||
 | 
					  hsCheckCard: CheckCard
 | 
				
			||||||
  hsmenus: MultiLevel Menu
 | 
					  hsmenus: MultiLevel Menu
 | 
				
			||||||
  hsmenu1: Menu1
 | 
					  hsmenu1: Menu1
 | 
				
			||||||
  hsmenu1-1: Menu1-1
 | 
					  hsmenu1-1: Menu1-1
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,7 @@ menus:
 | 
				
			|||||||
  hsCollapse: 折叠面板
 | 
					  hsCollapse: 折叠面板
 | 
				
			||||||
  hsProgress: 进度条
 | 
					  hsProgress: 进度条
 | 
				
			||||||
  hsUpload: 文件上传
 | 
					  hsUpload: 文件上传
 | 
				
			||||||
 | 
					  hsCheckCard: 多选卡片
 | 
				
			||||||
  hsmenus: 多级菜单
 | 
					  hsmenus: 多级菜单
 | 
				
			||||||
  hsmenu1: 菜单1
 | 
					  hsmenu1: 菜单1
 | 
				
			||||||
  hsmenu1-1: 菜单1-1
 | 
					  hsmenu1-1: 菜单1-1
 | 
				
			||||||
 | 
				
			|||||||
@ -78,6 +78,7 @@
 | 
				
			|||||||
    "path": "^0.12.7",
 | 
					    "path": "^0.12.7",
 | 
				
			||||||
    "pinia": "^2.1.7",
 | 
					    "pinia": "^2.1.7",
 | 
				
			||||||
    "pinyin-pro": "^3.19.6",
 | 
					    "pinyin-pro": "^3.19.6",
 | 
				
			||||||
 | 
					    "plus-pro-components": "^0.0.1",
 | 
				
			||||||
    "qrcode": "^1.5.3",
 | 
					    "qrcode": "^1.5.3",
 | 
				
			||||||
    "qs": "^6.11.2",
 | 
					    "qs": "^6.11.2",
 | 
				
			||||||
    "responsive-storage": "^2.2.0",
 | 
					    "responsive-storage": "^2.2.0",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										16
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										16
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -95,6 +95,9 @@ dependencies:
 | 
				
			|||||||
  pinyin-pro:
 | 
					  pinyin-pro:
 | 
				
			||||||
    specifier: ^3.19.6
 | 
					    specifier: ^3.19.6
 | 
				
			||||||
    version: 3.19.6
 | 
					    version: 3.19.6
 | 
				
			||||||
 | 
					  plus-pro-components:
 | 
				
			||||||
 | 
					    specifier: ^0.0.1
 | 
				
			||||||
 | 
					    version: 0.0.1(element-plus@2.5.6)(vue@3.4.14)
 | 
				
			||||||
  qrcode:
 | 
					  qrcode:
 | 
				
			||||||
    specifier: ^1.5.3
 | 
					    specifier: ^1.5.3
 | 
				
			||||||
    version: 1.5.3
 | 
					    version: 1.5.3
 | 
				
			||||||
@ -6709,6 +6712,19 @@ packages:
 | 
				
			|||||||
      mlly: 1.6.1
 | 
					      mlly: 1.6.1
 | 
				
			||||||
      pathe: 1.1.2
 | 
					      pathe: 1.1.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /plus-pro-components@0.0.1(element-plus@2.5.6)(vue@3.4.14):
 | 
				
			||||||
 | 
					    resolution: {integrity: sha512-S4qvM6MF12y/G6ueqvgavVw8hVCIjVeO/Qol9uCiMpEJmxH60CfnfMVrx1mmea0jWquPWXFSk5U/Y1I2ua0BEQ==}
 | 
				
			||||||
 | 
					    peerDependencies:
 | 
				
			||||||
 | 
					      element-plus: ^2.3.4
 | 
				
			||||||
 | 
					      vue: ^3.2.0
 | 
				
			||||||
 | 
					    dependencies:
 | 
				
			||||||
 | 
					      '@element-plus/icons-vue': 2.3.1(vue@3.4.14)
 | 
				
			||||||
 | 
					      element-plus: 2.5.6(vue@3.4.14)
 | 
				
			||||||
 | 
					      lodash-es: 4.17.21
 | 
				
			||||||
 | 
					      sortablejs: 1.15.2
 | 
				
			||||||
 | 
					      vue: 3.4.14(typescript@5.3.3)
 | 
				
			||||||
 | 
					    dev: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /pngjs@5.0.0:
 | 
					  /pngjs@5.0.0:
 | 
				
			||||||
    resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
 | 
					    resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
 | 
				
			||||||
    engines: {node: '>=10.13.0'}
 | 
					    engines: {node: '>=10.13.0'}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,55 +1,54 @@
 | 
				
			|||||||
 | 
					// 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载
 | 
				
			||||||
import { addIcon } from "@iconify/vue/dist/offline";
 | 
					import { addIcon } from "@iconify/vue/dist/offline";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					// 本地菜单图标,后端在路由的 icon 中返回对应的图标字符串并且前端在此处使用 addIcon 添加即可渲染菜单图标
 | 
				
			||||||
 * 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载
 | 
					// @iconify-icons/ep
 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 本地菜单图标,后端在路由的icon中返回对应的图标字符串并且前端在此处使用addIcon添加即可渲染菜单图标
 | 
					 | 
				
			||||||
import UbuntuFill from "@iconify-icons/ri/ubuntu-fill";
 | 
					 | 
				
			||||||
import Menu from "@iconify-icons/ep/menu";
 | 
					import Menu from "@iconify-icons/ep/menu";
 | 
				
			||||||
import Edit from "@iconify-icons/ep/edit";
 | 
					import Edit from "@iconify-icons/ep/edit";
 | 
				
			||||||
import InformationLine from "@iconify-icons/ri/information-line";
 | 
					 | 
				
			||||||
import SetUp from "@iconify-icons/ep/set-up";
 | 
					import SetUp from "@iconify-icons/ep/set-up";
 | 
				
			||||||
import TerminalWindowLine from "@iconify-icons/ri/terminal-window-line";
 | 
					 | 
				
			||||||
import Guide from "@iconify-icons/ep/guide";
 | 
					import Guide from "@iconify-icons/ep/guide";
 | 
				
			||||||
import HomeFilled from "@iconify-icons/ep/home-filled";
 | 
					 | 
				
			||||||
import Card from "@iconify-icons/ri/bank-card-line";
 | 
					 | 
				
			||||||
import ListCheck from "@iconify-icons/ri/list-check";
 | 
					 | 
				
			||||||
import Histogram from "@iconify-icons/ep/histogram";
 | 
					 | 
				
			||||||
import Ppt from "@iconify-icons/ri/file-ppt-2-line";
 | 
					 | 
				
			||||||
import CheckboxCircleLine from "@iconify-icons/ri/checkbox-circle-line";
 | 
					 | 
				
			||||||
import FlUser from "@iconify-icons/ri/admin-line";
 | 
					 | 
				
			||||||
import Role from "@iconify-icons/ri/admin-fill";
 | 
					 | 
				
			||||||
import Setting from "@iconify-icons/ri/settings-3-line";
 | 
					 | 
				
			||||||
import Dept from "@iconify-icons/ri/git-branch-line";
 | 
					 | 
				
			||||||
import Search from "@iconify-icons/ri/search-line";
 | 
					 | 
				
			||||||
import Lollipop from "@iconify-icons/ep/lollipop";
 | 
					 | 
				
			||||||
import Monitor from "@iconify-icons/ep/monitor";
 | 
					import Monitor from "@iconify-icons/ep/monitor";
 | 
				
			||||||
import Tag from "@iconify-icons/ri/bookmark-2-line";
 | 
					import Lollipop from "@iconify-icons/ep/lollipop";
 | 
				
			||||||
import Table from "@iconify-icons/ri/table-line";
 | 
					import Histogram from "@iconify-icons/ep/histogram";
 | 
				
			||||||
import Info from "@iconify-icons/ri/file-info-line";
 | 
					import HomeFilled from "@iconify-icons/ep/home-filled";
 | 
				
			||||||
import Artboard from "@iconify-icons/ri/artboard-line";
 | 
					 | 
				
			||||||
addIcon("ubuntuFill", UbuntuFill);
 | 
					 | 
				
			||||||
addIcon("ep:menu", Menu);
 | 
					addIcon("ep:menu", Menu);
 | 
				
			||||||
addIcon("edit", Edit);
 | 
					addIcon("ep:edit", Edit);
 | 
				
			||||||
addIcon("informationLine", InformationLine);
 | 
					addIcon("ep:set-up", SetUp);
 | 
				
			||||||
addIcon("setUp", SetUp);
 | 
					addIcon("ep:guide", Guide);
 | 
				
			||||||
addIcon("terminalWindowLine", TerminalWindowLine);
 | 
					 | 
				
			||||||
addIcon("guide", Guide);
 | 
					 | 
				
			||||||
addIcon("homeFilled", HomeFilled);
 | 
					 | 
				
			||||||
addIcon("card", Card);
 | 
					 | 
				
			||||||
addIcon("listCheck", ListCheck);
 | 
					 | 
				
			||||||
addIcon("histogram", Histogram);
 | 
					 | 
				
			||||||
addIcon("ppt", Ppt);
 | 
					 | 
				
			||||||
addIcon("checkboxCircleLine", CheckboxCircleLine);
 | 
					 | 
				
			||||||
addIcon("ri:admin-line", FlUser);
 | 
					 | 
				
			||||||
addIcon("ri:admin-fill", Role);
 | 
					 | 
				
			||||||
addIcon("ri:settings-3-line", Setting);
 | 
					 | 
				
			||||||
addIcon("ri:git-branch-line", Dept);
 | 
					 | 
				
			||||||
addIcon("search", Search);
 | 
					 | 
				
			||||||
addIcon("ep:lollipop", Lollipop);
 | 
					 | 
				
			||||||
addIcon("ep:monitor", Monitor);
 | 
					addIcon("ep:monitor", Monitor);
 | 
				
			||||||
 | 
					addIcon("ep:lollipop", Lollipop);
 | 
				
			||||||
 | 
					addIcon("ep:histogram", Histogram);
 | 
				
			||||||
 | 
					addIcon("ep:home-filled", HomeFilled);
 | 
				
			||||||
 | 
					// @iconify-icons/ri
 | 
				
			||||||
 | 
					import Tag from "@iconify-icons/ri/bookmark-2-line";
 | 
				
			||||||
 | 
					import Ppt from "@iconify-icons/ri/file-ppt-2-line";
 | 
				
			||||||
 | 
					import Card from "@iconify-icons/ri/bank-card-line";
 | 
				
			||||||
 | 
					import Role from "@iconify-icons/ri/admin-fill";
 | 
				
			||||||
 | 
					import Info from "@iconify-icons/ri/file-info-line";
 | 
				
			||||||
 | 
					import Dept from "@iconify-icons/ri/git-branch-line";
 | 
				
			||||||
 | 
					import Table from "@iconify-icons/ri/table-line";
 | 
				
			||||||
 | 
					import Search from "@iconify-icons/ri/search-line";
 | 
				
			||||||
 | 
					import FlUser from "@iconify-icons/ri/admin-line";
 | 
				
			||||||
 | 
					import Setting from "@iconify-icons/ri/settings-3-line";
 | 
				
			||||||
 | 
					import Artboard from "@iconify-icons/ri/artboard-line";
 | 
				
			||||||
 | 
					import ListCheck from "@iconify-icons/ri/list-check";
 | 
				
			||||||
 | 
					import UbuntuFill from "@iconify-icons/ri/ubuntu-fill";
 | 
				
			||||||
 | 
					import InformationLine from "@iconify-icons/ri/information-line";
 | 
				
			||||||
 | 
					import TerminalWindowLine from "@iconify-icons/ri/terminal-window-line";
 | 
				
			||||||
 | 
					import CheckboxCircleLine from "@iconify-icons/ri/checkbox-circle-line";
 | 
				
			||||||
addIcon("ri:bookmark-2-line", Tag);
 | 
					addIcon("ri:bookmark-2-line", Tag);
 | 
				
			||||||
addIcon("table", Table);
 | 
					addIcon("ri:file-ppt-2-line", Ppt);
 | 
				
			||||||
addIcon("info", Info);
 | 
					addIcon("ri:bank-card-line", Card);
 | 
				
			||||||
addIcon("artboard", Artboard);
 | 
					addIcon("ri:admin-fill", Role);
 | 
				
			||||||
 | 
					addIcon("ri:file-info-line", Info);
 | 
				
			||||||
 | 
					addIcon("ri:git-branch-line", Dept);
 | 
				
			||||||
 | 
					addIcon("ri:table-line", Table);
 | 
				
			||||||
 | 
					addIcon("ri:search-line", Search);
 | 
				
			||||||
 | 
					addIcon("ri:admin-line", FlUser);
 | 
				
			||||||
 | 
					addIcon("ri:settings-3-line", Setting);
 | 
				
			||||||
 | 
					addIcon("ri:artboard-line", Artboard);
 | 
				
			||||||
 | 
					addIcon("ri:list-check", ListCheck);
 | 
				
			||||||
 | 
					addIcon("ri:ubuntu-fill", UbuntuFill);
 | 
				
			||||||
 | 
					addIcon("ri:information-line", InformationLine);
 | 
				
			||||||
 | 
					addIcon("ri:terminal-window-line", TerminalWindowLine);
 | 
				
			||||||
 | 
					addIcon("ri:checkbox-circle-line", CheckboxCircleLine);
 | 
				
			||||||
 | 
				
			|||||||
@ -14,7 +14,7 @@ function handleSearch() {
 | 
				
			|||||||
      class="search-container w-[40px] h-[48px] flex-c cursor-pointer navbar-bg-hover"
 | 
					      class="search-container w-[40px] h-[48px] flex-c cursor-pointer navbar-bg-hover"
 | 
				
			||||||
      @click="handleSearch"
 | 
					      @click="handleSearch"
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <IconifyIconOffline icon="search" />
 | 
					      <IconifyIconOffline icon="ri:search-line" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <SearchModal v-model:value="show" />
 | 
					    <SearchModal v-model:value="show" />
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ export const routerArrays: Array<RouteConfigs> =
 | 
				
			|||||||
          path: "/welcome",
 | 
					          path: "/welcome",
 | 
				
			||||||
          meta: {
 | 
					          meta: {
 | 
				
			||||||
            title: "menus.hshome",
 | 
					            title: "menus.hshome",
 | 
				
			||||||
            icon: "homeFilled"
 | 
					            icon: "ep:home-filled"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/able",
 | 
					  path: "/able",
 | 
				
			||||||
  redirect: "/able/watermark",
 | 
					  redirect: "/able/watermark",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "ubuntuFill",
 | 
					    icon: "ri:ubuntu-fill",
 | 
				
			||||||
    title: $t("menus.hsAble"),
 | 
					    title: $t("menus.hsAble"),
 | 
				
			||||||
    rank: able
 | 
					    rank: able
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/about",
 | 
					  path: "/about",
 | 
				
			||||||
  redirect: "/about/index",
 | 
					  redirect: "/about/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "info",
 | 
					    icon: "ri:file-info-line",
 | 
				
			||||||
    title: $t("menus.hsAbout"),
 | 
					    title: $t("menus.hsAbout"),
 | 
				
			||||||
    rank: about
 | 
					    rank: about
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ export default {
 | 
				
			|||||||
  path: "/board",
 | 
					  path: "/board",
 | 
				
			||||||
  redirect: "/board/index",
 | 
					  redirect: "/board/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "artboard",
 | 
					    icon: "ri:artboard-line",
 | 
				
			||||||
    title: $t("menus.hsboard"),
 | 
					    title: $t("menus.hsboard"),
 | 
				
			||||||
    rank: board
 | 
					    rank: board
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -31,7 +31,15 @@ export default {
 | 
				
			|||||||
      name: "PureUpload",
 | 
					      name: "PureUpload",
 | 
				
			||||||
      component: () => import("@/views/components/upload/index.vue"),
 | 
					      component: () => import("@/views/components/upload/index.vue"),
 | 
				
			||||||
      meta: {
 | 
					      meta: {
 | 
				
			||||||
        title: $t("menus.hsUpload"),
 | 
					        title: $t("menus.hsUpload")
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      path: "/components/check-card",
 | 
				
			||||||
 | 
					      name: "CheckCard",
 | 
				
			||||||
 | 
					      component: () => import("@/views/components/check-card.vue"),
 | 
				
			||||||
 | 
					      meta: {
 | 
				
			||||||
 | 
					        title: $t("menus.hsCheckCard"),
 | 
				
			||||||
        extraIcon: "IF-pure-iconfont-new svg"
 | 
					        extraIcon: "IF-pure-iconfont-new svg"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/editor",
 | 
					  path: "/editor",
 | 
				
			||||||
  redirect: "/editor/index",
 | 
					  redirect: "/editor/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "edit",
 | 
					    icon: "ep:edit",
 | 
				
			||||||
    title: $t("menus.hseditor"),
 | 
					    title: $t("menus.hseditor"),
 | 
				
			||||||
    rank: editor
 | 
					    rank: editor
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/error",
 | 
					  path: "/error",
 | 
				
			||||||
  redirect: "/error/403",
 | 
					  redirect: "/error/403",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "informationLine",
 | 
					    icon: "ri:information-line",
 | 
				
			||||||
    // showLink: false,
 | 
					    // showLink: false,
 | 
				
			||||||
    title: $t("menus.hsabnormal"),
 | 
					    title: $t("menus.hsabnormal"),
 | 
				
			||||||
    rank: error
 | 
					    rank: error
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/flow-chart",
 | 
					  path: "/flow-chart",
 | 
				
			||||||
  redirect: "/flow-chart/index",
 | 
					  redirect: "/flow-chart/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "setUp",
 | 
					    icon: "ep:set-up",
 | 
				
			||||||
    title: $t("menus.hsflowChart"),
 | 
					    title: $t("menus.hsflowChart"),
 | 
				
			||||||
    rank: flowchart
 | 
					    rank: flowchart
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ export default {
 | 
				
			|||||||
  path: "/form-design",
 | 
					  path: "/form-design",
 | 
				
			||||||
  redirect: "/form-design/index",
 | 
					  redirect: "/form-design/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "terminalWindowLine",
 | 
					    icon: "ri:terminal-window-line",
 | 
				
			||||||
    title: $t("menus.hsFormDesign"),
 | 
					    title: $t("menus.hsFormDesign"),
 | 
				
			||||||
    rank: formdesign
 | 
					    rank: formdesign
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/guide",
 | 
					  path: "/guide",
 | 
				
			||||||
  redirect: "/guide/index",
 | 
					  redirect: "/guide/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "guide",
 | 
					    icon: "ep:guide",
 | 
				
			||||||
    title: $t("menus.hsguide"),
 | 
					    title: $t("menus.hsguide"),
 | 
				
			||||||
    rank: guide
 | 
					    rank: guide
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@ export default {
 | 
				
			|||||||
  component: Layout,
 | 
					  component: Layout,
 | 
				
			||||||
  redirect: "/welcome",
 | 
					  redirect: "/welcome",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "homeFilled",
 | 
					    icon: "ep:home-filled",
 | 
				
			||||||
    title: $t("menus.hshome"),
 | 
					    title: $t("menus.hshome"),
 | 
				
			||||||
    rank: home
 | 
					    rank: home
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/list",
 | 
					  path: "/list",
 | 
				
			||||||
  redirect: "/list/card",
 | 
					  redirect: "/list/card",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "listCheck",
 | 
					    icon: "ri:list-check",
 | 
				
			||||||
    title: $t("menus.hsList"),
 | 
					    title: $t("menus.hsList"),
 | 
				
			||||||
    rank: list
 | 
					    rank: list
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@ -15,7 +15,7 @@ export default {
 | 
				
			|||||||
      name: "ListCard",
 | 
					      name: "ListCard",
 | 
				
			||||||
      component: () => import("@/views/list/card/index.vue"),
 | 
					      component: () => import("@/views/list/card/index.vue"),
 | 
				
			||||||
      meta: {
 | 
					      meta: {
 | 
				
			||||||
        icon: "card",
 | 
					        icon: "ri:bank-card-line",
 | 
				
			||||||
        title: $t("menus.hsListCard"),
 | 
					        title: $t("menus.hsListCard"),
 | 
				
			||||||
        showParent: true
 | 
					        showParent: true
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
				
			|||||||
@ -6,7 +6,7 @@ export default {
 | 
				
			|||||||
  redirect: "/nested/menu1/menu1-1",
 | 
					  redirect: "/nested/menu1/menu1-1",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    title: $t("menus.hsmenus"),
 | 
					    title: $t("menus.hsmenus"),
 | 
				
			||||||
    icon: "histogram",
 | 
					    icon: "ep:histogram",
 | 
				
			||||||
    rank: nested
 | 
					    rank: nested
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  children: [
 | 
					  children: [
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/ppt",
 | 
					  path: "/ppt",
 | 
				
			||||||
  redirect: "/ppt/index",
 | 
					  redirect: "/ppt/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "ppt",
 | 
					    icon: "ri:file-ppt-2-line",
 | 
				
			||||||
    title: "PPT",
 | 
					    title: "PPT",
 | 
				
			||||||
    rank: ppt
 | 
					    rank: ppt
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/result",
 | 
					  path: "/result",
 | 
				
			||||||
  redirect: "/result/success",
 | 
					  redirect: "/result/success",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "checkboxCircleLine",
 | 
					    icon: "ri:checkbox-circle-line",
 | 
				
			||||||
    title: $t("menus.hsResult"),
 | 
					    title: $t("menus.hsResult"),
 | 
				
			||||||
    rank: result
 | 
					    rank: result
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -5,7 +5,7 @@ export default {
 | 
				
			|||||||
  path: "/pure-table",
 | 
					  path: "/pure-table",
 | 
				
			||||||
  redirect: "/pure-table/index",
 | 
					  redirect: "/pure-table/index",
 | 
				
			||||||
  meta: {
 | 
					  meta: {
 | 
				
			||||||
    icon: "table",
 | 
					    icon: "ri:table-line",
 | 
				
			||||||
    title: "pure-admin-table",
 | 
					    title: "pure-admin-table",
 | 
				
			||||||
    rank: table
 | 
					    rank: table
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
				
			|||||||
@ -10,6 +10,7 @@
 | 
				
			|||||||
.login-container {
 | 
					.login-container {
 | 
				
			||||||
  width: 100vw;
 | 
					  width: 100vw;
 | 
				
			||||||
  height: 100vh;
 | 
					  height: 100vh;
 | 
				
			||||||
 | 
					  max-width: 100%;
 | 
				
			||||||
  display: grid;
 | 
					  display: grid;
 | 
				
			||||||
  grid-template-columns: repeat(2, 1fr);
 | 
					  grid-template-columns: repeat(2, 1fr);
 | 
				
			||||||
  grid-gap: 18rem;
 | 
					  grid-gap: 18rem;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										82
									
								
								src/views/components/check-card.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/views/components/check-card.vue
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,82 @@
 | 
				
			|||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import { ref, watch } from "vue";
 | 
				
			||||||
 | 
					// https://plus-pro-components.com/components/check-card-group.html
 | 
				
			||||||
 | 
					import { PlusCheckCardGroup } from "plus-pro-components";
 | 
				
			||||||
 | 
					import "plus-pro-components/es/components/check-card-group/style/css";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					defineOptions({
 | 
				
			||||||
 | 
					  name: "CheckCard"
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const size = ref("default");
 | 
				
			||||||
 | 
					const dynamicSize = ref();
 | 
				
			||||||
 | 
					const list = ref("0");
 | 
				
			||||||
 | 
					const list1 = ref([]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const options = [
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    title: "标题一",
 | 
				
			||||||
 | 
					    value: "0",
 | 
				
			||||||
 | 
					    description: "坚持梦想,成就不凡的自己",
 | 
				
			||||||
 | 
					    avatar:
 | 
				
			||||||
 | 
					      "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    title: "标题二",
 | 
				
			||||||
 | 
					    value: "1",
 | 
				
			||||||
 | 
					    description: "每一次努力,都是成长的契机",
 | 
				
			||||||
 | 
					    avatar:
 | 
				
			||||||
 | 
					      "https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					watch(size, val =>
 | 
				
			||||||
 | 
					  val === "disabled"
 | 
				
			||||||
 | 
					    ? (dynamicSize.value = "default")
 | 
				
			||||||
 | 
					    : (dynamicSize.value = size.value)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <el-card shadow="never">
 | 
				
			||||||
 | 
					    <template #header>
 | 
				
			||||||
 | 
					      <div class="card-header">
 | 
				
			||||||
 | 
					        <el-space wrap :size="40">
 | 
				
			||||||
 | 
					          <el-link
 | 
				
			||||||
 | 
					            v-tippy="{
 | 
				
			||||||
 | 
					              content: '点击查看详细文档'
 | 
				
			||||||
 | 
					            }"
 | 
				
			||||||
 | 
					            href="https://plus-pro-components.com/components/check-card-group.html"
 | 
				
			||||||
 | 
					            target="_blank"
 | 
				
			||||||
 | 
					            style="font-size: 16px; font-weight: 800"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            多选卡片组
 | 
				
			||||||
 | 
					          </el-link>
 | 
				
			||||||
 | 
					          <el-radio-group v-model="size" size="small">
 | 
				
			||||||
 | 
					            <el-radio label="large">大尺寸</el-radio>
 | 
				
			||||||
 | 
					            <el-radio label="default">默认尺寸</el-radio>
 | 
				
			||||||
 | 
					            <el-radio label="small">小尺寸</el-radio>
 | 
				
			||||||
 | 
					            <el-radio label="disabled">禁用</el-radio>
 | 
				
			||||||
 | 
					          </el-radio-group>
 | 
				
			||||||
 | 
					        </el-space>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p class="mb-2 mt-4">单选</p>
 | 
				
			||||||
 | 
					    <PlusCheckCardGroup
 | 
				
			||||||
 | 
					      v-model="list"
 | 
				
			||||||
 | 
					      :options="options"
 | 
				
			||||||
 | 
					      :size="dynamicSize"
 | 
				
			||||||
 | 
					      :disabled="size === 'disabled'"
 | 
				
			||||||
 | 
					    />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p class="mb-2 mt-4">多选</p>
 | 
				
			||||||
 | 
					    <PlusCheckCardGroup
 | 
				
			||||||
 | 
					      v-model="list1"
 | 
				
			||||||
 | 
					      :options="options"
 | 
				
			||||||
 | 
					      :size="dynamicSize"
 | 
				
			||||||
 | 
					      :disabled="size === 'disabled'"
 | 
				
			||||||
 | 
					      multiple
 | 
				
			||||||
 | 
					    />
 | 
				
			||||||
 | 
					  </el-card>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
@ -86,7 +86,7 @@ const optionsIcon: Array<OptionsType> = [
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: "周三",
 | 
					    label: "周三",
 | 
				
			||||||
    icon: "terminalWindowLine"
 | 
					    icon: "ri:terminal-window-line"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    label: "周四"
 | 
					    label: "周四"
 | 
				
			||||||
@ -103,7 +103,7 @@ const optionsOnlyIcon: Array<OptionsType> = [
 | 
				
			|||||||
    icon: HomeFilled
 | 
					    icon: HomeFilled
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    icon: "terminalWindowLine"
 | 
					    icon: "ri:terminal-window-line"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    icon: "streamline-emojis:cow-face"
 | 
					    icon: "streamline-emojis:cow-face"
 | 
				
			||||||
@ -131,7 +131,7 @@ const optionsLabel: Array<OptionsType> = [
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    label: () => (
 | 
					    label: () => (
 | 
				
			||||||
      <div>
 | 
					      <div>
 | 
				
			||||||
        {h(useRenderIcon("terminalWindowLine"), {
 | 
					        {h(useRenderIcon("ri:terminal-window-line"), {
 | 
				
			||||||
          class: "m-auto mt-1 w-[18px] h-[18px]"
 | 
					          class: "m-auto mt-1 w-[18px] h-[18px]"
 | 
				
			||||||
        })}
 | 
					        })}
 | 
				
			||||||
        <p>周二</p>
 | 
					        <p>周二</p>
 | 
				
			||||||
 | 
				
			|||||||
@ -110,7 +110,7 @@ const handleManageProduct = product => {
 | 
				
			|||||||
          <el-icon class="el-input__icon">
 | 
					          <el-icon class="el-input__icon">
 | 
				
			||||||
            <IconifyIconOffline
 | 
					            <IconifyIconOffline
 | 
				
			||||||
              v-show="searchValue.length === 0"
 | 
					              v-show="searchValue.length === 0"
 | 
				
			||||||
              icon="search"
 | 
					              icon="ri:search-line"
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
          </el-icon>
 | 
					          </el-icon>
 | 
				
			||||||
        </template>
 | 
					        </template>
 | 
				
			||||||
 | 
				
			|||||||
@ -58,7 +58,7 @@ const {
 | 
				
			|||||||
      <el-form-item>
 | 
					      <el-form-item>
 | 
				
			||||||
        <el-button
 | 
					        <el-button
 | 
				
			||||||
          type="primary"
 | 
					          type="primary"
 | 
				
			||||||
          :icon="useRenderIcon('search')"
 | 
					          :icon="useRenderIcon('ri:search-line')"
 | 
				
			||||||
          :loading="loading"
 | 
					          :loading="loading"
 | 
				
			||||||
          @click="onSearch"
 | 
					          @click="onSearch"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
 | 
				
			|||||||
@ -48,7 +48,7 @@ const {
 | 
				
			|||||||
      <el-form-item>
 | 
					      <el-form-item>
 | 
				
			||||||
        <el-button
 | 
					        <el-button
 | 
				
			||||||
          type="primary"
 | 
					          type="primary"
 | 
				
			||||||
          :icon="useRenderIcon('search')"
 | 
					          :icon="useRenderIcon('ri:search-line')"
 | 
				
			||||||
          :loading="loading"
 | 
					          :loading="loading"
 | 
				
			||||||
          @click="onSearch"
 | 
					          @click="onSearch"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
 | 
				
			|||||||
@ -74,7 +74,7 @@ const {
 | 
				
			|||||||
      <el-form-item>
 | 
					      <el-form-item>
 | 
				
			||||||
        <el-button
 | 
					        <el-button
 | 
				
			||||||
          type="primary"
 | 
					          type="primary"
 | 
				
			||||||
          :icon="useRenderIcon('search')"
 | 
					          :icon="useRenderIcon('ri:search-line')"
 | 
				
			||||||
          :loading="loading"
 | 
					          :loading="loading"
 | 
				
			||||||
          @click="onSearch"
 | 
					          @click="onSearch"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
 | 
				
			|||||||
@ -95,7 +95,7 @@ const {
 | 
				
			|||||||
        <el-form-item>
 | 
					        <el-form-item>
 | 
				
			||||||
          <el-button
 | 
					          <el-button
 | 
				
			||||||
            type="primary"
 | 
					            type="primary"
 | 
				
			||||||
            :icon="useRenderIcon('search')"
 | 
					            :icon="useRenderIcon('ri:search-line')"
 | 
				
			||||||
            :loading="loading"
 | 
					            :loading="loading"
 | 
				
			||||||
            @click="onSearch"
 | 
					            @click="onSearch"
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
 | 
				
			|||||||
@ -110,7 +110,7 @@ defineExpose({ onTreeReset });
 | 
				
			|||||||
          <el-icon class="el-input__icon">
 | 
					          <el-icon class="el-input__icon">
 | 
				
			||||||
            <IconifyIconOffline
 | 
					            <IconifyIconOffline
 | 
				
			||||||
              v-show="searchValue.length === 0"
 | 
					              v-show="searchValue.length === 0"
 | 
				
			||||||
              icon="search"
 | 
					              icon="ri:search-line"
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
          </el-icon>
 | 
					          </el-icon>
 | 
				
			||||||
        </template>
 | 
					        </template>
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,7 @@ const { loading, columns, dataList, pagination, Empty, onCurrentChange } =
 | 
				
			|||||||
        circle
 | 
					        circle
 | 
				
			||||||
        size="small"
 | 
					        size="small"
 | 
				
			||||||
        :title="`查看序号为${row.id}的详情`"
 | 
					        :title="`查看序号为${row.id}的详情`"
 | 
				
			||||||
        :icon="useRenderIcon('search')"
 | 
					        :icon="useRenderIcon('ri:search-line')"
 | 
				
			||||||
      />
 | 
					      />
 | 
				
			||||||
    </template>
 | 
					    </template>
 | 
				
			||||||
  </pure-table>
 | 
					  </pure-table>
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user