mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 07:22:49 +08:00
796 lines
36 KiB
PHP
796 lines
36 KiB
PHP
(function () {
|
||
var ua = window.UA_ADMIN;
|
||
var form = window.UA_CORE.form,
|
||
layer = window.UA_CORE.layer,
|
||
upload = window.UA_CORE.upload,
|
||
laydate = window.UA_CORE.laydate;
|
||
|
||
var { init, extGroup } = window.UA_SHARED;
|
||
const { createEditor, createToolbar } = window.wangEditor;
|
||
|
||
ua.api = {
|
||
button: function () {
|
||
$('button[target="_blank"]').click(function () {
|
||
window.open(ua.url($(this).attr('href')));
|
||
});
|
||
},
|
||
|
||
closeCurrentOpen: function (option) {
|
||
option = option || {};
|
||
option.backHref = option.backHref || '';
|
||
option.refreshTable = option.refreshTable || false;
|
||
option.refreshFrame = option.refreshFrame || false;
|
||
option.onClose = option.onClose || function () { };
|
||
if (option.refreshTable === true) {
|
||
option.refreshTable = init.tableRenderId;
|
||
}
|
||
var backWindow = window.parent;
|
||
if (option.backHref) {
|
||
// 标签打开页面,需要返回上一个标签刷新的情况
|
||
backWindow = ua.findPageId(option.backHref);
|
||
if (backWindow) {
|
||
backWindow.layui.table.reloadData(option.refreshTable);
|
||
} else {
|
||
ua.findIndexPage(function (w) {
|
||
var menu = w.miniTab.searchMenu(option.backHref);
|
||
var title = option.backHref;
|
||
|
||
if (menu) {
|
||
title = menu.title;
|
||
}
|
||
w.miniTab.create({
|
||
tabId: option.backHref,
|
||
href: option.backHref,
|
||
title: title,
|
||
});
|
||
});
|
||
}
|
||
ua.findIndexPage(function (w) {
|
||
w.layui.element.tabDelete('layuiminiTab', ua.getCurrentPageId());
|
||
w.layui.element.tabChange('layuiminiTab', option.backHref);
|
||
});
|
||
return;
|
||
}
|
||
// 弹框保存后刷新的情况
|
||
var index = parent.layer.getFrameIndex(window.name);
|
||
backWindow.layer.close(index, option.onClose);
|
||
if (option.refreshTable !== false) {
|
||
backWindow.layui.table.reloadData(option.refreshTable);
|
||
}
|
||
if (option.refreshFrame) {
|
||
backWindow.location.reload();
|
||
}
|
||
return false;
|
||
},
|
||
refreshFrame: function () {
|
||
parent.location.reload();
|
||
return false;
|
||
},
|
||
refreshTable: function (tableName, mode) {
|
||
tableName = tableName || 'currentTableRenderId';
|
||
if (mode == 'table') {
|
||
table.reload(tableName);
|
||
} else {
|
||
table.reloadData(tableName);
|
||
}
|
||
},
|
||
// var options = {
|
||
// url :'system.menu/index?id=1'
|
||
// }
|
||
// ua.api.reloadTable('currentTableRenderId',options)
|
||
reloadTable: function (tableName, options, mode) {
|
||
tableName = tableName || 'currentTableRenderId';
|
||
if (mode == 'table') {
|
||
table.reload(tableName, options);
|
||
} else {
|
||
table.reloadData(tableName, options);
|
||
}
|
||
},
|
||
formRequired: function () {
|
||
var verifyList = document.querySelectorAll("[lay-verify]");
|
||
if (verifyList.length > 0) {
|
||
$.each(verifyList, function (i, v) {
|
||
var verify = $(this).attr('lay-verify');
|
||
|
||
// todo 必填项处理
|
||
if (verify.includes('required')) {
|
||
var label = $(this).parent().prev();
|
||
if (label.is('label') && !label.hasClass('required')) {
|
||
label.addClass('required');
|
||
}
|
||
if ($(this).attr('lay-reqtext') === undefined && $(this).attr('placeholder') !== undefined) {
|
||
$(this).attr('lay-reqtext', $(this).attr('placeholder'));
|
||
}
|
||
if ($(this).attr('placeholder') === undefined && $(this).attr('lay-reqtext') !== undefined) {
|
||
$(this).attr('placeholder', $(this).attr('lay-reqtext'));
|
||
}
|
||
}
|
||
|
||
});
|
||
}
|
||
},
|
||
formSubmit: function (preposeCallback, ok, no, ex, complete) {
|
||
var formList = document.querySelectorAll("[lay-submit]");
|
||
|
||
// 表单提交自动处理
|
||
if (formList.length > 0) {
|
||
$.each(formList, function (i, v) {
|
||
var filter = $(this).attr('lay-filter'),
|
||
type = $(this).attr('data-type'),
|
||
refresh = $(this).attr('data-refresh'),
|
||
close = $(this).attr('data-close'),
|
||
url = $(this).attr('lay-submit');
|
||
// 表格搜索不做自动提交
|
||
if (type === 'tableSearch') {
|
||
return false;
|
||
}
|
||
// 判断是否需要刷新表格
|
||
if (refresh === 'false') {
|
||
refresh = false;
|
||
} else {
|
||
refresh = true;
|
||
}
|
||
if (close === 'false') {
|
||
close = false;
|
||
} else {
|
||
close = true;
|
||
}
|
||
// 自动添加layui事件过滤器
|
||
if (filter === undefined || filter === '') {
|
||
filter = 'save_form_' + (i + 1);
|
||
$(this).attr('lay-filter', filter);
|
||
}
|
||
if (url === undefined || url === '' || url === null) {
|
||
url = window.location.href;
|
||
} else {
|
||
url = ua.url(url);
|
||
}
|
||
form.on('submit(' + filter + ')', function (data) {
|
||
|
||
var btnElem = data.elem;
|
||
|
||
var form = $(this).closest('form');
|
||
if ($(form).hasClass('loading')) return false;
|
||
$(form).addClass('loading');
|
||
|
||
// 判断btn是否具备name和value属性,如果有,则加到表单数据里
|
||
var btnName = $(btnElem).attr('name');
|
||
var btnValue = $(btnElem).attr('value');
|
||
var backHref = $(btnElem).attr('data-back-href');
|
||
if (btnName !== undefined && btnValue !== undefined) {
|
||
data.field[btnName] = btnValue;
|
||
}
|
||
if (!backHref) {
|
||
backHref = ua.getQueryVariable('backTagId');
|
||
}
|
||
|
||
var dataField = data.field;
|
||
dataField = ua.api.formSubmitEditor(dataField, v);
|
||
dataField = ua.api.formSubmitCity(dataField, v);
|
||
|
||
if (typeof preposeCallback === 'function') {
|
||
dataField = preposeCallback(dataField);
|
||
}
|
||
complete = complete || function () {
|
||
$(form).removeClass('loading');
|
||
};
|
||
|
||
if (ok) {
|
||
var originalOk = ok;
|
||
ok = function (res) {
|
||
originalOk(res);
|
||
complete();
|
||
};
|
||
} else {
|
||
ok = function (res) {
|
||
res.msg = res.msg || '';
|
||
ua.msg.success(res.msg, function () {
|
||
if (close) {
|
||
|
||
ua.api.closeCurrentOpen({
|
||
refreshTable: refresh,
|
||
backHref: backHref,
|
||
onClose: function () {
|
||
complete();
|
||
}
|
||
});
|
||
|
||
}
|
||
});
|
||
return false;
|
||
};
|
||
}
|
||
|
||
ua.request.post({
|
||
url: url,
|
||
data: dataField,
|
||
}, ok, no, ex, complete);
|
||
|
||
return false;
|
||
});
|
||
});
|
||
}
|
||
|
||
},
|
||
formSubmitEditor(dataField, form) {
|
||
return dataField;
|
||
},
|
||
|
||
formSubmitCity(dataField, form) {
|
||
|
||
var cityList = $(form).closest('.layui-form').find('[data-toggle="city-picker"]');
|
||
|
||
if (cityList.length > 0) {
|
||
$.each(cityList, function (i, v) {
|
||
|
||
var fieldName = $(v).attr('name');
|
||
var code = $(v).data('citypicker').getCode();
|
||
var text = $(v).data('citypicker').getVal();
|
||
var level = $(v).data('level');
|
||
var formatTargetList = {};
|
||
|
||
formatTargetList['name'] = 1;
|
||
formatTargetList['code'] = 1;
|
||
formatTargetList['name-province'] = 1;
|
||
formatTargetList['name-city'] = 1;
|
||
formatTargetList['name-district'] = 1;
|
||
formatTargetList['code-province'] = 1;
|
||
formatTargetList['code-city'] = 1;
|
||
formatTargetList['code-district'] = 1;
|
||
|
||
|
||
$.each(formatTargetList, function (targetType, value) {
|
||
|
||
var valueSet = $(v).data('field-' + targetType);
|
||
|
||
if (valueSet == 0) {
|
||
formatTargetList[targetType] = 0;
|
||
}
|
||
|
||
});
|
||
|
||
var codeArr = code.split('/');
|
||
var textArr = text.split('/');
|
||
|
||
if (formatTargetList['name'] == 1) {
|
||
dataField[fieldName] = text;
|
||
}
|
||
if (formatTargetList['code'] == 1) {
|
||
dataField[fieldName + '_code'] = code;
|
||
}
|
||
if (formatTargetList['name-province'] == 1) {
|
||
dataField[fieldName + '_name_province'] = textArr[0] || '';
|
||
}
|
||
if (formatTargetList['name-city'] == 1) {
|
||
dataField[fieldName + '_name_city'] = textArr[1] || '';
|
||
}
|
||
if (formatTargetList['name-district'] == 1) {
|
||
dataField[fieldName + '_name_district'] = textArr[2] || '';
|
||
}
|
||
if (formatTargetList['code-province'] == 1) {
|
||
dataField[fieldName + '_code_province'] = codeArr[0] || '';
|
||
}
|
||
if (formatTargetList['code-city'] == 1) {
|
||
dataField[fieldName + '_code_city'] = codeArr[1] || '';
|
||
}
|
||
if (formatTargetList['code-district'] == 1) {
|
||
dataField[fieldName + '_code_district'] = codeArr[2] || '';
|
||
}
|
||
|
||
});
|
||
}
|
||
return dataField;
|
||
},
|
||
upload: function () {
|
||
var uploadList = document.querySelectorAll("[data-upload]");
|
||
var uploadSelectList = document.querySelectorAll("[data-upload-select]");
|
||
|
||
if (uploadList.length > 0) {
|
||
$.each(uploadList, function (i, v) {
|
||
var uploadExts = $(this).attr('data-upload-exts'),
|
||
uploadName = $(this).attr('data-upload'),
|
||
uploadNumber = $(this).attr('data-upload-number') || 'one',
|
||
uploadSign = $(this).attr('data-upload-sign') || '|',
|
||
uploadAccept = $(this).attr('data-upload-accept') || 'file',
|
||
uploadAcceptMime = $(this).attr('data-upload-mimetype') || '',
|
||
uploadDisablePreview = $(this).attr('data-upload-disable-preview') || '0',
|
||
uploadFilenameField = $(this).attr('data-upload-filename-field') || '',
|
||
elem = "input[name='" + uploadName + "']",
|
||
|
||
uploadElem = this;
|
||
if (uploadFilenameField) {
|
||
var elemFilenameField = "[name='" + uploadFilenameField + "']";
|
||
}
|
||
if (uploadExts == '*') {
|
||
uploadExts = init.uploadExts;
|
||
} else if (uploadExts.charAt(0) == '*') {
|
||
var extGroupName = uploadExts.slice(1);
|
||
if (extGroup[extGroupName]) {
|
||
uploadExts = extGroup[extGroupName].join('|');
|
||
}
|
||
}
|
||
|
||
// 监听上传事件
|
||
upload.render({
|
||
elem: this,
|
||
url: ua.url(init.uploadUrl),
|
||
exts: uploadExts,
|
||
accept: uploadAccept,//指定允许上传时校验的文件类型
|
||
acceptMime: uploadAcceptMime,//规定打开文件选择框时,筛选出的文件类型
|
||
multiple: uploadNumber !== 'one',//是否多文件上传
|
||
headers: ua.headers(),
|
||
done: function (res) {
|
||
if (res.code === 0) {
|
||
var url = res.data.url;
|
||
var filename = res.data.original_name;
|
||
if (uploadNumber !== 'one') {
|
||
var oldUrl = $(elem).val();
|
||
if (oldUrl !== '') {
|
||
url = oldUrl + uploadSign + url;
|
||
}
|
||
if (elemFilenameField) {
|
||
var oldFilename = $(elemFilenameField).val();
|
||
if (oldFilename !== '') {
|
||
filename = oldFilename + uploadSign + filename;
|
||
}
|
||
|
||
}
|
||
}
|
||
if (elemFilenameField) {
|
||
$(elemFilenameField).val(filename);
|
||
}
|
||
$(elem).val(url);
|
||
$(elem).trigger("input");
|
||
ua.msg.success(res.msg);
|
||
} else {
|
||
ua.msg.error(res.msg);
|
||
}
|
||
return false;
|
||
}
|
||
});
|
||
|
||
if (uploadDisablePreview == 0) {
|
||
// 监听上传input值变化
|
||
$(elem).bind("input propertychange", function (event) {
|
||
var urlString = $(this).val(),
|
||
urlArray = urlString.split(uploadSign),
|
||
uploadIcon = $(uploadElem).attr('data-upload-icon') || "file";
|
||
var uploadNameKey = uploadName.replace(/\[/g, "-").replace(/\]/g, "-");
|
||
$('#bing-' + uploadNameKey).remove();
|
||
if (urlString.length > 0) {
|
||
var parant = $(this).parent('div');
|
||
var liHtml = '';
|
||
var filenameArray = [];
|
||
if (uploadFilenameField) {
|
||
var filenameVal = $(elemFilenameField).val() || '';
|
||
if (filenameVal) {
|
||
filenameArray = filenameVal.split(uploadSign);
|
||
}
|
||
}
|
||
|
||
$.each(urlArray, function (i, v) {
|
||
|
||
// 获取链接扩展名
|
||
var ext = v.substr(v.lastIndexOf('.') + 1);
|
||
var currentFilename = filenameArray[i] || '';
|
||
currentFilename = currentFilename.replace(/"/g, '"');
|
||
|
||
if (extGroup.image.indexOf(ext) != -1) {
|
||
// 是图片
|
||
liHtml += '<li><a title="点击预览"><img src="' + v + '" data-images onerror="this.src=\'/static/admin/images/upload-icons/image-error.png\';this.onerror=null"></a><small class="uploads-delete-tip bg-red badge" data-upload-delete="' + uploadName + '" data-upload-filename-field="' + uploadFilenameField + '" data-upload-url="' + v + '" data-upload-sign="' + uploadSign + '" data-upload-filename="' + currentFilename + '">×</small></li>\n';
|
||
} else {
|
||
// 不是图片
|
||
// 遍历extGroup数组找到扩展名所在的索引
|
||
|
||
uploadIcon = ua.getExtGroupName(ext);
|
||
|
||
liHtml += '<li><a title="点击打开文件" target="_blank" href="' + v + '" ><img src="/static/admin/images/upload-icons/' + uploadIcon + '.png"></a><small class="uploads-delete-tip bg-red badge" data-upload-delete="' + uploadName + '" data-upload-filename-field="' + uploadFilenameField + '" data-upload-url="' + v + '" data-upload-sign="' + uploadSign + '" data-upload-filename="' + currentFilename + '">×</small></li>\n';
|
||
|
||
}
|
||
|
||
});
|
||
parant.after('<ul id="bing-' + uploadNameKey + '" class="layui-input-block layuimini-upload-show">\n' + liHtml + '</ul>');
|
||
|
||
var initSortable = function () {
|
||
var el = document.getElementById('bing-' + uploadNameKey);
|
||
if (el) {
|
||
new Sortable(el, {
|
||
animation: 150,
|
||
onEnd: function (evt) {
|
||
var newUrls = [];
|
||
var newFilenames = [];
|
||
$(el).find('.uploads-delete-tip').each(function () {
|
||
newUrls.push($(this).attr('data-upload-url'));
|
||
newFilenames.push($(this).attr('data-upload-filename'));
|
||
});
|
||
$(elem).val(newUrls.join(uploadSign));
|
||
if (uploadFilenameField) {
|
||
$(elemFilenameField).val(newFilenames.join(uploadSign));
|
||
}
|
||
$(elem).trigger("input");
|
||
}
|
||
});
|
||
}
|
||
};
|
||
|
||
initSortable();
|
||
}
|
||
|
||
});
|
||
|
||
// 非空初始化图片显示
|
||
if ($(elem).val() !== '') {
|
||
$(elem).trigger("input");
|
||
}
|
||
}
|
||
|
||
});
|
||
|
||
// 监听上传文件的删除事件
|
||
$('body').on('click', '[data-upload-delete]', function () {
|
||
var uploadName = $(this).attr('data-upload-delete'),
|
||
deleteUrl = $(this).attr('data-upload-url'),
|
||
uploadFilenameField = $(this).attr('data-upload-filename-field'),
|
||
sign = $(this).attr('data-upload-sign');
|
||
var confirm = ua.msg.confirm('确定删除?', function () {
|
||
var elem = "input[name='" + uploadName + "']";
|
||
var elemFilenameField = "[name='" + uploadFilenameField + "']";
|
||
var currentUrl = $(elem).val();
|
||
var currentFilename = $(elemFilenameField).val();
|
||
|
||
var currentUrlList = currentUrl.split(sign);
|
||
var deleteIndex = currentUrlList.indexOf(deleteUrl);
|
||
|
||
currentUrlList.splice(deleteIndex, 1);
|
||
$(elem).val(currentUrlList.join(sign));
|
||
$(elem).trigger("input");
|
||
|
||
if (currentFilename) {
|
||
|
||
var currentFilenameList = currentFilename.split(sign);
|
||
currentFilenameList.splice(deleteIndex, 1);
|
||
|
||
$(elemFilenameField).val(currentFilenameList.join(sign));
|
||
}
|
||
|
||
ua.msg.close(confirm);
|
||
});
|
||
return false;
|
||
});
|
||
}
|
||
|
||
if (uploadSelectList.length > 0) {
|
||
$.each(uploadSelectList, function (i, v) {
|
||
var uploadName = $(this).attr('data-upload-select'),
|
||
uploadNumber = $(this).attr('data-upload-number') || 'one',
|
||
uploadSign = $(this).attr('data-upload-sign') || '|',
|
||
uploadFilenameField = $(this).attr('data-upload-filename-field') || '';
|
||
|
||
if (uploadFilenameField) {
|
||
var elemFilenameField = "[name='" + uploadFilenameField + "']";
|
||
var elemFilename = $(elemFilenameField);
|
||
}
|
||
|
||
var selectCheck = uploadNumber === 'one' ? 'radio' : 'checkbox';
|
||
var elem = "input[name='" + uploadName + "']";
|
||
var width = document.body.clientWidth,
|
||
height = document.body.clientHeight;
|
||
|
||
if (width >= 800 && height >= 600) {
|
||
clienWidth = '800px';
|
||
clientHeight = '600px';
|
||
} else {
|
||
clienWidth = '100%';
|
||
clientHeight = '100%';
|
||
}
|
||
|
||
$(v).click(function () {
|
||
|
||
layer.open({
|
||
title: '选择文件',
|
||
type: 2,
|
||
area: [clienWidth, clientHeight],
|
||
content: ua.url('system.uploadfile/index') + '?select_mode=' + selectCheck,
|
||
success(layero, index) {
|
||
window.onTableDataConfirm = function (data) {
|
||
var currentUrl = $(elem).val();
|
||
var urlArray = currentUrl.split(uploadSign);
|
||
if (currentUrl.length == 0 || selectCheck == 'radio') {
|
||
urlArray = [];
|
||
}
|
||
if (uploadFilenameField) {
|
||
var currentFilename = $(elemFilename).val();
|
||
var filenameArray = currentFilename.split(uploadSign);
|
||
if (currentFilename.length == 0 || selectCheck == 'radio') {
|
||
filenameArray = [];
|
||
}
|
||
}
|
||
$.each(data, function (index, val) {
|
||
if (urlArray.indexOf(val.url) == -1) {
|
||
urlArray.push(val.url);
|
||
}
|
||
if (uploadFilenameField) {
|
||
if (filenameArray.indexOf(val.original_name) == -1) {
|
||
filenameArray.push(val.original_name);
|
||
}
|
||
}
|
||
|
||
});
|
||
var url = urlArray.join(uploadSign);
|
||
|
||
if (uploadFilenameField) {
|
||
var filename = filenameArray.join(uploadSign);
|
||
}
|
||
$(elem).val(url);
|
||
if (uploadFilenameField) {
|
||
$(elemFilenameField).val(filename);
|
||
}
|
||
$(elem).trigger("input");
|
||
layer.close(index);
|
||
ua.msg.success('选择成功');
|
||
};
|
||
}
|
||
});
|
||
});
|
||
});
|
||
|
||
}
|
||
},
|
||
editor: function () {
|
||
var editorList = document.querySelectorAll(".editor");
|
||
if (editorList.length > 0) {
|
||
$.each(editorList, function (i, v) {
|
||
var editorConfig = {
|
||
placeholder: '请输入内容',
|
||
onChange(editor) {
|
||
const html = editor.getHtml();
|
||
$(v).val(html);
|
||
},
|
||
MENU_CONF: {
|
||
uploadImage: {
|
||
server: ua.url('ajax/uploadEditor'),
|
||
maxFileSize: 10 * 1024 * 1024,
|
||
fieldName: 'upload',
|
||
},
|
||
}
|
||
};
|
||
|
||
var formName = $(this).attr('name');
|
||
|
||
var editorId = 'editor-' + formName.replace(/\[/g, '-').replace(/\]/g, '-');
|
||
var editorContainer = $('<div id="' + editorId + '" style="height:60vh;"></div>');
|
||
$(this).after(editorContainer);
|
||
|
||
var toolbarId = 'toolbar-' + formName.replace(/\[/g, '-').replace(/\]/g, '-');
|
||
var toolbarContent = $('<div id="' + toolbarId + '"></div>');
|
||
$(this).after(toolbarContent);
|
||
|
||
$(this).hide();
|
||
|
||
var originalValue = $(this).val();
|
||
const editor = createEditor({
|
||
selector: '#' + editorId,
|
||
html: originalValue,
|
||
config: editorConfig,
|
||
mode: 'default',
|
||
scroll: true
|
||
});
|
||
$(v).data('editor', editor);
|
||
|
||
|
||
const toolbarConfig = {
|
||
excludeKeys: [
|
||
'uploadVideo',
|
||
'fullScreen',
|
||
'todo',
|
||
]
|
||
};
|
||
|
||
const toolbar = createToolbar({
|
||
editor,
|
||
selector: '#' + toolbarId,
|
||
config: toolbarConfig,
|
||
mode: 'default', // or 'simple'
|
||
});
|
||
|
||
|
||
});
|
||
}
|
||
},
|
||
select: function () {
|
||
|
||
var selectList = document.querySelectorAll("[data-select]");
|
||
$.each(selectList, function (i, v) {
|
||
var url = $(this).attr('data-select'),
|
||
selectFields = $(this).attr('data-fields'),
|
||
value = $(this).attr('data-value'),
|
||
that = this,
|
||
html = '<option value=""></option>';
|
||
|
||
var template = $(that).data('template');
|
||
|
||
if (typeof template != 'function') {
|
||
template = function (data, fields) {
|
||
return data[fields[1]];
|
||
};
|
||
}
|
||
|
||
var fields = selectFields.replace(/\s/g, "").split(',');
|
||
if (fields.length < 2) {
|
||
return ua.msg.error('下拉选择字段有误');
|
||
}
|
||
ua.request.get(
|
||
{
|
||
url: url,
|
||
data: {
|
||
selectFields: selectFields
|
||
},
|
||
}, function (res) {
|
||
var list = res.data;
|
||
|
||
|
||
|
||
list.forEach(val => {
|
||
var key = val[fields[0]];
|
||
var valueTitle = template(val, fields);
|
||
|
||
if (value !== undefined && key.toString() === value) {
|
||
html += '<option value="' + key + '" selected="">' + valueTitle + '</option>';
|
||
} else {
|
||
html += '<option value="' + key + '">' + valueTitle + '</option>';
|
||
}
|
||
});
|
||
$(that).html(html);
|
||
form.render();
|
||
}
|
||
);
|
||
});
|
||
},
|
||
nativeRadio() {
|
||
$('[value-checked]').each(function (index, elem) {
|
||
if ($(this).hasClass('checked-rendered')) {
|
||
return;
|
||
}
|
||
$(this).addClass('checked-rendered');
|
||
if ($(this).attr('value') == $(this).attr('value-checked')) {
|
||
$(this).prop('checked', true);
|
||
}
|
||
});
|
||
},
|
||
nativeSelect() {
|
||
$('[value-selected]').each(function (index, elem) {
|
||
if ($(this).hasClass('selected-rendered')) {
|
||
return;
|
||
}
|
||
$(this).addClass('selected-rendered');
|
||
if ($(this).attr('value') == $(this).attr('value-selected')) {
|
||
$(this).prop('selected', true);
|
||
}
|
||
});
|
||
},
|
||
date: function () {
|
||
var dateList = document.querySelectorAll("[data-date]");
|
||
if (dateList.length > 0) {
|
||
$.each(dateList, function (i, v) {
|
||
var format = $(this).attr('data-date'),
|
||
type = $(this).attr('data-date-type'),
|
||
range = $(this).attr('data-date-range');
|
||
if (type === undefined || type === '' || type === null) {
|
||
type = 'datetime';
|
||
}
|
||
var options = {
|
||
elem: this,
|
||
type: type,
|
||
};
|
||
if (format !== undefined && format !== '' && format !== null) {
|
||
options['format'] = format;
|
||
}
|
||
if (range !== undefined) {
|
||
if (range === null || range === '') {
|
||
range = '-';
|
||
}
|
||
options['range'] = range;
|
||
}
|
||
laydate.render(options);
|
||
});
|
||
}
|
||
},
|
||
tableData() {
|
||
var tableList = document.querySelectorAll('[data-toggle="table-data"]');
|
||
$.each(tableList, function (i, v) {
|
||
var data = $(v).data();
|
||
tableData.render(v, data, admin);
|
||
});
|
||
|
||
},
|
||
mapLocation() {
|
||
var mapList = document.querySelectorAll('[data-toggle="map-location"]');
|
||
|
||
$.each(mapList, function (i, v) {
|
||
if ($(v).hasClass('map-rendered')) {
|
||
return;
|
||
}
|
||
$(v).addClass('map-rendered');
|
||
var data = $(v).data();
|
||
mapLocation.render(v, data, admin);
|
||
});
|
||
|
||
},
|
||
tagInput() {
|
||
var list = document.querySelectorAll('[data-toggle="tag-input"]');
|
||
$.each(list, function (i, v) {
|
||
var data = $(v).data();
|
||
tagInput.render(v, data, admin);
|
||
});
|
||
|
||
},
|
||
propertyInput() {
|
||
var list = document.querySelectorAll('[data-toggle="property-input"]');
|
||
$.each(list, function (i, v) {
|
||
var data = $(v).data();
|
||
|
||
data.value = $(v).text();
|
||
|
||
propertyInput.render(v, data, admin);
|
||
});
|
||
|
||
},
|
||
copyText(elem) {
|
||
if (elem == undefined) {
|
||
elem = 'body';
|
||
}
|
||
var list = $(elem).find('[data-toggle="copy-text"]');
|
||
|
||
$.each(list, function (i, v) {
|
||
|
||
if ($(v).hasClass('copy-rendered')) {
|
||
return;
|
||
}
|
||
|
||
$(v).addClass('copy-rendered');
|
||
var clipboard = new ClipboardJS(v);
|
||
|
||
clipboard.on('success', function (e) {
|
||
ua.msg.success('复制成功');
|
||
});
|
||
|
||
clipboard.on('error', function (e) {
|
||
ua.msg.error('复制失败');
|
||
|
||
});
|
||
});
|
||
},
|
||
pasteText(elem) {
|
||
if (elem == undefined) {
|
||
elem = 'body';
|
||
}
|
||
var list = $(elem).find('[data-toggle="paste-text"]');
|
||
|
||
$.each(list, function (i, v) {
|
||
|
||
if ($(v).hasClass('paste-rendered')) {
|
||
return;
|
||
}
|
||
$(v).addClass('paste-rendered');
|
||
|
||
var targetElemName = $(v).data('paste-target');
|
||
$(v).on('click', function () {
|
||
if (!navigator.clipboard) {
|
||
ua.msg.error('您的当前不支持粘贴操作');
|
||
return;
|
||
}
|
||
navigator.clipboard.readText()
|
||
.then(text => {
|
||
$(targetElemName).val(text);
|
||
layer.msg('粘贴成功');
|
||
})
|
||
.catch(err => {
|
||
console.error('Failed to read clipboard contents: ', err);
|
||
layer.msg('粘贴失败,请手动粘贴');
|
||
});
|
||
});
|
||
});
|
||
}
|
||
};
|
||
})();
|