处理代码格式
This commit is contained in:
parent
f1b4307535
commit
64853519b7
@ -15,7 +15,7 @@ layui.define(function (exports) {
|
|||||||
function objToForm(obj) {
|
function objToForm(obj) {
|
||||||
let formStr = '';
|
let formStr = '';
|
||||||
for (let name in obj) {
|
for (let name in obj) {
|
||||||
if (formStr == undefined || formStr == null || formStr == '') {
|
if (!formStr) {
|
||||||
formStr += name + '=' + obj[name];
|
formStr += name + '=' + obj[name];
|
||||||
} else {
|
} else {
|
||||||
formStr += '&' + name + '=' + obj[name];
|
formStr += '&' + name + '=' + obj[name];
|
||||||
@ -92,8 +92,8 @@ layui.define(function (exports) {
|
|||||||
* @param completeCallback
|
* @param completeCallback
|
||||||
*/
|
*/
|
||||||
function doAjax(url, method, dataObj, args, successCallback, errorCallback, beforeCallback, completeCallback) {
|
function doAjax(url, method, dataObj, args, successCallback, errorCallback, beforeCallback, completeCallback) {
|
||||||
let ajaxData = (dataObj == undefined || dataObj == null) ? {} : dataObj;
|
let ajaxData = (!dataObj) ? {} : dataObj;
|
||||||
if (methods.POST_METHOD == method || methods.PUT_METHOD == method) {
|
if (methods.POST_METHOD === method || methods.PUT_METHOD === method) {
|
||||||
ajaxData = JSON.stringify(ajaxData);
|
ajaxData = JSON.stringify(ajaxData);
|
||||||
} else {
|
} else {
|
||||||
ajaxData = objToForm(ajaxData);
|
ajaxData = objToForm(ajaxData);
|
||||||
@ -116,17 +116,17 @@ layui.define(function (exports) {
|
|||||||
error: function (XMLHttpRequest) {
|
error: function (XMLHttpRequest) {
|
||||||
let responseCode = XMLHttpRequest.status;
|
let responseCode = XMLHttpRequest.status;
|
||||||
let responseData = JSON.parse(XMLHttpRequest.responseText);
|
let responseData = JSON.parse(XMLHttpRequest.responseText);
|
||||||
if (errorCallback != undefined && errorCallback != null && typeof (errorCallback) == 'function') {
|
if (errorCallback && typeof (errorCallback) == 'function') {
|
||||||
errorCallback(responseCode, responseData);
|
errorCallback(responseCode, responseData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeSend: function (XMLHttpRequest) {
|
beforeSend: function (XMLHttpRequest) {
|
||||||
if (beforeCallback != undefined && beforeCallback != null && typeof (beforeCallback) == 'function') {
|
if (beforeCallback && typeof (beforeCallback) == 'function') {
|
||||||
beforeCallback(XMLHttpRequest);
|
beforeCallback(XMLHttpRequest);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
complete: function (XMLHttpRequest, status) {
|
complete: function (XMLHttpRequest, status) {
|
||||||
if (completeCallback != undefined && completeCallback != null && typeof (completeCallback) == 'function') {
|
if (completeCallback && typeof (completeCallback) == 'function') {
|
||||||
completeCallback(XMLHttpRequest, status);
|
completeCallback(XMLHttpRequest, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,14 +141,14 @@ layui.define(function (exports) {
|
|||||||
function pathArgsHasSameValue(pathArgArray) {
|
function pathArgsHasSameValue(pathArgArray) {
|
||||||
let tempArgIndex = 0;
|
let tempArgIndex = 0;
|
||||||
let tempArgs = pathArgArray[tempArgIndex];
|
let tempArgs = pathArgArray[tempArgIndex];
|
||||||
for (let i = (tempArgIndex + 1), item; item = pathArgArray[i]; i++) {
|
for (let i = (tempArgIndex + 1); i < pathArgArray.length; i++) {
|
||||||
if (tempArgs == item) {
|
let item = pathArgArray[i];
|
||||||
|
if (tempArgs === item) {
|
||||||
throw new Error('参数' + item + '有重复值!!!');
|
throw new Error('参数' + item + '有重复值!!!');
|
||||||
}
|
}
|
||||||
if (i == pathArgArray.length - 1) {
|
if (i === pathArgArray.length - 1) {
|
||||||
tempArgs = pathArgArray[++tempArgIndex];
|
tempArgs = pathArgArray[++tempArgIndex];
|
||||||
i = tempArgIndex;
|
i = tempArgIndex;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -164,9 +164,10 @@ layui.define(function (exports) {
|
|||||||
return paramsObj;
|
return paramsObj;
|
||||||
}
|
}
|
||||||
let paramsKVs = params.split('&');
|
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('=');
|
let kvs = item.split('=');
|
||||||
if (kvs.length == 1) {
|
if (kvs.length === 1) {
|
||||||
paramsObj[kvs[0]] = null;
|
paramsObj[kvs[0]] = null;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -194,7 +195,8 @@ layui.define(function (exports) {
|
|||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
pathArgsHasSameValue(pathArgArray);
|
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]);
|
path = path.replace(item, pathArgs[i]);
|
||||||
}
|
}
|
||||||
return path;
|
return path;
|
||||||
@ -225,17 +227,17 @@ layui.define(function (exports) {
|
|||||||
error: function (XMLHttpRequest) {
|
error: function (XMLHttpRequest) {
|
||||||
let responseCode = XMLHttpRequest.status;
|
let responseCode = XMLHttpRequest.status;
|
||||||
let responseData = JSON.parse(XMLHttpRequest.responseText);
|
let responseData = JSON.parse(XMLHttpRequest.responseText);
|
||||||
if (errorCallback != undefined && errorCallback != null && typeof (errorCallback) == 'function') {
|
if (errorCallback && typeof (errorCallback) == 'function') {
|
||||||
errorCallback(responseCode, responseData);
|
errorCallback(responseCode, responseData);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeSend: function (XMLHttpRequest) {
|
beforeSend: function (XMLHttpRequest) {
|
||||||
if (beforeCallback != undefined && beforeCallback != null && typeof (beforeCallback) == 'function') {
|
if (beforeCallback && typeof (beforeCallback) == 'function') {
|
||||||
beforeCallback(XMLHttpRequest);
|
beforeCallback(XMLHttpRequest);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
complete: function (XMLHttpRequest, status) {
|
complete: function (XMLHttpRequest, status) {
|
||||||
if (completeCallback != undefined && completeCallback != null && typeof (completeCallback) == 'function') {
|
if (completeCallback && typeof (completeCallback) == 'function') {
|
||||||
completeCallback(XMLHttpRequest, status);
|
completeCallback(XMLHttpRequest, status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -256,7 +258,7 @@ layui.define(function (exports) {
|
|||||||
function checkBoxToString(formObj, checkBoxKey) {
|
function checkBoxToString(formObj, checkBoxKey) {
|
||||||
let value = '';
|
let value = '';
|
||||||
for (let key in formObj) {
|
for (let key in formObj) {
|
||||||
if (key.indexOf(checkBoxKey) != 0) {
|
if (key.indexOf(checkBoxKey) !== 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (value !== '') {
|
if (value !== '') {
|
||||||
|
@ -2,8 +2,10 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
let $ = layui.$;
|
let $ = layui.$;
|
||||||
let form = layui.form;
|
let form = layui.form;
|
||||||
let upload = layui.upload;
|
let upload = layui.upload;
|
||||||
|
if (!upload) {
|
||||||
|
throw new Error('需要引入layui的upload模块');
|
||||||
|
}
|
||||||
let ajax = top.restAjax || top.ajax;
|
let ajax = top.restAjax || top.ajax;
|
||||||
let dialog = top.dialog;
|
|
||||||
let Viewer = viewer;
|
let Viewer = viewer;
|
||||||
let viewerObj = {};
|
let viewerObj = {};
|
||||||
let style = `
|
let style = `
|
||||||
@ -31,12 +33,12 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
$(document.head).append(style);
|
$(document.head).append(style);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化图片上传
|
* 获取配置
|
||||||
* @param opt
|
* @param opt
|
||||||
|
* @return {{headers: *, fieldName: *, uploadBtnId: string, deleteBtnClass: string, fileBoxId: string, isApp: (*|boolean), id: string, isAppRelease: (*|boolean), maxCount: (number|*), isShow: (*|boolean)}}
|
||||||
*/
|
*/
|
||||||
function initUploadImage(opt) {
|
function getOptData(opt) {
|
||||||
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 9
|
let maxCount = !opt.maxCount || opt.maxCount < 0 ? 9 : opt.maxCount;
|
||||||
maxCount = opt.maxCount < 0 ? 9 : opt.maxCount;
|
|
||||||
let fieldName = opt.fieldName;
|
let fieldName = opt.fieldName;
|
||||||
let headers = opt.headers;
|
let headers = opt.headers;
|
||||||
headers = headers ? headers : {};
|
headers = headers ? headers : {};
|
||||||
@ -44,73 +46,106 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
let isAppRelease = opt.isAppRelease;
|
let isAppRelease = opt.isAppRelease;
|
||||||
let isShow = opt.isShow;
|
let isShow = opt.isShow;
|
||||||
|
|
||||||
let id = '#' + fieldName;
|
let id = `#${fieldName}`;
|
||||||
let fileBoxId = id + 'FileBox';
|
let fileBoxId = `${id}FileBox`;
|
||||||
let uploadBtnId = id + 'UploadBtn';
|
let uploadBtnId = `${id}UploadBtn`;
|
||||||
let deleteBtnClass = `.delete-${fieldName}-btn`;
|
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) {
|
function init(callback) {
|
||||||
let fileIds = $(id).val();
|
let fileIds = $(optData.id).val();
|
||||||
let fileIdArray = fileIds ? fileIds.split(',') : [];
|
let fileArray = fileIds ? fileIds.split(',') : [];
|
||||||
|
|
||||||
let html = '';
|
let html = '';
|
||||||
for (let i = 0, fileId; fileId = fileIdArray[i++];) {
|
for (let i = 0; i < fileArray.length; i++) {
|
||||||
|
let fileId = fileArray[i];
|
||||||
html += `
|
html += `
|
||||||
<div class="form-upload-image">
|
<div class="form-upload-image">
|
||||||
<img src="route/file/v2/download/true/${fileId}" align="加载失败">
|
<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>
|
<i class="fa fa-trash-o"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
render(optData, fileArray, html);
|
||||||
$(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);
|
|
||||||
}
|
|
||||||
|
|
||||||
callback ? callback() : '';
|
callback ? callback() : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
function addClick() {
|
||||||
let layerLoadingIndex;
|
let layerLoadingIndex;
|
||||||
let url = 'api/file/v2/upload-image';
|
let url = 'api/file/v2/upload-image';
|
||||||
if (isApp) {
|
if (optData.isApp) {
|
||||||
url = 'app/file/v2/upload-image'
|
url = 'app/file/v2/upload-image'
|
||||||
}
|
}
|
||||||
if (isAppRelease) {
|
if (optData.isAppRelease) {
|
||||||
url = 'app/file/v2/upload-image-release'
|
url = 'app/file/v2/upload-image-release'
|
||||||
}
|
}
|
||||||
upload.render({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: optData.uploadBtnId,
|
||||||
url: url,
|
url: url,
|
||||||
accept: 'images',
|
accept: 'images',
|
||||||
acceptMime: 'image/*',
|
acceptMime: 'image/*',
|
||||||
field: 'image',
|
field: 'image',
|
||||||
exts: 'jpg|png|gif|bmp|jpeg',
|
exts: 'jpg|png|gif|bmp|jpeg',
|
||||||
name: fieldName,
|
name: optData.fieldName,
|
||||||
headers: headers,
|
headers: optData.headers,
|
||||||
before: function (obj) {
|
before: function (obj) {
|
||||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
},
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
let name = this.name;
|
let name = this.name;
|
||||||
let files = $('#' + this.name).val();
|
let dom = $(`#${name}`);
|
||||||
|
let files = dom.val();
|
||||||
|
files = files ? files : '';
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
files += ',';
|
files += ',';
|
||||||
}
|
}
|
||||||
files += res.data.fileId;
|
files += res.data.fileId;
|
||||||
$('#' + name).val(files);
|
dom.val(files);
|
||||||
init(function () {
|
init(function () {
|
||||||
viewerObj[name].update();
|
if (Viewer) {
|
||||||
|
viewerObj[name].update();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
@ -118,40 +153,39 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
layer.msg('文件上传失败');
|
layer.msg('文件上传失败');
|
||||||
},
|
},
|
||||||
progress: function (n, elem, res, index) {
|
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 name = this.dataset.name;
|
||||||
let id = this.dataset.id;
|
let id = this.dataset.id;
|
||||||
let files = $('#' + name).val().replace(id, '');
|
let dom = $(`#${name}`);
|
||||||
|
let files = dom.val().replace(id, '');
|
||||||
files = files.replace(/\,+/g, ',');
|
files = files.replace(/\,+/g, ',');
|
||||||
if (files.charAt(0) == ',') {
|
if (files.charAt(0) === ',') {
|
||||||
files = files.substring(1);
|
files = files.substring(1);
|
||||||
}
|
}
|
||||||
if (files.charAt(files.length - 1) == ',') {
|
if (files.charAt(files.length - 1) === ',') {
|
||||||
files = files.substring(0, files.length - 1);
|
files = files.substring(0, files.length - 1);
|
||||||
}
|
}
|
||||||
$('#' + name).val(files);
|
dom.val(files);
|
||||||
init(function () {
|
init(function () {
|
||||||
viewerObj[name].update();
|
if (Viewer) {
|
||||||
|
viewerObj[name].update();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
init(function () {
|
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();
|
addClick();
|
||||||
} else {
|
} else {
|
||||||
$(uploadBtnId).hide();
|
$(optData.uploadBtnId).hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,84 +258,64 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
* @param opt
|
* @param opt
|
||||||
*/
|
*/
|
||||||
function initUploadFile(opt) {
|
function initUploadFile(opt) {
|
||||||
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 3
|
let optData = getOptData(opt);
|
||||||
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';
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
let files = $(id).val();
|
let files = $(optData.id).val();
|
||||||
let fileArray = files ? files.split(',') : [];
|
let fileArray = files ? files.split(',') : [];
|
||||||
|
|
||||||
let html = '';
|
let html = '';
|
||||||
if (fileArray.length > 0) {
|
if (fileArray.length > 0) {
|
||||||
html += [
|
let trs = '';
|
||||||
'<div class="form-upload-file">',
|
for (let i = 0; i < fileArray.length; i++) {
|
||||||
' <table class="layui-table" lay-size="sm">',
|
let file = fileArray[i];
|
||||||
' <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 idNameArray = file.split(':');
|
let idNameArray = file.split(':');
|
||||||
let fileId = idNameArray[0];
|
let fileId = idNameArray[0];
|
||||||
let fileName = idNameArray[1];
|
let fileName = idNameArray[1];
|
||||||
html += [
|
trs += `
|
||||||
'<tr>',
|
<tr>
|
||||||
' <td><a href="route/file/v2/download/false/'+ fileId +'" target="_blank">' + fileName + '</a></td>',
|
<td><a href="route/file/v2/download/false/${fileId}" target="_blank">${fileName}</a></td>
|
||||||
' <td class="operation">',
|
<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>',
|
<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>',
|
</td>
|
||||||
'</tr>',
|
</tr>
|
||||||
].join('');
|
`
|
||||||
}
|
}
|
||||||
html += [
|
html += `
|
||||||
' </tbody>',
|
<div class="form-upload-file">
|
||||||
' </table>',
|
<table class="layui-table" lay-size="sm">
|
||||||
'</div>'
|
<colgroup>
|
||||||
].join('');
|
<col>
|
||||||
|
<col width="60">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>文件名</th>
|
||||||
|
<th class="operation">操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
${trs}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(fileBoxId).empty();
|
render(optData, fileArray, html);
|
||||||
$(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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
function addClick() {
|
||||||
let layerLoadingIndex;
|
let layerLoadingIndex;
|
||||||
let url = 'api/file/v2/upload-file';
|
let url = 'api/file/v2/upload-file';
|
||||||
if (isApp) {
|
if (optData.isApp) {
|
||||||
url = 'app/file/v2/upload-file'
|
url = 'app/file/v2/upload-file'
|
||||||
}
|
}
|
||||||
if (isAppRelease) {
|
if (optData.isAppRelease) {
|
||||||
url = 'app/file/v2/upload-file-release'
|
url = 'app/file/v2/upload-file-release'
|
||||||
}
|
}
|
||||||
upload.render({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: optData.uploadBtnId,
|
||||||
url: url,
|
url: url,
|
||||||
accept: 'file',
|
accept: 'file',
|
||||||
acceptMime: [
|
acceptMime: [
|
||||||
@ -319,50 +333,53 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
].join(','),
|
].join(','),
|
||||||
field: 'file',
|
field: 'file',
|
||||||
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
|
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
|
||||||
name: fieldName,
|
name: optData.fieldName,
|
||||||
headers: headers,
|
headers: optData.headers,
|
||||||
before: function (obj) {
|
before: function (obj) {
|
||||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
},
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
let name = this.name;
|
let name = this.name;
|
||||||
let files = $('#' + this.name).val();
|
let dom = $(`#${name}`);
|
||||||
|
let files = dom.val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
files += ',';
|
files += ',';
|
||||||
}
|
}
|
||||||
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
||||||
$('#' + name).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
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 id = this.dataset.id;
|
||||||
let name = this.dataset.name;
|
let name = this.dataset.name;
|
||||||
let fieldName = this.dataset.fieldName;
|
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, ',');
|
files = files.replace(/\,+/g, ',');
|
||||||
if (files.charAt(0) == ',') {
|
if (files.charAt(0) === ',') {
|
||||||
files = files.substring(1);
|
files = files.substring(1);
|
||||||
}
|
}
|
||||||
if (files.charAt(files.length - 1) == ',') {
|
if (files.charAt(files.length - 1) === ',') {
|
||||||
files = files.substring(0, files.length - 1);
|
files = files.substring(0, files.length - 1);
|
||||||
}
|
}
|
||||||
$('#' + fieldName).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
if (!isShow) {
|
if (!optData.isShow) {
|
||||||
addClick();
|
addClick();
|
||||||
} else {
|
} else {
|
||||||
$(uploadBtnId).hide();
|
$(optData.uploadBtnId).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -436,114 +453,97 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
* @param opt
|
* @param opt
|
||||||
*/
|
*/
|
||||||
function initUploadVideo(opt) {
|
function initUploadVideo(opt) {
|
||||||
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
|
let optData = getOptData(opt);
|
||||||
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';
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
let files = $(id).val();
|
let files = $(id).val();
|
||||||
let fileArray = files ? files.split(',') : [];
|
let fileArray = files ? files.split(',') : [];
|
||||||
let html = '';
|
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 idNameArray = file.split(':');
|
||||||
let fileId = idNameArray[0];
|
let fileId = idNameArray[0];
|
||||||
let fileName = idNameArray[1];
|
let fileName = idNameArray[1];
|
||||||
html += [
|
html += `
|
||||||
'<div class="form-upload-video">',
|
<div class="form-upload-video">
|
||||||
' <video width="320" height="240" controls>',
|
<video width="320" height="240" controls>
|
||||||
' <source src="route/file/v2/download/true/' + fileId + '" type="video/mp4">',
|
<source src="route/file/v2/download/true/${fileId}" type="video/mp4">
|
||||||
' 您的浏览器不支持 video 标签',
|
您的浏览器不支持 video 标签
|
||||||
' </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 + '">',
|
<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>',
|
<i class="fa fa-trash-o"></i>
|
||||||
' </a>',
|
</a>
|
||||||
'</div>',
|
</div>
|
||||||
].join('');
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(fileBoxId).empty();
|
render(optData, fileArray, html)
|
||||||
$(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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
function addClick() {
|
||||||
let layerLoadingIndex;
|
let layerLoadingIndex;
|
||||||
let url = 'api/file/v2/upload-video';
|
let url = 'api/file/v2/upload-video';
|
||||||
if (isApp) {
|
if (optData.isApp) {
|
||||||
url = 'app/file/v2/upload-video'
|
url = 'app/file/v2/upload-video'
|
||||||
}
|
}
|
||||||
if (isAppRelease) {
|
if (optData.isAppRelease) {
|
||||||
url = 'app/file/v2/upload-video-release'
|
url = 'app/file/v2/upload-video-release'
|
||||||
}
|
}
|
||||||
upload.render({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: optData.uploadBtnId,
|
||||||
url: url,
|
url: url,
|
||||||
accept: 'video',
|
accept: 'video',
|
||||||
acceptMime: 'video/mp4',
|
acceptMime: 'video/mp4',
|
||||||
exts: 'mp4',
|
exts: 'mp4',
|
||||||
field: 'video',
|
field: 'video',
|
||||||
name: fieldName,
|
name: optData.fieldName,
|
||||||
headers: headers,
|
headers: optData.headers,
|
||||||
before: function (obj) {
|
before: function (obj) {
|
||||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
},
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
let name = this.name;
|
let name = this.name;
|
||||||
let files = $('#' + this.name).val();
|
let dom = $(`#${name}`);
|
||||||
|
let files = dom.val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
files += ',';
|
files += ',';
|
||||||
}
|
}
|
||||||
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
||||||
$('#' + name).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
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 name = this.dataset.name;
|
||||||
let id = this.dataset.id;
|
let id = this.dataset.id;
|
||||||
let fieldName = this.dataset.fieldName;
|
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, ',');
|
files = files.replace(/\,+/g, ',');
|
||||||
if (files.charAt(0) == ',') {
|
if (files.charAt(0) === ',') {
|
||||||
files = files.substring(1);
|
files = files.substring(1);
|
||||||
}
|
}
|
||||||
if (files.charAt(files.length - 1) == ',') {
|
if (files.charAt(files.length - 1) === ',') {
|
||||||
files = files.substring(0, files.length - 1);
|
files = files.substring(0, files.length - 1);
|
||||||
}
|
}
|
||||||
$('#' + fieldName).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
if (!isShow) {
|
if (!optData.isShow) {
|
||||||
addClick();
|
addClick();
|
||||||
} else {
|
} else {
|
||||||
$(uploadBtnId).hide();
|
$(optData.uploadBtnId).hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -612,63 +612,43 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function initUploadAudio(opt) {
|
function initUploadAudio(opt) {
|
||||||
let maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
|
let optData = getOptData(opt);
|
||||||
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';
|
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
let files = $(id).val();
|
let files = $(id).val();
|
||||||
let fileArray = files ? files.split(',') : [];
|
let fileArray = files ? files.split(',') : [];
|
||||||
let html = '';
|
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 idNameArray = file.split(':');
|
||||||
let fileId = idNameArray[0];
|
let fileId = idNameArray[0];
|
||||||
let fileName = idNameArray[1];
|
let fileName = idNameArray[1];
|
||||||
html += [
|
html += `
|
||||||
'<div class="form-upload-video">',
|
<div class="form-upload-video">
|
||||||
' <audio src="route/file/v2/download/true/' + fileId + '" controls>',
|
<audio src="route/file/v2/download/true/${fileId}" controls>
|
||||||
' 您的浏览器不支持 audio 标签。',
|
您的浏览器不支持 audio 标签。
|
||||||
' </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 + '">',
|
<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>',
|
<i class="fa fa-trash-o"></i>
|
||||||
' </a>',
|
</a>
|
||||||
'</div>',
|
</div>
|
||||||
].join('');
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(fileBoxId).empty();
|
render(optData, fileArray, html);
|
||||||
$(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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
function addClick() {
|
||||||
let layerLoadingIndex;
|
let layerLoadingIndex;
|
||||||
let url = 'api/file/v2/upload-audio';
|
let url = 'api/file/v2/upload-audio';
|
||||||
if (isApp) {
|
if (optData.isApp) {
|
||||||
url = 'app/file/v2/upload-audio'
|
url = 'app/file/v2/upload-audio'
|
||||||
}
|
}
|
||||||
if (isAppRelease) {
|
if (optData.isAppRelease) {
|
||||||
url = 'app/file/v2/upload-audio-release'
|
url = 'app/file/v2/upload-audio-release'
|
||||||
}
|
}
|
||||||
upload.render({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: optData.uploadBtnId,
|
||||||
url: url,
|
url: url,
|
||||||
accept: 'audio',
|
accept: 'audio',
|
||||||
acceptMime: [
|
acceptMime: [
|
||||||
@ -677,51 +657,54 @@ function LayuiFileUpload(layui, viewer) {
|
|||||||
],
|
],
|
||||||
exts: 'wav|mp3',
|
exts: 'wav|mp3',
|
||||||
field: 'audio',
|
field: 'audio',
|
||||||
name: fieldName,
|
name: optData.fieldName,
|
||||||
headers: headers,
|
headers: optData.headers,
|
||||||
before: function (obj) {
|
before: function (obj) {
|
||||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
},
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
let name = this.name;
|
let name = this.name;
|
||||||
let files = $('#' + this.name).val();
|
let dom = $(`#${name}`);
|
||||||
|
let files = dom.val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
files += ',';
|
files += ',';
|
||||||
}
|
}
|
||||||
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
files += res.data.fileId + ':' + res.data.fileName.replace(/\,/g, ',');
|
||||||
$('#' + name).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
layer.close(layerLoadingIndex);
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
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 name = this.dataset.name;
|
||||||
let id = this.dataset.id;
|
let id = this.dataset.id;
|
||||||
let fieldName = this.dataset.fieldName;
|
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, ',');
|
files = files.replace(/\,+/g, ',');
|
||||||
if (files.charAt(0) == ',') {
|
if (files.charAt(0) === ',') {
|
||||||
files = files.substring(1);
|
files = files.substring(1);
|
||||||
}
|
}
|
||||||
if (files.charAt(files.length - 1) == ',') {
|
if (files.charAt(files.length - 1) === ',') {
|
||||||
files = files.substring(0, files.length - 1);
|
files = files.substring(0, files.length - 1);
|
||||||
}
|
}
|
||||||
$('#' + fieldName).val(files);
|
dom.val(files);
|
||||||
init();
|
init();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
if (!isShow) {
|
if (!optData.isShow) {
|
||||||
addClick();
|
addClick();
|
||||||
} else {
|
} 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
|
* @param formData
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
function LayuiInputTree(layui) {
|
function LayuiInputTree(layui) {
|
||||||
var $ = layui.$;
|
let $ = layui.$;
|
||||||
var layer = layui.layer;
|
let layer = layui.layer;
|
||||||
var ztree = layui.ztree;
|
let ztree = layui.ztree;
|
||||||
var restAjax = layui.restajax;
|
let restAjax = layui.restajax;
|
||||||
var zIndex = 10000;
|
let zIndex = 10000;
|
||||||
// 样式
|
// 样式
|
||||||
var style = `
|
let style = `
|
||||||
<link rel="stylesheet" href="assets/js/vendor/zTree3/css/metroStyle/metroStyle.css"/>
|
<link rel="stylesheet" href="assets/js/vendor/zTree3/css/metroStyle/metroStyle.css"/>
|
||||||
<style id="layuiInputTreeStyle">
|
<style id="layuiInputTreeStyle">
|
||||||
.layui-input-tree-box {border: 1px solid #e6e6e6; background-color: #FFF; position: absolute; z-index: 1100; display: none;}
|
.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
|
* @param opt
|
||||||
*/
|
*/
|
||||||
this.initSelect = function (opt) {
|
this.initSelect = function (opt) {
|
||||||
var url = opt.url;
|
let url = opt.url;
|
||||||
if (!url) {
|
if (!url) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var getSelectedData = opt.getSelectedData;
|
let getSelectedData = opt.getSelectedData;
|
||||||
var onConfirm = opt.onConfirm;
|
let onConfirm = opt.onConfirm;
|
||||||
var onClear = opt.onClear;
|
let onClear = opt.onClear;
|
||||||
var defaultParams = opt.defaultParams;
|
let defaultParams = opt.defaultParams;
|
||||||
var key = opt.key;
|
let key = opt.key;
|
||||||
var id = opt.id;
|
let id = opt.id;
|
||||||
var inputDomId = '#' + id;
|
let inputDomId = '#' + id;
|
||||||
var zTree;
|
let zTree;
|
||||||
var selectedData;
|
let selectedData;
|
||||||
var boxDomId = inputDomId + 'Box';
|
let boxDomId = inputDomId + 'Box';
|
||||||
var zTreeBoxId = inputDomId + 'ZTreeBox';
|
let zTreeBoxId = inputDomId + 'ZTreeBox';
|
||||||
var confirmBtnId = inputDomId + 'ConfirmBtn';
|
let confirmBtnId = inputDomId + 'ConfirmBtn';
|
||||||
var clearBtnId = inputDomId + 'ClearBtn';
|
let clearBtnId = inputDomId + 'ClearBtn';
|
||||||
var inputDom = $(inputDomId);
|
let inputDom = $(inputDomId);
|
||||||
var inputParentDom = inputDom.parent();
|
let inputParentDom = inputDom.parent();
|
||||||
var selectedNode = null;
|
let selectedNode = null;
|
||||||
inputParentDom.css('position', 'relative');
|
inputParentDom.css('position', 'relative');
|
||||||
inputDom.attr('readonly', '');
|
inputDom.attr('readonly', '');
|
||||||
inputDom.css('cursor', 'pointer');
|
inputDom.css('cursor', 'pointer');
|
||||||
@ -59,7 +59,7 @@ function LayuiInputTree(layui) {
|
|||||||
// 初始化事件
|
// 初始化事件
|
||||||
function initEvent() {
|
function initEvent() {
|
||||||
$(document).on('click', inputDomId, function () {
|
$(document).on('click', inputDomId, function () {
|
||||||
var boxDom = $(boxDomId);
|
let boxDom = $(boxDomId);
|
||||||
if (boxDom.is(':hidden')) {
|
if (boxDom.is(':hidden')) {
|
||||||
boxDom.show();
|
boxDom.show();
|
||||||
boxDom.css('z-index', zIndex++)
|
boxDom.css('z-index', zIndex++)
|
||||||
@ -97,7 +97,7 @@ function LayuiInputTree(layui) {
|
|||||||
|
|
||||||
// 初始化zTree
|
// 初始化zTree
|
||||||
function initZTree() {
|
function initZTree() {
|
||||||
var setting = {
|
let setting = {
|
||||||
async: {
|
async: {
|
||||||
enable: true,
|
enable: true,
|
||||||
autoLoad: true,
|
autoLoad: true,
|
||||||
@ -134,27 +134,27 @@ function LayuiInputTree(layui) {
|
|||||||
* @param opt
|
* @param opt
|
||||||
*/
|
*/
|
||||||
this.initMultiSelect = function (opt) {
|
this.initMultiSelect = function (opt) {
|
||||||
var url = opt.url;
|
let url = opt.url;
|
||||||
if (!url) {
|
if (!url) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var getSelectedDatas = opt.getSelectedDatas;
|
let getSelectedDatas = opt.getSelectedDatas;
|
||||||
var onConfirm = opt.onConfirm;
|
let onConfirm = opt.onConfirm;
|
||||||
var onClear = opt.onClear;
|
let onClear = opt.onClear;
|
||||||
var checkboxType = opt.checkboxType;
|
let checkboxType = opt.checkboxType;
|
||||||
var defaultParams = opt.defaultParams;
|
let defaultParams = opt.defaultParams;
|
||||||
var id = opt.id;
|
let id = opt.id;
|
||||||
var key = opt.key;
|
let key = opt.key;
|
||||||
var inputDomId = '#' + id;
|
let inputDomId = '#' + id;
|
||||||
var zTree;
|
let zTree;
|
||||||
var selectedDatas;
|
let selectedDatas;
|
||||||
var selectedNodesObj = {};
|
let selectedNodesObj = {};
|
||||||
var boxDomId = inputDomId + 'Box';
|
let boxDomId = inputDomId + 'Box';
|
||||||
var zTreeBoxId = inputDomId + 'ZTreeBox';
|
let zTreeBoxId = inputDomId + 'ZTreeBox';
|
||||||
var confirmBtnId = inputDomId + 'ConfirmBtn';
|
let confirmBtnId = inputDomId + 'ConfirmBtn';
|
||||||
var clearBtnId = inputDomId + 'ClearBtn';
|
let clearBtnId = inputDomId + 'ClearBtn';
|
||||||
var inputDom = $(inputDomId);
|
let inputDom = $(inputDomId);
|
||||||
var inputParentDom = inputDom.parent();
|
let inputParentDom = inputDom.parent();
|
||||||
inputParentDom.css('position', 'relative');
|
inputParentDom.css('position', 'relative');
|
||||||
inputDom.attr('readonly', '');
|
inputDom.attr('readonly', '');
|
||||||
inputDom.css('cursor', 'pointer');
|
inputDom.css('cursor', 'pointer');
|
||||||
@ -175,7 +175,7 @@ function LayuiInputTree(layui) {
|
|||||||
* @param id
|
* @param id
|
||||||
*/
|
*/
|
||||||
function checkNode(id) {
|
function checkNode(id) {
|
||||||
var node = zTree.getNodeByParam('id', id);
|
let node = zTree.getNodeByParam('id', id);
|
||||||
if (!node) {
|
if (!node) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -206,7 +206,7 @@ function LayuiInputTree(layui) {
|
|||||||
function boxHide() {
|
function boxHide() {
|
||||||
// 还原原有选择
|
// 还原原有选择
|
||||||
if (selectedDatas && selectedDatas.length > 0) {
|
if (selectedDatas && selectedDatas.length > 0) {
|
||||||
var names = '';
|
let names = '';
|
||||||
$.each(selectedDatas, function (index, item) {
|
$.each(selectedDatas, function (index, item) {
|
||||||
if (names != '') {
|
if (names != '') {
|
||||||
names += ',';
|
names += ',';
|
||||||
@ -218,7 +218,7 @@ function LayuiInputTree(layui) {
|
|||||||
$(inputDomId).val('');
|
$(inputDomId).val('');
|
||||||
}
|
}
|
||||||
// 取消所有勾选状态
|
// 取消所有勾选状态
|
||||||
var checkedNodes = zTree.getCheckedNodes();
|
let checkedNodes = zTree.getCheckedNodes();
|
||||||
$.each(checkedNodes, function (index, item) {
|
$.each(checkedNodes, function (index, item) {
|
||||||
zTree.checkNode(item, false);
|
zTree.checkNode(item, false);
|
||||||
});
|
});
|
||||||
@ -227,7 +227,7 @@ function LayuiInputTree(layui) {
|
|||||||
// 初始化事件
|
// 初始化事件
|
||||||
function initEvent() {
|
function initEvent() {
|
||||||
$(document).on('click', inputDomId, function () {
|
$(document).on('click', inputDomId, function () {
|
||||||
var boxDom = $(boxDomId);
|
let boxDom = $(boxDomId);
|
||||||
if (boxDom.is(':hidden')) {
|
if (boxDom.is(':hidden')) {
|
||||||
boxDom.css('z-index', zIndex++)
|
boxDom.css('z-index', zIndex++)
|
||||||
boxDom.show();
|
boxDom.show();
|
||||||
@ -241,8 +241,8 @@ function LayuiInputTree(layui) {
|
|||||||
// 确认事件
|
// 确认事件
|
||||||
$(document).on('click', confirmBtnId, function () {
|
$(document).on('click', confirmBtnId, function () {
|
||||||
if (onConfirm) {
|
if (onConfirm) {
|
||||||
var selectedNodes = [];
|
let selectedNodes = [];
|
||||||
for (var key in selectedNodesObj) {
|
for (let key in selectedNodesObj) {
|
||||||
selectedNodes.push(selectedNodesObj[key]);
|
selectedNodes.push(selectedNodesObj[key]);
|
||||||
}
|
}
|
||||||
onConfirm(zTree, selectedNodes)
|
onConfirm(zTree, selectedNodes)
|
||||||
@ -263,7 +263,7 @@ function LayuiInputTree(layui) {
|
|||||||
|
|
||||||
// 初始化zTree
|
// 初始化zTree
|
||||||
function initZTree() {
|
function initZTree() {
|
||||||
var setting = {
|
let setting = {
|
||||||
async: {
|
async: {
|
||||||
enable: true,
|
enable: true,
|
||||||
autoLoad: true,
|
autoLoad: true,
|
||||||
@ -287,7 +287,7 @@ function LayuiInputTree(layui) {
|
|||||||
callback: {
|
callback: {
|
||||||
onAsyncSuccess: function (event, treeId, treeNode) {
|
onAsyncSuccess: function (event, treeId, treeNode) {
|
||||||
// 加载完默认勾选
|
// 加载完默认勾选
|
||||||
for (var key in selectedNodesObj) {
|
for (let key in selectedNodesObj) {
|
||||||
checkNode(key);
|
checkNode(key);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -297,8 +297,8 @@ function LayuiInputTree(layui) {
|
|||||||
} else {
|
} else {
|
||||||
delete selectedNodesObj[treeNode.id];
|
delete selectedNodesObj[treeNode.id];
|
||||||
}
|
}
|
||||||
var names = '';
|
let names = '';
|
||||||
for (var key in selectedNodesObj) {
|
for (let key in selectedNodesObj) {
|
||||||
if (names != '') {
|
if (names != '') {
|
||||||
names += ',';
|
names += ',';
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user