From 859f8acfe289a3594065671e203c28f82f405d56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E7=A0=81=E5=86=9C?= <599854767@qq.com>
Date: Fri, 10 Jun 2022 22:25:19 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8Pinia=E4=BB=A3=E6=9B=BFVuex?=
=?UTF-8?q?=E8=BF=9B=E8=A1=8C=E6=95=B0=E6=8D=AE=E5=AD=98=E5=82=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 2 +-
src/App.vue | 9 +-
src/auto-import.d.ts | 13 +-
src/components/HeaderSearch/index.vue | 4 +-
src/components/LangSelect/index.vue | 7 +-
src/components/Notice/Index.vue | 7 +-
src/components/SizeSelect/index.vue | 27 +-
src/components/TopNav/index.vue | 13 +-
src/directive/permission/hasPermi.js | 46 +--
src/directive/permission/hasRole.js | 4 +-
src/i18n/index.js | 9 +-
src/layout/components/AppMain.vue | 8 +-
src/layout/components/Navbar.vue | 31 +-
src/layout/components/Settings/index.vue | 57 +--
src/layout/components/Sidebar/Logo.vue | 5 +-
src/layout/components/Sidebar/index.vue | 17 +-
src/layout/components/TagsView/ScrollPane.vue | 35 +-
src/layout/components/TagsView/index.vue | 16 +-
src/layout/index.vue | 36 +-
src/main.js | 2 +-
src/permission.js | 15 +-
src/plugins/auth.js | 8 +-
src/plugins/tab.js | 20 +-
src/store/getters.js | 25 --
src/store/index.js | 22 +-
src/store/modules/app.js | 183 +++++----
src/store/modules/permission.js | 49 ++-
src/store/modules/settings.js | 85 +++--
src/store/modules/socket.js | 58 ++-
src/store/modules/tagsView.js | 357 ++++++++----------
src/store/modules/user.js | 76 ++--
src/utils/dynamicTitle.js | 6 +-
src/utils/permission.js | 51 ---
src/utils/request.js | 6 +-
src/utils/signalR.js | 14 +-
src/views/dashboard/PanelGroup.vue | 3 +-
src/views/index_v1.vue | 7 +-
src/views/login.vue | 7 +-
src/views/system/user/profile/operLog.vue | 142 +++----
src/views/system/user/profile/userAvatar.vue | 11 +-
vite/plugins/auto-import.js | 4 +-
41 files changed, 700 insertions(+), 797 deletions(-)
delete mode 100644 src/store/getters.js
delete mode 100644 src/utils/permission.js
diff --git a/package.json b/package.json
index 0f35e5c..2fe5d71 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"jsencrypt": "3.2.1",
"md-editor-v3": "^1.11.11",
"nprogress": "0.2.0",
+ "pinia": "^2.0.14",
"sortablejs": "^1.15.0",
"vue": "^3.2.36",
"vue-clipboard3": "^2.0.0",
@@ -37,7 +38,6 @@
"vue-i18n": "^9.1.10",
"vue-router": "^4.0.15",
"vue3-seamless-scroll": "^1.2.0",
- "vuex": "4.0.2",
"wangeditor": "^4.7.15"
},
"devDependencies": {
diff --git a/src/App.vue b/src/App.vue
index 0408db9..9e2725f 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -4,7 +4,8 @@
diff --git a/src/components/Notice/Index.vue b/src/components/Notice/Index.vue
index d6df379..ad4c3e5 100644
--- a/src/components/Notice/Index.vue
+++ b/src/components/Notice/Index.vue
@@ -33,15 +33,18 @@
diff --git a/src/components/TopNav/index.vue b/src/components/TopNav/index.vue
index 0932a45..d0c6e11 100644
--- a/src/components/TopNav/index.vue
+++ b/src/components/TopNav/index.vue
@@ -37,6 +37,9 @@ import { constantRoutes } from '@/router'
import { isHttp } from '@/utils/validate'
import { useRouter } from 'vue-router'
import { getNormalPath } from '@/utils/ruoyi'
+import useAppStore from '@/store/modules/app'
+import useSettingsStore from '@/store/modules/settings'
+import usePermissionStore from '@/store/modules/permission'
// 顶部栏初始数
const visibleNumber = ref(5)
@@ -45,14 +48,16 @@ const isFrist = ref(false)
// 当前激活菜单的 index
const currentIndex = ref(undefined)
-const store = useStore()
+const appStore = useAppStore()
+const settingsStore = useSettingsStore()
+const permissionStore = usePermissionStore()
const route = useRoute()
const router = useRouter()
// 主题颜色
-const theme = computed(() => store.state.settings.theme)
+const theme = computed(() => settingsStore.theme)
// 所有的路由信息
-const routers = computed(() => store.state.permission.topbarRouters)
+const routers = computed(() => permissionStore.topbarRouters)
// 顶部显示菜单
const topMenus = computed(() => {
@@ -153,7 +158,7 @@ function activeRoutes(key) {
})
}
if (routes.length > 0) {
- store.commit('SET_SIDEBAR_ROUTERS', routes)
+ permissionStore.setSidebarRouters(routes)
}
return routes
}
diff --git a/src/directive/permission/hasPermi.js b/src/directive/permission/hasPermi.js
index 91777f1..4c387bf 100644
--- a/src/directive/permission/hasPermi.js
+++ b/src/directive/permission/hasPermi.js
@@ -1,28 +1,28 @@
/**
- * v-hasPermi 操作权限处理
- * Copyright (c) 2019 ruoyi
- */
-
-import store from '@/store'
+ * v-hasPermi 操作权限处理
+ * Copyright (c) 2019 ruoyi
+ */
-export default {
- mounted(el, binding, vnode) {
- const { value } = binding
- const all_permission = "*:*:*";
- const permissions = store.getters && store.getters.permissions
+ import useUserStore from '@/store/modules/user'
- if (value && value instanceof Array && value.length > 0) {
- const permissionFlag = value
+ export default {
+ mounted(el, binding, vnode) {
+ const { value } = binding
+ const all_permission = "*:*:*";
+ const permissions = useUserStore().permissions
- const hasPermissions = permissions.some(permission => {
- return all_permission === permission || permissionFlag.includes(permission)
- })
+ if (value && value instanceof Array && value.length > 0) {
+ const permissionFlag = value
- if (!hasPermissions) {
- el.parentNode && el.parentNode.removeChild(el)
- }
- } else {
- throw new Error(`请设置操作权限标签值`)
- }
- }
-}
+ const hasPermissions = permissions.some(permission => {
+ return all_permission === permission || permissionFlag.includes(permission)
+ })
+
+ if (!hasPermissions) {
+ el.parentNode && el.parentNode.removeChild(el)
+ }
+ } else {
+ throw new Error(`请设置操作权限标签值`)
+ }
+ }
+ }
\ No newline at end of file
diff --git a/src/directive/permission/hasRole.js b/src/directive/permission/hasRole.js
index a8776a6..c4e387b 100644
--- a/src/directive/permission/hasRole.js
+++ b/src/directive/permission/hasRole.js
@@ -3,13 +3,13 @@
* Copyright (c) 2019 ruoyi
*/
-import store from '@/store'
+import useUserStore from '@/store/modules/user'
export default {
mounted(el, binding, vnode) {
const { value } = binding
const super_admin = "admin";
- const roles = store.getters && store.getters.roles
+ const roles = useUserStore().roles
if (value && value instanceof Array && value.length > 0) {
const roleFlag = value
diff --git a/src/i18n/index.js b/src/i18n/index.js
index 6d29672..4358092 100644
--- a/src/i18n/index.js
+++ b/src/i18n/index.js
@@ -1,9 +1,10 @@
import { createI18n } from 'vue-i18n'
-import store from '@/store/index'
+// import useAppStore from '@/store/modules/app'
import { listLangByLocale } from '@/api/system/commonLang'
-
+import jsCookie from 'js-cookie'
const language = computed(() => {
- return store.getters.language
+ // return useAppStore().lang
+ return jsCookie.get('lang') || 'zh-cn'
})
import zhCn from './lang/zh-cn.json'
@@ -23,7 +24,7 @@ const i18n = createI18n({
// 全局注入 $t 函数
globalInjection: true,
fallbackLocale: 'zh-cn',
- locale: store.getters.language, //默认选择的语言
+ locale: language.value, //默认选择的语言
legacy: false, // 使用 Composition API 模式,则需要将其设置为false
messages: {
'zh-cn': {
diff --git a/src/layout/components/AppMain.vue b/src/layout/components/AppMain.vue
index b97222b..8035beb 100644
--- a/src/layout/components/AppMain.vue
+++ b/src/layout/components/AppMain.vue
@@ -10,9 +10,11 @@
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 8ba0837..0d370c7 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -1,13 +1,13 @@
-