1.0.6 • Published 2 months ago

odc-form-render v1.0.6

Weekly downloads
-
License
ISC
Repository
-
Last release
2 months ago

1.基本用法

全局安装及引入

npm i odc-form-render
//main.js中注册
import OdcFormRender from 'odc-form-render'
import 'odc-form-render/OdcFormRender.css'//样式引入
Vue.use(OdcFormRender)

2. 使用示例

<template>
  <div class="dashboard-container">
    <!-- <div class="dashboard-text">name: {{ name }}</div> -->
    <OdcFormRender
      ref="searchRef"
      label-width="90px"
      :form-config="formConfig"
      :form-data="searchForm"
      v-bind="$attrs"
    >
      <template>
        <div slot="search" class="btnWrap">
          <el-button type="primary" size="medium" @click="search"
            >查询</el-button
          >
          <el-button size="medium" @click="handleReset">重置</el-button>
        </div>
      </template>
    </OdcFormRender>
  </div>
</template>

<script>
  import { formConfig } from './data'
  export default {
    name: 'Dashboard',
    data() {
      return {
        formConfig,
        searchForm: {
          statScale: '1',
          tarEchart: 'pollutantEmission',
          timeType: 'year',
          yearStr: [],
          industryStr: [],
          streetStr: [],
          enterpriseName: '',
        },
      }
    },
    methods: {
      search() {
        this.$refs.searchRef.submitForm(() => {
          // 在验证成功后执行的操作
          console.log('Form submitted successfully')
        })
      },
      handleReset() {
        this.$refs.searchRef.resetForm()
      },
    },
  }
</script>

<style lang="scss" scoped>
  .dashboard {
    &-container {
      margin: 30px;
    }
    &-text {
      font-size: 30px;
      line-height: 46px;
    }
  }
</style>

formConfig 配置示例

// 查询表单配置项
export const formConfig = [
  {
    //radio控件
    label: '统计类型',
    prop: 'timeType',
    type: 'radio',
    require: false,
    span: 6,
    options: [
      {
        label: '年',
        value: 'year',
      },
      {
        label: '月',
        value: 'month',
      },
    ],
  },
  {
    //基础输入框
    label: '关键字',
    prop: 'enterpriseName',
    type: 'text',
    span: 6,
  },
  {
    //基础下拉框
    label: '指标',
    prop: 'tarEchart',
    type: 'select',
    multiple: false,
    clearable: true,
    span: 6,
    options: [
      { label: '排污量', value: 'pollutantEmission' },
      { label: '水重复利用率(%)', value: 'waterReuseRate' },
      { label: '工业增加值(万元)', value: 'industryAddValue' },
      { label: '产值(万元)', value: 'productionValue' },
      { label: '耗水量', value: 'waterConsume' },
      { label: '用水量', value: 'totalConsume' },
      { label: '自备水', value: 'selfProvidedWaterAct' },
      { label: '自来水', value: 'tapWaterAct' },
      { label: '再生水', value: 'reclaimedWaterAct' },
    ],
  },

  {
    //自定义下拉框
    label: '行业',
    prop: 'industryStr',
    type: 'autoSelect',
    span: 6,
    apiUrl: () =>
      request({
        url: `/system/dict/data/type/company_business`,
        method: 'get',
      }),
    placeholder: '请选择行业',
    require: false,
    multiple: true,
    collapseTags: true,
    labelValue: {
      label: 'dictLabel',
      value: 'dictValue',
    },
  },

  {
    //自定义插槽
    type: 'slotName',
    slotName: 'search',
    span: 6,
  },
]

3.参数说明

参数是否必传参数类型描述
labelWidthString表单域标签的宽度
labelPositionString表单域标签的位置
formConfigArray表单配置数组,定义表单字段的结构和行为
formDataObject包含表单数据,由 OdcFormRender 组件渲染和操作
disabledBoolean是否禁用表单
rulesObject表单验证规则
gutterNumber表单项间距

Methods

  • validateField(value): 验证指定的表单字段。
  • resetFields(value): 重置指定表单字段的值。
  • clearValidate(value): 清除指定表单字段的验证消息。
  • submitForm(cb): 提交表单,并在验证成功后触发回调函数。
  • resetForm(isResetCascader): 重置整个表单,可选择是否也重置级联选择器组件。
  • visibleChange(prop, flag): 触发下拉元素的可见性变化时的事件。
  • cascaderChange(object, prop): 触发级联选择器选中值变化时的事件。
  • selectChange({ prop, val }): 触发下拉框值变化时的事件。

formConfig 配置说明 | formConfig | 是否必填 | 描述 | | ------------ | -------- | ------------------------------------------------------------------------------------- | | type | 是 | 表单项类型,包括文本输入框、下拉选择框、日期选择器等不同类型 | | label | 是 | 控件的标签文本 | | prop | 是 | 控件对应的数据字段,用于与表单数据绑定 | | disabled | 否 | 是否禁用当前表单项 | | maxlength | 否 | 输入最大长度,对文本输入框和文本域输入框有效 | | options | 否 | 下拉选择框的选项列表 | | apiUrl | 否 | 自定义下拉选择框的数据来源 API 地址 | | value | 否 | 控件的值 | | placeholder | 否 | 控件的占位符文字 | | autosize | 否 | 自适应文本域的高度,只对文本域输入框有效 | | width | 否 | 控件的宽度 | | rows | 否 | 文本域输入框的行数 | | showLimit | 否 | 是否显示输入框的字数限制提示 | | show-word-limit | 否 | 是否显示字数限制 | | multiple | 否 | 是否允许多选 | | filterable | 否 | 下拉选择框是否可搜索 | | clearable | 否 | 是否显示清空按钮 | | collapseTags | 否 | 多选下拉选择框的已选项是否在一行显示 | | popperAppendToBody | 否 | 下拉选择框的弹出框是否插入至 body 元素中,常用于解决下拉框被其他元素遮挡的问题 | | expandTrigger| 否 | 级联选择器的展开触发方式 | | isCheckbox | 否 | 是否为复选框形式 | | lastLevel | 否 | 是否只显示最后一级的选项 | | showAllLevels| 否 | 是否展示所有级联选择的层级 | | collapse | 否 | 是否可折叠 | | filterable | 否 | 是否允许通过搜索过滤选项 | | showLevel | 否 | 是否展示级别 | | slotName | 否 | 自定义插槽的名称 | | isTips | 否 | 表单项后的提示信息 | | isStatus | 否 | 控件状态,用于显示或隐藏该表单项 | | isHidden | 否 | 是否隐藏该表单项 |

type 控件类型 配置描述 | item.type | 描述 | | --------------- | ---------------------------------------------- | | text | 文本输入框 | | number | 数字输入框 | | textarea | 文本域输入框 | | password | 密码输入框 | | link | 文件链接 | | inputNumber | 数字输入框 | | select | 下拉选择框 | | autoSelect | 自定义下拉选择框 | | switch | 开关按钮 | | radio | 单选框组 | | checkbox | 复选框组 | | daterange | 日期范围选择器 | | datetime | 日期时间选择器 | | datetimerange | 日期时间范围选择器 | | date | 日期选择器 | | month | 月份选择器 | | year | 年份选择器 | | monthrange | 月份范围选择器 | | defaultCascader | 默认的级联选择器,根据配置的选项进行级联选择 | | slotName | 插槽名称,用于自定义组件的插槽 |

1.0.6

2 months ago

1.0.5

2 months ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.1

2 months ago

1.0.0

2 months ago