[变更] 修改为左右布局,修改菜单顺序,添加标协会员相关菜单

This commit is contained in:
zhaoxiao
2021-12-10 16:05:39 +08:00
parent 15e55ad70b
commit 2c9fa505ca
17 changed files with 545 additions and 197 deletions
+10 -8
View File
@@ -5,13 +5,12 @@
<!-- update-end- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 -->
<a-tabs
@contextmenu.native="e => onContextmenu(e)"
v-if="multipage && isIndexBool"
v-if="multipage"
:active-key="activePage"
class="tab-layout-tabs"
style="height:52px"
:hide-add="true"
type="editable-card"
@change="changePage"
@tabClick="tabCallBack"
@edit="editPage">
@@ -383,12 +382,14 @@
/* 修改 ant-tabs 样式 */
.tab-layout-tabs.ant-tabs {
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
background-color: white;
height: 40px !important;
padding: 0 20px;
.ant-tabs-bar {
margin: 4px 0 0;
border: none;
margin: 0;
}
}
@@ -427,10 +428,11 @@
border-bottom: 1px solid transparent !important;
}
.ant-tabs-tab-active {
border-color: #069F99 !important;
color: #069F99;
background: rgba(6,159,153,0.1) !important;
border-radius: 0 !important;
//border-color: #069F99 !important;
//color: #069F99;
//background: rgba(6,159,153,0.1) !important;
//border-radius: 0 !important;
border-color: @primary-color!important;
}
}
+69 -70
View File
@@ -5,71 +5,72 @@
:collapsible="collapsible"
v-model="collapsed"
:trigger="null">
<logo />
<logo/>
<s-menu
:collapsed="collapsed"
:menu="menus"
@select="onSelect"
:mode="mode"
:style="smenuStyle">
:style="smenuStyle"
:theme="theme">
</s-menu>
</a-layout-sider>
</template>
<script>
import ALayoutSider from 'ant-design-vue/es/layout/Sider'
import Logo from '../tools/Logo'
import SMenu from './index'
import { mixin, mixinDevice } from '@/utils/mixin.js'
import ALayoutSider from 'ant-design-vue/es/layout/Sider'
import Logo from '../tools/Logo'
import SMenu from './index'
import { mixin, mixinDevice } from '@/utils/mixin.js'
export default {
name: 'SideMenu',
components: { ALayoutSider, Logo, SMenu },
mixins: [mixin, mixinDevice],
props: {
mode: {
type: String,
required: false,
default: 'inline'
},
theme: {
type: String,
required: false,
default: 'dark'
},
collapsible: {
type: Boolean,
required: false,
default: false
},
collapsed: {
type: Boolean,
required: false,
default: false
},
menus: {
type: Array,
required: true
}
export default {
name: 'SideMenu',
components: { ALayoutSider, Logo, SMenu },
mixins: [mixin, mixinDevice],
props: {
mode: {
type: String,
required: false,
default: 'inline'
},
computed:{
smenuStyle() {
let style = { 'padding': '0' }
if (this.fixSiderbar) {
style['height'] = 'calc(100% - 59px)'
style['overflow'] = 'auto'
style['overflow-x'] = 'hidden'
}
return style
}
theme: {
type: String,
required: false,
default: 'dark'
},
methods: {
onSelect (obj) {
this.$emit('menuSelect', obj)
collapsible: {
type: Boolean,
required: false,
default: false
},
collapsed: {
type: Boolean,
required: false,
default: false
},
menus: {
type: Array,
required: true
}
},
computed: {
smenuStyle() {
let style = { 'padding': '0' }
if (this.fixSiderbar) {
style['height'] = 'calc(100% - 59px)'
style['overflow'] = 'auto'
style['overflow-x'] = 'hidden'
}
return style
}
},
methods: {
onSelect(obj) {
this.$emit('menuSelect', obj)
}
}
}
</script>
<style lang="less" scoped>
@@ -78,8 +79,9 @@
@scrollBarSize: 10px;
ul.ant-menu {
background: #069F99;
//background: #069F99;
/* 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
&::-webkit-scrollbar {
width: @scrollBarSize;
height: @scrollBarSize;
@@ -102,11 +104,13 @@
-ms-scroll-snap-points-x: snapList(100%, 200%, 300%, 400%, 500%);
/* 定义滚动条轨道 */
&::-webkit-scrollbar-track {
background-color: transparent;
}
/* 定义滑块 */
&::-webkit-scrollbar-thumb {
border-radius: @scrollBarSize;
background-color: #eee;
@@ -123,6 +127,7 @@
}
/** 暗色系滚动条样式 */
&.dark ul.ant-menu {
&::-webkit-scrollbar-thumb {
background-color: #666666;
@@ -144,34 +149,28 @@
<!-- update_begin author:sunjianlei date:20190530 for: 选中首页的时候不显示背景颜色 -->
<style lang="less">
.ant-menu.ant-menu-root {
& > .ant-menu-item:first-child {
background-color: transparent;
& > a {
color: #fff !important;
}
& > a:hover {
color: #fff !important;
font-weight: 600;
}
&.ant-menu-item-selected {
& > a, & > a:hover {
color: #fff !important;
font-weight: 600;
}
}
}
//& > .ant-menu-item:first-child {
// background-color: transparent;
//
// & > a, & > a:hover {
// color: rgba(0, 0, 0, 0.65);
// }
//
// &.ant-menu-item-selected {
// & > a, & > a:hover {
// color: @primary-color;
// }
// }
//}
&.ant-menu-dark > .ant-menu-item:first-child {
& > a, & > a:hover {
color:#fff !important;
color: rgba(255, 255, 255, 0.65);
}
&.ant-menu-item-selected {
& > a, & > a:hover {
color: #fff !important;
color: rgba(255, 255, 255, 1);
}
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
<template>
<!-- , width: fixedHeader ? `calc(100% - ${sidebarOpened ? 256 : 80}px)` : '100%' -->
<a-layout-header
v-if="!headerBarFixed && !isIndexBool"
v-if="!headerBarFixed"
:class="[fixedHeader && 'ant-header-fixedHeader', sidebarOpened ? 'ant-header-side-opened' : 'ant-header-side-closed', ]"
:style="{ padding: '0' }">
+1
View File
@@ -51,6 +51,7 @@
export default {
name: 'ProjectTable',
props: {
// 表头数据
columnData: {
type: Array,
required: false,
+222 -68
View File
@@ -1,5 +1,5 @@
/* eslint-disable */
import { UserLayout, TabLayout } from "@/components/layouts";
import { UserLayout, TabLayout } from '@/components/layouts'
/**
* 走菜单,走权限控制
@@ -8,17 +8,17 @@ import { UserLayout, TabLayout } from "@/components/layouts";
export const asyncRouterMap = [
{
path: "/",
name: "dashboard",
path: '/',
name: 'dashboard',
component: TabLayout,
meta: { title: "首页" },
redirect: "/dashboard/analysis",
meta: { title: '首页' },
redirect: '/dashboard/analysis',
children: []
},
{
path: "*", redirect: "/404", hidden: true
path: '*', redirect: '/404', hidden: true
}
];
]
/**
* 基础路由
@@ -26,34 +26,34 @@ export const asyncRouterMap = [
*/
export const constantRouterMap = [
{
path: "/user",
path: '/user',
component: UserLayout,
redirect: "/user/login",
redirect: '/user/login',
hidden: true,
children: [
{
path: "login",
name: "login",
component: () => import(/* webpackChunkName: "user" */ "@/views/user/Login")
path: 'login',
name: 'login',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
},
{
path: "register",
name: "register",
component: () => import(/* webpackChunkName: "user" */ "@/views/user/register/Register")
path: 'register',
name: 'register',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/Register')
},
{
path: "register-result",
name: "registerResult",
component: () => import(/* webpackChunkName: "user" */ "@/views/user/register/RegisterResult")
path: 'register-result',
name: 'registerResult',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/register/RegisterResult')
},
{
path: "alteration",
name: "alteration",
component: () => import(/* webpackChunkName: "user" */ "@/views/user/alteration/Alteration")
path: 'alteration',
name: 'alteration',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/alteration/Alteration')
}
]
}
];
]
/**
* 页面路由
@@ -76,23 +76,23 @@ export const routerData = [
},
{
redirect: null,
path: '/mineProject/MineProject',
component: 'mineProject/MineProject',
route: '2',
path: '/workTeam/WorkTeam',
component: 'workTeam/WorkTeam',
route: '1',
meta: {
icon: 'cus_project', // 菜单前图标
componentName: 'MineProject',
icon: 'cus_member', // 菜单前图标
componentName: 'WorkTeam',
keepAlive: false,
title: '我的项目' // 菜单名称
title: '工作组' // 菜单名称
},
name: 'mine-project',
name: 'work-team',
id: '2'
},
{
redirect: null,
path: '/subBidCommittee/SubBidCommittee',
component: 'subBidCommittee/SubBidCommittee',
route: '3',
route: '1',
meta: {
icon: 'team', // 菜单前图标
componentName: 'SubBidCommittee',
@@ -104,23 +104,175 @@ export const routerData = [
},
{
redirect: null,
path: '/workTeam/WorkTeam',
component: 'workTeam/WorkTeam',
route: '4',
path: '/standardsAssociation',
component: 'layouts/RouteView',
route: '1',
meta: {
icon: 'cus_member', // 菜单前图标
componentName: 'WorkTeam',
icon: 'team', // 菜单前图标
componentName: 'SubBidCommittee',
keepAlive: false,
title: '工作组' // 菜单名称
title: '标协会员' // 菜单名称
},
name: 'work-team',
id: '4'
name: 'standards-association',
id: '4',
children: [
{
component: 'standardsAssociation/BasicInfo',
id: '4-1',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'BasicInfo',
title: '基本信息'
},
name: 'standardsAssociation/BasicInfo',
path: '/standardsAssociation/BasicInfo',
route: '1'
}, {
component: 'standardsAssociation/MemberManagement',
id: '4-2',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'MemberManagement',
title: '会员管理'
},
name: 'standardsAssociation/MemberManagement',
path: '/standardsAssociation/MemberManagement',
route: '1'
}, {
component: 'standardsAssociation/CertificateManagement',
id: '4-3',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'CertificateManagement',
title: '证书管理'
},
name: 'standardsAssociation/CertificateManagement',
path: '/standardsAssociation/CertificateManagement',
route: '1'
}, {
component: 'layouts/RouteView',
id: '4-4',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'PaymentInfo',
title: '缴费信息'
},
name: 'standardsAssociation/PaymentInfo',
path: '/standardsAssociation/PaymentInfo',
route: '1',
children: [
{
component: 'standardsAssociation/PaymentInfo/MemberInfo',
id: '4-4-1',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'MemberInfo',
title: '会员信息'
},
name: 'standardsAssociation/PaymentInfo/MemberInfo',
path: '/standardsAssociation/PaymentInfo/MemberInfo',
route: '1'
}, {
component: 'standardsAssociation/PaymentInfo/CertificateInfo',
id: '4-4-2',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'CertificateInfo',
title: '证书信息'
},
name: 'standardsAssociation/PaymentInfo/CertificateInfo',
path: '/standardsAssociation/PaymentInfo/CertificateInfo',
route: '1'
}, {
component: 'standardsAssociation/PaymentInfo/InvoiceInfo',
id: '4-4-3',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'InvoiceInfo',
title: '发票信息'
},
name: 'standardsAssociation/PaymentInfo/InvoiceInfo',
path: '/standardsAssociation/PaymentInfo/InvoiceInfo',
route: '1'
}
]
}, {
component: 'standardsAssociation/Council',
id: '4-5',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'Council',
title: '理事会'
},
name: 'standardsAssociation/Council',
path: '/standardsAssociation/Council',
route: '1'
}, {
component: 'standardsAssociation/StandardPublicizingImplementation',
id: '4-6',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'StandardPublicizingImplementation',
title: '标准宣贯'
},
name: 'standardsAssociation/StandardPublicizingImplementation',
path: '/standardsAssociation/StandardPublicizingImplementation',
route: '1'
}, {
component: 'standardsAssociation/InfoCommunicationMeeting',
id: '4-7',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'InfoCommunicationMeeting',
title: '信息交流会'
},
name: 'standardsAssociation/InfoCommunicationMeeting',
path: '/standardsAssociation/InfoCommunicationMeeting',
route: '1'
}, {
component: 'standardsAssociation/TrainingMeeting',
id: '4-8',
meta: {
keepAlive: false,
internalOrExternal: false,
componentName: 'TrainingMeeting',
title: '培训会'
},
name: 'standardsAssociation/TrainingMeeting',
path: '/standardsAssociation/TrainingMeeting',
route: '1'
}
]
},
{
redirect: null,
path: '/meetingActivity/MeetingActivity',
component: 'meetingActivity/MeetingActivity',
route: '1',
meta: {
icon: 'cus_meeting', // 菜单前图标
componentName: 'MeetingActivity',
keepAlive: false,
title: '会议' // 菜单名称
},
name: 'meeting-activity',
id: '5'
},
{
redirect: null,
path: '/dataMember/DataMember',
component: 'dataMember/DataMember',
route: '5',
route: '1',
meta: {
icon: 'cus_pack', // 菜单前图标
componentName: 'DataMember',
@@ -128,56 +280,58 @@ export const routerData = [
title: '资料网员' // 菜单名称
},
name: 'data-member',
id: '5'
},
{
redirect: null,
path: '/meetingActivity/MeetingActivity',
component: 'meetingActivity/MeetingActivity',
route: '6',
meta: {
icon: 'cus_meeting', // 菜单前图标
componentName: 'MeetingActivity',
keepAlive: false,
title: '会议活动' // 菜单名称
},
name: 'meeting-activity',
id: '6'
},
{
redirect: null,
path: '/dataDownload/DataDownload',
component: 'dataDownload/DataDownload',
route: '7',
path: '/mineProject/MineProject',
component: 'mineProject/MineProject',
route: '1',
meta: {
icon: 'cus_data-network-disk', // 菜单前图标
componentName: 'DataDownload',
icon: 'cus_project', // 菜单前图标
componentName: 'MineProject',
keepAlive: false,
title: '资料下载' // 菜单名称
title: '项目' // 菜单名称
},
name: 'data-download',
name: 'mine-project',
id: '7'
},
{
redirect: null,
path: '/mineContract/MineContract',
component: 'mineContract/MineContract',
route: '8',
route: '1',
meta: {
icon: 'cus_contract', // 菜单前图标
componentName: 'MineContract',
keepAlive: false,
title: '我的合同' // 菜单名称
title: '合同' // 菜单名称
},
name: 'mine-contract',
id: '8'
},
// {
// redirect: null,
// path: '/dataDownload/DataDownload',
// component: 'dataDownload/DataDownload',
// route: '7',
// meta: {
// icon: 'cus_data-network-disk', // 菜单前图标
// componentName: 'DataDownload',
// keepAlive: false,
// title: '资料下载' // 菜单名称
// },
// name: 'data-download',
// id: '7'
// },
{
path: "/system/UserAnnouncementList",
path: '/system/UserAnnouncementList',
component: 'system/UserAnnouncementList',
redirect: null,
hidden: true,
route: '9',
route: '1',
meta: {
icon: '', // 菜单前图标
componentName: 'UserAnnouncementList',
@@ -188,11 +342,11 @@ export const routerData = [
id: '9'
},
{
path: "/system/AccountCenter",
path: '/system/AccountCenter',
component: 'system/AccountCenter',
redirect: null,
hidden: true,
route: '9',
route: '1',
meta: {
icon: 'user', // 菜单前图标
componentName: 'AccountCenter',
@@ -200,6 +354,6 @@ export const routerData = [
title: '个人中心' // 菜单名称
},
name: 'account-center',
id: '9'
},
id: '10'
}
]
+1 -1
View File
@@ -16,7 +16,7 @@
export default {
primaryColor: '#069F99', // primary color of ant design
navTheme: 'light', // theme for nav menu
layout: 'topmenu', // nav menu position: sidemenu or topmenu
layout: 'sidemenu', // nav menu position: sidemenu or topmenu
contentWidth: 'Fixed', // layout of content: Fluid or Fixed, only works when layout is topmenu
fixedHeader: false, // sticky header
fixSiderbar: false, // sticky siderbar
+111 -49
View File
@@ -1,49 +1,80 @@
<template>
<div class="index-home">
<img class="index-bgimg" src="../../assets/indexImgs/index-bg.png"/>
<div class="main-box">
<a-card :bordered="false">
<a-table
ref="table"
size="middle"
rowKey="id"
:columns="columns"
:scroll="{x: 1000}"
:dataSource="dataMessageList"
:pagination="ipagination"
:loading="loading"
@change="handleTableChange"
class="j-table-force-nowrap">
<div class="content">
<div class="router-list">
<div @click="toRouterPath(item)" v-for="(item,index) of IndexRouter" :key="index" class="router-list-item">
<div class="center">
<img :src="item.meta.icon"/>
<p class="router-list-title">{{ item.meta.title }}</p>
</div>
</div>
</div>
<div class="message-list">
<div class="message-list-content">
<div class="message-list-title" style="margin-bottom: 10px;">
<img src="../../assets/indexImgs/file.png"/>
<span class="my-notice">我的消息</span>
<span class="query-list" @click="toUserAnnouncementList">查看更多></span>
</div>
<div>
<div class="message-list-item" v-for="item of dataMessageList" :key="item.id">
<div class="message-list-item-name">
<div class="message-list-item-name-title">【{{ item.titile_dictText }}】</div>
<a-tooltip>
<template slot="title">
<span v-html="item.msgContent" class="ellipsis-span"></span>
</template>
<span v-html="myEllipsis(item.msgContent,35)" class="ellipsis-span"></span>
</a-tooltip>
</div>
<!-- <span v-html="item.msgContent"></span>-->
<span class="message-list-item-time">{{ item.sendTime }}</span>
<span class="operate">
<a @click="showAnnouncement(item)" style="margin-right: 8px">查看</a>
<a @click="haveRead(item)" v-if="item.readFlag === '0' ">已读</a>
<a class="readed" v-if="item.readFlag === '1' ">已读</a>
</span>
</div>
</div>
</div>
</div>
</div>
<show-announcement ref="ShowAnnouncement"></show-announcement>
<dynamic-notice ref="showDynamNotice" :path="openPath" :formData="formData"/>
<template slot="text" slot-scope="text">
<a-tooltip>
<template slot="title">
<span v-html="text" class="ellipsis-span"></span>
</template>
<span v-html="myEllipsis(text,35)" class="ellipsis-span"></span>
</a-tooltip>
</template>
<span slot="action" class="action-span-cell" slot-scope="text, record">
<a @click="showAnnouncement(record)" style="margin-right: 8px">查看</a>
<a @click="haveRead(record)" v-if="record.readFlag === '0' ">已读</a>
<a class="readed" v-if="record.readFlag === '1' ">已读</a>
</span>
</a-table>
</a-card>
</div>
<!-- <div class="index-home">-->
<!-- <img class="index-bgimg" src="../../assets/indexImgs/index-bg.png"/>-->
<!-- <div class="content">-->
<!-- <div class="router-list">-->
<!-- <div @click="toRouterPath(item)" v-for="(item,index) of IndexRouter" :key="index" class="router-list-item">-->
<!-- <div class="center">-->
<!-- <img :src="item.meta.icon"/>-->
<!-- <p class="router-list-title">{{ item.meta.title }}</p>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="message-list">-->
<!-- <div class="message-list-content">-->
<!-- <div class="message-list-title" style="margin-bottom: 10px;">-->
<!-- <img src="../../assets/indexImgs/file.png"/>-->
<!-- <span class="my-notice">我的消息</span>-->
<!-- <span class="query-list" @click="toUserAnnouncementList">查看更多></span>-->
<!-- </div>-->
<!-- <div>-->
<!-- <div class="message-list-item" v-for="item of dataMessageList" :key="item.id">-->
<!-- <div class="message-list-item-name">-->
<!-- <div class="message-list-item-name-title">【{{ item.titile_dictText }}】</div>-->
<!-- <a-tooltip>-->
<!-- <template slot="title">-->
<!-- <span v-html="item.msgContent" class="ellipsis-span"></span>-->
<!-- </template>-->
<!-- <span v-html="myEllipsis(item.msgContent,35)" class="ellipsis-span"></span>-->
<!-- </a-tooltip>-->
<!-- </div>-->
<!-- &lt;!&ndash; <span v-html="item.msgContent"></span>&ndash;&gt;-->
<!-- <span class="message-list-item-time">{{ item.sendTime }}</span>-->
<!-- <span class="operate">-->
<!-- <a @click="showAnnouncement(item)" style="margin-right: 8px">查看</a>-->
<!-- <a @click="haveRead(item)" v-if="item.readFlag === '0' ">已读</a>-->
<!-- <a class="readed" v-if="item.readFlag === '1' ">已读</a>-->
<!-- </span>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- </div>-->
<!-- <show-announcement ref="ShowAnnouncement"></show-announcement>-->
<!-- <dynamic-notice ref="showDynamNotice" :path="openPath" :formData="formData"/>-->
<!-- </div>-->
</template>
<script>
@@ -52,6 +83,7 @@ import { getAction, putAction } from '@api/manage'
import { Bus } from '@comp/tools/Bus'
import ShowAnnouncement from '@/components/tools/ShowAnnouncement'
import DynamicNotice from '../../components/tools/DynamicNotice'
import { JeroListMixin } from '@/mixins/JeroListMixin'
export default {
@@ -60,9 +92,36 @@ export default {
DynamicNotice,
ShowAnnouncement
},
mixins: [JeroListMixin],
data() {
return {
IndexRouter,
columns: [
{
title: '提醒类型',
align: 'center',
width: 180,
dataIndex: 'titile_dictText',
scopedSlots: { customRender: 'text' }
}, {
title: '内容',
align: 'center',
dataIndex: 'msgContent',
scopedSlots: { customRender: 'text' }
}, {
title: '提醒时间',
align: 'center',
width: 180,
dataIndex: 'createTime',
scopedSlots: { customRender: 'text' }
}, {
title: '操作',
dataIndex: 'action',
align: 'center',
width: 160,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: '/sys/sysAnnouncementSend/getCompanyMyAnnouncementSend',
editCementSend: 'sys/sysAnnouncementSend/editCompanyByAnntIdAndUserId'
@@ -70,14 +129,15 @@ export default {
// 消息数据
dataMessageList: [],
openPath: '',
formData: ''
formData: '',
disableMixinCreated: true
}
},
created() {
this.loadData()
Bus.$on('header-notice-change', () => {
this.loadData()
})
// this.loadData()
// Bus.$on('header-notice-change', () => {
// this.loadData()
// })
},
methods: {
/*
@@ -175,6 +235,8 @@ export default {
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.index-home {
position: relative;
width: 100%;
@@ -283,7 +345,7 @@ export default {
.ellipsis-span {
/deep/ p {
margin-bottom: 0!important;
margin-bottom: 0 !important;
}
}
@@ -0,0 +1,13 @@
<template>
<div>基本信息</div>
</template>
<script>
export default {
name: 'BasicInfo'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>证书管理</div>
</template>
<script>
export default {
name: 'CertificateManagement'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>理事会</div>
</template>
<script>
export default {
name: 'Council'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>信息交流会</div>
</template>
<script>
export default {
name: 'InfoCommunicationMeeting'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>会员管理</div>
</template>
<script>
export default {
name: 'MemberManagement'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>缴费信息-证书信息</div>
</template>
<script>
export default {
name: 'CertificateInfo'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>缴费信息-发票信息</div>
</template>
<script>
export default {
name: 'InvoiceInfo'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>缴费信息-会员信息</div>
</template>
<script>
export default {
name: 'MemberInfo'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>标准宣贯</div>
</template>
<script>
export default {
name: 'StandardPublicizingImplementation'
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
<div>培训会</div>
</template>
<script>
export default {
name: 'TrainingMeeting'
}
</script>
<style scoped>
</style>