2.1.0 • Published 2 years ago

jk-assembler2 v2.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

jk-assembler 2.1.0

基于配置快速实现管理系统中搜索、表格、表单、分页功能。 基于vue2版本的 element-ui 库进行的二次封装的动态组件

快速使用

  • 全局引用注册
import JKAssembler from 'jk-assembler';
Vue.use(JKAssembler);
  • 按需引用
 # developing

集成组件

组件名称组件描述组件使用方式
JkAssembler集成表单查看
JkAssemblerFilter集成表单-搜索组件查看
JkAssemblerTable集成表单-表格组件查看
JkAssemblerForm集成表单-表单组件查看
JkAssemblerFormPanel集成表单-表单组件(弹窗模式)查看
JkAssemblerPagination集成表单-分页组件查看
JkAssemblerDynamic集成表单-分页组件查看

JkAssembler

属性值

属性名称属性描述类型默认值
config集成注册器的设置项Function()=>{}
padding是否设置内边距Booleantrue
immediatelyPull是否立即开始查询Booleantrue

config 属性

属性名称属性描述类型默认值配置详情
search检索方法和自定义检索条件Object{}查看
filter检索配置Object{}查看
table表格配置Object{}查看
form表单配置Object{}查看

示例

<template>
  <jk-assembler :config="config" />
</template>
<script>
export default {
  data() {
    return {
      config: baseConfig.bind(this)
    };
  }
};
</script>

配置属性

const config = {
  search: {
    // 默认检索参数
    default: {},
    // 数据索引
    structure: {
      page: 'page',
      size: 'size',
      total: 'total',
      data: 'data'
    },
    handle: query => {
      console.log('query: ', query);
    }
  },

  filter: {},
  formPanel: {},
  form: {},
  table: {},
  pagination: {
    // sizes: [],
    // hideSingle: false
  }
};

JkAssemblerFilter

属性值

属性名称属性描述类型默认值
propsFilter 表单属性配置Object,Function{}
eventsFilter 表单方法Object,Function{}
operationFilter 按钮配置Array[]
columnsFilter 检索条件Array[]

示例

const filter = {
  value: {}, // 绑定数据源,推荐使用 v-model
  props: {}, // 表单基础属性
  events: ({ value, data }) => {}, // 表单事件
  columns: [
    {
      prop: '',
      label: '',
      props: ({ data }) => ({}),
      permission: ({ data }) => false, // 这个是无权限 返回值为 true false
      ifVisible: ({ data }) => true, // 是否显示 返回值为 true false

      // 开启组件模式
      component: {
        is: '',
        props: ({ data }) => ({}),
        events: ({ value, data }) => {}
      },

      render: (h, { value, data, rows, index }) => {}
    }
  ],
  operation: {
    add: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    search: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    butns: []
  }
};

JkAssemblerTable

属性值

属性名称属性描述类型默认值
data绑定的数据Array[]
props表格中可以 bind 的所有值Object,Array{}
events表格中可以 bind 的所有 Table EventsObject,Array{}
columns表格列表项声明Array[]
operation表格默认操作项 -- 按钮组Array[]

示例

const table = {
  data: [],
  props: {},
  events: {},
  columns: [
    {
      prop: '',
      label: '',
      props: ({ data }) => ({}),
      permission: ({ data }) => false, // 这个是无权限 返回值为 true false
      ifVisible: ({ data }) => true, // 是否显示 返回值为 true false
      // 开启组件模式
      component: {
        is: '',
        props: ({ data }) => ({}),
        events: ({ value, data }) => {}
      },

      render: (h, { value, data, rows, index }) => {},
      slotKey: 'slotKey'
    }
  ],

  operation: [
    {
      props: {},
      butns: [
        {
          label: '启用',
          props: {
            type: 'text'
          },
          handle: ({ data }) => {
            console.log('data: ', data);
          }
        },
        {
          label: '禁用',
          props: {
            type: 'text'
          },
          handle: () => {}
        }
      ]
    },
    {
      props: {},
      butns: [
        { label: '编辑', emit: 'edit', props: {}, handle: () => {} },
        { label: '删除', emit: 'del', props: {}, handle: () => {} }
      ]
    }
  ]
};

