处理代码格式

This commit is contained in:
wanggeng 2022-09-09 15:12:33 +08:00
parent f1b4307535
commit 64853519b7
3 changed files with 269 additions and 333 deletions

View File

@ -15,7 +15,7 @@ layui.define(function (exports) {
function objToForm(obj) {
let formStr = '';
for (let name in obj) {
if (formStr == undefined || formStr == null || formStr == '') {
if (!formStr) {
formStr += name + '=' + obj[name];
} else {
formStr += '&' + name + '=' + obj[name];
@ -92,8 +92,8 @@ layui.define(function (exports) {
* @param completeCallback
*/
function doAjax(url, method, dataObj, args, successCallback, errorCallback, beforeCallback, completeCallback) {
let ajaxData = (dataObj == undefined || dataObj == null) ? {} : dataObj;
if (methods.POST_METHOD == method || methods.PUT_METHOD == method) {
let ajaxData = (!dataObj) ? {} : dataObj;
if (methods.POST_METHOD === method || methods.PUT_METHOD === method) {
ajaxData = JSON.stringify(ajaxData);
} else {
ajaxData = objToForm(ajaxData);
@ -116,17 +116,17 @@ layui.define(function (exports) {
error: function (XMLHttpRequest) {
let responseCode = XMLHttpRequest.status;
let responseData = JSON.parse(XMLHttpRequest.responseText);
if (errorCallback != undefined && errorCallback != null && typeof (errorCallback) == 'function') {
if (errorCallback && typeof (errorCallback) == 'function') {
errorCallback(responseCode, responseData);
}
},
beforeSend: function (XMLHttpRequest) {
if (beforeCallback != undefined && beforeCallback != null && typeof (beforeCallback) == 'function') {
if (beforeCallback && typeof (beforeCallback) == 'function') {
beforeCallback(XMLHttpRequest);
}
},
complete: function (XMLHttpRequest, status) {
if (completeCallback != undefined && completeCallback != null && typeof (completeCallback) == 'function') {
if (completeCallback && typeof (completeCallback) == 'function') {
completeCallback(XMLHttpRequest, status);
}
}
@ -141,14 +141,14 @@ layui.define(function (exports) {
function pathArgsHasSameValue(pathArgArray) {
let tempArgIndex = 0;
let tempArgs = pathArgArray[tempArgIndex];
for (let i = (tempArgIndex + 1), item; item = pathArgArray[i]; i++) {
if (tempArgs == item) {
for (let i = (tempArgIndex + 1); i < pathArgArray.length; i++) {
let item = pathArgArray[i];
if (tempArgs === item) {
throw new Error('参数' + item + '有重复值!!!');
}
if (i == pathArgArray.length - 1) {
if (i === pathArgArray.length - 1) {
tempArgs = pathArgArray[++tempArgIndex];
i = tempArgIndex;
continue;
}
}
}
@ -164,9 +164,10 @@ layui.define(function (exports) {
return paramsObj;
}
let paramsKVs = params.split('&');
for (let i = 0, item = null; item = paramsKVs[i++];) {
for (let i = 0; i < paramsKVs.length; i++) {
let item = paramsKVs[i];
let kvs = item.split('=');
if (kvs.length == 1) {
if (kvs.length === 1) {
paramsObj[kvs[0]] = null;
continue;
}
@ -194,7 +195,8 @@ layui.define(function (exports) {
return path;
}
pathArgsHasSameValue(pathArgArray);
for (let i = 0, item; item = pathArgArray[i]; i++) {
for (let i = 0; i < pathArgArray.length; i++) {
let item = pathArgArray[i];
path = path.replace(item, pathArgs[i]);
}
return path;
@ -225,17 +227,17 @@ layui.define(function (exports) {
error: function (XMLHttpRequest) {
let responseCode = XMLHttpRequest.status;
let responseData = JSON.parse(XMLHttpRequest.responseText);
if (errorCallback != undefined && errorCallback != null && typeof (errorCallback) == 'function') {
if (errorCallback && typeof (errorCallback) == 'function') {
errorCallback(responseCode, responseData);
}
},
beforeSend: function (XMLHttpRequest) {
if (beforeCallback != undefined && beforeCallback != null && typeof (beforeCallback) == 'function') {
if (beforeCallback && typeof (beforeCallback) == 'function') {
beforeCallback(XMLHttpRequest);
}
},
complete: function (XMLHttpRequest, status) {
if (completeCallback != undefined && completeCallback != null && typeof (completeCallback) == 'function') {
if (completeCallback && typeof (completeCallback) == 'function') {
completeCallback(XMLHttpRequest, status);
}
}
@ -256,7 +258,7 @@ layui.define(function (exports) {
function checkBoxToString(formObj, checkBoxKey) {
let value = '';
for (let key in formObj) {
if (key.indexOf(checkBoxKey) != 0) {
if (key.indexOf(checkBoxKey) !== 0) {
continue;
}
if (value !== '') {

View File

@ -2,8 +2,10 @@ function LayuiFileUpload(layui, viewer) {
let $ = layui.$;
let form = layui.form;
let upload = layui.upload;
if (!upload) {
throw new Error('需要引入layui的upload模块');
}
let ajax = top.restAjax || top.ajax;
let dialog = top.dialog;
let Viewer = viewer;
let viewerObj = {};
let style = `
@ -31,12 +33,12 @@ function LayuiFileUpload(layui, viewer) {
$(document.head).append(style);
/**
* 初始化图片上传
* 获取配置
* @param opt
* @return {{headers: *, fieldName: *, uploadBtnId: string, deleteBtnClass: string, fileBoxId: string, isApp: (*|boolean), id: string, isAppRelease: (*|boolean), maxCount: (number|*), isShow: (*|boolean)}}
*/
function initUploadImage(opt) {
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 9
maxCount = opt.maxCount < 0 ? 9 : opt.maxCount;
function getOptData(opt) {
let maxCount = !opt.maxCount || opt.maxCount < 0 ? 9 : opt.maxCount;
let fieldName = opt.fieldName;
let headers = opt.headers;
headers = headers ? headers : {};
@ -44,73 +46,106 @@ function LayuiFileUpload(layui, viewer) {
let isAppRelease = opt.isAppRelease;
let isShow = opt.isShow;
let id = '#' + fieldName;
let fileBoxId = id + 'FileBox';
let uploadBtnId = id + 'UploadBtn';
let id = `#${fieldName}`;
let fileBoxId = `${id}FileBox`;
let uploadBtnId = `${id}UploadBtn`;
let deleteBtnClass = `.delete-${fieldName}-btn`;
return {
maxCount: maxCount,
fieldName: fieldName,
headers: headers,
isApp: isApp,
isAppRelease: isAppRelease,
isShow: isShow,
id: id,
fileBoxId: fileBoxId,
uploadBtnId: uploadBtnId,
deleteBtnClass: deleteBtnClass
}
}
/**
* 渲染
* @param optData
* @param fileArray
* @param html
*/
function render(optData, fileArray, html) {
$(optData.fileBoxId).empty();
$(optData.fileBoxId).append(html);
if (fileArray.length < optData.maxCount) {
$(optData.uploadBtnId).removeClass('layui-btn-disabled');
$(optData.uploadBtnId).attr('disabled', false);
} else {
$(optData.uploadBtnId).addClass('layui-btn-disabled');
$(optData.uploadBtnId).attr('disabled', true);
}
}
/**
* 初始化图片上传
* @param opt
*/
function initUploadImage(opt) {
let optData = getOptData(opt);
function init(callback) {
let fileIds = $(id).val();
let fileIdArray = fileIds ? fileIds.split(',') : [];
let fileIds = $(optData.id).val();
let fileArray = fileIds ? fileIds.split(',') : [];
let html = '';
for (let i = 0, fileId; fileId = fileIdArray[i++];) {
for (let i = 0; i < fileArray.length; i++) {
let fileId = fileArray[i];
html += `
<div class="form-upload-image">
<img src="route/file/v2/download/true/${fileId}" align="加载失败">
<a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-${fieldName}-btn" href="javascript:void(0);" data-id="${fileId}" data-name="${fieldName}">
<a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-${optData.fieldName}-btn" href="javascript:void(0);" data-id="${fileId}" data-name="${optData.fieldName}">
<i class="fa fa-trash-o"></i>
</a>
</div>
`;
}
$(fileBoxId).empty();
$(fileBoxId).append(html);
if (fileIdArray.length < maxCount) {
$(uploadBtnId).removeClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', false);
} else {
$(uploadBtnId).addClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', true);
}
render(optData, fileArray, html);
callback ? callback() : '';
}
function addClick() {
let layerLoadingIndex;
let url = 'api/file/v2/upload-image';
if (isApp) {
if (optData.isApp) {
url = 'app/file/v2/upload-image'
}
if (isAppRelease) {
if (optData.isAppRelease) {
url = 'app/file/v2/upload-image-release'
}
upload.render({
elem: uploadBtnId,
elem: optData.uploadBtnId,
url: url,
accept: 'images',
acceptMime: 'image/*',
field: 'image',
exts: 'jpg|png|gif|bmp|jpeg',
name: fieldName,
headers: headers,
name: optData.fieldName,
headers: optData.headers,
before: function (obj) {
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
},
done: function (res, index, upload) {
layer.close(layerLoadingIndex);
let name = this.name;
let files = $('#' + this.name).val();
let dom = $(`#${name}`);
let files = dom.val();
files = files ? files : '';
if (files.length > 0) {
files += ',';
}
files += res.data.fileId;
$('#' + name).val(files);
dom.val(files);
init(function () {
viewerObj[name].update();
if (Viewer) {
viewerObj[name].update();
}
});
},
error: function (index, upload) {
@ -118,40 +153,39 @@ function LayuiFileUpload(layui, viewer) {
layer.msg('文件上传失败');
},
progress: function (n, elem, res, index) {
let percent = n + '%'
console.log(percent);
console.log(elem);
console.log(res);
console.log(index);
// element.progress('demo-' + index, n + '%');
}
});
$(document).on('click', deleteBtnClass, function () {
$(document).on('click', optData.deleteBtnClass, function () {
let name = this.dataset.name;
let id = this.dataset.id;
let files = $('#' + name).val().replace(id, '');
let dom = $(`#${name}`);
let files = dom.val().replace(id, '');
files = files.replace(/\,+/g, ',');
if (files.charAt(0) == ',') {
if (files.charAt(0) === ',') {
files = files.substring(1);
}
if (files.charAt(files.length - 1) == ',') {
if (files.charAt(files.length - 1) === ',') {
files = files.substring(0, files.length - 1);
}
$('#' + name).val(files);
dom.val(files);
init(function () {
viewerObj[name].update();
if (Viewer) {
viewerObj[name].update();
}
});
});
}
init(function () {
viewerObj[fieldName] = new Viewer(document.getElementById(fieldName + 'FileBox'), {navbar: false});
if (Viewer) {
viewerObj[optData.fieldName] = new Viewer(document.getElementById(optData.fieldName + 'FileBox'), {navbar: false});
}
});
if (!isShow) {
if (!optData.isShow) {
addClick();
} else {
$(uploadBtnId).hide();
$(optData.uploadBtnId).hide();
}
}
@ -224,84 +258,64 @@ function LayuiFileUpload(layui, viewer) {
* @param opt
*/
function initUploadFile(opt) {
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 3
maxCount = opt.maxCount < 0 ? 3 : opt.maxCount;
let fieldName = opt.fieldName;
let headers = opt.headers;
headers = headers ? headers : {};
let isApp = opt.isApp;
let isAppRelease = opt.isAppRelease;
let isShow = opt.isShow;
let id = '#' + fieldName;
let fileBoxId = id + 'FileBox';
let uploadBtnId = id + 'UploadBtn';
let deleteBtnClass = '.delete-' + fieldName + '-btn';
let optData = getOptData(opt);
function init() {
let files = $(id).val();
let files = $(optData.id).val();
let fileArray = files ? files.split(',') : [];
let html = '';
if (fileArray.length > 0) {
html += [
'<div class="form-upload-file">',
' <table class="layui-table" lay-size="sm">',
' <colgroup>',
' <col>',
' <col width="60">',
' </colgroup>',
' <thead>',
' <tr>',
' <th>文件名</th>',
' <th class="operation">操作</th>',
' </tr>',
' </thead>',
' <tbody>',
].join('');
for (let i = 0, file; file = fileArray[i++];) {
let trs = '';
for (let i = 0; i < fileArray.length; i++) {
let file = fileArray[i];
let idNameArray = file.split(':');
let fileId = idNameArray[0];
let fileName = idNameArray[1];
html += [
'<tr>',
' <td><a href="route/file/v2/download/false/'+ fileId +'" target="_blank">' + fileName + '</a></td>',
' <td class="operation">',
' <button type="button" class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fieldName + '-btn" data-id="' + fileId + '" data-name="' + fileName + '" data-field-name="' + fieldName + '">删除</button>',
' </td>',
'</tr>',
].join('');
trs += `
<tr>
<td><a href="route/file/v2/download/false/${fileId}" target="_blank">${fileName}</a></td>
<td class="operation">
<button type="button" class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-${optData.fieldName}-btn" data-id="${fileId}" data-name="${fileName}" data-field-name="${optData.fieldName}">删除</button>
</td>
</tr>
`
}
html += [
' </tbody>',
' </table>',
'</div>'
].join('');
html += `
<div class="form-upload-file">
<table class="layui-table" lay-size="sm">
<colgroup>
<col>
<col width="60">
</colgroup>
<thead>
<tr>
<th>文件名</th>
<th class="operation">操作</th>
</tr>
</thead>
<tbody>
${trs}
</tbody>
</table>
</div>
`;
}
$(fileBoxId).empty();
$(fileBoxId).append(html);
if (fileArray.length < maxCount) {
$(uploadBtnId).removeClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', false);
} else {
$(uploadBtnId).addClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', true);
}
render(optData, fileArray, html);
}
function addClick() {
let layerLoadingIndex;
let url = 'api/file/v2/upload-file';
if (isApp) {
if (optData.isApp) {
url = 'app/file/v2/upload-file'
}
if (isAppRelease) {
if (optData.isAppRelease) {
url = 'app/file/v2/upload-file-release'
}
upload.render({
elem: uploadBtnId,
elem: optData.uploadBtnId,
url: url,
accept: 'file',
acceptMime: [
@ -319,50 +333,53 @@ function LayuiFileUpload(layui, viewer) {
].join(','),
field: 'file',
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
name: fieldName,
headers: headers,
name: optData.fieldName,
headers: optData.headers,
before: function (obj) {
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
},
done: function (res, index, upload) {
layer.close(layerLoadingIndex);
let name = this.name;
let files = $('#' + this.name).val();
let dom = $(`#${name}`);
let files = dom.val();
if (files.length > 0) {
files += ',';
}
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, '');
$('#' + name).val(files);
dom.val(files);
init();
},
error: function (index, upload) {
layer.close(layerLoadingIndex);
layer.msg('文件上传失败');
},
progress: function (n, elem, res, index) {}
progress: function (n, elem, res, index) {
}
});
$(document).on('click', deleteBtnClass, function () {
$(document).on('click', optData.deleteBtnClass, function () {
let id = this.dataset.id;
let name = this.dataset.name;
let fieldName = this.dataset.fieldName;
let files = $('#' + fieldName).val().replace(id + ':' + name, '');
let dom = $(`#${fieldName}`).val();
let files = dom.val().replace(id + ':' + name, '');
files = files.replace(/\,+/g, ',');
if (files.charAt(0) == ',') {
if (files.charAt(0) === ',') {
files = files.substring(1);
}
if (files.charAt(files.length - 1) == ',') {
if (files.charAt(files.length - 1) === ',') {
files = files.substring(0, files.length - 1);
}
$('#' + fieldName).val(files);
dom.val(files);
init();
});
}
init();
if (!isShow) {
if (!optData.isShow) {
addClick();
} else {
$(uploadBtnId).hide();
$(optData.uploadBtnId).hide();
}
}
@ -436,114 +453,97 @@ function LayuiFileUpload(layui, viewer) {
* @param opt
*/
function initUploadVideo(opt) {
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
maxCount = opt.maxCount < 0 ? 1 : opt.maxCount;
let fieldName = opt.fieldName;
let headers = opt.headers;
headers = headers ? headers : {};
let isApp = opt.isApp;
let isAppRelease = opt.isAppRelease;
let isShow = opt.isShow;
let id = '#' + fieldName;
let fileBoxId = id + 'FileBox';
let uploadBtnId = id + 'UploadBtn';
let deleteBtnClass = '.delete-' + fieldName + '-btn';
let optData = getOptData(opt);
function init() {
let files = $(id).val();
let fileArray = files ? files.split(',') : [];
let html = '';
for (let i = 0, file; file = fileArray[i++];) {
for (let i = 0; i < fileArray.length; i++) {
let file = fileArray[i];
let idNameArray = file.split(':');
let fileId = idNameArray[0];
let fileName = idNameArray[1];
html += [
'<div class="form-upload-video">',
' <video width="320" height="240" controls>',
' <source src="route/file/v2/download/true/' + fileId + '" type="video/mp4">',
' 您的浏览器不支持 video 标签',
' </video>',
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fieldName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fileName + '" data-field-name="' + fieldName + '">',
' <i class="fa fa-trash-o"></i>',
' </a>',
'</div>',
].join('');
html += `
<div class="form-upload-video">
<video width="320" height="240" controls>
<source src="route/file/v2/download/true/${fileId}" type="video/mp4">
您的浏览器不支持 video 标签
</video>
<a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-${optData.fieldName}-btn" href="javascript:void(0);" data-id="${fileId}" data-name="${fileName}" data-field-name="${optData.fieldName}">
<i class="fa fa-trash-o"></i>
</a>
</div>
`;
}
$(fileBoxId).empty();
$(fileBoxId).append(html);
if (fileArray.length < maxCount) {
$(uploadBtnId).removeClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', false);
} else {
$(uploadBtnId).addClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', true);
}
render(optData, fileArray, html)
}
function addClick() {
let layerLoadingIndex;
let url = 'api/file/v2/upload-video';
if (isApp) {
if (optData.isApp) {
url = 'app/file/v2/upload-video'
}
if (isAppRelease) {
if (optData.isAppRelease) {
url = 'app/file/v2/upload-video-release'
}
upload.render({
elem: uploadBtnId,
elem: optData.uploadBtnId,
url: url,
accept: 'video',
acceptMime: 'video/mp4',
exts: 'mp4',
field: 'video',
name: fieldName,
headers: headers,
name: optData.fieldName,
headers: optData.headers,
before: function (obj) {
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
},
done: function (res, index, upload) {
layer.close(layerLoadingIndex);
let name = this.name;
let files = $('#' + this.name).val();
let dom = $(`#${name}`);
let files = dom.val();
if (files.length > 0) {
files += ',';
}
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, '');
$('#' + name).val(files);
dom.val(files);
init();
},
error: function (index, upload) {
layer.close(layerLoadingIndex);
layer.msg('文件上传失败');
},
progress: function (n, elem, res, index) {}
progress: function (n, elem, res, index) {
}
});
$(document).on('click', deleteBtnClass, function () {
$(document).on('click', optData.deleteBtnClass, function () {
let name = this.dataset.name;
let id = this.dataset.id;
let fieldName = this.dataset.fieldName;
let files = $('#' + fieldName).val().replace(id + ':' + name, '');
let dom = $(`#${fieldName}`);
let files = dom.val().replace(id + ':' + name, '');
files = files.replace(/\,+/g, ',');
if (files.charAt(0) == ',') {
if (files.charAt(0) === ',') {
files = files.substring(1);
}
if (files.charAt(files.length - 1) == ',') {
if (files.charAt(files.length - 1) === ',') {
files = files.substring(0, files.length - 1);
}
$('#' + fieldName).val(files);
dom.val(files);
init();
});
}
init();
if (!isShow) {
if (!optData.isShow) {
addClick();
} else {
$(uploadBtnId).hide();
$(optData.uploadBtnId).hide();
}
}
@ -612,63 +612,43 @@ function LayuiFileUpload(layui, viewer) {
}
function initUploadAudio(opt) {
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
maxCount = opt.maxCount < 0 ? 1 : opt.maxCount;
let fieldName = opt.fieldName;
let headers = opt.headers;
headers = headers ? headers : {};
let isApp = opt.isApp;
let isAppRelease = opt.isAppRelease;
let isShow = opt.isShow;
let id = '#' + fieldName;
let fileBoxId = id + 'FileBox';
let uploadBtnId = id + 'UploadBtn';
let deleteBtnClass = '.delete-' + fieldName + '-btn';
let optData = getOptData(opt);
function init() {
let files = $(id).val();
let fileArray = files ? files.split(',') : [];
let html = '';
for (let i = 0, file; file = fileArray[i++];) {
for (let i = 0; i < fileArray.length; i++) {
let file = fileArray[i];
let idNameArray = file.split(':');
let fileId = idNameArray[0];
let fileName = idNameArray[1];
html += [
'<div class="form-upload-video">',
' <audio src="route/file/v2/download/true/' + fileId + '" controls>',
' 您的浏览器不支持 audio 标签。',
' </audio>',
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fieldName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fileName + '" data-field-name="' + fieldName + '">',
' <i class="fa fa-trash-o"></i>',
' </a>',
'</div>',
].join('');
html += `
<div class="form-upload-video">
<audio src="route/file/v2/download/true/${fileId}" controls>
您的浏览器不支持 audio 标签
</audio>
<a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-${optData.fieldName}-btn" href="javascript:void(0);" data-id="${fileId}" data-name="${fileName}" data-field-name="${optData.fieldName}">
<i class="fa fa-trash-o"></i>
</a>
</div>
`;
}
$(fileBoxId).empty();
$(fileBoxId).append(html);
if (fileArray.length < maxCount) {
$(uploadBtnId).removeClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', false);
} else {
$(uploadBtnId).addClass('layui-btn-disabled');
$(uploadBtnId).attr('disabled', true);
}
render(optData, fileArray, html);
}
function addClick() {
let layerLoadingIndex;
let url = 'api/file/v2/upload-audio';
if (isApp) {
if (optData.isApp) {
url = 'app/file/v2/upload-audio'
}
if (isAppRelease) {
if (optData.isAppRelease) {
url = 'app/file/v2/upload-audio-release'
}
upload.render({
elem: uploadBtnId,
elem: optData.uploadBtnId,
url: url,
accept: 'audio',
acceptMime: [
@ -677,51 +657,54 @@ function LayuiFileUpload(layui, viewer) {
],
exts: 'wav|mp3',
field: 'audio',
name: fieldName,
headers: headers,
name: optData.fieldName,
headers: optData.headers,
before: function (obj) {
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
},
done: function (res, index, upload) {
layer.close(layerLoadingIndex);
let name = this.name;
let files = $('#' + this.name).val();
let dom = $(`#${name}`);
let files = dom.val();
if (files.length > 0) {
files += ',';
}
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, '');
$('#' + name).val(files);
dom.val(files);
init();
},
error: function (index, upload) {
layer.close(layerLoadingIndex);
layer.msg('文件上传失败');
},
progress: function (n, elem, res, index) {}
progress: function (n, elem, res, index) {
}
});
$(document).on('click', deleteBtnClass, function () {
$(document).on('click', optData.deleteBtnClass, function () {
let name = this.dataset.name;
let id = this.dataset.id;
let fieldName = this.dataset.fieldName;
let files = $('#' + fieldName).val().replace(id + ':' + name, '');
let dom = $(`#${fieldName}`)
let files = dom.val().replace(id + ':' + name, '');
files = files.replace(/\,+/g, ',');
if (files.charAt(0) == ',') {
if (files.charAt(0) === ',') {
files = files.substring(1);
}
if (files.charAt(files.length - 1) == ',') {
if (files.charAt(files.length - 1) === ',') {
files = files.substring(0, files.length - 1);
}
$('#' + fieldName).val(files);
dom.val(files);
init();
});
}
init();
if (!isShow) {
if (!optData.isShow) {
addClick();
} else {
$(uploadBtnId).hide();
$(optData.uploadBtnId).hide();
}
}
@ -789,55 +772,6 @@ function LayuiFileUpload(layui, viewer) {
});
}
/**
* 初始化日期
* @param opt
*/
this.initDate = function (opt) {
laydate.render({
elem: '#' + opt.id,
type: opt.datetype,
format: opt.dateformat,
value: opt.dateDefaultValue,
min: opt.dataMinValue,
max: opt.dataMaxValue,
trigger: 'click'
});
}
/**
* 初始化checkbox数据
* @param form
* @param checkedData
* @param id
*/
this.initCheckboxData = function (formName, checkedData, id) {
let dataArray = checkedData.split(',');
let obj = {};
for (let i = 0, data; data = dataArray[i++];) {
obj[id + '[' + data + ']'] = true;
}
form.val(formName, obj);
}
/**
* 设置复选框值
* @param formData
* @param id
*/
this.setCheckboxValue = function (formData, id) {
formData.field[id] = ajax.checkBoxToString(formData.field, id);
}
/**
* 设置开关值
* @param formData
* @param id
*/
this.setSwitchValue = function (formData, id) {
formData.field[id] = formData.field[id] ? 1 : 0;
}
/**
* 清空上传字段
* @param formData

View File

@ -1,11 +1,11 @@
function LayuiInputTree(layui) {
var $ = layui.$;
var layer = layui.layer;
var ztree = layui.ztree;
var restAjax = layui.restajax;
var zIndex = 10000;
let $ = layui.$;
let layer = layui.layer;
let ztree = layui.ztree;
let restAjax = layui.restajax;
let zIndex = 10000;
// 样式
var style = `
let style = `
<link rel="stylesheet" href="assets/js/vendor/zTree3/css/metroStyle/metroStyle.css"/>
<style id="layuiInputTreeStyle">
.layui-input-tree-box {border: 1px solid #e6e6e6; background-color: #FFF; position: absolute; z-index: 1100; display: none;}
@ -21,26 +21,26 @@ function LayuiInputTree(layui) {
* @param opt
*/
this.initSelect = function (opt) {
var url = opt.url;
let url = opt.url;
if (!url) {
return;
}
var getSelectedData = opt.getSelectedData;
var onConfirm = opt.onConfirm;
var onClear = opt.onClear;
var defaultParams = opt.defaultParams;
var key = opt.key;
var id = opt.id;
var inputDomId = '#' + id;
var zTree;
var selectedData;
var boxDomId = inputDomId + 'Box';
var zTreeBoxId = inputDomId + 'ZTreeBox';
var confirmBtnId = inputDomId + 'ConfirmBtn';
var clearBtnId = inputDomId + 'ClearBtn';
var inputDom = $(inputDomId);
var inputParentDom = inputDom.parent();
var selectedNode = null;
let getSelectedData = opt.getSelectedData;
let onConfirm = opt.onConfirm;
let onClear = opt.onClear;
let defaultParams = opt.defaultParams;
let key = opt.key;
let id = opt.id;
let inputDomId = '#' + id;
let zTree;
let selectedData;
let boxDomId = inputDomId + 'Box';
let zTreeBoxId = inputDomId + 'ZTreeBox';
let confirmBtnId = inputDomId + 'ConfirmBtn';
let clearBtnId = inputDomId + 'ClearBtn';
let inputDom = $(inputDomId);
let inputParentDom = inputDom.parent();
let selectedNode = null;
inputParentDom.css('position', 'relative');
inputDom.attr('readonly', '');
inputDom.css('cursor', 'pointer');
@ -59,7 +59,7 @@ function LayuiInputTree(layui) {
// 初始化事件
function initEvent() {
$(document).on('click', inputDomId, function () {
var boxDom = $(boxDomId);
let boxDom = $(boxDomId);
if (boxDom.is(':hidden')) {
boxDom.show();
boxDom.css('z-index', zIndex++)
@ -97,7 +97,7 @@ function LayuiInputTree(layui) {
// 初始化zTree
function initZTree() {
var setting = {
let setting = {
async: {
enable: true,
autoLoad: true,
@ -134,27 +134,27 @@ function LayuiInputTree(layui) {
* @param opt
*/
this.initMultiSelect = function (opt) {
var url = opt.url;
let url = opt.url;
if (!url) {
return;
}
var getSelectedDatas = opt.getSelectedDatas;
var onConfirm = opt.onConfirm;
var onClear = opt.onClear;
var checkboxType = opt.checkboxType;
var defaultParams = opt.defaultParams;
var id = opt.id;
var key = opt.key;
var inputDomId = '#' + id;
var zTree;
var selectedDatas;
var selectedNodesObj = {};
var boxDomId = inputDomId + 'Box';
var zTreeBoxId = inputDomId + 'ZTreeBox';
var confirmBtnId = inputDomId + 'ConfirmBtn';
var clearBtnId = inputDomId + 'ClearBtn';
var inputDom = $(inputDomId);
var inputParentDom = inputDom.parent();
let getSelectedDatas = opt.getSelectedDatas;
let onConfirm = opt.onConfirm;
let onClear = opt.onClear;
let checkboxType = opt.checkboxType;
let defaultParams = opt.defaultParams;
let id = opt.id;
let key = opt.key;
let inputDomId = '#' + id;
let zTree;
let selectedDatas;
let selectedNodesObj = {};
let boxDomId = inputDomId + 'Box';
let zTreeBoxId = inputDomId + 'ZTreeBox';
let confirmBtnId = inputDomId + 'ConfirmBtn';
let clearBtnId = inputDomId + 'ClearBtn';
let inputDom = $(inputDomId);
let inputParentDom = inputDom.parent();
inputParentDom.css('position', 'relative');
inputDom.attr('readonly', '');
inputDom.css('cursor', 'pointer');
@ -175,7 +175,7 @@ function LayuiInputTree(layui) {
* @param id
*/
function checkNode(id) {
var node = zTree.getNodeByParam('id', id);
let node = zTree.getNodeByParam('id', id);
if (!node) {
return;
}
@ -206,7 +206,7 @@ function LayuiInputTree(layui) {
function boxHide() {
// 还原原有选择
if (selectedDatas && selectedDatas.length > 0) {
var names = '';
let names = '';
$.each(selectedDatas, function (index, item) {
if (names != '') {
names += ',';
@ -218,7 +218,7 @@ function LayuiInputTree(layui) {
$(inputDomId).val('');
}
// 取消所有勾选状态
var checkedNodes = zTree.getCheckedNodes();
let checkedNodes = zTree.getCheckedNodes();
$.each(checkedNodes, function (index, item) {
zTree.checkNode(item, false);
});
@ -227,7 +227,7 @@ function LayuiInputTree(layui) {
// 初始化事件
function initEvent() {
$(document).on('click', inputDomId, function () {
var boxDom = $(boxDomId);
let boxDom = $(boxDomId);
if (boxDom.is(':hidden')) {
boxDom.css('z-index', zIndex++)
boxDom.show();
@ -241,8 +241,8 @@ function LayuiInputTree(layui) {
// 确认事件
$(document).on('click', confirmBtnId, function () {
if (onConfirm) {
var selectedNodes = [];
for (var key in selectedNodesObj) {
let selectedNodes = [];
for (let key in selectedNodesObj) {
selectedNodes.push(selectedNodesObj[key]);
}
onConfirm(zTree, selectedNodes)
@ -263,7 +263,7 @@ function LayuiInputTree(layui) {
// 初始化zTree
function initZTree() {
var setting = {
let setting = {
async: {
enable: true,
autoLoad: true,
@ -287,7 +287,7 @@ function LayuiInputTree(layui) {
callback: {
onAsyncSuccess: function (event, treeId, treeNode) {
// 加载完默认勾选
for (var key in selectedNodesObj) {
for (let key in selectedNodesObj) {
checkNode(key);
}
},
@ -297,8 +297,8 @@ function LayuiInputTree(layui) {
} else {
delete selectedNodesObj[treeNode.id];
}
var names = '';
for (var key in selectedNodesObj) {
let names = '';
for (let key in selectedNodesObj) {
if (names != '') {
names += ',';
}