# layui工具

layui需要引入 upload 模块

引入依赖:

css

<link rel="stylesheet" href="assets/js/vendor/viewer/viewer.min.css">
<link rel="stylesheet" href="assets/css/layui-util.css">

js

<script src="assets/js/vendor/viewer/viewer.min.js"></script>
<script src="assets/js/layui-util.js"></script>

初始化

var layuiUtil = new LayuiUtil(layui, Viewer ? Viewer : null);

# 表单

# 构建下拉列表

html

<div class="layui-form-item">
    <label class="layui-form-label">最高学历</label>
    <input type="hidden" id="highestEducationName" name="highestEducationName">
    <div class="layui-input-block" id="highestEducationIdBox"></div>
</div>

js

layuiUtil.select({
    url: top.restAjax.path('', []),
    domId: 'xxxIdBox',
    name: 'xxxId',
    dataForm: 'dataForm',
    valueKey: 'dataId',
    nameKey: 'dataName',
    onSelect: function(data, option) {
        var optionValue = option.value;
        var optionText = option.innerText;
    }
});

# 构建数据字典

js

layuiUtil.selectData({
    parentId: '',
    domId: 'xxxIdBox',
    name: 'xxxId',
    dataForm: 'dataForm',
    onSelect: function(data, option) {
        $('#highestEducationName').val(option.innerText);
    }
});

参数

名称 类型 描述 是否必填
url string 请求地址
domId string 加载下拉的div
name string select的ID与NAME属性值
dataForm string 表单的lay-filter值
valueKey string 接口返回的数据渲染到option的value属性的值
nameKey string 接口返回的数据渲染到option的innerText的值
selectedValue string 选中的默认值
onInit function 渲染时触发回调
onSelect function 选择时触发回调

事件

onInit:渲染或更新时触发事件

名称 类型 描述
selectedValue string 选中的默认值,空字符串时,不触发数据加载

onSelect:选择时触发事件

名称 类型 描述
data obj 选择的option数据,包含原始DOM,美化后的DOM,选中的值
option dom 选中的option

# 上传

# 上传图片

已上传头像为例,avatar 需要前后一致

html

<div id="avatarBox" class="layui-form-item">
    <label class="layui-form-label">头像</label>
    <button type="button" class="layui-btn layui-upload-file-btn" id="avatarUploadBtn">上传头像</button>
    <div class="upload-image-box">
        <input type="hidden" id="avatar" name="avatar">
        <div class="layui-btn-container" id="avatarFileBox"></div>
    </div>
</div>

js

layuiUtil.initUploadImage({
    fieldName: 'avatar',
    maxCount: 6,
    isShow: false,
    allowExts: [],
    acceptMime: []
})

参数

名称 类型 描述 是否必填 默认
maxCount int 最大数量 9
fieldName string 字段名称
isShow boolean 是否展示(不能上报、删除)
allowExts array 允许的后缀 'jpg', 'png', 'gif', 'bmp', 'jpeg'
acceptMime array 文件选择支持的类型 'image/*'

事件

onInit:渲染或更新时触发事件

名称 类型 描述
selectedValue string 选中的默认值,空字符串时,不触发数据加载

onSelect:选择时触发事件

名称 类型 描述
data obj 选择的option数据,包含原始DOM,美化后的DOM,选中的值
option dom 选中的option

# 上传视频

html

<div id="videoBox" class="layui-form-item">
    <label class="layui-form-label">视频</label>
    <button type="button" class="layui-btn layui-upload-file-btn" id="videoUploadBtn">上传视频</button>
    <div class="upload-image-box">
        <input type="hidden" id="video" name="video">
        <div class="layui-btn-container" id="videoFileBox"></div>
    </div>
</div>

js

layuiUtil.initUploadVideo({
    fieldName: 'video',
    maxCount: 1,
    isShow: false,
    allowExts: [],
    acceptMime: []
})

参数

名称 类型 描述 是否必填 默认
maxCount int 最大数量 1
fieldName string 字段名称
isShow boolean 是否展示(不能上报、删除)
allowExts array 允许的后缀 'mp4'
acceptMime array 文件选择支持的类型 'video/mp4'

# 上传音频

html

<div id="audioBox" class="layui-form-item">
    <label class="layui-form-label">音频</label>
    <button type="button" class="layui-btn layui-upload-file-btn" id="audioUploadBtn">上传音频</button>
    <div class="upload-image-box">
        <input type="hidden" id="audio" name="audio">
        <div class="layui-btn-container" id="audioFileBox"></div>
    </div>
</div>

js

layuiUtil.initUploadAudio({
    fieldName: 'audio',
    maxCount: 1,
    isShow: false,
    allowExts: [],
    acceptMime: []
})

参数

名称 类型 描述 是否必填 默认
maxCount int 最大数量 1
fieldName string 字段名称
isShow boolean 是否展示(不能上报、删除)
allowExts array 允许的后缀 'wav', 'mp3'
acceptMime array 文件选择支持的类型 'audio/wav', 'audio/mp3'

# 上传附件

html

<div id="fileBox" class="layui-form-item">
    <label class="layui-form-label">附件</label>
    <button type="button" class="layui-btn layui-upload-file-btn" id="fileUploadBtn">上传附件</button>
    <div class="upload-image-box">
        <input type="hidden" id="file" name="file">
        <div class="layui-btn-container" id="fileFileBox"></div>
    </div>
</div>

js

layuiUtil.initUploadFile({
    fieldName: 'file',
    maxCount: 3,
    isShow: false,
    allowExts: [],
    acceptMime: [],
    onFileClick: function(fileId) {}
})

参数

名称 类型 描述 是否必填 默认
maxCount int 最大数量 9
fieldName string 字段名称
isShow boolean 是否展示(不能上报、删除)
allowExts array 允许的后缀 'pdf', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'wps', 'txt', 'rar', 'zip'
acceptMime array 文件选择支持的类型 'application/pdf'等
onFileClick function 文件点击事件 下载文件

事件

onFileClick:文件点击事件

名称 类型 描述
fileId string 点击的文件ID