// 表单初始化 FromInit('form.form-validation-store-accounts'); /** * 商品参数数据创建 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2020-09-02 * @desc description * @param {[int]} type [展示类型(0,1,2)] * @param {[string]} name [参数名称] * @param {[string]} value [参数值] */ function ParametersItemHtmlCreated(type, name, value) { var index = parseInt(Math.random()*1000001); var html = ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += '上移'; html += '下移'; html += '移除'; html += ''; // 数据添加 var $parameters_table = $('.parameters-table'); $parameters_table.append(html); // select组件初始化 $parameters_table.find('.parameters-line-'+index+' .chosen-select').chosen({ inherit_select_classes: true, enable_split_word_search: true, search_contains: true, no_results_text: '没有匹配到结果' }); } /** * 动态数据表格高度处理 * @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 height = $('.content-right .content-top').outerHeight(true) || 0; $('.content-right').css('height', 'calc(100% - '+height+'px)'); // 内容高度 var height_top = $('.form-table-operate-top').outerHeight(true) || 0; var height_bottom = $('.form-table-operate-bottom').outerHeight(true) || 0; $('.am-table-scrollable-horizontal').css('max-height', 'calc(100% - '+(height_top+height_bottom)+'px)'); } // 表格内容外围高度 if($('.form-validation-search').length > 0) { var height = $('.form-table-content .am-pagination').outerHeight(true) || 0; $('.form-validation-search').css('height', 'calc(100% - '+height+'px)'); } } /** * 软件更新异步请求步骤 * @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 || '正在获取中...'; // 加载提示 AMUI.dialog.loading({title: msg}); // ajax $.ajax({ url: 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'] = '正在下载中...'; PackageUpgradeRequestHandle(params); break; // 下载插件包 case 'download' : params['key'] = result.data; params['opt'] = 'upgrade'; params['msg'] = '正在更新中...'; 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) ? '返回数据格式错误' : (result.msg || '异常错误')); } }, error: function(xhr, type) { AMUI.dialog.loading('close'); Prompt(HtmlToString(xhr.responseText) || '异常错误'); } }); } /** * 打开商店帐号绑定弹窗 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-04-24 * @desc description */ function StoreAccountsPopupOpen() { $('#store-accounts-popup').modal({ closeViaDimmer: false }); } $(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('操作事件参数配置有误'); 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, height: 257 }); }); // 插件更新操作确认 $(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('操作参数有误'); return false; } $('#package-upgrade-modal').modal('close'); PackageUpgradeRequestHandle({"url":url, "type":type, "value":value, "terminal":terminal}); }); // 商店帐号绑定事件 $(document).on('click', '.store-accounts-event', function() { StoreAccountsPopupOpen(); }); // 商品规格和参数上下移动 $('.specifications-table,.parameters-table').on('click', '.line-move', function() { // 类型 var type = $(this).data('type') || null; if(type == null) { Prompt('操作类型配置有误'); return false; } // 索引 var count = $(this).parents('table').find('tbody tr').length; var index = $(this).parents('tr').index() || 0; var $parent = $(this).parents('tr'); switch(type) { // 上移 case 'top' : if(index == 0) { Prompt('已到最顶部'); return false; } $parent.prev().insertAfter($parent); break; // 下移 case 'bottom' : if(index >= count-1) { Prompt('已到最底部'); return false; } $parent.next().insertBefore($parent); break; // 默认 default : Prompt('操作类型配置有误'); } }); // 商品参数添加 var $parameters_table = $('.parameters-table'); $('.parameters-line-add').on('click', function() { // 追加内容 ParametersItemHtmlCreated(); }); // 商品参数移除 $parameters_table.on('click', '.line-remove', function() { $(this).parents('tr').remove(); }); // 商品参数配置信息复制 var $parameters_copy_modal = $('#parameters-quick-copy-modal'); var clipboard = new ClipboardJS('.parameters-quick-copy', { text: function() { // 获取商品参数配置信息 var data = []; $parameters_table.find('tbody tr').each(function(k, v) { data.push({ "type": $(this).find('td:eq(0) select').val(), "name": $(this).find('td:eq(1) input').val(), "value": $(this).find('td:eq(2) input').val(), }); }); data = JSON.stringify(data); $parameters_copy_modal.find('textarea').val(data); return data; } }); clipboard.on('success', function(e) { Prompt('复制成功', 'success'); }); clipboard.on('error', function(e) { // 复制失败则开启复制窗口,让用户自己复制 $parameters_copy_modal.modal({ width: 200, height: 135 }); }); // 点击选中复制的值 $parameters_copy_modal.find('textarea').on('click', function() { $(this).select(); }); // 商品参数快捷操作 var $parameters_quick_config = $('.parameters-quick-config'); $parameters_quick_config.find('button').on('click', function() { // 配置数据 var data = $parameters_quick_config.find('textarea').val() || null; if(data == null) { Prompt('请先粘贴配置信息'); return false; } // 异常处理、防止json格式错误 try { data = JSON.parse(data); } catch(e) { Prompt('配置格式错误'); return false; } if(data.length <= 0) { Prompt('配置为空'); return false; } // 数据生成 $parameters_table.find('tbody').html(''); for(var i in data) { var type = (data[i]['type'] == undefined) ? 1 : data[i]['type']; var name = data[i]['name'] || ''; var value = data[i]['value'] || ''; ParametersItemHtmlCreated(type, name, value); } $('#parameters-quick-container').dropdown('close'); Prompt('生成成功', 'success'); }); // 商品参数清空 $('.parameters-quick-remove').on('click', function() { $parameters_table.find('tbody').html(''); }); // 浏览器窗口实时事件 $(window).resize(function() { // 动态数据表格高度处理 FormTableHeightHandle(); }); // 动态数据表格高度处理 FormTableHeightHandle(); });