Merge remote-tracking branch 'contact-frontend' into v9
2
.gitignore
vendored
@ -23,5 +23,5 @@ nohup.out
|
|||||||
docker-compose.dev.yml
|
docker-compose.dev.yml
|
||||||
docker-compose.custom.yml
|
docker-compose.custom.yml
|
||||||
private/
|
private/
|
||||||
!contact-frontend/.vscode
|
!cskefu-frontend/.vscode
|
||||||
.tool-versions
|
.tool-versions
|
||||||
|
@ -1 +1 @@
|
|||||||
cd ./contact-frontend && pnpm run lint
|
cd ./cskefu-frontend && pnpm run lint
|
@ -1,3 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>seats home</div>
|
|
||||||
</template>
|
|
@ -1,31 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { NButton, NDivider } from 'naive-ui'
|
|
||||||
</script>
|
|
||||||
<template>
|
|
||||||
<div class="pt-2 flex flex-col">
|
|
||||||
<span class="text-gray-500">原生</span>
|
|
||||||
<n-button>用户名(默认)</n-button>
|
|
||||||
<n-button disabled>邮箱</n-button>
|
|
||||||
<n-button disabled>电话</n-button>
|
|
||||||
<span class="text-gray-500">其他</span>
|
|
||||||
<n-divider title-placement="left"> 国际 </n-divider>
|
|
||||||
<n-button disabled>MicroSoft</n-button>
|
|
||||||
<n-button disabled>Google</n-button>
|
|
||||||
<n-button disabled>Apple</n-button>
|
|
||||||
<n-button disabled>Facebook</n-button>
|
|
||||||
<n-button disabled>Twitter</n-button>
|
|
||||||
<n-button disabled>GitHub</n-button>
|
|
||||||
<n-button disabled>Steam</n-button>
|
|
||||||
<n-divider title-placement="left"> 国内 </n-divider>
|
|
||||||
<n-button disabled>微信</n-button>
|
|
||||||
<n-button disabled>微博</n-button>
|
|
||||||
<n-button disabled>QQ</n-button>
|
|
||||||
<n-button disabled>淘宝</n-button>
|
|
||||||
<n-button disabled>钉钉</n-button>
|
|
||||||
<n-button disabled>飞书</n-button>
|
|
||||||
<n-button disabled>企业微信</n-button>
|
|
||||||
<span class="text-gray-500">定制</span>
|
|
||||||
<n-button disabled>OpenID Connect</n-button>
|
|
||||||
<n-button disabled>SAML</n-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
@ -21,13 +21,13 @@
|
|||||||
│ │ │ ├── dashboard # 工作台相关
|
│ │ │ ├── dashboard # 工作台相关
|
||||||
│ │ │ ├── chat # 客服对话聊天相关
|
│ │ │ ├── chat # 客服对话聊天相关
|
||||||
│ │ │ ├── worker-order # 工单模块
|
│ │ │ ├── worker-order # 工单模块
|
||||||
│ │ │ ├── seats # 坐席模块
|
│ │ │ ├── agents # 坐席模块
|
||||||
│ │ │ ├── organization # 组织设置模块
|
│ │ │ ├── organization # 组织设置模块
|
||||||
│ │ │ ├── setting # 设置相关
|
│ │ │ ├── setting # 设置相关
|
||||||
│ │ │ ├── enterprise # 企业设置模块
|
│ │ │ ├── enterprise # 企业设置模块
|
||||||
│ │ │ ├── system # 系统设置模块
|
│ │ │ ├── system # 系统设置模块
|
||||||
│ │ │ ├── auth # 权限/登录相关
|
│ │ │ ├── auth # 权限/登录相关
|
||||||
│ ├── plugins # 插件 (开发使用的三方库,例如:ProseMirror)
|
│ ├── plugins # 插件相关 (开发使用的三方库,例如:ProseMirror)
|
||||||
│ │ ├── prose-mirror # prose-mirror 插件
|
│ │ ├── prose-mirror # prose-mirror 插件
|
||||||
│ │ ├── directives # 自定义指令
|
│ │ ├── directives # 自定义指令
|
||||||
│ ├── widgets # 小组件
|
│ ├── widgets # 小组件
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "contact-frontend",
|
"name": "cskefu-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
@ -16,7 +16,7 @@
|
|||||||
"@cskefu/services-auth": "*",
|
"@cskefu/services-auth": "*",
|
||||||
"@cskefu/services-chat": "*",
|
"@cskefu/services-chat": "*",
|
||||||
"@cskefu/services-dashboard": "*",
|
"@cskefu/services-dashboard": "*",
|
||||||
"@cskefu/services-seats": "*",
|
"@cskefu/services-agents": "*",
|
||||||
"@cskefu/services-organization": "*",
|
"@cskefu/services-organization": "*",
|
||||||
"@cskefu/services-setting": "*",
|
"@cskefu/services-setting": "*",
|
||||||
"@cskefu/services-system": "*",
|
"@cskefu/services-system": "*",
|
@ -25,7 +25,7 @@ const navigations = [
|
|||||||
{ label: '首页', value: ROUTE_NAME.DASHBOARD_INDEX },
|
{ label: '首页', value: ROUTE_NAME.DASHBOARD_INDEX },
|
||||||
{ label: '对话', value: ROUTE_NAME.CHAT_INDEX },
|
{ label: '对话', value: ROUTE_NAME.CHAT_INDEX },
|
||||||
{ label: '工单', value: ROUTE_NAME.WORK_ORDER_INDEX },
|
{ label: '工单', value: ROUTE_NAME.WORK_ORDER_INDEX },
|
||||||
{ label: '坐席', value: ROUTE_NAME.SEATS_INDEX },
|
{ label: '坐席', value: ROUTE_NAME.AGENTS_INDEX },
|
||||||
{ label: '组织', value: ROUTE_NAME.ORGANIZATION_INDEX },
|
{ label: '组织', value: ROUTE_NAME.ORGANIZATION_INDEX },
|
||||||
{ label: '设置', value: ROUTE_NAME.SETTING_INDEX },
|
{ label: '设置', value: ROUTE_NAME.SETTING_INDEX },
|
||||||
]
|
]
|
||||||
@ -53,8 +53,8 @@ switch (path) {
|
|||||||
case 'work-order':
|
case 'work-order':
|
||||||
currentPath.value = ROUTE_NAME.WORK_ORDER_INDEX
|
currentPath.value = ROUTE_NAME.WORK_ORDER_INDEX
|
||||||
break
|
break
|
||||||
case 'seats':
|
case 'agents':
|
||||||
currentPath.value = ROUTE_NAME.SEATS_INDEX
|
currentPath.value = ROUTE_NAME.AGENTS_INDEX
|
||||||
break
|
break
|
||||||
case 'organization':
|
case 'organization':
|
||||||
currentPath.value = ROUTE_NAME.ORGANIZATION_INDEX
|
currentPath.value = ROUTE_NAME.ORGANIZATION_INDEX
|
@ -6,7 +6,7 @@ import { routes as authRoutes } from '@cskefu/services-auth'
|
|||||||
import { routes as dashboardRoutes } from '@cskefu/services-dashboard'
|
import { routes as dashboardRoutes } from '@cskefu/services-dashboard'
|
||||||
import { routes as settingRoutes } from '@cskefu/services-setting'
|
import { routes as settingRoutes } from '@cskefu/services-setting'
|
||||||
import { routes as systemRoutes } from '@cskefu/services-system'
|
import { routes as systemRoutes } from '@cskefu/services-system'
|
||||||
import { routes as seatsRoutes } from '@cskefu/services-seats'
|
import { routes as agentsRoutes } from '@cskefu/services-agents'
|
||||||
import { routes as organizationRoutes } from '@cskefu/services-organization'
|
import { routes as organizationRoutes } from '@cskefu/services-organization'
|
||||||
import { routes as chatRoutes } from '@cskefu/services-chat'
|
import { routes as chatRoutes } from '@cskefu/services-chat'
|
||||||
import { routes as workOrderRoutes } from '@cskefu/services-work-order'
|
import { routes as workOrderRoutes } from '@cskefu/services-work-order'
|
||||||
@ -35,7 +35,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
...dashboardRoutes,
|
...dashboardRoutes,
|
||||||
...chatRoutes,
|
...chatRoutes,
|
||||||
...workOrderRoutes,
|
...workOrderRoutes,
|
||||||
...seatsRoutes,
|
...agentsRoutes,
|
||||||
...organizationRoutes,
|
...organizationRoutes,
|
||||||
...settingRoutes,
|
...settingRoutes,
|
||||||
...systemRoutes,
|
...systemRoutes,
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 651 B After Width: | Height: | Size: 651 B |
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 806 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 378 B After Width: | Height: | Size: 378 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@ -26,15 +26,15 @@ export enum ROUTE_NAME {
|
|||||||
WORK_ORDER_INDEX = 'WORK_ORDER_INDEX',
|
WORK_ORDER_INDEX = 'WORK_ORDER_INDEX',
|
||||||
|
|
||||||
// 坐席模块
|
// 坐席模块
|
||||||
SEATS_INDEX = 'SEATS_INDEX',
|
AGENTS_INDEX = 'AGENTS_INDEX',
|
||||||
SEATS_DASHBOARD_INDEX = 'SEATS_DASHBOARD_INDEX', // 坐席看板
|
AGENTS_DASHBOARD_INDEX = 'AGENTS_DASHBOARD_INDEX', // 坐席看板
|
||||||
SEATS_CHATMANAGE_INDEX = 'SEATS_CHATMANAGE_INDEX', // 会话管理
|
AGENTS_CHATMANAGE_INDEX = 'AGENTS_CHATMANAGE_INDEX', // 会话管理
|
||||||
SEATS_LEAVEMANAGE_INDEX = 'SEATS_LEAVEMANAGE_INDEX', // 留言管理
|
AGENTS_LEAVEMANAGE_INDEX = 'AGENTS_LEAVEMANAGE_INDEX', // 留言管理
|
||||||
SEATS_SEATSMANAGE_INDEX = 'SEATS_SEATSMANAGE_INDEX', // 坐席管理
|
AGENTS_AGENTSMANAGE_INDEX = 'AGENTS_AGENTSMANAGE_INDEX', // 坐席管理
|
||||||
SEATS_ROBOT_INDEX = 'SEATS_ROBOT_INDEX', // 机器人管理
|
AGENTS_ROBOT_INDEX = 'AGENTS_ROBOT_INDEX', // 机器人管理
|
||||||
SEATS_ROBOT_DASHBOARD_INDEX = 'SEATS_ROBOTMANAGE_DASHBOARD_INDEX', // 机器人数据统计
|
AGENTS_ROBOT_DASHBOARD_INDEX = 'AGENTS_ROBOTMANAGE_DASHBOARD_INDEX', // 机器人数据统计
|
||||||
SEATS_ROBOT_MANAGE_INDEX = 'SEATS_ROBOTMANAGE_MANAGE_INDEX', // 机器人管理
|
AGENTS_ROBOT_MANAGE_INDEX = 'AGENTS_ROBOTMANAGE_MANAGE_INDEX', // 机器人管理
|
||||||
SEATS_ROBOT_SETTING_INDEX = 'SEATS_ROBOT_SETTING_INDEX', // 机器人设置
|
AGENTS_ROBOT_SETTING_INDEX = 'AGENTS_ROBOT_SETTING_INDEX', // 机器人设置
|
||||||
|
|
||||||
// 组织管理模块
|
// 组织管理模块
|
||||||
ORGANIZATION_INDEX = 'ORGANIZATION_INDEX',
|
ORGANIZATION_INDEX = 'ORGANIZATION_INDEX',
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "@cskefu/services-seats",
|
"name": "@cskefu/services-agents",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"type": "module",
|
"type": "module",
|
@ -12,14 +12,14 @@ import {
|
|||||||
|
|
||||||
const routes: RouteRecordRaw[] = [
|
const routes: RouteRecordRaw[] = [
|
||||||
{
|
{
|
||||||
path: '/seats',
|
path: '/agents',
|
||||||
name: ROUTE_NAME.SEATS_INDEX,
|
name: ROUTE_NAME.AGENTS_INDEX,
|
||||||
component: Layout,
|
component: Layout,
|
||||||
redirect: '/seats/index',
|
redirect: '/agents/index',
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'index',
|
path: 'index',
|
||||||
name: ROUTE_NAME.SEATS_DASHBOARD_INDEX,
|
name: ROUTE_NAME.AGENTS_DASHBOARD_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '坐席看板',
|
title: '坐席看板',
|
||||||
@ -29,7 +29,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'chat-manage',
|
path: 'chat-manage',
|
||||||
name: ROUTE_NAME.SEATS_CHATMANAGE_INDEX,
|
name: ROUTE_NAME.AGENTS_CHATMANAGE_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '会话管理',
|
title: '会话管理',
|
||||||
@ -39,7 +39,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'leave-message',
|
path: 'leave-message',
|
||||||
name: ROUTE_NAME.SEATS_LEAVEMANAGE_INDEX,
|
name: ROUTE_NAME.AGENTS_LEAVEMANAGE_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '留言管理',
|
title: '留言管理',
|
||||||
@ -48,8 +48,8 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'seats-manage',
|
path: 'agents-manage',
|
||||||
name: ROUTE_NAME.SEATS_SEATSMANAGE_INDEX,
|
name: ROUTE_NAME.AGENTS_AGENTSMANAGE_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '坐席管理',
|
title: '坐席管理',
|
||||||
@ -59,15 +59,16 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'robot',
|
path: 'robot',
|
||||||
name: ROUTE_NAME.SEATS_ROBOT_INDEX,
|
name: ROUTE_NAME.AGENTS_ROBOT_INDEX,
|
||||||
meta: {
|
meta: {
|
||||||
title: '机器人管理',
|
title: '机器人管理',
|
||||||
icon: HardwareChip,
|
icon: HardwareChip,
|
||||||
|
requiresAuth: false,
|
||||||
},
|
},
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'dashboard',
|
path: 'dashboard',
|
||||||
name: ROUTE_NAME.SEATS_ROBOT_DASHBOARD_INDEX,
|
name: ROUTE_NAME.AGENTS_ROBOT_DASHBOARD_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '数据统计',
|
title: '数据统计',
|
||||||
@ -76,7 +77,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'manage',
|
path: 'manage',
|
||||||
name: ROUTE_NAME.SEATS_ROBOT_MANAGE_INDEX,
|
name: ROUTE_NAME.AGENTS_ROBOT_MANAGE_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '机器人管理',
|
title: '机器人管理',
|
||||||
@ -85,7 +86,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'setting',
|
path: 'setting',
|
||||||
name: ROUTE_NAME.SEATS_ROBOT_SETTING_INDEX,
|
name: ROUTE_NAME.AGENTS_ROBOT_SETTING_INDEX,
|
||||||
component: () => import('../views/HomeView.vue'),
|
component: () => import('../views/HomeView.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
title: '机器人设置',
|
title: '机器人设置',
|
@ -0,0 +1,3 @@
|
|||||||
|
<template>
|
||||||
|
<div>agents home</div>
|
||||||
|
</template>
|