Your Name
2022-06-28 1d30d450bb41e1117e9be4d6a6c7c3ca4b007601
'lct'
已修改6个文件
75 ■■■■ 文件已修改
src/router/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/stores/interface/index.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/stores/routesList.ts 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/component/account.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/menu/component/menuDialog.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.ts
@@ -87,7 +87,6 @@
            const storesRoutesList = useRoutesList(pinia);
            const { routesList } = storeToRefs(storesRoutesList);
            if (routesList.value.length === 0) {
                debugger
                    // 后端控制路由:路由数据初始化,防止刷新时丢失
                await initBackEndControlRoutes();
                    // 动态添加路由:防止非首页刷新时跳转回首页的问题
src/stores/interface/index.ts
@@ -38,6 +38,7 @@
    routesList: string[];
    isColumnsMenuHover: Boolean;
    isColumnsNavHover: Boolean;
    projectId:string,
}
// 布局配置
src/stores/routesList.ts
@@ -12,6 +12,7 @@
        routesList: [],
        isColumnsMenuHover: false,
        isColumnsNavHover: false,
        projectId:'',
    }),
    actions: {
        async setRoutesList(data: Array<string>) {
src/views/home/index.vue
@@ -5,37 +5,44 @@
                :xs="24"
                :sm="12"
                :md="12"
                :lg="6"
                :xl="6"
                :lg="4"
                :xl="4"
                v-for="(v, k) in homeOne"
                :key="k"
                :class="{ 'home-media home-media-lg': k > 1, 'home-media-sm': k === 1 }"
            >
                <div class="home-card-item flex" >
                    <el-button @click="renderMenu">{{v.name}}</el-button>
                    <el-button @click="renderMenu(v.id)">{{v.name}}</el-button>
                </div>
            </el-col>
        </el-row>
        <el-row :gutter="15" class="home-card-two mb15">
            <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16">
                <div class="home-card-item">
                    <div style="height: 100%"></div>
                    <div style="height: 100%">
                        <el-button @click="renderMenu('6')">{{'应急管理系统'}}</el-button>
                    </div>
                </div>
            </el-col>
            <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8" class="home-media">
                <div class="home-card-item">
                    <div style="height: 100%"></div>
                    <div style="height: 100%">
                        <el-button @click="renderMenu('7')">{{'目标责任管理系统'}}</el-button>
                    </div>
                </div>
            </el-col>
        </el-row>
        <el-row :gutter="15" class="home-card-three">
            <el-col :xs="24" :sm="10" :md="10" :lg="8" :xl="8">
                <div class="home-card-item">
                    <el-button @click="renderMenu('8')">{{'事故管理系统'}}</el-button>
                </div>
            </el-col>
            <el-col :xs="24" :sm="14" :md="14" :lg="16" :xl="16" class="home-media">
                <div class="home-card-item">
                    <div style="height: 100%"></div>
                    <div style="height: 100%">
                        <el-button @click="renderMenu('9')">{{'设备综合管控系统'}}</el-button>
                    </div>
                </div>
            </el-col>
        </el-row>
@@ -50,6 +57,8 @@
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {Session} from "/@/utils/storage";
import {useRoutesList} from "/@/stores/routesList";
import pinia from "/@/stores";
let global: any = {
    homeChartOne: null,
@@ -69,21 +78,18 @@
export default defineComponent({
    name: 'home',
    setup() {
        const homeLineRef = ref();
        const homePieRef = ref();
        const homeBarRef = ref();
        const storesTagsViewRoutes = useTagsViewRoutes();
        const storesThemeConfig = useThemeConfig();
        const { themeConfig } = storeToRefs(storesThemeConfig);
        const { isTagsViewCurrenFull } = storeToRefs(storesTagsViewRoutes);
        const storesRoutesList = useRoutesList(pinia);
        const { routesList } = storeToRefs(storesRoutesList);
        // const storesTagsViewRoutes = useTagsViewRoutes();
        // const storesThemeConfig = useThemeConfig();
        const state  = reactive<stateType>({
            projectId:'',
            homeOne:[{id:1,name:'系统1'},{id:2,name:'系统2'},{id:3,name:'系统4'},{id:4,name:'系统4'}],
            homeOne:[{id:1,name:'基础数据权限管理系统'},{id:2,name:'系统1'},{id:3,name:'系统2'},{id:4,name:'系统3'},{id:5,name:'系统4'}],
        });
        // 折线图
        const renderMenu = async() => {
            state.projectId = '1'
            Session.set('projectId','1')
        const renderMenu = async (value: string) => {
            state.projectId = value
            Session.set('projectId',value)
            await initBackEndControlRoutes();
        };
        return {
src/views/login/component/account.vue
@@ -105,7 +105,7 @@
                Session.set('projectId','')
                Session.set('token', res.data.data.accessToken);
                Session.set('sign',res.data.data.id)
                // await initBackEndControlRoutes();
                await initFrontEndControlRoutes();
                signInSuccess();
            }else{
                state.loading.signIn = false
src/views/system/menu/component/menuDialog.vue
@@ -55,6 +55,19 @@
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="项目名">
                            <el-select v-model="ruleForm.projectId" controls-position="right" placeholder="请输入排序" class="w100">
                                <el-option
                                v-for="item in projectList"
                                :key="item.key"
                                :value="item.id"
                                :label="item.name"
                                >
                                </el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
                        <el-form-item label="菜单排序">
                            <el-input-number v-model="ruleForm.priority" controls-position="right" placeholder="请输入排序" class="w100"/>
                        </el-form-item>
@@ -124,6 +137,17 @@
                btnPower: '', // 菜单类型为按钮时,权限标识
            },
            menuData: [], // 上级菜单数据
            projectList:[
                {id:'1',name:'基础数据权限管理系统',key:0},
                {id:'2',name:'系统1',key:1},
                {id:'3',name:'系统2',key:2},
                {id:'4',name:'系统3',key:3},
                {id:'5',name:'系统4',key:4},
                {id:'6',name:'应急管理系统',key:5},
                {id:'7',name:'目标责任管理系统',key:6},
                {id:'8',name:'事故管理系统',key:7},
                {id:'9',name:'设备综合管控系统',key:8},
            ],
        });
        // 获取 vuex 中的路由
        const getMenuList = (routes: any) => {
@@ -139,11 +163,11 @@
        // 打开弹窗
        const openDialog = (type:string,value:any) => {
            state.isShowDialog = true;
            if(type === '新增'){
            if(type === '新增菜单'){
                state.buttonName = '新增'
                state.title = '新增菜单'
                state.ruleForm = {
                    projectId:Session.get('projectId'),
                    projectId:'',
                    parentId:0,
                    menuSuperior: [],
                    menuType: 'menu',
@@ -189,7 +213,7 @@
                let menuId = JSON.parse(JSON.stringify(state.ruleForm.menuSuperior))
                state.ruleForm.parentId = menuId[menuId.length - 1]
            }
            if(state.title === '新增'){
            if(state.title === '新增菜单'){
                let res = await useMenuApi().addMenu(state.ruleForm)
                if(res.data.code === '200'){
                    ElMessage({