2022-06-02 17:47:13 +08:00
|
|
|
|
# layui工具
|
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
layui需要引入 **upload** 模块
|
2022-06-02 17:47:13 +08:00
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
引入依赖:
|
2022-06-02 17:47:13 +08:00
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
css
|
|
|
|
|
```html
|
|
|
|
|
<link rel="stylesheet" href="assets/js/vendor/viewer/viewer.min.css">
|
|
|
|
|
<link rel="stylesheet" href="assets/css/layui-util.css">
|
|
|
|
|
```
|
2022-06-02 17:47:13 +08:00
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
js
|
|
|
|
|
```html
|
|
|
|
|
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
|
|
|
|
<script src="assets/js/layui-util.js"></script>
|
|
|
|
|
```
|
2022-06-02 17:47:13 +08:00
|
|
|
|
|
|
|
|
|
初始化
|
|
|
|
|
|
|
|
|
|
```js
|
2022-08-15 15:17:10 +08:00
|
|
|
|
var layuiUtil = new LayuiUtil(layui, Viewer ? Viewer : null);
|
2022-06-02 17:47:13 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 表单
|
|
|
|
|
|
|
|
|
|
### 构建下拉列表
|
|
|
|
|
|
|
|
|
|
html
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
layuiUtil.select({
|
|
|
|
|
url: top.restAjax.path('', []),
|
2022-08-15 15:17:10 +08:00
|
|
|
|
domId: 'xxxIdBox',
|
|
|
|
|
name: 'xxxId',
|
2022-06-02 17:47:13 +08:00
|
|
|
|
dataForm: 'dataForm',
|
|
|
|
|
valueKey: 'dataId',
|
|
|
|
|
nameKey: 'dataName',
|
|
|
|
|
onSelect: function(data, option) {
|
|
|
|
|
var optionValue = option.value;
|
|
|
|
|
var optionText = option.innerText;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
### 构建数据字典
|
|
|
|
|
|
|
|
|
|
js
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
layuiUtil.selectData({
|
|
|
|
|
parentId: '',
|
|
|
|
|
domId: 'xxxIdBox',
|
|
|
|
|
name: 'xxxId',
|
|
|
|
|
dataForm: 'dataForm',
|
|
|
|
|
onSelect: function(data, option) {
|
|
|
|
|
$('#highestEducationName').val(option.innerText);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
2022-06-02 17:47:13 +08:00
|
|
|
|
参数
|
|
|
|
|
|名称|类型|描述|是否必填|
|
|
|
|
|
|-|-|-|-|
|
|
|
|
|
|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|
|
|
|
|
|
|
2022-08-15 15:17:10 +08:00
|
|
|
|
|
|
|
|
|
## 下拉联动
|
|
|
|
|
|
|
|
|
|
### 下拉多级地区联动
|
|
|
|
|
|
|
|
|
|
> 树形结构,下拉联动需要配合dom实现
|
|
|
|
|
|
|
|
|
|
html
|
|
|
|
|
|
|
|
|
|
```html
|
|
|
|
|
<div class="layui-row" style="margin-top: 10px;">
|
|
|
|
|
<span class="search-item-key">户籍地</span>
|
|
|
|
|
<div class="layui-inline layui-form search-item ">
|
|
|
|
|
<select id="registerArea0" name="registerArea0" lay-filter="registerArea0Select"></select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="layui-inline layui-form search-item ">
|
|
|
|
|
<select id="registerArea1" name="registerArea1" lay-filter="registerArea1Select"></select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="layui-inline layui-form search-item ">
|
|
|
|
|
<select id="registerArea2" name="registerArea2" lay-filter="registerArea2Select"></select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="layui-inline layui-form search-item ">
|
|
|
|
|
<select id="registerArea3" name="registerArea3" lay-filter="registerArea3Select"></select>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="layui-inline layui-form search-item ">
|
|
|
|
|
<select id="registerArea4" name="registerArea4" lay-filter="registerArea4Select"></select>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`<select>` 的 **id**、**name** 需要相同,下标从**0**开始,**lay-filter** 为 **id** 值 + **Select**。
|
|
|
|
|
固定写法,下标递增
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
layuiUtil.selectLinkageArea({
|
|
|
|
|
baseRootId: 0,
|
|
|
|
|
selectId: 'registerArea',
|
|
|
|
|
optionDataKeyArray: ['areaCode'],
|
|
|
|
|
onSelect: function(data, option, index) {
|
|
|
|
|
var value = data.value;
|
|
|
|
|
// 删除元素
|
|
|
|
|
selectedRegisterAreaArray.splice(index, 5 - index);
|
|
|
|
|
if(value) {
|
|
|
|
|
selectedRegisterAreaArray[index] = option.innerText;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
参数
|
|
|
|
|
|名称|类型|描述|是否必填|
|
|
|
|
|
|-|-|-|-|
|
|
|
|
|
|baseRootId|string|第一个下拉框的根节点ID|是|
|
|
|
|
|
|selectId|string|select的ID(不包含下标)|是|
|
|
|
|
|
|optionDataKeyArray|array|需要附带在option上的属性值,取值的时候通过option.dataset.dataX 获取,其中X为数组下标|否|
|
|
|
|
|
|onSelect|function|选择事件|是|
|
|
|
|
|
|
|
|
|
|
事件
|
|
|
|
|
|
|
|
|
|
onSelect:选择时触发事件
|
|
|
|
|
|
|
|
|
|
|名称|类型|描述|
|
|
|
|
|
|-|-|-|
|
|
|
|
|
|data|obj|选择的option数据,包含原始DOM,美化后的DOM,选中的值|
|
|
|
|
|
|option|dom|选中的option|
|
|
|
|
|
|index|number|select下标|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-02 17:47:13 +08:00
|
|
|
|
## 上传
|
|
|
|
|
|
|
|
|
|
### 上传图片
|
|
|
|
|
|
|
|
|
|
> 已上传头像为例,**avatar** 需要前后一致
|
|
|
|
|
|
|
|
|
|
html
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
layuiUtil.initUploadImage({
|
|
|
|
|
fieldName: 'avatar',
|
|
|
|
|
maxCount: 6,
|
|
|
|
|
isShow: false,
|
|
|
|
|
allowExts: [],
|
|
|
|
|
acceptMime: []
|
|
|
|
|
})
|
2022-08-15 15:17:10 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
参数
|
|
|
|
|
|名称|类型|描述|是否必填|默认|
|
|
|
|
|
|-|-|-|-|-|
|
|
|
|
|
|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
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```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
|
|
|
|
|
|
|
|
|
|
```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|
|