JkAssemblerForm

属性值

属性名称属性描述类型默认值
props表单绑定属性值Object,Function{}
events表单绑定事件Object,Function{}
operation表单按钮组Object{}
columns表单项Array[]
permission可操作表单的权限数组Boolean,Function,[]

示例

const filter = {
  value: {}, // 绑定数据源,推荐使用 v-model
  props: {}, // 表单基础属性
  events: ({ value, data }) => {}, // 表单事件
  columns: [
    {
      prop: '',
      label: '',
      props: ({ data }) => ({}),
      permission: ({ data }) => false, // 这个是无权限 返回值为 true false
      ifVisible: ({ data }) => true, // 是否显示 返回值为 true false
      // 开启组件模式
      component: {
        is: '',
        props: ({ data }) => ({}),
        events: ({ value, data }) => {}
      },

      render: (h, { value, data, rows, index }) => {},
      slotKey: ''
    }
  ],
  operation: {
    submit: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    cancel: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    butns: []
  }
};

JkAssemblerFormPanel

属性值

属性名称属性描述类型默认值
value/v-model表单绑定值Object{}
visible显示影藏Booleanfalse
title弹窗标题String''
props弹窗绑定属性值Object,Function{}
events弹窗绑定事件Object,Function{}
config表单绑定属性Object{}

示例

const form = {
  value: {}, // 绑定数据源,推荐使用 v-model
  props: {}, // 表单基础属性
  events: ({ value, data }) => {}, // 表单事件
  columns: [
    {
      prop: '',
      label: '',
      props: ({ data }) => ({}),
      permission: ({ data }) => false, // 这个是无权限 返回值为 true false
      ifVisible: ({ data }) => true, // 是否显示 返回值为 true false
      // 开启组件模式
      component: {
        is: '',
        props: ({ data }) => ({}),
        events: ({ value, data }) => {}
      },

      render: (h, { value, data, rows, index }) => {}
    }
  ],
  operation: {
    submit: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    cancel: {
      label: '',
      props: {},
      handle: ({ data }) => {}
    },
    butns: []
  }
};

const formPabel = {
  value: {}, // 绑定数据源,推荐使用 v-model
  config: form,

  title: '',
  visible: false,
  props: {}, // 表单基础属性
  events: ({ value, data }) => {} // 表单事件
};

JkAssemblerPagination

属性值

属性名称属性描述类型默认值
value/v-model分页属性Object{}
total总页数Number0
sizes每页显示个数Array10, 20, 50, 100
hideSingle单页是否显示 paginationBooleanfalse

事件

事件名称事件描述回调参数
Change监听 change 事件,page 变化返回 false,size 变化返回 trueBoolean

示例

<template>
  <JkPagination
    v-model="option"
    :total="100"
    :hideSingle="false"
    :sizes="[20, 30, 50, 100]"
    @change="changePage"
  />
</template>
<script>
export default {
  components: { JkPagination },
  data() {
    return {
      //pagination配置项
      //默认单页不显示分页
      //监听change事件,page变化返回false,size变化返回true
      option: {
        page: 1,
        size: 10
      }
    };
  },
  computed: {},
  created() {},
  methods: {
    changePage(val) {
      console.log('changePage: ', val);
    }
  }
};
</script>

JkAssemblerDynamic

属性名称属性描述类型默认值
is使用哪一个组件String0
属性透传Object
事件透传Object

示例

<template>
  <div>
    <el-card header="基础配置">
      <JkAssemblerDynamic is="JkAssembler" :config="config" />
    </el-card>
<el-card header="普通的查询表单">
  <JkAssemblerDynamic
    is="JkAssemblerFilter"
    v-model="query"
    v-bind="filterConfig"
    @search="search"
    @add="add"
  />

  <el-card>
    {{ query }}
  </el-card>
</el-card>