更新记录

1.0.0(2023-08-11) 下载此版本

首次提交


平台兼容性

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

常用表单组件(hdfrom)

hdfrom组件、封装了常用的表单组件类型,如:text、select、date、datetime 等组件

属性说明

属性 是否必填 值类型 默认值 说明
type String 'text' 表单组件类型,默认为 input输入框,可选:[text(input),number(数字键盘),textarea(文本域),label(只读标签),date(日期组件),datetime(日期时间组件),select(单选组件),region(省市区组件),textarea(长文本)]
v-model String或Number 与p9data进行双向数据绑定
placeholder String 占位文字
is-must Boolean false 是否为必填项,如果为 true,将在标题前加上 红点
disabled Boolean false 是否禁用
clearBtn Boolean false type为text或number时,是否显示清除内容图标按钮
title String 表单组件的label标题
titleWidth String '180rpx' label标题的宽度
textRight Boolean false 内容是否右对齐显示
selectData Array select模式的数据项,type为select时该数据为必填,数据格式为:[{name:"名称1",code:"name1"},{name:"名称2",code:"name2"}]
field String 用来标明最终绑定到p9data中的字段,如:name或者code,type为select时该数据为必填
defaultSelect Boolean true type为select时,是否默认选中第一条数据
compWidth String '680rpx' 整体组件宽度
showDisicon Boolean false 是否显示禁止编辑按钮,与 disabled 配合使用
maxlength String type为textarea时,可使用该属性限制文本的最大字数
areaHeight String '200rpx' type为textarea时,可使用该属性指定文本域的高度
useOgDate Boolean false type为date或datetime时,是否使用原生时间日期选择框

事件说明

事件名 说明 返回值
@change 数据发生改变时的回调,可以使用该事件进行监听处理 -

插槽说明

slot名 说明
center 自定义组件中间部分内容
right 自定义组件右侧按钮内容

使用说明

:::: code-group ::: code-group-item Template

<<!-- hdform案例 -->
<template>
    <view>
        <!-- 为了防止出现白条 -->
        <view style="height: 24upx"></view>
        <view class="hd-form" v-if="showPage">
            <!-- label -->
            <view class="su-list-cell su-cell">
                <hd-form type="label" title="申请状态" bind-value="编辑中" disabled show-disicon />
            </view>
            <view class="su-list-cell su-cell">
                <hd-form type="datetime" title="创建时间" :bind-value="vMainData['createTime']" disabled show-disicon />
            </view>
            <!-- text -->
            <view class="su-list-cell su-cell">
                <hd-form type="text" title="姓名" placeholder="输入姓名" v-model="vMainData['name']" />
            </view>
            <!-- number -->
            <view class="su-list-cell su-cell">
                <hd-form type="number" title="联系方式" placeholder="输入联系方式" v-model="vMainData['phone']" />
            </view>
            <!-- select -->
            <view class="su-list-cell su-cell">
                <hd-form type="select" title="单选类型" :select-data="selectData" field="name" v-model="vMainData['selectType']" placeholder="请选择单选类型" />
            </view>
            <!-- 多选 -->
            <view class="su-list-cell su-cell">
                <hd-form type="multiple" title="多选类型" :select-data="selectData" field="name" v-model="vMainData['multipleType']" placeholder="请选择多选类型" />
            </view>
            <view class="su-list-cell su-cell">
                <hd-form type="mlabel" title="下拉类型" placeholder="请选择会议号" :select-data="selectData" v-model="vMainData['selectType']" field="name" />
            </view>
            <!-- date -->
            <view class="su-list-cell su-cell">
                <hd-form type="date" title="日期类型" placeholder="请选择日期" is-must v-model="vMainData['dateValue']" />
            </view>
            <!-- datetime -->
            <view class="su-list-cell su-cell">
                <hd-form type="datetime" title="时间类型" placeholder="请选择时间" is-must v-model="vMainData['dateTimeValue']" />
            </view>
            <!-- 省市区 -->
            <view class="su-list-cell su-cell">
                <hd-form type="region" title="省市区" placeholder="请选择省市区" v-model="vMainData['areaValue']" />
            </view>
            <!-- 长文本 -->
            <view class="su-list-cell su-cell">
                <hd-form type="textarea" placeholder="请输入内容" :maxlength="100" v-model="vMainData['textareaValue']" />
            </view>
        </view>
        <!-- 模拟高度 -->
        <view style="height: 130upx"></view>
        <!-- 底部保存 -->
        <view class="su-page-bottom" v-if="showPage">
            <button class="su-button">保存</button>
        </view>
    </view>
</template>
<script>
/**
 * hdform案例
 */
export default {
    data() {
        return {
            showPage: false,
            //select选择数据
            selectData: [],
            // 绑定的p9data数据
            vMainData: {}
        };
    },
    onLoad() {
        this.$nextTick((e) => {
            // 模拟select数据
            let temp = [];
            for (var i in Array.from('hello')) temp.push({ name: `测试选择数据${i * 1 + 1}`, code: `code${i * 1 + 1}` });
            this.selectData = temp;
            this.showPage = true;
        });
    },
    methods: {
        async initData() {}
    }
};
</script>

<style lang="scss">
.hd-form {
    margin: 24upx;
    margin-top: 0;
    border-radius: 24upx !important;
    background-color: #fff;
}
</style>

::: ::::

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。

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