处理代码格式
This commit is contained in:
parent
f1b4307535
commit
64853519b7
@ -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 !== '') {
|
||||
|
@ -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
|
||||
|
@ -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 += ',';
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user