feat(admin-web): add Vue 3 admin console and deployment configs
- Add admin-web/ with Vite + Vue 3 + Element Plus + Vue Router - Add 8 management pages: dashboard, channel subject/account, conversation, person, tag, send record (with test send), inbound flow - Add API client modules for account/channel/crm/send/flow - Add Dockerfile and nginx config for admin-web - Add Dockerfile for mci-server - Add docker-compose.app.yml for one-command app deployment - Add K8s deployment manifests for backend/admin-web/channel-service - Update scripts/local-up.sh with shared network and --with-apps option
This commit is contained in:
72
admin-web/src/components/Layout.vue
Normal file
72
admin-web/src/components/Layout.vue
Normal file
@@ -0,0 +1,72 @@
|
||||
<template>
|
||||
<el-container class="layout">
|
||||
<el-aside width="200px" class="sidebar">
|
||||
<div class="logo">Sino MCI</div>
|
||||
<el-menu :default-active="$route.path" router>
|
||||
<el-menu-item index="/dashboard">
|
||||
<span>概览</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/channel-subject">
|
||||
<span>渠道主体</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/channel-account">
|
||||
<span>渠道账号</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/conversation">
|
||||
<span>会话/群聊</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/person">
|
||||
<span>联系人</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/tag">
|
||||
<span>标签</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/send-record">
|
||||
<span>发送记录</span>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="/inbound-flow">
|
||||
<span>入站流程</span>
|
||||
</el-menu-item>
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
<el-container>
|
||||
<el-header class="header">
|
||||
<span>{{ $route.meta.title || '消息中台' }}</span>
|
||||
</el-header>
|
||||
<el-main>
|
||||
<router-view />
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useRoute } from 'vue-router'
|
||||
const route = useRoute()
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.layout {
|
||||
height: 100vh;
|
||||
}
|
||||
.sidebar {
|
||||
background: #fff;
|
||||
border-right: 1px solid #e4e7ed;
|
||||
}
|
||||
.logo {
|
||||
height: 60px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
}
|
||||
.header {
|
||||
background: #fff;
|
||||
border-bottom: 1px solid #e4e7ed;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-weight: 500;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user