# 快速上手

design-vue-ui 是基于 Ant Design Vue v1.7.8 版本进行封装的 UI 组件库。为了提升用户体验和组件一致性,我们决定对库进行升级,整合 Ant Design Vue 的新版本功能及新增组件。

# 封装目的

  • 提升组件一致性:确保所有组件在样式和行为上与设计系统保持一致。
  • 扩展功能:根据 Ant Design Vue 的 1.7.8 最新版本,封装新组件和功能,以满足更广泛的业务需求。
  • 优化性能:利用新版的性能改进和最佳实践,提升组件的性能和响应速度

# 引入 design-vue-ui

  1. 安装脚手架工具
$ npm install -g @vue/cli
# OR
$ yarn global add @vue/cli
1
2
3
  1. 创建一个项目

使用命令行进行初始化。

$ vue create design-ui-demo
1

并配置项目。

若安装缓慢报错,可尝试用 cnpm 或别的镜像源自行安装:rm -rf node_modules && cnpm install

  1. 使用组件

前提条件

需要引入 ant-design-vue 的 全局样式

$ npm i --save design-vue-ui
1

完整引入

import Vue from "vue";
import Antd from "ant-design-vue";
import DesignVueUI from "design-vue-ui";
import App from "./App";
import { apiFc } from "./http/api"; // 开放的  请求函数
import "ant-design-vue/dist/antd.less";
import "design-vue-ui/lib/design-vue-ui.css";
// import 'design-vue-ui/lib/design-vue-ui.less';
Vue.config.productionTip = false;
Vue.use(DesignVueUI);

/* eslint-disable no-new */
new Vue({
  el: "#app",
  components: { App },
  template: "<App/>",
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

局部导入组件

import Vue from "vue";
import Antd from "ant-design-vue";
import { DInput } from "design-vue-ui";
import "ant-design-vue/dist/antd.less";
import "design-vue-ui/lib/design-vue-ui.css";
import App from "./App";

Vue.config.productionTip = false;

Vue.component(DInput.name, DInput);

// Vue.use(DInput);
new Vue({
  el: "#app",
  components: { App },
  template: "<App/>",
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 配置请求

apiFc

封装好的 axios,使用到 apiFc 的组件有: 不使用可忽略

import CDesign from "design-vue-ui";
import { apiFc } from "./http/api"; // 封装 的axios 语法
import dConfig from './utils/dConfig'
CDesign.config.$apiFc = apiFc;
CDesign.config.$dConfig = dConfig;
1
2
3
4
5

# ./utils/dConfig

下面是组件库里面的默认的,如果新增的名字一样,配置名也一样的情况下,以自定义为准


export default {
  DTable: {
    comKeys: ['c-badge', 'c-tip'],
    // 自定义 组件集合
    comsConfig: {
      'c-badge': {
        is: 'a-badge',
        txtType: 'prop', // text prop
        // 原版bind
        bind: {},
        // 根据参数返回的bind
        bindObj: {
          text (text, record) {
            const _obj = {
              1: '已启用',
              0: '已停用',
              '-1': '已禁用',
              default: '未知'
            }
            return _obj[text] || _obj.default
          },
          status (text, record) {
            const _obj = {
              1: 'success',
              0: 'warning',
              default: 'error'
            }
            return _obj[text] || _obj.default
          }
        }
      },
      'c-tip': {
        is: 'd-tooltip',
        txtType: 'prop', // text prop
        // 原版bind
        bind: {},
        // 根据参数返回的bind
        bindObj: {
          content (text, record) {
            return text
          }
        }
      }
    }
  }
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

# 全局变量

# $xmLoading

this.$xmLoading.show();
this.$xmLoading.show({tip: '加载中', el: document.body});
this.$xmLoading.hide();
1
2
3