使用Pinia代替Vuex进行数据存储

This commit is contained in:
RuoYi
2022-05-29 21:40:32 +08:00
parent 6f359c1534
commit 44ad220cdd
30 changed files with 479 additions and 623 deletions

View File

@ -21,6 +21,7 @@
import Fuse from 'fuse.js'
import { getNormalPath } from '@/utils/ruoyi'
import { isHttp } from '@/utils/validate'
import usePermissionStore from '@/store/modules/permission'
const search = ref('');
const options = ref([]);
@ -28,9 +29,8 @@ const searchPool = ref([]);
const show = ref(false);
const fuse = ref(undefined);
const headerSearchSelectRef = ref(null);
const store = useStore();
const router = useRouter();
const routes = computed(() => store.getters.permission_routes);
const routes = computed(() => usePermissionStore().routes);
function click() {
show.value = !show.value

View File

@ -16,36 +16,24 @@
</template>
<script setup>
import { ElMessage } from 'element-plus'
import useAppStore from "@/store/modules/app";
const store = useStore();
const size = computed(() => store.getters.size);
const appStore = useAppStore();
const size = computed(() => appStore.size);
const route = useRoute();
const router = useRouter();
const {proxy} = getCurrentInstance();
const { proxy } = getCurrentInstance();
const sizeOptions = ref([
{ label: '较大', value: 'large' },
{ label: '默认', value: 'default' },
{ label: '稍小', value: 'small' },
])
{ label: "较大", value: "large" },
{ label: "默认", value: "default" },
{ label: "稍小", value: "small" },
]);
function refreshView() {
// In order to make the cached page re-rendered
store.dispatch('tagsView/delAllCachedViews', route)
const { fullPath } = route
nextTick(() => {
router.replace({
path: '/redirect' + fullPath
})
})
}
function handleSetSize(size) {
proxy.$modal.loading("正在设置布局大小,请稍候...");
store.dispatch('app/setSize', size)
setTimeout("window.location.reload()", 1000)
};
appStore.setSize(size);
setTimeout("window.location.reload()", 1000);
}
</script>
<style lang='scss' scoped>

View File

@ -30,6 +30,9 @@
<script setup>
import { constantRoutes } from "@/router"
import { isHttp } from '@/utils/validate'
import useAppStore from '@/store/modules/app'
import useSettingsStore from '@/store/modules/settings'
import usePermissionStore from '@/store/modules/permission'
// 顶部栏初始数
const visibleNumber = ref(null);
@ -38,14 +41,16 @@ const currentIndex = ref(null);
// 隐藏侧边栏路由
const hideList = ['/index', '/user/profile'];
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(() => {
@ -91,10 +96,10 @@ const activeMenu = computed(() => {
if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) {
const tmpPath = path.substring(1, path.length);
activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/"));
store.dispatch('app/toggleSideBarHide', false);
appStore.toggleSideBarHide(false);
} else if(!route.children) {
activePath = path;
store.dispatch('app/toggleSideBarHide', true);
appStore.toggleSideBarHide(true);
}
activeRoutes(activePath);
return activePath;
@ -114,11 +119,11 @@ function handleSelect(key, keyPath) {
} else if (!route || !route.children) {
// 没有子路由路径内部打开
router.push({ path: key });
store.dispatch('app/toggleSideBarHide', true);
appStore.toggleSideBarHide(true);
} else {
// 显示左侧联动菜单
activeRoutes(key);
store.dispatch('app/toggleSideBarHide', false);
appStore.toggleSideBarHide(false);
}
}
@ -132,7 +137,7 @@ function activeRoutes(key) {
});
}
if(routes.length > 0) {
store.commit("SET_SIDEBAR_ROUTERS", routes);
permissionStore.setSidebarRouters(routes);
}
return routes;
}