JSON数组输入框
可用于BuildAdmin的JSON数组输入框

介绍

基于BuildAdmin开发的jsonArrayInput组件,使输入框可以直接输入json格式的数组数据,支持嵌套json数组,并且支持编辑和删除。

json的键值支持现有的baInput组件的所有组件类型,详见:表单项目组件(formItem)

使用教程,总共分为2步

第1步:修改对应模型,增加字段类型转换和获取器

model里面创建一个获取器,使值转为数组结构。
假设test模型的json数组的字段名称为json_array,代码如下。

php 复制代码
<?php namespace app\admin\model; use think\Model; /** * Test */ class Test extends Model { // 表名 protected $name = 'test'; // 自动写入时间戳字段 protected $autoWriteTimestamp = true; // 字段类型转换 protected $type = [ 'json_array' => 'json', ]; public function getJsonArrayAttr($value): array { return !$value ? [] : json_decode($value, true); } }

第2步:编辑表单代码

引入JsonArrayInput组件

import JsonArrayInput from '/@/components/jsonArrayInput/index.vue'

修改src\views\backend\test\popupForm.vue中的json_array表单项

html 复制代码
<el-form-item label="JsonArray"> <JsonArrayInput v-model="baTable.form.items!.json_array" :jsonItemsConfig="[ { keyName: 'test_id', label: '远程下拉', type: 'remoteSelect', attr: { placeholder: '请选择远程下拉', pk: 'user.id', field: 'nickname', remoteUrl: '/admin/user.User/index' }, }, { label: 'switch组件', keyName: 'switch_keyname', type: 'switch', attr: { size: 'large' }, }, { label: 'datetime组件', keyName: 'datetime_keyname', type: 'datetime', attr: { placeholder: '请选择datetime数据' }, }, { label: 'string类型', keyName: 'string_key_keyname', defaultValue: '我是默认值', type: 'string', attr: { placeholder: '请输入string数据' }, }, { label: 'password类型', keyName: 'password_key_keyname', type: 'password', attr: { placeholder: '请输入password数据', maxlength: 10, clearable: true, showPassword: true }, }, { label: 'textarea类型', keyName: 'textarea_key_keyname', type: 'textarea', attr: { placeholder: '请输入textarea数据', showWordLimit: true, maxlength: 30, rows: 3 }, }, { label: 'radio类型', keyName: 'radio_key_keyname', type: 'radio', defaultValue: 'b', attr: { placeholder: '请输入radio数据', childrenAttr: { border: true }, content: { a: '选项a', b: '选项b' } }, }, { label: 'checkbox类型', keyName: 'checkbox_key_keyname', type: 'checkbox', defaultValue: '0', attr: { placeholder: '请输入checkbox数据', size: 'large', border: true, content: { '0': '选项a', '1': '选项b' } }, }, { label: 'array类型', keyName: 'array_key_keyname', type: 'array', defaultValue: [ { key: '我是默认键1', value: '我是默认值1' }, { key: '我是默认键2', value: '我是默认值2' }, ], attr: { keyTitle: '键标题', valueTitle: '值标题' }, }, ]" /> </el-form-item>

参数介绍

属性名 属性值
v-model 双向绑定值,必填
jsonItemsConfig json属性配置类型,必填
jsonItemLabelWidth json数组表单中显示的json键的宽度,默认为160,单位px
placeholder 数据为空时的提示语,默认为空
addButtonName 添加按钮名称,默认为添加
属性名 属性值
keyName 实际的键名称,必填
defaultValue 默认的值
label json键的名字,仅作为展示 ,为空则与keyName相同,默认为空
type 和formItem组件一样,详见输入框类型文档必填
attr 和formItem组件一样,详见可用属性类型文档
data 同上

更新日志

  • 2024-09-05 22:28:36

    v1.0.0

    首次发布

    无详细更新日志

筱洛洛
筱洛洛
这家伙很懒,什么也没写~
模块授权
正版授权,允许商业使用
免费更新至一年内发布的所有版本
一年内发布的所有版本永久免费下载
不加密源代码,私有部署,二开方便
可复制产品,不支持七天无理由退款
禁止转售、分享等任何形式的再分发
仅 BuildAdmin 后台管理系统可以使用
模块信息
模块价格
¥9.90
访问次数
3118
模块标识
jsonarrayinput
下载次数
23
模块分类
主题模板
上次更新
2024-09-05 22:28:36
开发者主页
-
购买送积分
-
纯WEB端纯手写