diff --git a/src/api/api.js b/src/api/api.js index 7762312..ff3c2f6 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -31,7 +31,7 @@ const queryTreeListForRole = (params)=>getAction('/sys/role/queryTreeList',param const queryListAsync = (params)=>getAction('/sys/permission/queryListAsync',params) const queryRolePermission = (params)=>getAction('/sys/permission/queryRolePermission',params) const saveRolePermission = (params)=>postAction('/sys/permission/saveRolePermission',params) -const queryPermissionsByUser = ()=>getAction('/sys/permission/getUserPermissionByToken') +// const queryPermissionsByUser = ()=>getAction('/sys/permission/getUserPermissionByToken') const loadAllRoleIds = (params)=>getAction('/sys/permission/loadAllRoleIds',params) const getPermissionRuleList = (params)=>getAction('/sys/permission/getPermRuleListByPermId',params) const queryPermissionRule = (params)=>getAction('/sys/permission/queryPermissionRule',params) @@ -118,7 +118,7 @@ export { queryListAsync, queryRolePermission, saveRolePermission, - queryPermissionsByUser, + // queryPermissionsByUser, loadAllRoleIds, getPermissionRuleList, queryPermissionRule, diff --git a/src/components/iconfont/common.less b/src/components/iconfont/common.less new file mode 100644 index 0000000..b74d329 --- /dev/null +++ b/src/components/iconfont/common.less @@ -0,0 +1,12 @@ +/* 引入 icon class 文件 */ +@import "./iconfont.css"; + +/* 设置使用字体的优先级 anticon 高 */ +:global(.anticon) { /* :global() 是为了覆盖全局class .anticon 的样式 */ + &:before { + font-family: "anticon", "anticon-jeecg" !important; + /* 默认样式是这样 + font-family: "anticon" !important; + */ + } +} \ No newline at end of file diff --git a/src/components/iconfont/iconfont.css b/src/components/iconfont/iconfont.css new file mode 100644 index 0000000..cbb2d5b --- /dev/null +++ b/src/components/iconfont/iconfont.css @@ -0,0 +1,47 @@ +@font-face { + font-family: "anticon-jeecg"; /* Project id 2798517 */ + src: url('iconfont.woff2?t=1631613073967') format('woff2'), + url('iconfont.woff?t=1631613073967') format('woff'), + url('iconfont.ttf?t=1631613073967') format('truetype'); +} + +.anticon-jeecg { + font-family: "anticon-jeecg" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.anticonmeeting:before { + content: "\e60f"; +} + +.anticonproject:before { + content: "\e609"; +} + +.anticonpack:before { + content: "\e60a"; +} + +.anticonmember:before { + content: "\e60b"; +} + +.anticondata-network-disk:before { + content: "\e60c"; +} + +.anticonfinancial:before { + content: "\e60e"; +} + +.anticoncontract:before { + content: "\e608"; +} + +.anticoncompany:before { + content: "\e607"; +} + diff --git a/src/components/iconfont/iconfont.js b/src/components/iconfont/iconfont.js new file mode 100644 index 0000000..1eb2297 --- /dev/null +++ b/src/components/iconfont/iconfont.js @@ -0,0 +1 @@ +!function(c){var t,e,a,n,o,i='',h=(h=document.getElementsByTagName("script"))[h.length-1].getAttribute("data-injectcss"),l=function(c,t){t.parentNode.insertBefore(c,t)};if(h&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function m(){o||(o=!0,a())}function d(){try{n.documentElement.doScroll("left")}catch(c){return void setTimeout(d,50)}m()}t=function(){var c,t;(t=document.createElement("div")).innerHTML=i,i=null,(c=t.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",t=c,(c=document.body).firstChild?l(t,c.firstChild):c.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(t,0):(e=function(){document.removeEventListener("DOMContentLoaded",e,!1),t()},document.addEventListener("DOMContentLoaded",e,!1)):document.attachEvent&&(a=t,n=c.document,o=!1,d(),n.onreadystatechange=function(){"complete"==n.readyState&&(n.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/src/components/iconfont/iconfont.json b/src/components/iconfont/iconfont.json new file mode 100644 index 0000000..0ebc5f0 --- /dev/null +++ b/src/components/iconfont/iconfont.json @@ -0,0 +1,65 @@ +{ + "id": "2798517", + "name": "zx-project", + "font_family": "anticon-jeecg", + "css_prefix_text": "anticon", + "description": "", + "glyphs": [ + { + "icon_id": "24340808", + "name": "cus_meeting", + "font_class": "meeting1", + "unicode": "e60f", + "unicode_decimal": 58895 + }, + { + "icon_id": "24340604", + "name": "cus_project", + "font_class": "project", + "unicode": "e609", + "unicode_decimal": 58889 + }, + { + "icon_id": "24340605", + "name": "cus_pack", + "font_class": "pack", + "unicode": "e60a", + "unicode_decimal": 58890 + }, + { + "icon_id": "24340606", + "name": "cus_member", + "font_class": "member", + "unicode": "e60b", + "unicode_decimal": 58891 + }, + { + "icon_id": "24340607", + "name": "cus_data-network-disk", + "font_class": "data-network-disk", + "unicode": "e60c", + "unicode_decimal": 58892 + }, + { + "icon_id": "24340609", + "name": "cus_financial", + "font_class": "financial", + "unicode": "e60e", + "unicode_decimal": 58894 + }, + { + "icon_id": "24337509", + "name": "cus_contract", + "font_class": "contract", + "unicode": "e608", + "unicode_decimal": 58888 + }, + { + "icon_id": "24337464", + "name": "cus_company", + "font_class": "company", + "unicode": "e607", + "unicode_decimal": 58887 + } + ] +} diff --git a/src/components/iconfont/iconfont.ttf b/src/components/iconfont/iconfont.ttf new file mode 100644 index 0000000..39f153e Binary files /dev/null and b/src/components/iconfont/iconfont.ttf differ diff --git a/src/components/iconfont/iconfont.woff b/src/components/iconfont/iconfont.woff new file mode 100644 index 0000000..b394c4d Binary files /dev/null and b/src/components/iconfont/iconfont.woff differ diff --git a/src/components/iconfont/iconfont.woff2 b/src/components/iconfont/iconfont.woff2 new file mode 100644 index 0000000..4d3a5eb Binary files /dev/null and b/src/components/iconfont/iconfont.woff2 differ diff --git a/src/components/menu/index.js b/src/components/menu/index.js index 6ad854a..18ac600 100644 --- a/src/components/menu/index.js +++ b/src/components/menu/index.js @@ -97,6 +97,7 @@ export default { // render renderItem (menu) { + if (!menu.hidden) { return menu.children && !menu.alwaysShow ? this.renderSubMenu(menu) : this.renderMenuItem(menu) } @@ -146,6 +147,10 @@ export default { ) }, renderIcon (icon) { + if (icon !== 'none' && icon !== undefined && icon.indexOf('cus_') !== -1) { + let className = `anticon-jeecg anticon${icon.substr(4)}` + return + } if (icon === 'none' || icon === undefined) { return null } diff --git a/src/components/tools/HeaderNotice.vue b/src/components/tools/HeaderNotice.vue index c791ad7..e98c679 100644 --- a/src/components/tools/HeaderNotice.vue +++ b/src/components/tools/HeaderNotice.vue @@ -187,7 +187,7 @@ }, toMyAnnouncement(){ this.$router.push({ - path: '/isps/userAnnouncement' + path: '/system/userAnnouncementList' }) }, modalFormOk(){ diff --git a/src/config/router.config.js b/src/config/router.config.js index 61b12d8..f56fb76 100644 --- a/src/config/router.config.js +++ b/src/config/router.config.js @@ -34,7 +34,7 @@ export const constantRouterMap = [ { path: "login", name: "login", - component: () => import( /* webpackChunkName: "user" */ "@/views/user/Login") + component: () => import(/* webpackChunkName: "user" */ "@/views/user/Login") }, { path: "register", @@ -54,3 +54,128 @@ export const constantRouterMap = [ ] } ]; + +/** + * 页面路由 + * @type { *[] } + */ +export const routerData = [ + { + redirect: null, + path: '/dashboard/analysis', + component: 'dashboard/Analysis', + route: '1', + meta: { + icon: 'home', // 菜单前图标 + componentName: 'Analysis', + title: '首页' // 菜单名称 + }, + name: 'dashboard-analysis', + id: '1' + }, + { + redirect: null, + path: '/mineProject/MineProject', + component: 'mineProject/MineProject', + route: '2', + meta: { + icon: 'cus_project', // 菜单前图标 + componentName: 'MineProject', + title: '我的项目' // 菜单名称 + }, + name: 'mine-project', + id: '2' + }, + { + redirect: null, + path: '/subBidComittee/SubBidComittee', + component: 'subBidComittee/SubBidComittee', + route: '3', + meta: { + icon: 'team', // 菜单前图标 + componentName: 'SubBidComittee', + title: '分标委' // 菜单名称 + }, + name: 'sub-bid-comittee', + id: '3' + }, + { + redirect: null, + path: '/workTeam/WorkTeam', + component: 'workTeam/WorkTeam', + route: '4', + meta: { + icon: 'cus_member', // 菜单前图标 + componentName: 'WorkTeam', + title: '工作组' // 菜单名称 + }, + name: 'work-team', + id: '4' + }, + { + redirect: null, + path: '/dataMember/DataMember', + component: 'dataMember/DataMember', + route: '5', + meta: { + icon: 'cus_pack', // 菜单前图标 + componentName: 'DataMember', + title: '资料网员' // 菜单名称 + }, + name: 'data-member', + id: '5' + }, + { + redirect: null, + path: '/meetingActivity/MeetingActivity', + component: 'meetingActivity/MeetingActivity', + route: '6', + meta: { + icon: 'cus_meeting', // 菜单前图标 + componentName: 'MeetingActivity', + title: '会议活动' // 菜单名称 + }, + name: 'meeting-activity', + id: '6' + }, + { + redirect: null, + path: '/dataDownload/DataDownload', + component: 'dataDownload/DataDownload', + route: '7', + meta: { + icon: 'cus_data-network-disk', // 菜单前图标 + componentName: 'DataDownload', + title: '资料下载' // 菜单名称 + }, + name: 'data-download', + id: '7' + }, + { + redirect: null, + path: '/mineContract/MineContract', + component: 'mineContract/MineContract', + route: '8', + meta: { + icon: 'cus_contract', // 菜单前图标 + componentName: 'MineContract', + title: '我的合同' // 菜单名称 + }, + name: 'mine-contract', + id: '8' + }, + { + path: "/system/UserAnnouncementList", + component: 'system/UserAnnouncementList', + redirect: null, + hidden: true, + route: '9', + meta: { + icon: '', // 菜单前图标 + componentName: 'UserAnnouncementList', + title: '我的消息' // 菜单名称 + }, + name: 'user-announcement-list', + id: '9' + } +] \ No newline at end of file diff --git a/src/main.js b/src/main.js index a7c3e99..3870c01 100644 --- a/src/main.js +++ b/src/main.js @@ -26,6 +26,10 @@ import JeroComponents from '@/components/jero/index' import JDictSelectTag from './components/dict/index.js' import '@/utils/filter' // base filtermybatis-plus import vTrim from '@/utils/vTrim' +// Fontclass模式 +import '@/components/iconfont/common.less' +// 使用 symbol模式 支持多色 +import '@/components/iconfont/iconfont.js' Vue.config.productionTip = false Vue.use(Storage, config.storageOptions) diff --git a/src/store/modules/user.js b/src/store/modules/user.js index bf11cfd..9107369 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -2,8 +2,8 @@ import Vue from 'vue' import { login, logout, phoneLogin, thirdLogin } from '@/api/login' import { ACCESS_TOKEN, USER_NAME,USER_INFO,USER_AUTH,SYS_BUTTON_AUTH,UI_CACHE_DB_DICT_DATA,TENANT_ID,CACHE_INCLUDED_ROUTES } from '@/store/mutation-types' import { welcome } from '@/utils/util' -import { queryPermissionsByUser } from '@/api/api' import { getAction } from '@/api/manage' +import { routerData } from "@/config/router.config"; const user = { state: { @@ -116,62 +116,27 @@ const user = { // 获取用户信息 GetPermissionList({ commit }) { return new Promise((resolve, reject) => { - queryPermissionsByUser().then(response => { - const menuData = [ - { - 'redirect': null, - 'path': '/dashboard/analysis', - 'component': 'dashboard/Analysis', - 'route': '1', - 'meta': { - 'icon': 'home', // 菜单前图标 - 'componentName': 'Analysis', - 'title': '首页' // 菜单名称 - }, - 'name': 'dashboard-analysis', - 'id': '1' - }, - { - 'redirect': null, - 'path': '', - 'component': '', - 'route': '1', - 'meta': { - 'icon': 'home', // 菜单前图标 - 'componentName': 'Analysis', - 'title': '菜单2' // 菜单名称 - }, - 'name': 'dashboard-analysis', - 'id': '2' - } - ] - const authData = [] - const allAuthData = [] - //Vue.ls.set(USER_AUTH,authData); - sessionStorage.setItem(USER_AUTH,JSON.stringify(authData)) - sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(allAuthData)) - if (menuData && menuData.length > 0) { - //update--begin--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------ - menuData.forEach((item) => { - if (item['children']) { - let hasChildrenMenu = item['children'].filter((i) => { - return !i.hidden || i.hidden == false - }) - if (hasChildrenMenu == null || hasChildrenMenu.length == 0) { - item['hidden'] = true - } + const menuData = routerData + const authData = [] + const allAuthData = [] + sessionStorage.setItem(USER_AUTH,JSON.stringify(authData)) + sessionStorage.setItem(SYS_BUTTON_AUTH,JSON.stringify(allAuthData)) + if (menuData && menuData.length > 0) { + menuData.forEach((item) => { + if (item['children']) { + let hasChildrenMenu = item['children'].filter((i) => { + return !i.hidden || i.hidden == false + }) + if (hasChildrenMenu == null || hasChildrenMenu.length == 0) { + item['hidden'] = true } - }) - //console.log(" menu show json ", menuData) - //update--end--autor:qinfeng-----date:20200109------for:JEECG-63 一级菜单的子菜单全部是隐藏路由,则一级菜单不显示------ - commit('SET_PERMISSIONLIST', menuData) - } else { - reject('getPermissionList: permissions must be a non-null array !') - } - resolve(response) - }).catch(error => { - reject(error) - }) + } + }) + commit('SET_PERMISSIONLIST', menuData) + resolve({result: {menu:menuData}}) + } else { + reject('getPermissionList: permissions must be a non-null array !') + } }) }, diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue index ed47028..7fdd571 100644 --- a/src/views/dashboard/Analysis.vue +++ b/src/views/dashboard/Analysis.vue @@ -1,5 +1,6 @@ diff --git a/src/views/dataDownload/DataDownload.vue b/src/views/dataDownload/DataDownload.vue new file mode 100644 index 0000000..865f832 --- /dev/null +++ b/src/views/dataDownload/DataDownload.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/dataMember/DataMember.vue b/src/views/dataMember/DataMember.vue new file mode 100644 index 0000000..fa06663 --- /dev/null +++ b/src/views/dataMember/DataMember.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/meetingActivity/MeetingActivity.vue b/src/views/meetingActivity/MeetingActivity.vue new file mode 100644 index 0000000..7fb9e12 --- /dev/null +++ b/src/views/meetingActivity/MeetingActivity.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/mineContract/MineContract.vue b/src/views/mineContract/MineContract.vue new file mode 100644 index 0000000..f5bdbee --- /dev/null +++ b/src/views/mineContract/MineContract.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/mineProject/MineProject.vue b/src/views/mineProject/MineProject.vue new file mode 100644 index 0000000..d215660 --- /dev/null +++ b/src/views/mineProject/MineProject.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/subBidCommittee/SubBidCommittee.vue b/src/views/subBidCommittee/SubBidCommittee.vue new file mode 100644 index 0000000..de50e0c --- /dev/null +++ b/src/views/subBidCommittee/SubBidCommittee.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/views/workTeam/WorkTeam.vue b/src/views/workTeam/WorkTeam.vue new file mode 100644 index 0000000..68eeecc --- /dev/null +++ b/src/views/workTeam/WorkTeam.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file