// 表单初始化
FromInit('form.form-validation-store-accounts');
/**
* 动态数据表格高度处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-11-29
* @desc description
*/
function FormTableHeightHandle () {
// 表格内容
if ($('.am-table-scrollable-horizontal').length > 0) {
// 内容高度
var body_margin_top = parseInt($('.content-right > .content').css('margin-top').replace('px', '') || 0);
var body_margin_bottom = parseInt($('.content-right > .content').css('margin-bottom').replace('px', '') || 0);
var body_padding_top = parseInt($('.content-right > .content').css('padding-top').replace('px', '') || 0);
var body_padding_bottom = parseInt($('.content-right > .content').css('padding-bottom').replace('px', '') || 0);
var content_top = $('.form-table-content-top').outerHeight(true) || 0;
var navigation_height = $('.form-table-navigation').outerHeight(true) || 0;
var operate_top = $('.form-table-operate-top').outerHeight(true) || 0;
var operate_bottom = $('.form-table-operate-bottom').outerHeight(true) || 0;
var page = $('.form-table-content .am-pagination').outerHeight(true) || 0;
$('.am-table-scrollable-horizontal').css('height', 'calc(100vh - ' + (body_margin_top + body_margin_bottom + body_padding_top + body_padding_bottom + content_top + navigation_height + operate_top + operate_bottom + page + 1) + 'px)');
}
}
/**
* 软件安装异步请求步骤
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-02-22
* @desc description
* @desc description
* @param {[string]} url [url地址]
* @param {[string]} type [操作类型(plugins、payment、webtheme、minitheme、design、diy)]
* @param {[string]} id [插件商店id]
* @param {[string]} opt [操作类型(url 获取下载地址, download 下载插件包, install 安装插件包)]
* @param {[string]} key [操作key(仅download和install需要)]
* @param {[string]} terminal [小程序需要的指定端值]
* @param {[string]} msg [提示信息]
* @param {[string]} back_fun [成功回调方法]
* @param {[string]} back_url [成功回调跳转地址]
* @param {[string]} back_url_field [成功回调参数替换字段]
* @param {[string]} back_url_is_new_win [成功回调参数替换字段]
* @param {[string]} back_win_refresh_type [成功刷新页面类型(空当前页面,parent父级,none不刷新)]
*/
function PackageInstallRequestHandle(params)
{
// 参数处理
if ((params || null) == null) {
Prompt('操作参数有误');
return false;
}
var id = params.id || null;
var type = params.type || null;
var terminal = params.terminal || '';
var url = params.url || null;
var key = params.key || '';
var opt = params.opt || 'url';
var msg = params.msg || window['lang_get_loading_tips'] || '正在获取中...';
if(id == null || type == null || url == null)
{
Prompt(window['lang_operate_params_error'] || '请求参数有误');
return false;
}
// 回调方法
var back_fun = params.back_fun || null;
// 回调地址
var back_url = params.back_url || null;
// 回调地址替换参数字段
var back_url_field = params.back_url_field || null;
// 是否新标签打开
var back_url_is_new_win = params.back_url_is_new_win || 0;
// 新标签跳转后刷新原来列表的数据
var back_url_is_new_win_refresh = params.back_url_is_new_win_refresh || 0;
// 新标签跳转后重新查询原来列表的数据
var back_url_is_new_win_data_list_query = params.back_url_is_new_win_data_list_query || 0;
// 刷新类型(空当前页面,parent父级,none不刷新)
var back_win_refresh_type = params.back_win_refresh_type || null;
// 加载提示
AMUI.dialog.loading({ title: msg });
// ajax
$.ajax({
url: RequestUrlHandle(url),
type: 'POST',
dataType: 'json',
timeout: 305000,
data: {"id":id, "type":type, "opt":opt, "key":key, "terminal":terminal},
success: function(result)
{
if((result || null) != null && result.code == 0)
{
switch(opt)
{
// 获取下载地址
case 'url' :
params['key'] = result.data;
params['opt'] = 'download';
params['msg'] = window['lang_download_loading_tips'] || '正在下载中...';
PackageInstallRequestHandle(params);
break;
// 下载插件包
case 'download' :
params['key'] = result.data;
params['opt'] = 'install';
params['msg'] = window['lang_install_loading_tips'] || '正在安装中...';
PackageInstallRequestHandle(params);
break;
// 安装完成
case 'install' :
Prompt(result.msg, 'success');
setTimeout(function () {
if (back_fun != null)
{
if(IsExitsFunction(back_fun))
{
window[back_fun](result.data);
} else {
Prompt((window['lang_config_fun_not_exist_tips'] || '配置方法未定义') + '[' + value + ']');
}
} else if(back_url != null)
{
if(back_url_field != null)
{
back_url = UrlFieldReplace(back_url_field, result.data, back_url);
}
if(back_url_is_new_win == 1)
{
window.open(back_url, '_blank');
if(back_url_is_new_win_refresh == 1)
{
if(back_win_refresh_type != 'none')
{
setTimeout(function () {
if (back_win_refresh_type == 'parent') {
parent.location.reload();
} else {
window.location.reload();
}
}, 50);
}
} else {
if(back_url_is_new_win_data_list_query == 1)
{
$('.form-table-operate-top-search-submit').trigger('click');
}
}
} else {
window.location.href = back_url;
}
} else {
if(back_win_refresh_type != 'none')
{
if (back_win_refresh_type == 'parent') {
parent.location.reload();
} else {
window.location.reload();
}
}
}
AMUI.dialog.loading('close');
}, 1500);
break;
}
} else {
AMUI.dialog.loading('close');
Prompt(((result || null) == null) ? (window['lang_error_text'] || '异常错误') : (result.msg || (window['lang_error_text'] || '异常错误')));
}
},
error: function(xhr, type)
{
AMUI.dialog.loading('close');
Prompt(HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'));
}
});
}
/**
* 软件更新异步请求步骤
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-02-22
* @desc description
* @param {[string]} url [url地址]
* @param {[string]} type [操作类型(plugins、payment、webtheme、minitheme)]
* @param {[string]} value [操作标识值]
* @param {[string]} opt [操作类型(url 获取下载地址, download 下载插件包, upgrade 安装插件包)]
* @param {[string]} key [操作key(仅download和install需要)]
* @param {[string]} terminal [小程序需要的指定端值]
* @param {[string]} msg [提示信息]
*/
function PackageUpgradeRequestHandle (params) {
// 参数处理
if ((params || null) == null) {
Prompt('操作参数有误');
return false;
}
var url = params.url || null;
var type = params.type || null;
var value = params.value || null;
var key = params.key || '';
var terminal = params.terminal || '';
var opt = params.opt || 'url';
var msg = params.msg || window['lang_get_loading_tips'] || '正在获取中...';
// 加载提示
AMUI.dialog.loading({ title: msg });
// ajax
$.ajax({
url: RequestUrlHandle(url),
type: 'POST',
dataType: 'json',
timeout: 305000,
data: { "plugins_type": type, "plugins_value": value, "plugins_terminal": terminal, "opt": opt, "key": key },
success: function (result) {
if ((result || null) != null && result.code == 0) {
switch (opt) {
// 获取下载地址
case 'url':
params['key'] = result.data;
params['opt'] = 'download';
params['msg'] = window['lang_download_loading_tips'] || '正在下载中...';
PackageUpgradeRequestHandle(params);
break;
// 下载插件包
case 'download':
params['key'] = result.data;
params['opt'] = 'upgrade';
params['msg'] = window['lang_update_loading_tips'] || '正在更新中...';
PackageUpgradeRequestHandle(params);
break;
// 更新完成
case 'upgrade':
Prompt(result.msg, 'success');
setTimeout(function () {
window.location.reload();
}, 1500);
break;
}
} else {
AMUI.dialog.loading('close');
Prompt(((result || null) == null) ? (window['lang_error_text'] || '异常错误') : (result.msg || (window['lang_error_text'] || '异常错误')));
}
},
error: function (xhr, type) {
AMUI.dialog.loading('close');
Prompt(HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'));
}
});
}
/**
* 打开商店帐号绑定弹窗
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-04-24
* @desc description
*/
function StoreAccountsPopupOpen (title) {
$('#store-accounts-popup').modal({
closeViaDimmer: false
});
if (title) {
$('#store-accounts-popup .am-popup-title').text(title);
}
}
/**
* 管理顶部菜单和内容添加处理
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-04-24
* @desc description
* @param {[string]} url [url地址]
* @param {[string]} name [展示名称]
* @param {[string]} key [唯一key值]
* @param {[string]} type [类型 nav 或 menu]
* @param {[boolean]} is_reload [重新加载]
*/
function AdminTopNavIframeAddHandle (url, name, key, type = 'nav', is_reload = false) {
if ((url || null) != null) {
if ($('#ifcontent').length > 0) {
// 先隐藏所有的iframe
// 页面未打开则添加iframe并打开
if ($('#ifcontent .iframe-item-key-' + key).length == 0) {
var html = `
`;
$('#ifcontent').append(html);
} else {
if (is_reload) {
var $obj = $('#ifcontent .iframe-item-key-' + key + ' iframe');
$obj.attr('src', $obj.attr('src'));
}
}
// 添加快捷导航
if ($('.header-menu-open-pages-list ul li.nav-item-key-' + key).length == 0) {
var html = `` + name + ``;
if (key !== '-') {
html += ``;
}
html += ``;
$('.header-menu-open-pages-list ul').append(html);
$('.tabs-tool').removeClass('am-hide')
}
// 模拟点击当前元素
$('.header-menu-open-pages-list ul li.nav-item-key-' + key).trigger('click');
// 顶部菜单事件,关闭弹层
if (type == 'nav') {
if ($(document).width() < 641) {
$('.header-nav-submit').trigger('click');
} else {
$(this).parents('.admin-header-right-list').trigger('click');
}
}
// 关闭左侧弹层
if (type == 'menu') {
$('#admin-offcanvas').offCanvas('close');
}
} else {
window.location.href = url;
}
// 存储tabs标签数据
AdminMenuNavTabsMemoryHandle();
}
}
/**
* 存储菜单tabs标签数据
* @author kevin
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-12-06
* @desc description
*/
function AdminMenuNavTabsMemoryHandle () {
var key = AdminMenuNavTabsMemoryKey();
localStorage.removeItem(key);
var menu_list = [];
$('.header-menu-open-pages-list ul li').each((index, item) => {
var self = $(item);
var menu_obj = {
url: self.data('url') || '',
type: self.data('type') || '',
key: self.data('key') || '',
name: self.data('name') || '',
is_active: $(item).hasClass('am-active') ? true : false
};
menu_list.push(menu_obj);
})
localStorage.setItem(key, JSON.stringify(menu_list));
}
/**
* tab缓存key
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2024-07-03
* @desc description
*/
function AdminMenuNavTabsMemoryKey() {
return __my_host__.replace(/\./g, '')+'-admin-menu-nav-tabs-memory-data-' + __admin_id__;
}
/**
* 获取菜单tabs标签数据记忆展示
* @author kevin
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-12-06
* @desc description
*/
function AdminMenuNavTabsMemoryView () {
var menu_list = JSON.parse(localStorage.getItem(AdminMenuNavTabsMemoryKey()));
$('.header-menu-open-pages-list ul').empty();
if (menu_list !== null) {
menu_list.forEach(item => {
// 添加快捷导航
var html = `` + item.name + ``;
if (item.key !== '-') {
html += ``;
}
html += ``;
$('.header-menu-open-pages-list ul').append(html);
if (item.is_active) {
}
});
$('.tabs-tool').removeClass('am-hide');
// 如果当前是指定url则不处理记忆选中
if(parseInt($('#ifcontent').data('is-appoint-to-url') || 0) == 0) {
$('.header-menu-open-pages-list ul li.am-active').trigger('click');
}
} else {
$('.common-left-menu li:eq(0)>a').trigger('click');
}
}
$(function () {
// 插件更新操作事件
$(document).on('click', '.package-upgrade-event', function () {
// 参数处理
var json = $(this).attr('data-json') || null;
if (json != null) {
var json = JSON.parse(decodeURIComponent(json)) || null;
}
var name = $(this).data('name') || null;
var type = $(this).data('type') || null;
var value = $(this).data('value') || null;
var terminal = $(this).data('terminal') || '';
if (name == null || type == null || value == null || json == null) {
Prompt(window['lang_operate_params_error'] || '操作事件参数配置有误');
return false;
}
// 数据处理打开弹窗
var $modal = $('#package-upgrade-modal');
$modal.find('.upgrade-name').text(name);
$modal.find('.upgrade-date').text(' ' + json.add_time);
$modal.find('.upgrade-version').text(' ' + json.version_new);
$modal.find('.am-scrollable-vertical').html(json.describe.join('
'));
$modal.find('.package-upgrade-submit').attr('data-type', type).attr('data-value', value).attr('data-terminal', terminal);
$modal.modal({
closeViaDimmer: false,
width: 310
});
});
// 包安装搜索
var $package = $('.package-install-list-container');
var $package_list = $package.find('.package-data-list-container');
var $package_data_list = $package_list.find('> ul');
var $package_btn = $package.find('.forth-selection-container .search-submit');
var $package_is_already_buy = $package.find('input[type="checkbox"].is-already-buy');
$(document).on('click', '.package-install-list-container .forth-selection-container .search-submit, .package-data-page-container .pagelibrary li a', function()
{
// 分页处理
var is_active = $(this).data('is-active') || 0;
if(is_active == 1)
{
return false;
}
var page = $(this).data('page') || 1;
// 请求参数
var url = $package.find('.forth-selection-container').data('search-url');
var type = $package.find('.forth-selection-form-goods-type select').val() || '';
var keywords = $package.find('.forth-selection-form-keywords').val();
var is_already_buy = $package_is_already_buy.is(':checked') ? 1 : 0;
// 获取数据
$package_btn.button('loading');
$package_is_already_buy.uCheck('disable');
$package_data_list.html(' '+($package_list.data('loading-msg'))+'
');
$.ajax({
url: RequestUrlHandle(url),
type: 'post',
data: {page: page, type: type, keywords: keywords, is_already_buy: is_already_buy},
dataType: 'json',
success:function(res)
{
$package_btn.button('reset');
$package_is_already_buy.uCheck('enable');
if(res.code == 0)
{
$package_list.attr('data-is-init', 0);
$package_data_list.html(res.data.data_list);
} else {
$package_data_list.html(' '+res.msg+'
');
}
$('.package-data-page-container').html(PageLibrary(res.data.data_total, res.data.page_size, res.data.page, 4));
// title组件初始化
ViewDocumentTitleInit();
// 下拉组件初始化
DropdownInit();
},
error: function(xhr, type)
{
$package_btn.button('reset');
$package_is_already_buy.uCheck('enable');
var msg = HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误');
$package_data_list.html(' '+msg+'
');
}
});
});
// 包数据初始化
if(($package_data_list.html() || null) == null)
{
$package.find('.forth-selection-container .search-submit').trigger('click');
}
// 关键字输入搜索回车事件
$(document).on('keydown', '.package-install-list-container .forth-selection-container .forth-selection-form-keywords', function(event)
{
if(event.keyCode == 13)
{
$package.find('.forth-selection-container .search-submit').trigger('click');
return false;
}
});
// 我已购买事件
$(document).on('change', '.package-install-list-container input[type="checkbox"].is-already-buy', function()
{
$package.find('.forth-selection-container .search-submit').trigger('click');
});
// 包安装操作事件
$(document).on('click', '.package-install-list-container .package-install-submit', function()
{
var $package = $('.package-install-list-container');
var url = $package.data('url');
var back_url = $package.data('back-url') || null;
var back_url_field = $package.data('back-url-field') || null;
var back_url_is_new_win = $package.data('back-url-is-new-win') || 0;
var back_url_is_new_win_refresh = $package.data('back-url-is-new-win-refresh') || 0;
var back_url_is_new_win_data_list_query = $package.data('back-url-is-new-win-data-list-query') || 0;
var back_win_refresh_type = $package.data('back-win-refresh-type') || '';
var back_fun = $package.data('back-fun') || null;
var type = $package.data('type') || $(this).data('type') || null;
var id = $(this).data('id') || null;
PackageInstallRequestHandle({type: type,
id: id,
url: url,
back_url: back_url,
back_url_field: back_url_field,
back_url_is_new_win: back_url_is_new_win,
back_url_is_new_win_refresh: back_url_is_new_win_refresh,
back_url_is_new_win_data_list_query: back_url_is_new_win_data_list_query,
back_win_refresh_type: back_win_refresh_type,
back_fun: back_fun
});
});
// 插件更新操作确认
$(document).on('click', '.package-upgrade-submit', function () {
// 基础配置、url、插件类型、标识值、小程序终端类型
var url = $(this).attr('data-url') || null;
var type = $(this).attr('data-type') || null;
var value = $(this).attr('data-value') || null;
var terminal = $(this).attr('data-terminal') || '';
if (url == null || type == null || value == null) {
Prompt(window['lang_operate_params_error'] || '操作参数有误');
return false;
}
$('#package-upgrade-modal').modal('close');
PackageUpgradeRequestHandle({ "url": url, "type": type, "value": value, "terminal": terminal });
});
// 商店帐号绑定事件
$(document).on('click', '.store-accounts-event', function () {
StoreAccountsPopupOpen($(this).data('title'));
});
// 浏览器窗口实时事件
$(window).resize(function () {
// 动态数据表格高度处理
FormTableHeightHandle();
});
// 动态数据表格高度处理
FormTableHeightHandle();
// 点击页面关闭父级的tab右侧工具弹窗
$('body').on('click', function () {
if ((parent.IframeCloseNavTabsRightTools || null) != null) {
parent.IframeCloseNavTabsRightTools();
}
})
});