btxtgxq-system-population/target/classes/static/assets/layuiadmin/modules/checkbox.js
java_cuibaocheng@163.com 19d3a88fa0 基础人口信息
2023-10-25 10:25:13 +08:00

163 lines
6.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

layui.define(['form', 'common', 'ajax'], function (exports) {
let $ = layui.$;
let form = layui.form;
let layer = layui.layer;
let common = layui.common;
let ajax = layui.ajax;
/**
* 通用
* @param opt
*/
function dataDynamic(opt) {
let url = opt.url;
let name = opt.name;
let valueKey = opt.valueKey ? opt.valueKey : '';
let nameKey = opt.nameKey ? opt.nameKey : '';
let where = opt.where ? opt.where : {};
// 请求得到的列表Key格式'a.b.c'
let dataListKey = opt.dataListKey ? opt.dataListKey : '';
let formFilter = opt.formFilter;
let checkedValue = opt.checkedValue;
let required = typeof (opt.required) !== 'undefined' && opt.required !== null ? opt.required : false;
let checkboxDatasetKeyArray = opt.checkboxDatasetKeyArray && $.isArray(opt.checkboxDatasetKeyArray) ? opt.checkboxDatasetKeyArray : [];
let onInit = opt.onInit && $.isFunction(opt.onInit) ? opt.onInit : null;
let onCheck = opt.onCheck && $.isFunction(opt.onCheck) ? opt.onCheck : null;
let elemContainer = $(`#${name}Container`);
/**
* 初始化容器
*/
function initContainer() {
elemContainer.empty();
ajax.get(url, where, null, function (code, data) {
let checkboxArray = [];
let dataList = data;
if (dataListKey) {
let dataListKeyArray = dataListKey.split('.');
$.each(dataListKeyArray, function (i, key) {
dataList = dataList[key];
})
}
$.each(dataList, function (i, item) {
let value = valueKey ? item[valueKey] : item;
let title = nameKey ? item[nameKey] : item;
let checkboxDatasetArray = [];
$.each(checkboxDatasetKeyArray, function (j, checkboxDatasetKey) {
let checkboxDatasetValue = item[checkboxDatasetKey];
if (!checkboxDatasetValue) {
return;
}
checkboxDatasetArray.push(`data-${common.camelCase2lineCase(checkboxDatasetKey)}="${checkboxDatasetValue}"`);
});
checkboxArray.push(`<input type="checkbox" name="${name}" title="${title}" value="${value}" ${checkboxDatasetArray.join(' ')} lay-filter="${name}Checkbox" lay-skin="primary" ${required ? 'lay-verify="required"' : ''} ${(checkedValue && checkedValue === value) ? 'checked' : ''}>`);
});
elemContainer.append(checkboxArray.join(''));
// 赋值
if (checkedValue) {
let formData = {};
formData[`${name}`] = checkedValue;
form.val(formFilter, formData);
onInit ? onInit(checkedValue) : null;
}
form.render('checkbox', formFilter);
}, function (code, data) {
layer.msg(data.msg);
});
}
/**
* 添加事件
*/
function addEvent() {
form.on(`checkbox(${name}Checkbox)`, function (data) {
onCheck ? onCheck(data) : null;
});
}
initContainer();
addEvent();
}
/**
* 静态数据
* @param opt
*/
function dataStatic(opt) {
let name = opt.name;
let checkboxs = opt.checkboxs && $.isArray(opt.checkboxs) ? opt.checkboxs : [];
let formFilter = opt.formFilter;
let checkedValue = opt.checkedValue;
let required = typeof (opt.required) !== 'undefined' && opt.required !== null ? opt.required : false;
let onInit = opt.onInit && $.isFunction(opt.onInit) ? opt.onInit : null;
let onCheck = opt.onCheck && $.isFunction(opt.onCheck) ? opt.onCheck : null;
let elemContainer = $(`#${name}Container`);
/**
* 初始化容器
*/
function initContainer() {
elemContainer.empty();
let checkboxArray = [];
$.each(checkboxs, function (i, checkbox) {
let value = checkbox['value'];
let title = checkbox['title'];
let checkboxDatasetArray = [];
for (let key in checkbox) {
if (key === 'value' || key === 'title') {
continue;
}
checkboxDatasetArray.push(`data-${common.camelCase2lineCase(key)}="${checkbox[key]}"`);
}
checkboxArray.push(`<input type="checkbox" name="${name}" title="${title}" value="${value}" ${checkboxDatasetArray.join(' ')} lay-filter="${name}Checkbox" lay-skin="primary" ${required ? 'lay-verify="required"' : ''} ${(checkedValue && checkedValue === value) ? 'checked' : ''}>`);
});
elemContainer.append(checkboxArray.join(''));
// 赋值
if (checkedValue) {
let formData = {};
formData[`${name}`] = checkedValue;
form.val(formFilter, formData);
onInit ? onInit(checkedValue) : null;
}
form.render('checkbox', formFilter);
}
/**
* 添加事件
*/
function addEvent() {
form.on(`checkbox(${name}Checkbox)`, function (data) {
onCheck ? onCheck(data) : null;
});
}
initContainer();
addEvent();
}
/**
* 数据字典
* @param opt
*/
function dataDictionary(opt) {
dataDynamic({
url: ajax.path('api/data/list/parent-id/{parentId}', [opt.parentId]),
name: opt.name,
required: opt.required,
formFilter: opt.formFilter,
valueKey: 'dataId',
nameKey: 'dataName',
checkedValue: opt.checkedValue,
checkboxDatasetKeyArray: opt.checkboxDatasetKeyArray,
where: opt.where,
onInit: opt.onInit,
onCheck: opt.onCheck
})
}
exports('checkbox', {
dataDynamic: dataDynamic,
dataStatic: dataStatic,
dataDictionary: dataDictionary
});
});