(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 += '