Admin
2022-11-28 807d02b7a650c6450c313dd728848e02f74a1b78
src/views/layout/components/Sidebar/index.vue
@@ -19,7 +19,10 @@
import { mapGetters } from 'vuex'
import SidebarItem from './SidebarItem'
import variables from '@/styles/variables.scss'
import { getCheckUnitType, getSpecialCheckTask } from "@/api/specialCheck"
import { getUnDoneCheckTask } from '@/api/selfCheck'
import lazyLoading from "../../../../utils/lazyLoading";
import {initRouterNode} from "../../../../utils/router";
export default {
  components: { SidebarItem },
  computed: {
@@ -35,10 +38,109 @@
  },
  data() {
    return {
      isCollapse: false
      isCollapse: false,
      unitType: null,
        deadline: ''
    }
  },
  methods: {
    created() {
        const t = this
        t.getCheckUnitType()
    },
    methods: {
        async getCheckUnitType(){
            const t = this
            const constRoutes = []
            let res = await getCheckUnitType()
            if(res.data.code === "200"){
                t.unitType = res.data.result.checkUnitType
                if(t.unitType>0){
                    t.getSpecialCheckTask().then((res)=>{
                        const date = new Date(res);
                        if(date.getTime() > Date.now()){
                            for (let index in t.permission_routes){
                                if(t.permission_routes[index].title && t.permission_routes[index].title == '安全专项检查'){
                                    t.permission_routes[index].title = t.permission_routes[index].title + '(1)'
                                }
                            }
                            t.initRouterNode(constRoutes, t.permission_routes)
                            t.$store.commit('SET_ROUTES', constRoutes.filter(item => item.children.length > 0))
                        }
                    })
                }
            }else{
                t.getUncheckList().then((res)=>{
                    if(res[0].selfcheckStatus == 0 || (res[0].selfcheckStatus == 1 && res[0].rectifyStatus ==0)){
                        for (let index in t.permission_routes){
                            if(t.permission_routes[index].title && t.permission_routes[index].title == '专项检查'){
                                t.permission_routes[index].title = t.permission_routes[index].title + '(1)'
                            }
                        }
                        t.initRouterNode(constRoutes, t.permission_routes)
                        t.$store.commit('SET_ROUTES', constRoutes.filter(item => item.children.length > 0))
                    }
                })
            }
        },
        async getSpecialCheckTask(){
            const t = this
            const res = await getSpecialCheckTask()
            if(res.data.code === "200"){
                if(res.data.result.specialCheckTaskSimplifyInfos.length>0){
                    return res.data.result.specialCheckTaskSimplifyInfos[0].deadline
                }
            }else{
                t.$message({
                    type:'warning',
                    message:res.data.message
                })
            }
        },
        async getUncheckList(){
            const t = this
            let data = {pageIndex: 1,pageSize: 10}
            let res = await getUnDoneCheckTask(data)
            if(res.data.code === "200"){
                if(res.data.result.records.length>0){
                    return res.data.result.records
                }
            }else{
                t.$message({
                    type:'warning',
                    message:res.data.message
                })
            }
        },
        initRouterNode(routers, data) {
            for (var item of data) {
                if (item.type !== 1) {
                    continue
                }
                const menu = Object.assign({}, item)
                //   menu.component = import(`@/views/${menu.component}.vue`)
                menu.component = lazyLoading(menu.component)
                if (item.children && item.children.length > 0) {
                    menu.children = []
                    initRouterNode(menu.children, item.children)
                }
                const meta = {}
                // 给页面添加权限、标题、第三方网页链接
                meta.permTypes = menu.permTypes ? menu.permTypes : null
                meta.title = menu.title ? menu.title : null
                meta.url = menu.url ? menu.url : null
                if (menu.icon) { meta.icon = menu.icon }
                menu.meta = meta
                routers.push(menu)
            }
        }
  }
}
</script>