1.1.1 • Published 2 years ago

element-lowcode-v1 v1.1.1

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

element-lowcode-v1

本项目主要是为了节约开发人员重复的书写form表单和table表格代码的时间而开发的一套针对Element-ui for vue2 的低代码组件

项目依赖:

​ 1.element-ui@vue2官网: https://element.eleme.cn/ ​ 2.moment官网: http://momentjs.cn/

Project setup

npm install -S element-lowcode-v1

UseAge

// main.js:
import Vue from "vue";
import App from "./App.vue";
// 引入Element-ui
import ElementUI from "element-ui";
// 引入 element-lowcode-v1插件
import EleLowcode from "element-lowcode-v1";
Vue.use(ElementUI);
Vue.use(EleLowcode);
// 引入element-ui css 样式
import "element-ui/lib/theme-chalk/index.css";
// 引入 element-lowcode-v1 css 样式
import 'element-lowcode-v1/lib/element-lowcode-v1.css'

Vue.config.productionTip = false;

new Vue({
  render: (h) => h(App),
}).$mount("#app");
<!-- .vue文件 -->
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <div class="" style="max-width:600px;margin:0 auto;">
      <!-- form -->
      <h1>lc-form</h1>
      <lc-form :list-data="listData" :form-data="formData" @btns="btns"></lc-form>
      <hr />
      <h1>lc-form-group</h1>
      <!-- form-group -->
      <lc-form-group :list-data="listDataGroup" :form-data="formData" @btns="btns" :group-style="{ background: '#ccc',marginTop:'10px'}"></lc-form-group>
      <hr />
    </div>
    <!-- table -->
    <h1>lc-table</h1>
    <div style="width:60vw;margin:0 auto;">
      <lc-table :options="tableOptions" :mobile-width="768" ></lc-table>
    </div>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      listData: [{ prop: "test", label: "测试" }],
      listDataGroup: [
        {
          title: "标题1",
          list: [{ prop: "test", label: "测试" }],
        },
        {
          title: "标题2",
          list: [{ prop: "test2", label: "测试2" }],
        },
      ],
      formData: { test: "" },
      formRules: {},
      btns: [],
      tableOptions: {
        title: "测试表格",
        column: [
          {
            prop: "date",
            label: "日期",
            align: "center",
            width: "100",
          },
          {
            prop: "name",
            label: "名字",
            align: "center",
            width: "100",
          },
          {
            prop: "province",
            label: "省份",
            align: "center",
            width: "100",
          },
          {
            prop: "city",
            label: "市区",
            align: "center",
            width: "100",
          },
          {
            prop: "address",
            label: "地址",
            align: "center",
          },
          {
            prop: "zip",
            label: "邮编",
            align: "center",
          },
        ],
        list: [],
      },
      windowWidth:1024
    };
  },
  created(){
    this.getData()
  },
  methods: {
    getData: function () {
      this.isloading = true
      const loading = this.$loading({
        title: "加载中",
      });
      setTimeout(() => {
        this.isloading = false;
        loading.close()
        this.tableOptions.list = [
          {
            date: "2016-05-02",
            name: "王小虎",
            province: "上海",
            city: "普陀区",
            address: "上海市普陀区金沙江路 1518 弄",
            zip: 200333,
          },
          {
            date: "2016-05-04",
            name: "王小虎",
            province: "上海",
            city: "普陀区",
            address: "上海市普陀区金沙江路 1517 弄",
            zip: 200333,
          },
          {
            date: "2016-05-01",
            name: "王小虎",
            province: "上海",
            city: "普陀区",
            address: "上海市普陀区金沙江路 1519 弄",
            zip: 200333,
          },
          {
            date: "2016-05-03",
            name: "王小虎",
            province: "上海",
            city: "普陀区",
            address: "上海市普陀区金沙江路 1516 弄",
            zip: 200333,
          },
        ];
      }, 1000);
    },
  },
};
</script>

参数

lc-form Attributes

参数说明类型是否必须可选值默认值
listData表单字段循环JSON列表,想见下方listData说明Array
formData表单:mode绑定值同el-form的:modeObject
formRules表单验证规则,同el-from的rulesObject
btns表单的自定义按钮级事件数据详见下方btns说明Array[]
labelWidthel-formlabelWidthNumber/String80px
sizeel-form的sizeStringmedium / small / minimini
inline是否行内表单,同el-form(一般搜索模块设置true)Booleantrue / falsetrue
limit上传控件文件数量通用限制同el-upload的limitNumber1
disabledel-formBooleantrue / falsefalse
showPlaceholder是否展示placeholderBooleantrue / falsetrue
remoteLoading远程搜索loading状态同el-selectBooleantrue / falsefalse
showImgsBoolean
mobileWidth切换为手机样式的宽度临界值String / Number768

listData Attributes

表单组件循环列表说明

