快速开始

安装依赖

# NPM
$ npm i @vancone/console-component --save

# Yarn
$ yarn add @vancone/console-component

加载样式

// main.ts

// 引入组件样式
import "element-plus/dist/index.css";
import '@vancone/console-component/style.css';

主界面

// App.vue
<template>
  <ConsoleApp title="Demo" helpDocUrl="https://docs.vancone.com/demo" />
</template>

<script setup lang="ts">
import { ConsoleApp } from 'vancone-console-component';
</script>

路由

// src/router/index.ts
import { DetailPage, NoPermission, TablePage } from '@vancone/console-component';


export const routes: Array<RouteRecordRaw> = [
  {
    path: '/:model?',
    name: 'ModelTable',
    component: TablePage,
    meta: {
      title: 'User',
      hidden: true,
      activeMenu: '{model}',
    }
  },
  {
    path: '/:model/detail',
    name: 'ModelDetail',
    component: DetailPage,
    meta: {
      title: 'User',
      hidden: true,
      activeMenu: '{model}',
    }
  },
  {
    path: '/no-permission',
    name: 'NoPermission',
    component: NoPermission,
    meta: {
      title: 'No Permission',
      hidden: true,
    }
  },
  ...
]

国际化

首先检查项目中是否已经引入 vue-i18n 依赖,如果没有需要先安装。

# NPM
$ npm i vue-i18n --save

# Yarn
$ yarn add vue-i18n
// src/main.ts
import { i18n } from '@vancone/console-component';
import '~/i18n/index';

app.use(i18n);
// src/i18n/index.ts
import { en, zh } from '@vancone/console-component';

import enJson from './langs/en.json';
import zhJson from './langs/zh.json';

Object.assign(en, enJson);
Object.assign(zh, zhJson);

低代码

// src/main.ts
import '~/config/index';
// src/config/index.ts
import { modelList, menuList, activeMenuMapping } from '@vancone/console-component';

import dataSourceModel from "./models/data-source";
import dataModelModel from "./models/data-model";
import agentModel from "./models/agent";

import assetSvg from '~/assets/svg/asset.svg';
import appSvg from '~/assets/svg/service.svg';

modelList.value = {
    'agent': agentModel,
    'data-asset': dataSourceModel,
    'data-source': dataSourceModel,
};

Object.assign(activeMenuMapping, {
    'data-source': 'data-asset',
    'data-model': 'data-asset',
});

menuList.value = [
    {
        path: '/data-asset',
        title: 'menu.dataAsset.dataAsset',
        icon: assetSvg,
    },
    {
        path: '/data-app',
        title: 'menu.dataService',
        icon: appSvg,
    },
];