// 公共列表 form 搜索条件 FromInit('form.form-validation-layout-config'); FromInit('form.form-validation-module-offcanvas-images'); FromInit('form.form-validation-module-offcanvas-many-images'); FromInit('form.form-validation-module-offcanvas-images-text'); FromInit('form.form-validation-module-offcanvas-images-magic-cube'); FromInit('form.form-validation-module-offcanvas-video'); FromInit('form.form-validation-module-offcanvas-goods'); FromInit('form.form-validation-module-offcanvas-title'); FromInit('form.form-validation-module-offcanvas-custom'); FromInit('form.form-validation-module-offcanvas-border'); FromInit('form.form-validation-module-offcanvas-height'); FromInit('form.form-validation-module-modal-title-keywords'); FromInit('form.form-validation-module-modal-rolling-config'); FromInit('form.form-validation-module-modal-list-config'); FromInit('form.form-validation-module-popup-goods-search'); // 弹窗容器 var $layout_content_obj = null; var $page_parent_obj = null; var $base_show_style_value_obj = null; var $base_title_keywords_obj = null; var $layout = $('.layout-container'); var $offcanvas_layout_config = $('#offcanvas-layout-config'); var $offcanvas_config_images = $('#offcanvas-module-config-images'); var $offcanvas_config_many_images = $('#offcanvas-module-config-many-images'); var $offcanvas_config_images_text = $('#offcanvas-module-config-images-text'); var $offcanvas_config_images_magic_cube = $('#offcanvas-module-config-images-magic-cube'); var $offcanvas_config_video = $('#offcanvas-module-config-video'); var $offcanvas_config_goods = $('#offcanvas-module-config-goods'); var $offcanvas_config_title = $('#offcanvas-module-config-title'); var $offcanvas_config_custom = $('#offcanvas-module-config-custom'); var $offcanvas_config_border = $('#offcanvas-module-config-border'); var $offcanvas_config_height = $('#offcanvas-module-config-height'); var $modal_pages_select = $('#modal-module-pages-select'); var $modal_rolling_config = $('#modal-module-rolling-config'); var $modal_list_config = $('#modal-module-list-config'); var $modal_title_keywords = $('#modal-module-title-keywords'); var $popup_goods_select = $('#popup-module-goods-select'); var $popup_goods_search = $('#popup-module-goods-search'); var $popup_goods_category = $('#popup-module-goods-category'); // 布局模块类型信息 var layout_module_type_arr = {}; $('#renovation-tabs-module button').each(function (k, v) { layout_module_type_arr[$(this).data('value')] = $(this).text(); }); /** * 模块拖拽初始化 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-13 * @desc description * @param {[object]} event [初始化容器] */ function ModuleDragSortInit (event) { // 是否指定初始化容器 if ((event || null) == null) { event = $('.layout-content'); } // 模块拖拽 event.dragsort({ dragSelector: '.module-view-submit-drag', placeHolderTemplate: '
' }); } /** * 布局生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-10 * @desc description * @param {[string]} value [布局比例值] */ function StructureDragHtmlCreate (value) { // 基础 var switch_on = $layout.data('switch-on-text') || '开启'; var switch_off = $layout.data('switch-off-text') || '关闭'; var set_title = $layout.data('layout-set-title') || '布局设置'; var del_title = $layout.data('layout-del-title') || '布局移除'; var content_tips = $layout.data('layout-content-tips') || '模块内容区域'; var html = '
'; html += ''; html += '
'; html += ''; html += ' '; html += ' '; html += '
'; // 容器设置 var content_submit = '
'; content_submit += ''; content_submit += '
'; // 默认内容提示信息 var content_tips = '
' + content_tips + '
'; // 根据布局类型处理 var arr = value.toString().split(':'); var length = arr.length; if (length <= 1) { // 100% html += '
'; html += '
'; html += content_submit; html += '
'; html += content_tips; html += '
'; html += '
'; html += '
'; } else { // 多个格子 html += '
'; for (var i in arr) { html += '
'; html += '
'; html += content_submit; html += '
'; html += content_tips; html += '
'; html += '
'; html += '
'; } html += '
'; } html += '
'; return html; } /** * 模块生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-13 * @desc description * @param {[string]} value [模块类型] */ function RenovationModuleDragHtmlCreate (value) { // 根据模块类型处理 if ((layout_module_type_arr[value] || null) == null) { Prompt(($layout.data('module-not-exist-tips') || '模块未定义') + '[' + value + ']'); return false; } // 基础 var config_first_tips = $layout.data('config-first-tips') || '请配置'; var index = parseInt(Math.random() * 1000001); var doc = 'module-content-index-' + value + '-' + index; var html = '
'; html += '
'; html += ''; html += ' '; html += ' '; html += '
'; html += '
'; html += '
' + config_first_tips + layout_module_type_arr[value] + '
'; html += '
'; html += '
'; return html; } /** * 模块-链接提示信息 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[string]} to_name [链接地址名称] */ function ModuleToPrompt (to_name) { Prompt(to_name || ($layout.data('url-not-set-tips') || '未设置链接地址'), 'warning'); } /** * 基础样式处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-09 * @desc description * @param {[object]} data [数据] * @param {[string]} key [key] * @param {[array]} replace_rules [替换规则] * @param {[array]} exclude [排除css] */ function StyleBaseHandle (data, key, replace_rules, exclude) { // 样式容器 var style = ''; // 上下左右处理 // 边线类型、边线、外边距、内边距 var arr = [ { "type": "border_style", "css": "border-style", "unit": "", "value": "" }, { "type": "border_width", "css": "border-width", "unit": "px", "value": 0 }, { "type": "margin", "css": "margin", "unit": "px", "value": 0 }, { "type": "padding", "css": "padding", "unit": "px", "value": 0 } ]; for (var i in arr) { var type = arr[i]['type']; var value = arr[i]['value']; var unit = arr[i]['unit']; var t = data[key + type + '_top'] || value; var r = data[key + type + '_right'] || value; var b = data[key + type + '_bottom'] || value; var l = data[key + type + '_left'] || value; if ((t != 0 || r != 0 || b != 0 || l != 0) || (t != '' || r != '' || b != '' || l != '')) { if ((exclude || null) != null) { if (exclude.indexOf(arr[i][t]) != -1) { t = 0; } if (exclude.indexOf(arr[i][r]) != -1) { r = 0; } if (exclude.indexOf(arr[i][b]) != -1) { b = 0; } if (exclude.indexOf(arr[i][l]) != -1) { l = 0; } } style += arr[i]['css'] + ':' + t + unit + ' ' + r + unit + ' ' + b + unit + ' ' + l + unit + ';'; } } // 单个处理 var arr2 = [ { type: "border_style", css: "border-style", unit: "" }, { type: "border_width", css: "border-width", unit: "px" }, { type: "border_color", css: "border-color", unit: "" }, { type: "border_radius", css: "border-radius", unit: "px" }, { type: "background_color", css: "background-color", unit: "" }, { type: "color", css: "color", unit: "" }, { type: "align", css: "text-align", unit: "" }, { type: "font_size", css: "font-size", unit: "px" }, { type: "margin", css: "margin", unit: "px" }, { type: "padding", css: "padding", unit: "px" }, { type: "height", css: "height", unit: "px" }, { type: "width", css: "width", unit: "px" }, { type: "max_height", css: "max-height", unit: "px" }, { type: "max_width", css: "max-width", unit: "px" } ]; for (var i in arr2) { if ((data[key + arr2[i]['type']] || null) != null) { if ((exclude || null) == null || exclude.indexOf(arr2[i]['css']) == -1) { // 样式值 var v = data[key + arr2[i]['type']] + arr2[i]['unit']; // 替换规则 // rules {"field":{"value":"hello","var":"var"}} if ((replace_rules || null) != null && (replace_rules[arr2[i]['type']] || null) != null) { var rules = replace_rules[arr2[i]['type']]; var reg = new RegExp(rules['var'], 'g'); v = rules['value'].replace(reg, data[key + arr2[i]['type']]); } style += arr2[i]['css'] + ':' + v + ';'; } } } return style; } /** * 表单回调数据列表处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2022-11-25 * @desc description * @param {[object]} data [表单数据] * @param {[object]} fields [处理字段] */ function FormBackDataListHandle (data, fields) { var key_temp = []; var data_list = []; for (var i in data) { var loc = i.lastIndexOf('_'); if (loc != -1) { var key = i.substr(0, loc + 1); var last = i.substr(loc + 1); for (var f in fields) { if (key == f) { // 临时索引记录 var index = key_temp.indexOf(last); if (index == -1) { key_temp.push(last); index = key_temp.length - 1; } // 数据组合 if (data_list[index] == undefined) { data_list[index] = {}; } data_list[index][fields[f]] = (fields[f] != 'value' || (data[i] || null) == null) ? data[i] : (JSON.parse(decodeURIComponent(data[i])) || ''); delete data[i]; } } } } return { data: data, data_list: data_list } } /** * 元素固定处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-09 * @desc description * @param {[object]} data [数据] */ function MediaFixedHandle (data) { // 文件容器 var media_container_ent = ''; // 文件容器样式 var media_container_style = StyleBaseHandle(data, 'style_media_fixed_'); if ((media_container_style || null) != null) { media_container_ent += 'module-fixed-doc '; } // 文件容器加上居中、避免容器没居中导致内容居中无效 if ((data['style_media_fixed_is_auto'] || 0) == 1) { media_container_ent += 'module-fixed-doc-ent-auto '; } // 文件 var media_ent = ''; var arr = ['width', 'height', 'auto', 'cover']; for (var i in arr) { var key = 'style_media_fixed_is_' + arr[i]; if ((data[key] || 0) == 1) { media_ent += 'module-fixed-doc-ent-' + arr[i] + ' '; } } // 鼠标悬停在图片上方放大 if (parseInt(data.style_mouse_hover_images_amplify_value || 0) == 1) { media_ent += 'module-mouse-hover-images-amplify '; } return { "media_container_ent": media_container_ent, "media_container_style": media_container_style, "media_ent": media_ent } } /** * 布局-容器设置处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackLayoutConfigHandle (data) { // 基础信息 if ($layout_content_obj == null) { Prompt('操作标记有误'); return false; } // 标签类定义 var ent = ''; // 边线大小、外边距、内边距 var size_arr = ['sm', 'md', 'lg']; var angle_arr = ['top', 'right', 'bottom', 'left']; var type_arr = { "style_{var}_border_width": "layout-{var}-border", "style_{var}_margin": "layout-{var}-margin", "style_{var}_padding": "layout-{var}-padding", }; for (var a in size_arr) { for (var b in type_arr) { for (var c in angle_arr) { var key = b.replace('{var}', size_arr[a]) + '_' + angle_arr[c]; if ((data[key] || 0) > 0) { ent += type_arr[b].replace('{var}', size_arr[a]) + '-' + angle_arr[c] + '-' + data[key] + ' '; } } } } // 边线类型 for (var a in size_arr) { for (var b in angle_arr) { var key = 'style_' + size_arr[a] + '_border_style_' + angle_arr[b]; if ((data[key] || null) != null) { ent += 'layout-' + size_arr[a] + '-border-' + angle_arr[b] + '-' + data[key] + ' '; } } } // 圆角 for (var i in size_arr) { var key = 'style_' + size_arr[i] + '_border_radius'; if ((data[key] || 0) > 0) { ent += 'layout-' + size_arr[i] + '-border-radius-' + data[key] + ' '; } } // 系统标准限宽、兼容老版本的参数 if ((data['style_width_max_limit_value'] || null) != null || (data['width_max_limit_value'] || null) != null) { ent += 'am-container '; } // 样式处理 var style = ''; // 背景色 if ((data['style_background_color'] || null) != null) { style += 'background-color:' + data['style_background_color'] + ';'; } // 边线颜色 if ((data['style_border_color'] || null) != null) { style += 'border-color:' + data['style_border_color'] + ';'; } // 背景样式 // 是否不允许重复 if (parseInt(data.style_background_images_no_repeat || 0) == 1) { style += 'background-repeat:no-repeat;'; } // 是否铺满 if (parseInt(data.style_background_images_size_cover || 0) == 1) { style += 'background-size:cover;'; } // 是否居中 if (parseInt(data.style_background_images_position_center || 0) == 1) { style += 'background-position:center;'; } // 背景图片 var temp_style = style; if ((data.style_background_images || null) != null) { temp_style += 'background-image:url(' + data.style_background_images + ');'; } // 类和样式处理 $layout_content_obj.attr('class', $offcanvas_layout_config.attr('data-ent') + ' ' + ent); $layout_content_obj.attr('style', temp_style); // 数据加入配置 data['frontend_config'] = { style: style, ent: ent } $layout_content_obj.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_layout_config.offCanvas('close'); } /** * 模块-图片处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigImagesHandle (data) { // 基础信息 var doc = $offcanvas_config_images.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 图片必须 if ((data.content_images || null) == null) { Prompt($layout.data('upload-images-tips') || '请上传图片'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // 图片样式 var media_fixed = MediaFixedHandle(data); // html拼接 var html = '
'; html += ''; html += ''; html += ''; html += '
'; var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, media_fixed: media_fixed } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_images.offCanvas('close'); } /** * 模块-多图处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigManyImagesHandle (data) { // 基础信息 var doc = $offcanvas_config_many_images.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 数据字段 var fields = { content_images_: "images", content_to_name_: "name", content_to_type_: "type", content_to_value_: "value" }; var res = FormBackDataListHandle(data, fields); data = res.data; var data_list = res.data_list; if (data_list.length <= 0) { Prompt($layout.data('config-images-tips') || '请先添加图片并配置'); return false; } for (var i in data_list) { if ((data_list[i]['images'] || null) == null) { Prompt($layout.data('upload-images-tips') || '请上传图片'); return false; } } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // 展示模式 var show_style = data.view_list_show_style || 'routine'; // 图片样式 var media_fixed = MediaFixedHandle(data); // 数据项html var item_html = ''; if (show_style != 'list') { for (var i in data_list) { item_html += '
  • '; item_html += '' item_html += ''; item_html += ''; item_html += '
  • '; } } // html拼接 var html = '
    '; // 初始化参数 var option = {}; // 展示模式处理 var nav_dot_ent = ''; var list_ent = ''; switch (show_style) { // 滚动 case 'rolling': // 参数处理 var show_style_value = ViewRollingShowStyleValueHandle(data.view_list_show_style_value); // 是否展示导航点 nav_dot_ent = show_style_value.is_nav_dot ? '' : 'slides-rolling-not-dot'; // html拼接 html += ''; // 组件参数 option = { itemWidth: show_style_value.item_width, itemMargin: show_style_value.item_margin, slideshow: show_style_value.is_auto_play, controlNav: show_style_value.is_nav_dot }; break; // 列表 case 'list': // 参数处理 var show_style_value = ViewListShowStyleValueHandle(data.view_list_show_style_value); // 列表展示数量 var sm = show_style_value.view_list_number_sm || 2; var md = show_style_value.view_list_number_md || 5; var lg = show_style_value.view_list_number_lg || 5; // 外边距 var item_margin = parseInt(show_style_value.style_margin || 0); // 数据项样式处理 var item_style = (item_margin > 0) ? 'margin:' + item_margin + 'px 0 0 ' + item_margin + 'px;' : ''; // 设置了外边距,则计算平均移动值 var avg = (item_margin > 0) ? 'module-list-content-avg-' + item_margin : ''; // 列表class list_ent = avg + ' module-list-sm-' + sm + ' module-list-md-' + md + ' module-list-lg-' + md + ' '; html += ''; break; // 常规、默认 default: // html拼接 html += '
    '; html += ''; html += '
    '; break; } html += '
    '; // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, item_style: item_style, nav_dot_ent: nav_dot_ent, list_ent: list_ent, media_fixed: media_fixed } data['data_list'] = data_list; $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); // 滚动初始化 if (show_style != 'list') { $doc.find('.am-slider').flexslider(option); } $offcanvas_config_many_images.offCanvas('close'); } /** * 模块-图文处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigImagesTextHandle (data) { // 基础信息 var doc = $offcanvas_config_images_text.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 数据字段 var fields = { content_images_: "images", content_title_: "title", content_title_style_color_: "title_style_color", content_title_style_font_size_: "title_style_font_size", content_title_style_align_: "title_style_align", content_title_style_margin_top_: "title_style_margin_top", content_title_style_margin_right_: "title_style_margin_right", content_title_style_margin_bottom_: "title_style_margin_bottom", content_title_style_margin_left_: "title_style_margin_left", content_desc_: "desc", content_desc_style_color_: "desc_style_color", content_desc_style_font_size_: "desc_style_font_size", content_desc_style_align_: "desc_style_align", content_desc_style_margin_top_: "desc_style_margin_top", content_desc_style_margin_right_: "desc_style_margin_right", content_desc_style_margin_bottom_: "desc_style_margin_bottom", content_desc_style_margin_left_: "desc_style_margin_left", content_to_name_: "name", content_to_type_: "type", content_to_value_: "value" }; var res = FormBackDataListHandle(data, fields); data = res.data; var data_list = res.data_list; if (data_list.length <= 0) { Prompt($layout.data('config-images-text-tips') || '请先添加图文并配置'); return false; } for (var i in data_list) { if ((data_list[i]['images'] || null) == null && (data_list[i]['title'] || null) == null) { Prompt($layout.data('upload-images-or-title-tips') || '图片和标题必填一项'); return false; } } // 展示模式 var show_style = data.view_list_show_style || null; if (show_style == null) { Prompt($layout.data('data-show-modal-tips') || '请选择数据展示模式'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // 图片样式 var media_fixed = MediaFixedHandle(data); // html拼接 var html = '
    '; // 初始化参数 var option = {}; // 参数处理 var show_style_value = ViewListShowStyleValueHandle(data.view_list_show_style_value); // 外边距 var item_margin = parseInt(show_style_value.style_margin || 0); // 数据项样式处理 var item_style = (item_margin > 0 && show_style != 'rolling') ? 'margin:' + item_margin + 'px 0 0 ' + item_margin + 'px;' : ''; // 内容处理 var item_html = ''; var item_right_style = ''; var item_field_style = []; for (var i in data_list) { // 字段样式 if (item_field_style[i] == undefined) { item_field_style[i] = {}; } item_field_style[i]['title'] = StyleBaseHandle(data_list[i], 'title_style_'); item_field_style[i]['desc'] = StyleBaseHandle(data_list[i], 'desc_style_'); // 拼接html item_html += '
  • '; item_html += '
    '; switch (show_style) { // 左右 case 'leftright': var style_media_fixed_width = parseInt(data.style_media_fixed_width || 0); item_right_style = 'margin-left:10px;' + ((style_media_fixed_width > 0) ? 'width: calc(100% - ' + (style_media_fixed_width + 10) + 'px);' : ''); if ((data_list[i]['images'] || null) != null) { item_html += ''; item_html += ''; item_html += ''; } item_html += '
    '; if ((data_list[i]['title'] || null) != null) { item_html += ''; item_html += '

    ' + data_list[i]['title'] + '

    '; item_html += '
    '; } if ((data_list[i]['desc'] || null) != null) { item_html += '

    ' + data_list[i]['desc'] + '

    '; } item_html += '
    '; break; // 默认 上下、滚动 case 'updown': default: if ((data_list[i]['images'] || null) != null) { item_html += '' item_html += ''; item_html += ''; } if ((data_list[i]['title'] || null) != null) { item_html += ''; item_html += '

    ' + data_list[i]['title'] + '

    '; item_html += '
    '; } if ((data_list[i]['desc'] || null) != null) { item_html += '

    ' + data_list[i]['desc'] + '

    '; } break; } item_html += '
    '; item_html += '
  • '; } // 滚动 var nav_dot_ent = ''; var list_ent = ''; if (show_style == 'rolling') { // 参数处理 var show_style_value = ViewRollingShowStyleValueHandle(data.view_list_show_style_value); // 是否展示导航点 nav_dot_ent = show_style_value.is_nav_dot ? '' : 'slides-rolling-not-dot'; // html拼接 html += ''; // 组件参数 option = { itemWidth: show_style_value.item_width, itemMargin: show_style_value.item_margin, slideshow: show_style_value.is_auto_play, controlNav: show_style_value.is_nav_dot }; } else { // 列表展示数量 var sm = show_style_value.view_list_number_sm || 2; var md = show_style_value.view_list_number_md || 5; var lg = show_style_value.view_list_number_lg || 5; // 设置了外边距,则计算平均移动值 var avg = (item_margin > 0) ? 'module-list-content-avg-' + item_margin : ''; // 列表class list_ent = avg + ' module-list-sm-' + sm + ' module-list-md-' + md + ' module-list-lg-' + md + ' '; html += ''; } html += '
    '; // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, item_style: item_style, item_right_style: item_right_style, item_field_style: item_field_style, nav_dot_ent: nav_dot_ent, list_ent: list_ent, media_fixed: media_fixed } data['data_list'] = data_list; $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); // 滚动初始化 if (show_style == 'rolling') { $doc.find('.am-slider').flexslider(option); } $offcanvas_config_images_text.offCanvas('close'); } /** * 模块-图片魔方处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigImagesMagicCubeHandle (data) { // 基础信息 var doc = $offcanvas_config_images_magic_cube.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 数据字段 var fields = { content_images_: "images", content_to_name_: "name", content_to_type_: "type", content_to_value_: "value" }; var res = FormBackDataListHandle(data, fields); data = res.data; var data_list = res.data_list; for (var i in data_list) { if ((data_list[i]['images'] || null) == null) { Prompt($layout.data('upload-images-tips') || '请上传图片'); return false; } } // 展示模式 var show_style = data.view_list_show_style || null; if (show_style == null) { Prompt($layout.data('data-show-modal-tips') || '请选择数据展示模式'); return false; } // 外边距 var margin = parseInt(data.style_margin || 0); data['style_item_margin_top'] = margin; data['style_item_margin_left'] = margin; // 样式处理 var images_style = StyleBaseHandle(data, 'style_item_'); // 设置了外边距,则计算平均移动值 var list_ent = (margin > 0) ? 'module-list-content-avg-' + margin : ''; // 图片样式 var media_fixed = MediaFixedHandle(data); // 数据处理 var html = ''; var item_style = []; switch (show_style) { // 1图 case 'g1': item_style[0] = 'width:100%;'; html += `
    `; break; // 2竖图 case 'v2': item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; html += `
    `; break; // 3竖图 case 'v3': item_style[0] = 'width:33.33%;'; item_style[1] = 'width:33.33%;'; item_style[2] = 'width:33.33%;'; html += `
    `; break; // 4竖图 case 'v4': item_style[0] = 'width:25%;'; item_style[1] = 'width:25%;'; item_style[2] = 'width:25%;'; item_style[3] = 'width:25%;'; html += `
    `; break; // 2横图 case 'h2': item_style[0] = 'width:100%;'; item_style[1] = 'width:100%;'; html += `
    `; break; // 3横图 case 'h3': item_style[0] = 'width:100%;'; item_style[1] = 'width:100%;'; item_style[2] = 'width:100%;'; html += `
    `; break; // 4横图 case 'h4': item_style[0] = 'width:100%;'; item_style[1] = 'width:100%;'; item_style[2] = 'width:100%;'; item_style[3] = 'width:100%;'; html += `
    `; break; // 1左右2 case 'lr12': if (margin > 0) { item_style[0] = 'width:calc(50% + ' + (margin / 2) + 'px);'; item_style[1] = 'width:calc(50% - ' + (margin / 2) + 'px);'; } else { item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; } html += `
    `; break; // 1左右3 case 'lr13': if (margin > 0) { item_style[0] = 'width:calc(50% + ' + margin + 'px);'; item_style[1] = 'width:calc(50% - ' + margin + 'px);'; } else { item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; } html += `
    `; break; // 2左右1 case 'lr21': if (margin > 0) { item_style[0] = 'width:calc(50% - ' + (margin / 2) + 'px);'; item_style[1] = 'width:calc(50% + ' + (margin / 2) + 'px);'; } else { item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; } html += `
    `; break; // 3左右1 case 'lr31': if (margin > 0) { item_style[0] = 'width:calc(50% - ' + margin + 'px);'; item_style[1] = 'width:calc(50% + ' + margin + 'px);'; } else { item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; } html += `
    `; break; // 1上下2 case 'tb12': item_style[0] = 'width:100%;'; item_style[1] = 'width:50%;'; item_style[2] = 'width:50%;'; html += `
    `; break; // 1上下3 case 'tb13': item_style[0] = 'width:100%;'; item_style[1] = 'width:33.33%;'; item_style[2] = 'width:33.33%;'; item_style[3] = 'width:33.33%;'; html += `
    `; break; // 2上下1 case 'tb21': item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; item_style[2] = 'width:100%;'; html += `
    `; break; // 3上下1 case 'tb31': item_style[0] = 'width:33.33%;'; item_style[1] = 'width:33.33%;'; item_style[2] = 'width:33.33%;'; item_style[3] = 'width:100%;'; html += `
    `; break; // 2竖左右横2 case 'lrv2h2': if (margin > 0) { item_style[0] = 'width:calc(25% + ' + (margin / 2) + 'px);'; item_style[1] = 'width:calc(25% + ' + (margin / 2) + 'px);'; item_style[2] = 'width:calc(50% - ' + margin + 'px);'; } else { item_style[0] = 'width:25%;'; item_style[1] = 'width:25%;'; item_style[2] = 'width:50%;'; } html += `
    `; break; // 2横左右竖2 case 'lrh2v2': if (margin > 0) { item_style[0] = 'width:calc(50% - ' + margin + 'px);'; item_style[1] = 'width:calc(25% + ' + (margin / 2) + 'px);'; item_style[2] = 'width:calc(25% + ' + (margin / 2) + 'px);'; } else { item_style[0] = 'width:50%;'; item_style[1] = 'width:25%;'; item_style[2] = 'width:25%;'; } html += `
    `; break; // 4图 case 'g4': item_style[0] = 'width:50%;'; item_style[1] = 'width:50%;'; item_style[2] = 'width:50%;'; item_style[3] = 'width:50%;'; html += `
    `; break; } // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { list_ent: list_ent, item_style: item_style, images_style: images_style, media_fixed: media_fixed } data['data_list'] = data_list; $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_images_magic_cube.offCanvas('close'); } /** * 模块-视频处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigVideoHandle (data) { // 基础信息 var doc = $offcanvas_config_video.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 视频 if ((data.content_video || null) == null) { Prompt($layout.data('upload-video-tips') || '请上传视频'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // 视频固定 var media_fixed = MediaFixedHandle(data); // html拼接 var html = '
    '; html += '
    '; html += ''; html += '
    '; html += '
    '; var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, media_fixed: media_fixed } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_video.offCanvas('close'); } /** * 模块-商品处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigGoodsHandle (data) { // 基础信息 var doc = $offcanvas_config_goods.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 数据类型 var goods_ids = ''; var category_id = 0; switch (data.goods_data_type) { // 商品 case 'goods': if ((data.goods_ids || null) == null) { Prompt($layout.data('choice-goods-tips') || '请选择商品'); return false; } goods_ids = data.goods_ids; break; // 商品分类 case 'category': if ((data.goods_category_value || null) == null) { Prompt($layout.data('choice-goods-category-tips') || '请选择商品分类'); return false; } var category = JSON.parse(decodeURIComponent(data.goods_category_value)) || null; category_id = category[category.length - 1]['id']; break; default: Prompt(($layout.data('data-type-tips') || '数据类型有误') + '[' + data.goods_data_type + ']'); return false; } // 获取商品 var $this = $offcanvas_config_goods.find('button[type="submit"]'); var url = $offcanvas_config_goods.data('data-url'); $this.button('loading'); $.ajax({ url: RequestUrlHandle(url), type: 'post', data: { "data_type": data.goods_data_type, "goods_ids": goods_ids, "category_id": category_id, "order_by_type": data.goods_order_by_type || 0, "order_by_rule": data.goods_order_by_rule || 0, "order_limit_number": data.goods_order_limit_number || 10 }, dataType: 'json', success: function (res) { $this.button('reset'); if (res['code'] == 0) { if ((res.data || null) != null && res.data.length > 0) { // 列表数据 var list = res.data; // 列表展示数量 var sm = data.view_list_number_sm || 2; var md = data.view_list_number_md || 5; var lg = data.view_list_number_lg || 5; // 外边距 var margin = data.style_margin || 0; // 内容样式处理 var style = StyleBaseHandle(data, 'style_module_'); // 商品样式处理 var rules = { margin: { value: "{var}px 0 0 {var}px", var: "{var}" } }; var item_style = StyleBaseHandle(data, 'style_', rules); // 图片样式 var media_fixed = MediaFixedHandle(data); // 模块容器设置 var $doc = $(doc); // 数据项html var item_html = ''; for (var i in list) { item_html += `
  • ` + list[i]['title'] + `

    `+ __currency_symbol__ + list[i]['price'] + `

  • `; } // 商品容器 var html = '
    '; // 初始化参数 var option = {}; // 展示模式 var nav_dot_ent = ''; var list_ent = ''; var item_right_style = ''; var show_style = data.view_list_show_style || 'routine'; switch (show_style) { // 滚动 case 'rolling': // 参数处理 var show_style_value = ViewRollingShowStyleValueHandle(data.view_list_show_style_value); // 是否展示导航点 nav_dot_ent = show_style_value.is_nav_dot ? '' : 'slides-rolling-not-dot'; // html拼接 html += ''; // 配置参数 option = { itemWidth: show_style_value.item_width, itemMargin: show_style_value.item_margin, slideshow: show_style_value.is_auto_play, controlNav: show_style_value.is_nav_dot } break; // 左图右文 case 'leftright': var style_media_fixed_width = parseInt(data.style_media_fixed_width || 0); item_right_style = 'margin-left:10px;' + ((style_media_fixed_width > 0) ? 'width: calc(100% - ' + (style_media_fixed_width + 10) + 'px);' : ''); // 设置了外边距,则计算平均移动值 var avg = (margin > 0) ? 'module-list-content-avg-' + margin : ''; // 列表class list_ent = avg + ' module-list-sm-' + sm + ' module-list-md-' + md + ' module-list-lg-' + md + ' '; html += ''; break; // 常规、默认 default: // 设置了外边距,则计算平均移动值 var avg = (margin > 0) ? 'module-list-content-avg-' + margin : ''; // 列表class list_ent = avg + ' module-list-sm-' + sm + ' module-list-md-' + md + ' module-list-lg-' + md + ' '; html += ''; break; } html += '
    '; // 固定商品则加入数据中,方便使用 if (data.goods_data_type == 'goods') { data['data_list'] = list; } // 模块容器设置 $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, item_style: item_style, item_right_style: item_right_style, nav_dot_ent: nav_dot_ent, list_ent: list_ent, media_fixed: media_fixed } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); // 组件参数 if (JSON.stringify(option) !== '{}') { $doc.find('.am-slider').flexslider(option); } // 关闭商品窗口 $offcanvas_config_goods.offCanvas('close'); } else { Prompt($layout.data('goods-data-empty-tips') || '商品信息为空'); } } else { Prompt(res.msg); } }, error: function (res) { $this.button('reset'); var msg = HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'); Prompt(msg, null, 30); } }); } /** * 模块-标题处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigTitleHandle (data) { // 基础信息 var doc = $offcanvas_config_title.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 视频 if ((data.content_title || null) == null) { Prompt($layout.data('main-title-tips') || '请填写主标题'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // 主标题样式 var style_title_main = StyleBaseHandle(data, 'style_title_'); // 副标题样式 var style_title_vice = StyleBaseHandle(data, 'style_title_vice_'); // 右侧按钮样式 var style_title_more = StyleBaseHandle(data, 'style_title_more_'); // html拼接 var html = '
    '; html += '
    '; html += '' + data.content_title + ''; // 副标题 if ((data.content_title_vice || null) != null) { html += '' + data.content_title_vice + ''; } // 关键字 var field_first = 'content_item_keywords_'; var field_first_length = field_first.length; var key_temp = []; var keywords_list = []; for (var i in data) { if (i.substr(0, field_first_length) == field_first) { keywords_list.push(JSON.parse(decodeURIComponent(data[i]))); delete data[i]; } } if (keywords_list.length > 0) { html += '
    '; for (var i in keywords_list) { var kt_item_style = ((keywords_list[i]['style_keywords_color'] || null) == null) ? '' : 'color:' + keywords_list[i]['style_keywords_color'] + ';'; html += '' + keywords_list[i]['content_keywords'] + ''; } html += '
    '; } data['keywords_list'] = keywords_list; // 右侧按钮 if ((data.content_title_more || null) != null) { html += ''; } html += '
    '; html += '
    '; // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style, style_title_main: style_title_main, style_title_vice: style_title_vice, style_title_more: style_title_more } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_title.offCanvas('close'); } /** * 模块-自定义html处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigCustomHandle (data) { // 基础信息 var doc = $offcanvas_config_custom.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 模块容器设置 var $doc = $(doc); $doc.html(data.custom || ''); // 数据加入配置 $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_custom.offCanvas('close'); } /** * 模块-辅助线处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigBorderHandle (data) { // 基础信息 var doc = $offcanvas_config_border.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 边线类型、和大小 if ((data.style_border_style || null) == null) { Prompt($layout.data('border-style-tips') || '请选择边线类型'); return false; } if ((data.style_border_width || null) == null) { Prompt($layout.data('border-style-max-tips') || '请输入边线、最大10的数字'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // html拼接 var html = '
    '; // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_border.offCanvas('close'); } /** * 模块-辅助空白处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleConfigHeightHandle (data) { // 基础信息 var doc = $offcanvas_config_height.attr('data-doc') || null; if (doc == null) { Prompt($layout.data('module-tab-tips') || '模块标记有误'); return false; } // 高度 if ((data.style_height || null) == null) { Prompt($layout.data('height-max-tips') || '请输入高度、最大100的数字'); return false; } // 样式处理 var style = StyleBaseHandle(data, 'style_'); // html拼接 var html = '
    '; // 模块容器设置 var $doc = $(doc); $doc.html(html); // 数据加入配置 data['frontend_config'] = { style: style } $doc.attr('data-json', encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data))))); $offcanvas_config_height.offCanvas('close'); } /** * 模块-滚动配置处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleModalRollingConfigHandle (data) { $base_show_style_value_obj.val(encodeURIComponent(JSON.stringify(data))); $modal_rolling_config.modal('close'); } /** * 模块-列表配置处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleModalListConfigHandle (data) { $base_show_style_value_obj.val(encodeURIComponent(JSON.stringify(data))); $modal_list_config.modal('close'); } /** * 模块-标题-关键字处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModuleModalTitleKeywordsHandle (data) { // 操作类型 var type = parseInt($modal_title_keywords.attr('data-opt-type') || 0); // 获取设置的数据、关键字名称必填 if ((data.content_keywords || null) == null) { $modal_title_keywords.find('input[name="content_keywords"]').focus(); Prompt($layout.data('keywords-tips') || '请填写关键字'); return false; } // 生成数据项 var params = { "content_keywords": data.content_keywords, "style_keywords_color": data.style_keywords_color || '', "content_to_type": data.content_to_type || '', "content_to_name": data.content_to_name || '', "content_to_value": data.content_to_value || '' }; var html = ModuleConfigTitleKeywordsContentHtml(params); // 0添加、1编辑 if (type == 0) { $offcanvas_config_title.find('.config-title-container').append(html); } else { $base_title_keywords_obj.prop('outerHTML', html); } $modal_title_keywords.modal('close'); } /** * 模块-弹窗搜索选择回调处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-04 * @desc description * @param {[object]} data [表单数据] */ function FormBackModulePopupGoodsSearchHandle (data) { // 参数配置 var type = $popup_goods_search.find('.am-tabs-nav li.am-active a').data('value'); var $vb = $popup_goods_search.find('.form-container-' + type); var params = { "type": type, "value": "" }; switch (type) { // 商品分类 case 'category': var json = $vb.find('.already-select-tips').attr('data-value') || null; if (json != null) { json = JSON.parse(decodeURIComponent(json)) || null; } if (json == null) { Prompt($layout.data('before-choice-goods-category-tips') || '请先选择商品分类'); return false; } params['value'] = json; break; // 品牌 case 'brand': var $vbs = $vb.find('ul li.active a'); if ($vbs.length <= 0) { Prompt($layout.data('before-choice-brand-tips') || '请先选择品牌'); return false; } params['value'] = { "id": $vbs.data('value'), "name": $vbs.find('span').text() }; break; // 关键字 case 'keywords': var value = $vb.find('input').val() || ''; if (value == '') { $vb.find('input').focus(); Prompt($layout.data('before-input-keywords-tips') || '请先输入关键字1~30个字符'); return false; } // 输入关键字去除引号 params['value'] = value.replace(new RegExp('"', 'g'), '').replace(new RegExp("'", 'g'), ''); break; } // 数据赋值并关闭弹窗 var show_name = ModuleConfigGoodsSearchPageShowName(params); var $page = $modal_pages_select.find('.am-tabs-bd ul li.page-goods_search a'); $page.find('span').text($page.data('name') + show_name); $page.attr('data-json', encodeURIComponent(JSON.stringify(params))); $popup_goods_search.modal('close'); } /** * 模块-基础布局处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [表单数据] */ function ModuleConfigBaseContentHandle (data) { // 默认值处理 data.style_width_max_limit_value = data.style_width_max_limit_value || ''; data.style_background_images_no_repeat = data.style_background_images_no_repeat || ''; data.style_background_images_size_cover = data.style_background_images_size_cover || ''; data.style_background_images_position_center = data.style_background_images_position_center || ''; // 图片处理 var $ul = $offcanvas_layout_config.find('ul.layout-style-background-images-view'); if ((data.style_background_images || null) == null) { $ul.find('li').remove(); } else { var html = `
  • `; $ul.html(html); } return data; } /** * 模块-图片链接地址生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[string]} name [显示名称] */ function ModuleConfigImagesToContentHtml (name) { // 无数据 if ((name || null) == null) { return '' + ($layout.data('choice-url-tips') || '请选择跳转链接') + ''; } // 有数据 var html = ''; html += '' + name + ''; html += ''; html += ''; html += '' + ($layout.data('edit-name') || '修改') + ''; return html; } /** * 模块-商品分类地址生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[string]} name [显示名称] */ function ModuleConfigGoodsCategoryContentHtml (name) { // 无数据 if ((name || null) == null) { return '' + ($layout.data('choice-goods-category-tips') || '请选择商品分类') + ''; } // 设置数据 var html = ''; html += '' + name + ''; html += ''; html += ''; html += '' + ($layout.data('edit-name') || '修改') + ''; return html; } /** * 模块-商品信息生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [商品列表] */ function ModuleConfigGoodsItemContentHtml (data) { var html = ''; if ((data || null) != null && data.length > 0) { for (var i in data) { html += '
  • '; html += ''; html += ''; html += '' + data[i]['title'] + ''; html += ''; html += '
  • '; } } return html; } /** * 模块-多图信息生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[string]} images [图片地址] * @param {[string]} type [类型] * @param {[string]} name [名称] * @param {[string]} value [数据值] */ function ModuleConfigManyImagesItemContentHtml (images, type, name, value) { var index = parseInt(Math.random() * 1000001); var html = `
    + ` + ($layout.data('upload-images-name') || '上传图片') + `
    `+ ModuleConfigImagesToContentHtml(name) + `
    `; return html; } /** * 模块-图文信息生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [配置数据] */ function ModuleConfigImagesTextItemContentHtml (data) { if ((data || null) == null) { data = {}; } if ((data.title_style_align || null) == null) { data.title_style_align = 'left'; } if ((data.desc_style_align || null) == null) { data.desc_style_align = 'left'; } var index = parseInt(Math.random() * 1000001); var font_size = $layout.data('images-text-font-size') || '大小'; var title_message = $layout.data('images-text-margin-title-message') || '标题外边距最大1000'; var desc_message = $layout.data('images-text-margin-desc-message') || '描述外边距最大1000'; var margin_top = $layout.data('images-text-margin-top') || '外上'; var margin_right = $layout.data('images-text-margin-right') || '外右'; var margin_bottom = $layout.data('images-text-margin-bottom') || '外下'; var margin_left = $layout.data('images-text-margin-left') || '外左'; var position_left = $layout.data('images-text-position-left') || '外左'; var position_center = $layout.data('images-text-position-center') || '外中'; var position_right = $layout.data('images-text-position-right') || '外右'; var html = `
    + ` + ($layout.data('upload-images-name') || '上传图片') + `
    `+ ModuleConfigImagesToContentHtml(data.name) + `
    `; // 标题 var title_style_color = (data.title_style_color || null) == null ? '' : 'background-color:' + data.title_style_color + ';border-color:' + data.title_style_color + ';'; var title = $layout.data('images-text-title') || '标题'; html += `
    `; // 外边距 html += `
    px
    `; // 字体大小和左右居中 html += `
    px
    `; html += `
    `; // 描述 var desc = $layout.data('images-text-desc') || '描述'; var desc_style_color = (data.desc_style_color || null) == null ? '' : 'background-color:' + data.desc_style_color + ';border-color:' + data.desc_style_color + ';'; html += `
    `; // 外边距 html += `
    px
    `; // 字体大小和左右居中 html += `
    px
    `; html += `
    `; return html; } /** * 模块-图片魔方信息生成 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-18 * @desc description * @param {[object]} data [配置数据] */ function ModuleConfigImagesMagicCubeItemContentHtml (data) { // 基础处理 if ((data || null) == null) { data = {}; } // 展示模式 var value = (((data.view_list_show_style || null) == null) ? $offcanvas_config_images_magic_cube.find('input[name="view_list_show_style"]:checked').val() : data.view_list_show_style) || null; if (value == null) { Prompt($layout.data('data-show-modal-tips') || '请选择数据展示模式'); return false; } var modal_arr = { g1: 1, v2: 2, v3: 3, v4: 4, h2: 2, h3: 3, h4: 4, lr12: 3, lr13: 4, lr21: 3, lr31: 4, tb12: 3, tb13: 4, tb21: 3, tb31: 4, lrv2h2: 4, lrh2v2: 4, g4: 4 }; if (modal_arr[value] == undefined) { Prompt(($layout.data('data-show-modal-error-tips') || '展示模式有误') + '(' + value + ')'); return false; } // 编辑则重新添加 var count = 0; if (JSON.stringify(data) == '{}') { // 已有数据条数、满足数量则不增加,多余则移除 count = $offcanvas_config_images_magic_cube.find('.config-images-magic-cube-container > .am-panel').length; var max = modal_arr[value] - count; if (max < 0) { for (var i = count; i >= modal_arr[value]; i--) { $offcanvas_config_images_magic_cube.find('.config-images-magic-cube-container > .am-panel:eq(' + i + ')').remove(); } } if (max <= 0) { return false; } } // 生成数据 var html = ''; var data_list = data.data_list || []; for (var i = count; i < modal_arr[value]; i++) { var item = data_list[i] || {}; html += `
    + ` + ($layout.data('upload-images-name') || '上传图片') + `
    `+ ModuleConfigImagesToContentHtml(item.name) + `
    `; } return html; } /** * 模块-标题关键字 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-12 * @desc description * @param {[object]} data [关键字数据项配置] */ function ModuleConfigTitleKeywordsContentHtml (data) { var index = parseInt(Math.random() * 1000001); var html = '
  • '; html += ''; html += '' + (data.content_keywords || '') + ''; html += ''; html += ''; html += '
  • '; return html; } /** * 模块-标题关键字打开弹窗 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-12 * @desc description * @param {[int]} type [操作类型(0添加、 1编辑)] * @param {[object]} data [关键字数据项配置] */ function ModuleConfigTitleKeywordsOpen (type, data) { // 数据处理 if ((data || null) != null) { data = JSON.parse(decodeURIComponent(data)) || null; } if ((data || null) == null) { data = { "content_keywords": "", "style_keywords_color": "", "content_to_name": "", "content_to_type": "", "content_to_value": "" }; } // 表单数据赋值 FormDataFill(data, '#modal-module-title-keywords'); // 链接地址 $modal_title_keywords.find('.form-view-choice-container-content').html(ModuleConfigImagesToContentHtml(data.content_to_name)); // 关键字颜色 var color = data.style_keywords_color || ''; $modal_title_keywords.find('.module-style-color_keywords').css({ "background-color": color, "border-color": color, "color": color }); // 开启标题关键字配置弹窗 $modal_title_keywords.modal({ width: 260, height: 210, closeViaDimmer: false }); $modal_title_keywords.attr('data-opt-type', type || 0); } /** * 模块商品搜索-页面展示名称 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-05-20 * @desc description * @param {[string]} data -> type [类型] * @param {[string|object]} data -> value [选择的数据值] */ function ModuleConfigGoodsSearchPageShowName (data) { var name = ''; if ((data || null) != null && (data.type || null) != null && (data.value || null) != null) { var value = data['value']; switch (data.type) { // 商品分类 case 'category': name = ($layout.data('goods-category-name') || '商品分类') + '-' + value[value.length - 1]['name']; break; // 品牌 case 'brand': name = ($layout.data('brand-name') || '品牌') + '-' + value['name']; break; // 关键字 case 'keywords': name = ($layout.data('keywords-name') || '关键字') + '-' + value; break; } } return (name || null) == null ? '' : '(' + name + ')'; } /** * 左侧商品配置商品id * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-06 * @desc description */ function OffcanvasModuleConfigGoodsIds () { return $('#offcanvas-module-config-goods input[name="goods_ids"]').val() || ''; } /** * 滚动数据参数处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-12 * @desc description * @param {[object]} data [配置数据] */ function ViewRollingShowStyleValueHandle (data) { // 数据处理 var value = ((data || null) == null) ? {} : (JSON.parse(decodeURIComponent(data)) || {}); // 宽度 value['item_width'] = parseInt(value['item_width'] || 200); // 外边距 value['item_margin'] = parseInt(value['item_margin'] || 0); // 是否自动播放 value['is_auto_play'] = ((value.is_auto_play || 0) == 0) ? false : true; // 是否展示导航点 value['is_nav_dot'] = ((value.is_nav_dot || 0) == 0) ? false : true; return value; } /** * 列表数据参数处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-12 * @desc description * @param {[object]} data [配置数据] */ function ViewListShowStyleValueHandle (data) { // 数据处理 var value = ((data || null) == null) ? {} : (JSON.parse(decodeURIComponent(data)) || {}); // 小屏 value['view_list_number_sm'] = parseInt(value['view_list_number_sm'] || 2); // 中屏 value['view_list_number_md'] = parseInt(value['view_list_number_md'] || 5); // 大屏 value['view_list_number_lg'] = parseInt(value['view_list_number_lg'] || 5); // 外边距 value['style_margin'] = parseInt(value['style_margin'] || 0); return value; } /** * 左侧配置 - 页面选择 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-10 * @desc description * @param {[object]} obj [当前对象] * @param {[object]} event [事件] */ function OffcanvasConfigPagesChoice (obj, event) { // 当前选择页面的链接位置对象 $page_parent_obj = obj.parent(); // 获取已选择的数据 var $parent = $page_parent_obj.parents('.form-view-choice-container'); var key = $parent.data('key'); var index = (key == undefined) ? '' : '_' + key; var to_type = $parent.find('input[name="content_to_type' + index + '"]').val() || null; var to_name = $parent.find('input[name="content_to_name' + index + '"]').val() || null; var to_value = $parent.find('input[name="content_to_value' + index + '"]').val() || null; // 所有处理 $modal_pages_select.find('.am-tabs-bd ul li').each(function (k, v) { $(this).removeClass('active'); $(this).find('a span').text($(this).find('a').data('name')); }); $modal_pages_select.find('.am-tabs-bd ul li').removeClass('active'); $modal_pages_select.find('.am-tabs-bd ul li a').attr('data-json', ''); // 自定义链接地址 if (to_type == 'pages-custom-url') { var form_doc = '.pages-custom-url-container'; if ((to_value || null) == null) { to_value = GetFormVal(form_doc, true); } else { to_value = JSON.parse(decodeURIComponent(to_value)); } FormDataFill(to_value, form_doc); var index = 2; // 常规页面选择 } else { // 当前选中的数据 var $active_obj = $modal_pages_select.find('.am-tabs-bd ul li.page-' + to_type); $active_obj.addClass('active'); $active_obj.find('a span').text(to_name); $active_obj.find('a').attr('data-json', to_value); // 当前选中的索引值 var index = $active_obj.parents('.am-tab-panel').index(); if (index == -1) { index = 0; } } // tab切换 $modal_pages_select.find('.am-tabs-nav li').removeClass('am-active'); $modal_pages_select.find('.am-tabs-nav li').eq(index).addClass('am-active'); $modal_pages_select.find('.am-tabs-bd .am-tab-panel').removeClass('am-active'); $modal_pages_select.find('.am-tabs-bd .am-tab-panel').eq(index).addClass('am-active'); // 开启页面选择弹窗 $modal_pages_select.modal({ width: 380, height: 475, closeViaDimmer: false }); } /** * 左侧配置 - 页面移除 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-10 * @desc description * @param {[object]} obj [当前对象] * @param {[object]} event [事件] */ function OffcanvasConfigPagesRemove (obj, event) { var $parent = obj.parents('.form-view-choice-container'); var $content = $parent.find('.form-view-choice-container-content'); var key = $parent.data('key'); var index = (key == undefined) ? '' : '_' + key; $content.html(ModuleConfigImagesToContentHtml()); $parent.find('input[name="content_to_type' + index + '"]').val(''); $parent.find('input[name="content_to_name' + index + '"]').val(''); $parent.find('input[name="content_to_value' + index + '"]').val(''); event.stopPropagation(); } /** * 模块背景色组件处理 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-09 * @desc description * @param {[object]} e [模块对象] */ function ModuleColorpickerHandle (e) { e.find('.colorpicker-submit').each(function (k, v) { var color = $(this).prev().val() || ''; var style = $(this).data('color-style') || null; if (style != null) { var arr = style.split('|'); for (var i in arr) { $(this).css(arr[i], color); $(this).find('.fcolorpicker-curbox').css(arr[i], color); } } }); } /** * 布局页面配置获取 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-16 * @desc description */ function LayoutViewConfig () { // 循环读取布局 var data = []; $('.layout-container .layout-view').each(function (k, v) { // 布局数据 var json = $(this).find('.layout-content-children').attr('data-json') || null; var layout_temp = { value: $(this).data('value').toString(), status: ($(this).find('.layout-content-submit input[type="checkbox"]:checked').val() == 'on') ? 1 : 0, config: (json == null) ? {} : JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)), children: [] }; // 模块容器 $(this).find('.layout-content-container').each(function (ks, vs) { // 容器数据 var json = $(this).attr('data-json') || null; var content_temp = { config: (json == null) ? {} : JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)), children: [] }; // 模块 $(this).find('.layout-content .module-view').each(function (kss, vss) { // 模块数据 var json = $(this).find('.module-content').attr('data-json') || null; var value = $(this).find('.module-view-submit-container').data('value'); var module_config = { value: value, name: layout_module_type_arr[value], config: (json == null) ? {} : JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)) }; // 商品模块移除商品列表 if (value == 'goods') { delete module_config.config.data_list; } content_temp.children.push(module_config); }); // 容器加入布局 layout_temp.children.push(content_temp); }); // 加入数据列表 data.push(layout_temp); }); return data; } /** * 状态切换组件初始化 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-06-18 * @desc description */ function LayoutSwitchInit () { SwitchInit (); } $(function () { // 开关变化 $(document).on('click', '.layout-view .switch-checkbox', function () { var state = $(this).find('input').is(':checked') ? true : false; if (state === true) { $(this).parents('.layout-view').removeClass('layout-view-hidden'); } else { $(this).parents('.layout-view').addClass('layout-view-hidden'); } }) // 布局拖拽 $layout.dragsort({ dragSelector: '.drag-submit', placeHolderTemplate: '
    ' }); // 模块拖拽 ModuleDragSortInit(); // 开关初始化 LayoutSwitchInit(); // 布局/模块切换事件 $('.renovation-tabs .am-tabs-nav a').on('click', function () { $(this).parent('li').addClass('am-active').siblings('li').removeClass('am-active'); $('.renovation-tabs .am-tabs-bd .renovation-panel').addClass('am-hide'); $($(this).attr('href')).removeClass('am-hide'); }); // 布局拖放 $(document).on('dragstart', '.structure-drag button', function (e) { // 布局配置 var drag_value = $(this).data('value'); // 拖拽过程中经过的元素 $(document).on('dragenter', '.layout-view, .layout-container-tips', function (e) { // 当前是否在布局模式下操作 if ($('.renovation-tabs .am-tabs-nav li.am-active').data('value') == 'structure') { $('.layout-view, .layout-container-tips').removeClass('layout-view-dragenter'); $(this).addClass('layout-view-dragenter'); } }); // 拖拽离开元素移除过程中添加的样式 $(document).on('dragleave', '.structure-drag button', function (e) { $('.layout-view,.layout-container-tips').removeClass('layout-view-dragenter'); }); // 拖拽结束 $(document).on('dragend', '.structure-drag button', function (e) { // 移除过程中添加的样式 $('.layout-view,.layout-container-tips').removeClass('layout-view-dragenter'); // 关闭事件 $('.layout-view, .layout-container-tips').off('dragover'); $('.layout-view, .layout-container-tips').off('dragenter'); $('.layout-view, .layout-container-tips').off('drop'); }); // 拖拽过程中一直在元素内、并阻止默认事件 $(document).on('dragover', '.layout-container', function (e) { e.preventDefault(); e.stopPropagation(); }); // 拖放接收事件 $('.layout-view, .layout-container-tips').on('drop', function (e) { // 添加布局 $(this).before(StructureDragHtmlCreate(drag_value)); // 容器设置弹出框提示初始化 $('.layout-content-submit-set').popover({ content: $layout.data('layout-content-set-tips') || '容器设置', trigger: 'hover focus', theme: 'sm' }); // 新的元素新增样式 var $new = $(this).prev(); $new.addClass('layout-view-new'); setTimeout(function () { $new.removeClass('layout-view-new'); }, 1500); // 模块拖拽 ModuleDragSortInit($new.find('.layout-content')); // 关闭事件 $('.layout-view, .layout-container-tips').off('dragover'); $('.layout-view, .layout-container-tips').off('dragenter'); $('.layout-view, .layout-container-tips').off('drop'); // 开关初始化 LayoutSwitchInit(); // 移除布局提示 $('.layout-container-tips').remove(); }); }); // 布局设置 $(document).on('click', '.layout-submit-set', function () { // 布局对象 $layout_content_obj = $(this).parents('.layout-content-submit').next(); // 配置数据 var config_doc = '#offcanvas-layout-config'; var json = $layout_content_obj.attr('data-json') || null; if (json != null) { // 数据解析 json = JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)) || null; } // 获取表单字段并赋空值 if ((json || null) == null) { json = GetFormVal(config_doc, true); for (var i in json) { json[i] = ''; } } // 节点数据处理 json = ModuleConfigBaseContentHandle(json); // 表单赋值 FormDataFill(json, config_doc); // 单选框初始化 $offcanvas_layout_config.find('input[type="checkbox"], input[type="radio"]').uCheck(); // 背景色组件处理 ModuleColorpickerHandle($offcanvas_layout_config); // 指定操作类型 $offcanvas_layout_config.attr('data-ent', 'layout-content-children'); // 打开配置 $offcanvas_layout_config.offCanvas('open'); }); // 布局移除 $(document).on('click', '.layout-submit-del', function () { var $this = $(this); AMUI.dialog.confirm({ title: $layout.data('layout-reminder-title') || '温馨提示', content: $layout.data('layout-reminder-msg') || '移除后不可恢复、确定继续吗?', onConfirm: function (e) { // 移除布局 $this.parents('.layout-view').remove(); // 无布局则添加提示信息 if ($('.layout-container .layout-view').length <= 0) { $layout.html('
    ' + ($layout.data('layout-container-tips') || '布局拖放到该区域松开鼠标即可') + '
    '); } } }); }); // 布局容器设置 $(document).on('click', '.layout-content-submit-set', function () { // 容器内容对象 $layout_content_obj = $(this).parents('.layout-content-container'); // 配置数据 var config_doc = '#offcanvas-layout-config'; var json = $layout_content_obj.attr('data-json') || null; if (json != null) { // 数据解析 json = JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)) || null; } // 获取表单字段并赋空值 if ((json || null) == null) { json = GetFormVal(config_doc, true); for (var i in json) { json[i] = ''; } } // 节点数据处理 json = ModuleConfigBaseContentHandle(json); // 表单赋值 FormDataFill(json, config_doc); // 单选框初始化 $offcanvas_layout_config.find('input[type="checkbox"], input[type="radio"]').uCheck(); // 背景色组件处理 ModuleColorpickerHandle($offcanvas_layout_config); // 指定操作类型 $offcanvas_layout_config.attr('data-ent', 'layout-content-container'); // 打开配置 $offcanvas_layout_config.offCanvas('open'); }); // 模块拖放 $(document).on('dragstart', '.renovation-drag button', function (e) { // 布局配置 var drag_value = $(this).data('value'); // 拖拽过程中经过的元素 $(document).on('dragenter', '.layout-content', function (e) { // 当前是否在布局模式下操作 if ($('.renovation-tabs .am-tabs-nav li.am-active').data('value') == 'module') { $('.layout-content').removeClass('layout-content-dragenter'); if (!$(this).hasClass('.layout-content-tips')) { $(this).addClass('layout-content-dragenter'); } } }); // 拖拽离开元素移除过程中添加的样式 $(document).on('dragleave', '.renovation-drag button', function (e) { $('.layout-content').removeClass('layout-content-dragenter'); }); // 拖拽结束 $(document).on('dragend', '.renovation-drag button', function (e) { // 移除过程中添加的样式 $('.layout-content').removeClass('layout-content-dragenter'); // 关闭事件 $('.layout-content').off('dragover'); $('.layout-content').off('dragenter'); $('.layout-content').off('drop'); }); // 拖拽过程中一直在元素内、并阻止默认事件 $(document).on('dragover', '.layout-content', function (event) { event.preventDefault(); event.stopPropagation(); }); // 拖放接收事件 $('.layout-content').on('drop', function (e) { // 生成模块html var html = RenovationModuleDragHtmlCreate(drag_value); if (html != false) { // 添加模块 $(this).find('.layout-content-tips').remove(); $(this).append(html); // 模块弹出框提示初始化 $('.module-view-submit-drag').popover({ content: $layout.data('module-drag-title') || '拖拽排序', trigger: 'hover focus', theme: 'sm' }); $('.module-view-submit-set').popover({ content: $layout.data('module-set-title') || '模块设置', trigger: 'hover focus', theme: 'sm' }); $('.module-view-submit-del').popover({ content: $layout.data('module-del-title') || '模块移除', trigger: 'hover focus', theme: 'sm' }); } // 关闭事件 $('.layout-content').off('dragover'); $('.layout-content').off('dragenter'); $('.layout-content').off('drop'); }); }); // 模块移除 $(document).on('click', '.module-view-submit-del', function () { var $this = $(this); AMUI.dialog.confirm({ title: $layout.data('layout-reminder-title') || '温馨提示', content: $layout.data('layout-reminder-msg') || '移除后不可恢复、确定继续吗?', onConfirm: function (e) { // 模块容器 var $module_view = $this.parents('.layout-content'); // 移除模块 $this.parents('.module-view').remove(); // 无模块则添加提示信息 if ($module_view.find('.module-view').length <= 0) { $module_view.html('
    ' + ($layout.data('layout-content-tips') || '模块内容区域') + '
    '); } } }); }); // 模块设置 $(document).on('click', '.module-view-submit-set', function () { // 基础 var $parent = $(this).parents('.module-view-submit-container'); var value = $parent.data('value') || null; var index = $parent.data('index') || null; var doc = $parent.data('doc') || null; if (value == null || index == null || doc == null) { Prompt($layout.data('module-attr-tips') || '模块属性有误'); return false; } // 公共数据 var json = $(doc).attr('data-json') || null; if (json != null) { // 数据解析 json = JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(json)).toString(CryptoJS.enc.Utf8)) || null; } // 配置模块 var config_doc = '#offcanvas-module-config-' + value; var $config = $(config_doc); $config.attr('data-value', value); $config.attr('data-index', index); $config.attr('data-doc', doc); // 获取表单字段并赋空值 if ((json || null) == null) { var fields_dv = { goods_order_by_type: 0, goods_order_by_rule: 0, view_list_show_style: 'routine', view_list_number_sm: 2, view_list_number_md: 5, view_list_number_lg: 5, goods_data_type: "goods" }; json = GetFormVal(config_doc, true); for (var i in json) { json[i] = (fields_dv[i] == undefined) ? '' : fields_dv[i]; } } // 展示模式默认值处理、默认常规模式 if ((json.view_list_show_style || null) == null) { json['view_list_show_style'] = 'routine'; } // 根据模块类型处理 switch (value) { // 图片模块 case 'images': var default_images = $config.data('default-images'); var html = '
  • '; html += ''; html += ''; html += '
  • '; $config.find('ul.module-images-type-images-view').html(html); // 链接地址处理 $config.find('.form-view-choice-container-content').html(ModuleConfigImagesToContentHtml(json.content_to_name || '')); break; // 多图 case 'many-images': var html = ''; if ((json.data_list || null) != null && json.data_list.length > 0) { for (var i in json.data_list) { html += ModuleConfigManyImagesItemContentHtml(json.data_list[i]['images'], json.data_list[i]['type'], json.data_list[i]['name'], json.data_list[i]['value']); } } $config.find('.config-many-images-container').html(html); break; // 图文 case 'images-text': var html = ''; if ((json.data_list || null) != null && json.data_list.length > 0) { for (var i in json.data_list) { html += ModuleConfigImagesTextItemContentHtml(json.data_list[i]); } } $config.find('.config-images-text-container').html(html); // 展示模式默认空,必须要选择 if ((json.view_list_show_style || null) == null) { json['view_list_show_style'] = ''; } break; // 图片魔方 case 'images-magic-cube': var html = ''; if ((json.data_list || null) != null && json.data_list.length > 0) { html += ModuleConfigImagesMagicCubeItemContentHtml(json); } $config.find('.config-images-magic-cube-container').html(html); var $tips_msg = $offcanvas_config_images_magic_cube.find('.tips-msg'); if ((html || null) == null) { $tips_msg.removeClass('am-hide'); } else { $tips_msg.addClass('am-hide'); } // 展示模式默认空,必须要选择 if ((json.view_list_show_style || null) == null) { json['view_list_show_style'] = ''; } break; // 视频 case 'video': // 视频地址 $config.find('.module-video-type-view-video video').attr('src', json.content_video || ''); // 封面图片 var html = ''; if ((json.content_images || null) != null) { html += '
  • '; html += ''; html += ''; html += '
  • '; } $config.find('.module-video-type-view-images').html(html); break; // 商品模块 case 'goods': var goods_data_type = json.goods_data_type || 'goods'; switch (goods_data_type) { // 商品 case 'goods': $config.find('.config-goods-list').html(ModuleConfigGoodsItemContentHtml(json.data_list)); // 清空分类选择 $config.find('.offcanvas-config-goods-category-container .form-view-choice-container-content').html(ModuleConfigGoodsCategoryContentHtml()); $config.find('input[name="goods_category_value"]').val(''); break; // 商品分类 case 'category': var category = ((json.goods_category_value || null) == null) ? null : JSON.parse(decodeURIComponent(json.goods_category_value)) || null; var name = (category == null || category.length <= 0) ? '' : category[category.length - 1]['name']; var html = ModuleConfigGoodsCategoryContentHtml(name); $config.find('.offcanvas-config-goods-category-container .form-view-choice-container-content').html(html); // 清空商品列表 $config.find('.config-goods-list').html(''); $config.find('input[name="goods_ids"]').val(''); break; // 未定义 default: console.info(($layout.data('module-assembly-not-exist-tips') || '模块组件未定义') + '[' + goods_data_type + ']') } // tab处理 var index = 0; $config.find('.am-tabs-nav li').each(function (k, v) { if ($(this).find('a').data('value') == goods_data_type) { index = k; } }); $config.find('.am-tabs-nav li').removeClass('am-active'); $config.find('.am-tabs-nav li').eq(index).addClass('am-active'); $config.find('.am-tabs-bd .am-tab-panel').removeClass('am-active'); $config.find('.am-tabs-bd .am-tab-panel').eq(index).addClass('am-active'); break; // 标题 case 'title': // 关键字 var html = ''; if ((json.keywords_list || null) != null && json.keywords_list.length > 0) { for (var i in json.keywords_list) { html += ModuleConfigTitleKeywordsContentHtml(json.keywords_list[i]); } } $config.find('.config-title-container').html(html); // 链接地址处理 $config.find('.form-view-choice-container-content').html(ModuleConfigImagesToContentHtml(json.content_to_name || '')); break; default: if ($config.length == 0) { Prompt(($layout.data('base-module-not-config-tips') || '模块未配置') + '(' + value + ')'); return false; } } // 表单数据赋值 FormDataFill(json, config_doc); // 背景色组件处理 ModuleColorpickerHandle($config); // 颜色选择器初始化 ColorPickerInit(); // 单选框初始化 $config.find('input[type="checkbox"], input[type="radio"]').uCheck(); // 更新选择组件 $config.find('.chosen-select').trigger('chosen:updated'); // 打开弹窗 $config.offCanvas('open'); }); // 配置图片 - 选择页面事件 $offcanvas_config_images.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 配置图片 - 选择页面 - 移除 $offcanvas_config_images.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 页面选择 tab 切换事件 $modal_pages_select.on('click', '.am-tabs-nav a', function () { // 所有处理 $modal_pages_select.find('.am-tabs-bd ul li').removeClass('active'); $modal_pages_select.find('.am-tabs-bd ul li a').attr('data-json', ''); // 名称还原 $modal_pages_select.find('.am-tabs-bd ul li').each(function (k, v) { var $o = $(this).find('a'); $o.attr('data-json', ''); $o.find('span').text($o.data('name')); }); // 自定义链接清空 $('.pages-custom-url-container input').val(''); }); // 页面选择切换 $modal_pages_select.on('click', '.am-tabs-bd ul li a', function () { // 选中状态 var $parent = $(this).parents('.am-tab-panel'); $parent.find('li').removeClass('active'); $(this).parent().addClass('active'); // 参数值 var value = $(this).data('value') || null; var name = $(this).data('name') || null; var json = $(this).attr('data-json') || null; if (value == null || name == null) { Prompt($layout.data('params-tips') || '参数值有误'); return false; } if (json != null) { json = JSON.parse(decodeURIComponent(json)) || null; } // 根据类型处理 switch (value) { // 单一商品 case 'goods': // 弹窗数据设置并打开 var goods_ids = (json == null || (json.id || null) == null) ? '' : json.id; $popup_goods_select.attr('data-goods-ids', goods_ids); $popup_goods_select.attr('data-type', 'single-goods'); $popup_goods_select.attr('data-is-single-choice', 1); $popup_goods_select.modal({ closeViaDimmer: false }); // 弹窗没有商品内容则触发搜索 if($popup_goods_select.find('.goods-list-container ul li').length == 0) { $popup_goods_select.find('.forth-selection-container .search-submit').trigger('click'); } break; // 搜索页面 case 'goods_search': var index = 0; var type = 'category'; var value = null; if (json != null && (json.type || null) != null) { // 基础参数 var arr = ['category', 'brand', 'keywords', 'other']; index = arr.indexOf(json.type); type = json.type; value = json.value || null; } // tab导航和容器 $popup_goods_search.find('.am-tabs-nav li').removeClass('am-active'); $popup_goods_search.find('.am-tabs-nav li').eq(index).addClass('am-active'); $popup_goods_search.find('.am-tabs-bd .am-tab-panel').removeClass('am-active'); $popup_goods_search.find('.am-tabs-bd .am-tab-panel').eq(index).addClass('am-active'); // 数据处理 $popup_goods_search.find('.form-container-category').find('.goods-category-select-2, .goods-category-select-3').html('').addClass('am-hide'); $popup_goods_search.find('.form-container-category .already-select-tips').attr('data-value', '').addClass('am-hide').find('strong').text(''); $popup_goods_search.find('.goods-category-choice-content ul li.active').removeClass('active'); $popup_goods_search.find('.form-container-keywords input').val(''); // 数据选中 if (value != null) { switch (type) { // 商品分类 case 'category': for (var i in value) { var $gcs = $popup_goods_search.find('.form-container-category .goods-category-select-' + (parseInt(i) + 1)); if ($gcs.length > 0 && $gcs.find('li').length > 0) { $gcs.find('li').each(function (k, v) { if ($(this).find('a').data('value') == value[i]['id']) { $(this).find('a').trigger('click'); } }); } } break; // 品牌 case 'brand': $popup_goods_search.find('.form-container-brand ul li').each(function (k, v) { if ($(this).find('a').data('value') == value.id) { $(this).addClass('active'); } }); break; // 关键字 case 'keywords': $popup_goods_search.find('.form-container-keywords input').val(value); break; } } $popup_goods_search.modal({ closeViaDimmer: false }); break; } }); // 页面选择确认事件 $modal_pages_select.on('click', '.pages-confirm-submit', function () { // 选中tab var index = $modal_pages_select.find('.am-tabs-nav li.am-active').index(); // 参数值、自定义链接、常规页面选择 if (index == 2) { var to_type = 'pages-custom-url'; var to_name = $layout.data('custom-url-name') || '自定义链接'; var to_value = GetFormVal('.pages-custom-url-container', true); var count = 0; for (var i in to_value) { if ((to_value[i] || null) == null) { count++; } } if (count >= Object.keys(to_value).length) { Prompt($layout.data('custom-url-tips') || '请至少填写一个地址'); return false; } to_value = encodeURIComponent(JSON.stringify(to_value)); } else { var $obj = $modal_pages_select.find('.am-tab-panel.am-active ul li.active a'); var to_type = $obj.data('value') || ''; var to_name = $obj.data('name') || ''; var to_value = $obj.attr('data-json') || ''; var json = null; if (to_value != '') { json = JSON.parse(decodeURIComponent(to_value)) || null; } if (to_type == '' || to_name == '') { Prompt($layout.data('before-choice-page-tips') || '请先选择页面'); return false; } // 根据类型处理 switch (to_type) { // 单一商品 case 'goods': if (json == null) { Prompt($layout.data('choice-goods-tips') || '请选择商品'); return false; } // 选择位置是否存在 if ($page_parent_obj == null) { Prompt($layout.data('before-choice-url-position-tips') || '请先选择链接位置'); return false; } // 显示名称 to_name += '(' + json['title'] + ')'; break; // 搜索页面 case 'goods_search': if (json == null) { Prompt($layout.data('before-config-goods-search-tips') || '请先配置商品搜索'); return false; } // 显示名称 to_name += ModuleConfigGoodsSearchPageShowName(json); break; } } // 设置数据 var $parent = $page_parent_obj.parents('.form-view-choice-container'); var key = $parent.data('key'); var index = (key == undefined) ? '' : '_' + key; $parent.find('input[name="content_to_type' + index + '"]').val(to_type); $parent.find('input[name="content_to_name' + index + '"]').val(to_name); $parent.find('input[name="content_to_value' + index + '"]').val(to_value); $page_parent_obj.html(ModuleConfigImagesToContentHtml(to_name)); $modal_pages_select.modal('close'); }); // 商品配置-选择商品和分类 $offcanvas_config_goods.on('click', '.form-view-choice-container-submit', function () { var value = $(this).parents('.form-view-choice-container').data('value'); switch (value) { // 商品 case 'goods': // 弹窗数据设置并打开 var goods_ids = OffcanvasModuleConfigGoodsIds(); $popup_goods_select.attr('data-goods-ids', goods_ids); $popup_goods_select.attr('data-type', 'list-goods'); $popup_goods_select.attr('data-is-single-choice', 0); $popup_goods_select.modal({ closeViaDimmer: false }); // 弹窗没有商品内容则触发搜索 if($popup_goods_select.find('.goods-list-container ul li').length == 0) { $popup_goods_select.find('.forth-selection-container .search-submit').trigger('click'); } break; // 商品分类 case 'category': // 分类数据 var json = $offcanvas_config_goods.find('.offcanvas-config-goods-category-container input[name="goods_category_value"]').val() || null; if (json != null) { json = JSON.parse(decodeURIComponent(json)) || null; } if (json == null) { // 数据清空 $popup_goods_category.find('.form-container-category').find('.goods-category-select-2, .goods-category-select-3').html('').addClass('am-hide'); $popup_goods_category.find('.form-container-category .already-select-tips').attr('data-value', '').addClass('am-hide').find('strong').text(''); $popup_goods_category.find('.goods-category-choice-content ul li.active').removeClass('active'); } else { // 生成选择的数据 for (var i in json) { var $gcs = $popup_goods_category.find('.form-container-category .goods-category-select-' + (parseInt(i) + 1)); if ($gcs.length > 0 && $gcs.find('li').length > 0) { $gcs.find('li').each(function (k, v) { if ($(this).find('a').data('value') == json[i]['id']) { $(this).find('a').trigger('click'); } }); } } } $popup_goods_category.modal({ closeViaDimmer: false }); break; default: Prompt(($layout.data('type-event-not-exist-tips') || '类型事件未定义') + '[' + value + ']') } }); // 商品配置-商品选择-移除 $(document).on('click', '#offcanvas-module-config-goods .config-goods-list li a.am-close', function () { // 商品id处理 var value = $(this).parent().data('gid'); var goods_ids = $offcanvas_config_goods.find('input[name="goods_ids"]').val() || null; if (goods_ids != null) { goods_ids = goods_ids.split(','); for (var i in goods_ids) { if (goods_ids[i] == value) { goods_ids.splice(i, 1); } } goods_ids = (goods_ids.length > 0) ? goods_ids.join(',') : ''; } $offcanvas_config_goods.find('input[name="goods_ids"]').val(goods_ids || ''); // 移除元素 $(this).parent().remove(); }); // 商品配置-分类选择确认 $popup_goods_category.on('click', '.confirm-submit', function () { // 分类数据 var json = $popup_goods_category.find('.already-select-tips').attr('data-value') || null; if (json != null) { json = JSON.parse(decodeURIComponent(json)) || null; } if (json == null) { Prompt($layout.data('before-choice-goods-category-tips') || '请先选择商品分类'); return false; } // 当前选择的节点 var data = json[json.length - 1]; var html = ModuleConfigGoodsCategoryContentHtml(data.name); var $offcanvas_category = $offcanvas_config_goods.find('.offcanvas-config-goods-category-container'); $offcanvas_category.find('.form-view-choice-container-content').html(html); $offcanvas_category.find('input[name="goods_category_value"]').val(encodeURIComponent(JSON.stringify(json))); $popup_goods_category.modal('close'); }); // 商品配置-分类选择确认-移除 $offcanvas_config_goods.on('click', '.offcanvas-config-goods-category-container .form-view-choice-container-active i.am-icon-close', function () { var $parent = $(this).parents('.form-view-choice-container-content'); $parent.html('' + ($layout.data('choice-goods-category-tips') || '请选择商品分类') + ''); $parent.parent().find('input[name="goods_category_value"]').val(''); return false; }); // 商品配置-tab切换 $offcanvas_config_goods.on('click', '.am-tabs-nav a', function () { $offcanvas_config_goods.find('input[name="goods_data_type"]').val($(this).data('value') || 'goods'); }); // 商品搜索选择 // 分页 $popup_goods_select.find('.goods-page-container').html(PageLibrary()); // 搜索商品 $(document).on('click', '#popup-module-goods-select .forth-selection-container .search-submit, .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 = $popup_goods_select.find('.forth-selection-container').data('search-url'); var category_field = $popup_goods_select.find('.forth-selection-container').find('input[name="category_field"]').val() || ''; var category_id = $popup_goods_select.find('.forth-selection-form-category').val(); var keywords = $popup_goods_select.find('.forth-selection-form-keywords').val(); var goods_ids = $popup_goods_select.attr('data-goods-ids') || ''; var $this = $(this); if ($this.hasClass('search-submit')) { $this.button('loading'); } $('.goods-list-container ul.am-gallery').html('
    ' + ($('.goods-list-container').data('loading-msg')) + '
    '); $.ajax({ url: RequestUrlHandle(url), type: 'post', data: { "page": page, "category_field": category_field, "category_id": category_id, "keywords": keywords, "goods_ids": goods_ids }, dataType: 'json', success: function (res) { $this.button('reset'); if (res.code == 0) { $('.goods-list-container').attr('data-is-init', 0); $('.goods-list-container ul.am-gallery').html(res.data.data); $('.goods-page-container').html(PageLibrary(res.data.total, res.data.page_size, res.data.page, 4)); } else { Prompt(res.msg); $('.goods-list-container ul.am-gallery').html('
    ' + res.msg + '
    '); } }, error: function (res) { $this.button('reset'); var msg = HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'); Prompt(msg, null, 30); $('.goods-list-container ul.am-gallery').html('
    ' + msg + '
    '); } }); }); // 商品添加/删除 $(document).on('click', '.goods-list-container .goods-add-submit, .goods-list-container .goods-del-submit', function () { // 基础参数 var is_single_choice = parseInt($popup_goods_select.attr('data-is-single-choice')) || 0; var goods_ids = $popup_goods_select.attr('data-goods-ids') || null; goods_ids = (goods_ids == null) ? [] : goods_ids.split(','); // 商品信息 var $this = $(this); var type = $this.data('type'); var $parent = $this.parents('li'); var goods_id = $parent.data('gid'); var goods_title = $parent.data('title'); var goods_url = $parent.data('url'); var goods_img = $parent.data('img'); // 是否单选 if (is_single_choice == 1) { // 还原选项 $popup_goods_select.find('.goods-list-container li').each(function (k, v) { $(this).find('.icon-submit-container').html($(this).data('add-html')); }); if (type == 'add') { goods_ids = [goods_id]; $parent.find('.icon-submit-container').html($parent.data('del-html')); } else { goods_ids = []; } } else { // 商品是否已经添加 var index = goods_ids.indexOf(goods_id.toString()); if (index == -1) { goods_ids.push(goods_id); } else { goods_ids.splice(index, 1); } var icon_html = $parent.data((type == 'add' ? 'del' : 'add') + '-html'); $this.parent().html(icon_html); } // 选择的商品id赋值 $popup_goods_select.attr('data-goods-ids', goods_ids.join(',')); }); // 商品选择确认事件 $popup_goods_select.on('click', '.confirm-submit', function () { // 已选商品 var goods_ids = $popup_goods_select.attr('data-goods-ids') || null; if (goods_ids == null) { Prompt($layout.data('before-choice-goods-tips') || '请先选择商品'); return false; } // 基础参数 var $this = $(this); var url = $popup_goods_select.find('.forth-selection-container').data('data-url'); var type = $popup_goods_select.attr('data-type') || null; var is_single_choice = parseInt($popup_goods_select.attr('data-is-single-choice')) || 0; // 获取商品 $this.button('loading'); $.ajax({ url: RequestUrlHandle(url), type: 'post', data: { "goods_ids": goods_ids }, dataType: 'json', success: function (res) { $this.button('reset'); if (res['code'] == 0) { if ((res.data || null) != null && res.data.length > 0) { // 根据类型处理不同业务逻辑 var data = res.data; switch (type) { // 单一商品选择 case 'single-goods': var $single_goods = $modal_pages_select.find('.am-tabs-bd ul li.page-goods a'); $single_goods.find('span').text($single_goods.data('name') + '(' + data[0]['title'] + ')'); $single_goods.attr('data-json', encodeURIComponent(JSON.stringify(data[0]))); break; // 列表商品 case 'list-goods': // 商品id赋值 var goods_ids = data.map(function (e) { return e.id; }).join(','); $offcanvas_config_goods.find('input[name="goods_ids"]').val(goods_ids); // html 拼接 $offcanvas_config_goods.find('.config-goods-list').html(ModuleConfigGoodsItemContentHtml(data)); break; } // 关闭商品窗口 $popup_goods_select.modal('close'); // 清空选择的商品id $popup_goods_select.attr('data-goods-ids', ''); } else { Prompt($layout.data('goods-data-empty-tips') || '商品信息为空'); } } else { Prompt(res.msg); } }, error: function (res) { $this.button('reset'); var msg = HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'); Prompt(msg, null, 30); } }); }); // 商品搜索tab类型切换事件 $popup_goods_search.on('click', '.am-tabs-nav a', function () { $popup_goods_search.find('.form-container-category').find('.goods-category-select-2, .goods-category-select-3').html('').addClass('am-hide'); $popup_goods_search.find('.form-container-category .already-select-tips').attr('data-value', '').addClass('am-hide').find('strong').text(''); $popup_goods_search.find('.goods-category-choice-content ul li.active').removeClass('active'); $popup_goods_search.find('.form-container-keywords input').val(''); }); // 分类选择切换 $(document).on('click', '.layout-category-choice .goods-category-choice-content ul li a', function () { // 父级 var $parents = $(this).parents('.goods-category-choice'); // 选中 $(this).parent().addClass('active').siblings().removeClass('active'); // 分类数据 var data = $(this).find('span.data-json').text() || null; if (data != null) { data = JSON.parse(CryptoJS.enc.Base64.parse(decodeURIComponent(data)).toString(CryptoJS.enc.Utf8)) } // 参数 var level = $(this).parents('ul').data('level') || 1; var level_next = level + 1; // 拼接html if (data != null && level < 3) { var html = ''; for (var i in data) { var json = ((data[i]['items'] || null) == null || data[i]['items'].length == 0) ? '' : encodeURIComponent(CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data[i]['items'])))); html += '
  • '; html += '' + data[i]['name'] + ''; html += '' + json + ''; if ((data[i]['items'] || null) != null && data[i]['items'].length > 0) { html += ''; } html += '
  • '; } $parents.find('.goods-category-select-' + level_next).html(html).removeClass('am-hide'); } // 级别数据处理 if (data == null) { $parents.find('.goods-category-select-' + level_next).addClass('am-hide').html(''); } else { $parents.find('.goods-category-select-' + level_next).removeClass('am-hide'); } // 选择第一级的时候隐藏第三级 if (level == 1) { $parents.find('.goods-category-select-3').addClass('am-hide').html(''); } // 提示信息展示 var text = ''; var value = []; $parents.find('ul li.active').each(function (k, v) { if (k > 0) { text += ' > '; } var name = $(this).find('a span.data-name').text(); value.push({ "id": $(this).find('a').data('value'), "name": name }); text += name; }); var $tips = $parents.find('.already-select-tips'); $tips.removeClass('am-hide'); $tips.find('strong').text(text); // 选择数据 $tips.attr('data-value', encodeURIComponent(JSON.stringify(value))); }); // 左侧配置 - 多图- 多图添加图片 $offcanvas_config_many_images.on('click', '.config-many-images-item-add', function () { $offcanvas_config_many_images.find('.config-many-images-container').append(ModuleConfigManyImagesItemContentHtml()); }); // 配置多图 - 选择页面事件 $offcanvas_config_many_images.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 左侧配置 - 配置多图 - 链接地址 - 移除 $offcanvas_config_many_images.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 左侧配置 - 配置多图 - 移除 $(document).on('click', '#offcanvas-module-config-many-images .config-many-images-container .am-panel a.am-close', function () { $(this).parent().remove(); }); // 配置多图 - 展示模式切换 $(document).on('click', '#offcanvas-module-config-many-images input[name="view_list_show_style"]', function () { $base_show_style_value_obj = $(this).parents('.config-view-show-style').find('input[name="view_list_show_style_value"]'); switch ($(this).val()) { // 滚动 case 'rolling': // 数据填充 var json = ViewRollingShowStyleValueHandle($base_show_style_value_obj.val()); if (json['item_margin'] <= 0) { json['item_margin'] = ''; } FormDataFill(json, '#modal-module-rolling-config'); // 开关状态 $modal_rolling_config.find('input[name="is_auto_play"]').switch().toggleSwitch(json.is_auto_play); $modal_rolling_config.find('input[name="is_nav_dot"]').switch().toggleSwitch(json.is_nav_dot); // 开启弹窗 $modal_rolling_config.modal({ width: 260, height: 370, closeViaDimmer: false }); break; // 列表 case 'list': // 数据填充 var json = ViewListShowStyleValueHandle($base_show_style_value_obj.val()); if (json['style_margin'] <= 0) { json['style_margin'] = ''; } FormDataFill(json, '#modal-module-list-config'); // 开启弹窗 $modal_list_config.modal({ width: 260, height: 225, closeViaDimmer: false }); break; default: $base_show_style_value_obj.val(''); } }); // 左侧配置 - 图文- 图文添加 $offcanvas_config_images_text.on('click', '.config-images-text-item-add', function () { $offcanvas_config_images_text.find('.config-images-text-container').append(ModuleConfigImagesTextItemContentHtml()); // 单选框初始化 $offcanvas_config_images_text.find('input[type="checkbox"], input[type="radio"]').uCheck(); // 颜色选择器初始化 ColorPickerInit(); }); // 配置图文 - 选择页面事件 $offcanvas_config_images_text.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 左侧配置 - 配置图文 - 链接地址 - 移除 $offcanvas_config_images_text.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 左侧配置 - 配置图文 - 移除 $(document).on('click', '#offcanvas-module-config-images-text .config-images-text-container .am-panel a.am-close', function () { $(this).parent().remove(); }); // 配置图文 - 展示模式切换 $(document).on('click', '#offcanvas-module-config-images-text input[name="view_list_show_style"]', function () { $base_show_style_value_obj = $(this).parents('.config-view-show-style').find('input[name="view_list_show_style_value"]'); switch ($(this).val()) { // 滚动 case 'rolling': // 数据填充 var json = ViewRollingShowStyleValueHandle($base_show_style_value_obj.val()); if (json['item_margin'] <= 0) { json['item_margin'] = ''; } FormDataFill(json, '#modal-module-rolling-config'); // 开关状态 $modal_rolling_config.find('input[name="is_auto_play"]').switch().toggleSwitch(json.is_auto_play); $modal_rolling_config.find('input[name="is_nav_dot"]').switch().toggleSwitch(json.is_nav_dot); // 开启弹窗 $modal_rolling_config.modal({ width: 260, height: 370, closeViaDimmer: false }); break; // 默认 default: // 数据填充 var json = ViewListShowStyleValueHandle($base_show_style_value_obj.val()); if (json['style_margin'] <= 0) { json['style_margin'] = ''; } FormDataFill(json, '#modal-module-list-config'); // 开启弹窗 $modal_list_config.modal({ width: 260, height: 225, closeViaDimmer: false }); } }); // 配置图片魔方 - 选择页面事件 $offcanvas_config_images_magic_cube.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 左侧配置 - 配置图片魔方 - 链接地址 - 移除 $offcanvas_config_images_magic_cube.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 配置图片魔方 - 展示模式切换 $(document).on('click', '#offcanvas-module-config-images-magic-cube input[name="view_list_show_style"]', function () { var html = ModuleConfigImagesMagicCubeItemContentHtml(); if (html !== false) { $offcanvas_config_images_magic_cube.find('.config-images-magic-cube-container').append(html); } }); // 配置商品 - 展示模式切换 $(document).on('click', '#offcanvas-module-config-goods input[name="view_list_show_style"]', function () { $base_show_style_value_obj = $(this).parents('.config-view-show-style').find('input[name="view_list_show_style_value"]'); switch ($(this).val()) { // 滚动 case 'rolling': // 数据填充 var json = ViewRollingShowStyleValueHandle($base_show_style_value_obj.val()); if (json['item_margin'] <= 0) { json['item_margin'] = ''; } FormDataFill(json, '#modal-module-rolling-config'); // 开关状态 $modal_rolling_config.find('input[name="is_auto_play"]').switch().toggleSwitch(json.is_auto_play); $modal_rolling_config.find('input[name="is_nav_dot"]').switch().toggleSwitch(json.is_nav_dot); // 开启弹窗 $modal_rolling_config.modal({ width: 260, height: 370, closeViaDimmer: false }); break; } }); // 左侧配置 - 标题 - 右侧按钮 - 选择页面事件 $offcanvas_config_title.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 左侧配置 - 标题 - 右侧按钮 - 移除 $offcanvas_config_title.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 左侧配置 - 标题 - 添加关键字 $offcanvas_config_title.on('click', '.config-title-item-add', function () { ModuleConfigTitleKeywordsOpen(); }); // 左侧配置 - 标题 - 关键字 - 编辑 $(document).on('click', '#offcanvas-module-config-title .config-title-container li a.am-icon-edit', function () { var $parent = $(this).parent(); $base_title_keywords_obj = $parent; ModuleConfigTitleKeywordsOpen(1, $parent.find('input').val() || null); }); // 左侧配置 - 标题 - 关键字 - 移除 $(document).on('click', '#offcanvas-module-config-title .config-title-container li a.am-icon-remove', function () { $(this).parents('li').remove(); }); // 左侧配置 - 标题 - 关键字 - 选择页面事件 $modal_title_keywords.on('click', '.form-view-choice-container-submit', function (e) { OffcanvasConfigPagesChoice($(this), e); }); // 左侧配置 - 标题 - 关键字 - 移除 $modal_title_keywords.on('click', '.form-view-choice-container-active i.am-icon-close', function (e) { OffcanvasConfigPagesRemove($(this), e); }); // 页面布局数据保存 var $layout_operate_container = $('.layout-operate-container'); $layout_operate_container.on('click', 'button', function () { // 基础配置 var data = $layout_operate_container.attr('data-json') || null; if (data != null) { data = JSON.parse(decodeURIComponent(data)) || null; } if (data == null) { data = {}; } // 设计配置 data['config'] = JSON.stringify(LayoutViewConfig()); // 保存数据 var $this = $(this); $this.button('loading'); $.ajax({ url: RequestUrlHandle($layout_operate_container.data('save-url')), type: 'post', data: data, dataType: 'json', success: function (res) { if (res['code'] == 0) { Prompt(res.msg, 'success'); setTimeout(function () { var url = $layout_operate_container.find('a').attr('href') || null; if (url == null || url == 'javascript:;') { window.location.reload(); } else { window.location.href = url; } }, 1500); } else { $this.button('reset'); Prompt(res.msg); } }, error: function (xhr, type) { $this.button('reset'); var msg = HtmlToString(xhr.responseText) || (window['lang_error_text'] || '异常错误'); Prompt(msg, null, 30); } }); }); });