# 扩展教程

# 介绍

此功能可以让你开发自定义的 万能表格万能表单 组件,给你最高的自由度,发挥你的能量,创造无限可能。

如果你愿意分享你的组件,你可以将你认为比较好的组件上传到你的 GiteeGitHub,同时在这里添加一段你的组件的仓库链接和描述,方便大家使用你的组件,你的头像会显示在文档仓库中,成为 vk-admin 框架贡献者之一。

组件提交地址 (opens new window)

# 步骤

假设我们需要创建的组件名为 aaa,则只需要在项目根目录的的 components 目录下创建 custom-aaa/custom-aaa.vue 文件即可

# 组件模板示例

<template>
  <!-- 万能表单 -->
  <view v-if="scene === 'form'">
    <el-input :value="value" @input="_input"></el-input>
  </view>
  <!-- 万能表格 -->
  <view v-else-if="scene === 'table'">
    <text>{{ value }}</text>
  </view>
  <!-- 万能表格详情 -->
  <view v-else-if="scene === 'detail'">
    <text>{{ value }}</text>
  </view>
</template>

<script>
  export default {
    props: {
      // 双向绑定的值
      value: {
        type: String,
        default: ""
      },
      // 字段规则
      column: {
        type: Object,
        default: function() {
          return {};
        }
      },
      // 当前场景 form 万能表单 table 万能表格 detail 表格详情页
      scene: {
        type: String,
        default: "form"
      }
    },
    data() {
      return {

      };
    },
    // 组件加载完成时触发
    mounted() {

    },
    // 组件函数
    methods: {
      _input(value){
        // 固定顺序,先input,再change
        this.$emit("input", value);
        this.$emit("change", value);
      }
    },
    // 监听器
    watch: {

    },
    // 计算属性
    computed: {

    },
  };
</script>

<style lang="scss" scoped>

</style>
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

# 使用方式

在万能表格或万能表单中,按如下规则使用

{ key:"key1", title:"我是自定义组件", type:"custom", component:"custom-组件名" }

{ key:"key1", title:"我是自定义aaa组件", type:"custom", component:"custom-aaa" },
1

# 开发

# 开发万能表单

在万能表单场景下,组件需要提供2个事件,分别为

  1. input(表单双向绑定需要)
  2. change(watch需要)

注意:事件触发顺序必须是先 inputchange

# 开发万能表格和详情

正常组件开发即可,即只需要开发此组件在万能表格中是如何展示的,一般情况下,直接根据组件属性 value 的值进行渲染即可。