参数说明类型是否必须可选值默认值
typeform-item组件类型String详见说明text
propform表单绑定数据的字段String
labelform表单字段的labelString
widthel-form-item的lable宽度,权重高于外层labelWidthString
itemWidthel-form-item除lable外区域的宽度String100%
noAll是否不展示全部选项,当type是radio或checkbox 时有效Boolean
renderVal当type的值是radio / checkbox / select 的时候需要渲染控件上的选择项,详见renderVal说明Array
valueFormatel-date-picker组件的格式化Stringyyyy-MM-dd HH:mm:ss / yyyy-MM-dd
momentFormatmoment插件中的格式化配置StringYYYY-MM-DD HH:mm:ss
requiredel-form-itemrequired属性
showIf条件字段,是否开启此控件根据条件展示或者隐藏Booleanfalse
valIf条件字段展示所需判断的值(如果valIf的值与表单绑定数据中propIf字段值相等则展示否则隐藏该组件)注1
propIf条件字段展示所需判断的字段(如果valIf的值与表单绑定数据中propIf字段值相等则展示否则隐藏该组件)注1
valOr条件字段,必须要先有valIf和showIf 满足if条件之后或者再满足valOr的值与绑定数据中propIf字段值相等则展示否则隐藏该组件 注2Any
optionsel-cascaderoptions属性
propsel-cascaderprops属性
showAllLevelsel-cascadershow-all-levels属性Booleantrue / falsefalse
maxinput限制输入最大字符数量Number-
widthBtn同一个form-item是否同时展示一个btnBooleantrue / falsefalse
btnEventwidthBtn的button点击自定义事件如传入testEvent则在组件外使用@testEvent="EventFunc"接收事件String
btnTextwidthBtn 的button按钮文字String
showImgstype为image-upload时有效,值为需要展示出来的文件列表,需要用户自己传入数据类型为:{prop:fileList,prop2:flieList2}Object
actionel-upload中的action
limitel-upload中的limit 权重高于组件prop中的limitNumber1
acceptel-upload中的accept
// 注1:
if(valIf == forms[propIf]) {
  // 展示组件
}else{
  // 隐藏组件
}
// 注2:
if(valIf == forms[propIf] || valOr == forms[propIf]){
  // 展示组件
}else{
  // 隐藏组件
}

说明:type可选值为 text / textarea / number / txt / img / daterange / datetimerange / monthrange / date /datetime / radio / checkbox / select / image-upload / tree-select

  1. text / textarea / number 分别对应el-input的type类型
  2. / daterange / datetimerange / monthrange / date /datetime 分别对应 el-date-picker类型
  3. radiocheckbox 分别对应 el-radio-groupel-checkbox-group
  4. select 对应 el-select
  5. tree-select 对应 el-cascader
  6. image-upload 对应 el-upload组件
  7. txt则输出span 文本

renderVal Attributes

参数说明类型是否必填可选值默认值
label循环列表绑定的值,与原组件保持一致Any
title循环列表展示的标题String
disabled是否禁用Booleantrue / falsefalse

lc-form Event

lc-form 的触发事件

事件名说明类型参数
#propEvent自定义btn中的event 传入的事件名称,点击button会触发抛出此事件组件外部需要使用@propEvent(注:prop-event只是一个名称,无特殊含义)functionforms
radio-changeradio绑定值变化时触发的事件functionvalue,prop
check-changecheckbox绑定值变化时触发的事件function
image-changeel-upload中的on-change事件function
upload自定义上传方法,需要用户自己处理上传事件同el-upload中的http-requestfunction
remove移除已上传/选择的文件时触发function
on-remoteel-select远程搜索查询触发事件function
select-change下拉选中事件function
submit默认按钮提交事件functionformrs
cancel默认按钮 取消事件functionforms

lc-form 内置方法

方法名说明类型参数
onSubmit表单规则校验方法Promise
onReset表单字段重置方法Promise
setRemoteOptions远程搜索结果列表设置方法Promiseprop,options

lc-table Attributes

参数说明类型是否必填可选值默认值
optionsObject
mobileWidth展示手机样式所需要宽度的临界值String/Number768px
showSelect是否显示多选Booleantrue / falsetrue
pageel-pagination的page属性用法相同,当前页数,支持 .sync 修饰符Number-1
pageSizeel-pagination的pageSize属性用法相同,每页显示条目个数,支持 .sync 修饰符Number-10
pageSizesel-pagination的pageSizes属性用法相同,每页显示个数选择器的选项设置Array-10, 20, 30, 40, 50, 100
totalel-pagination的total属性用法相同,总条目数Number--
hideOnePage只有一页数据时是否展示分页Booleantrue / falsefalse

lc-table Event

lc-table 所触发的事件

事件名说明参数
size-changepageSize 改变时会触发pageSize
page-changepage 改变时会触发page
current-changepage或pageSize改变都会触发的事件(用于统一处理)pageSize/page,size-chagne/page-change
selection-change当选择项发生变化时会触发该事件selectIndex
1.1.1

2 years ago

1.1.0

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago