更新记录

1.1.1(2024-11-10) 下载此版本

无特殊

1.1.0(2024-09-26) 下载此版本

1、取消array类型表单,不再支持弹窗表单,新增table类型表单,通过提供回调函数、增加按钮的方式实现对列表数据的增加与删除,详见示例。 2、增加autPosition属性,默认为false,当设为true时,在宽屏时表单标题居于左侧并左对齐,在窄屏时表单标题居于顶部。

1.0.9(2024-09-25) 下载此版本

新增组件方法,setItemValue(key,value)和setPopupItemValue(key,value),实现对表单动态赋值。

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

piao-form

完整示例

<template>
    <uni-title
        type="h2"
        title="案件信息录入"
        align="center"
        style="margin-top: 40px; margin-bottom: 20px"
    ></uni-title>
    <piao-form
        ref="form"
        :formData="formData"
        :autPosition="true"
        @submit="sub"
        :disable="disable"
    ></piao-form>
</template>

<script setup>
import { post } from '@/common/request.js';

import { ref } from 'vue';
const form = ref();

const formData = ref({
    title: {
        type: 'text',
        rules: [
            {
                required: true,
                errorMessage: '案件名称不能为空'
            },
            {
                minLength: 5,
                errorMessage: '案件名称不能少于5个字符'
            }
        ],
        placeholder: '建议命名规则:原告vs被告',
        label: '案件名称',
        isShow: true,
        btn: {
            type: 'primary', // 取值范围:warn、default、primary
            text: '搜索文章',
            callback: test,//注意,这里调用函数名称,不是 test()
            option: 'right' //可选:right、bottom,默认为 bottom
        }
    },
    caseReason: {
        type: 'piao-combox',
        rules: [
            {
                required: true,
                errorMessage: '案由不能为空'
            }
        ],
        placeholder: '请输入或选择案由',
        label: '案由',
        range: [
            { value: 0, text: '原告' },
            { value: 1, text: '被告' },
            { value: 2, text: '第三人' }
        ],
        callback: (e) => {
            form.value.setItemValue('authorizationType', 1); //让authorizationType项的值等于1,这里的key是对象的属性名称,与弹窗中调用setPopupItemValue(key,value)中的key有所不同
        },
        btn: {
            type: 'warn', // 取值范围:warn、default、primary
            text: '新增案由',
            callback: (e) => {
                console.log('表单组件按钮被单击', e);
                uni.navigateTo({
                    url: '/pages/Login/Login'
                });
            }
        }
    },
    consignorType: {
        type: 'checkbox',
        label: '委托人类型',
        value: 0, // 给定初始值
        range: [
            { value: 0, text: '原告' },
            { value: 1, text: '被告' },
            { value: 2, text: '第三人' }
        ],
        multiple: false,
        rules: [
            {
                required: true,
                errorMessage: '请选择委托人类型'
            }
        ],
        callback: (e) => {
            console.log('我是表单回调函数,返回值:', e);
        }
    },
    authorizationType: {
        type: 'select',
        label: '授权类型',
        range: [
            { value: 0, text: '特别授权' },
            { value: 1, text: '一般授权' }
        ],
        multiple: false,
        rules: [
            {
                required: true,
                errorMessage: '请选择授权类型'
            }
        ],
        callback: (e) => {
            console.log('我是表单回调函数,返回值:', e);
        }
    },
    content: {
        type: 'textarea',
        placeholder: '请简要描述案情',
        label: '案情简述',
        rules: [
            {
                required: true,
                errorMessage: '请简要描述案情'
            }
        ]
    },
    party: {
        type: 'table',
        label: '案件当事人',
        range: {
            name: {
                label: '名称',
                align: 'left',
                width: '150'
            },
            partyType: {
                label: '类型'
            }
        },
        value: [
            {
                name: '张三',
                partyType: {
                    text: '原告', //仅显示text字段
                    value: 0
                },
                id: '5454546464' // 未在range中定义,不会显示在表格中,但会在删除的回调函数中返回
            },
            {
                name: '贵州省人民医院',
                partyType: {
                    text: '被告',
                    value: 1
                },
                id: '5565656565656'
            }
        ],
        btn: {
            type: 'primary', // 取值范围:warn、default、primary
            text: '添加当事人',
            callback: (e) => {
                uni.navigateTo({
                    url: '/pages/case-operate/case-add-reason'
                });
            }
        },
        callback: (e) => {
            //点击删除按钮时的回调函数
            console.log(e);
        }
    },
    chargType: {
        type: 'textarea',
        placeholder: '请写明收费方式及内容',
        label: '收费条款',
        rules: [
            {
                required: true,
                errorMessage: '请填写收费条款'
            }
        ]
    },
    undertake: {
        type: 'checkbox',
        label: '承办律师',
        value: [], //当multiple为true时,value的值为数组类型
        range: [
            {
                text: '张律师',
                value: '10000000'
            },
            {
                text: '李律师',
                value: '20000000'
            },
            {
                text: '胡律师',
                value: '30000000'
            }
        ],
        multiple: true
    },
    grade: {
        type: 'picker',
        label: '年级',
        range: [
            //必填
            {
                text: '一年级',
                value: '1-0',
                children: [
                    {
                        text: '1.1班',
                        value: '1-1'
                    },
                    {
                        text: '1.2班',
                        value: '1-2'
                    }
                ]
            },
            {
                text: '二年级',
                value: '2-0'
            },
            {
                text: '三年级',
                value: '3-0'
            }
        ],
        placeholder: '请选择年级'
    },
    avatar: {
        type: 'file',
        label: '图片'
    }
});

async function sub(e) {
    console.log(res);
}
</script>

返回值

{
  "value": {
    "title": "sadfs",
    ......
    "avatar": [
      "https://mp-a55cff5c-.....com/cloudstorage/4ce25b1b-9cce-4177-8fe5-1e1bfe58bcf2.jpg",
      "https://mp-a55cff5c-.....com/cloudstorage/ba1b6b21-bb8f-41bc-a3dc-9a8e088e56b2.jpg",
      "https://mp-a55cff5c-.....com/cloudstorage/8ea08f27-c2e6-4944-8d3a-7067bd86f97a.jpg"
    ]
  },
  "message": "success"
}

内置函数


# 重置表单:resetForm()
formData.value = form.value.resetForm(); //重置表单数据,即将formData.value重置为初始值——该初始值从函数resetForm()返回

# 表单赋值:setItemValue(key,value)
/**组件提供方法setItemValue来实现给组件指定表单动态赋值,也可以直接向formData赋值,例如:formData.value.title.value = '1'。
 * setItemValue(key,value):给主页面表单赋值,key为表单对应的对象属性,例如 "title"
 */

form.value.setItemValue('authorizationType', 1);//调用setItemValue方法给指定表单(如:authorizationType)赋值为 1。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问