define(['jquery.ui'], function (ui) { var modal = { default: { params: { 'isopen': '0', 'style': '0', 'datatype': '0', 'starttime': '5', 'endtime': '60' }, style: { 'background': '#000000', 'color': '#ffffff', 'opacity': '0.7' }, data: [ { 'imgurl': '../addons/ewei_shopv2/static/images/nopic100.jpg', 'nickname': '用户昵称', 'time': '5' } ] } }; modal.init = function (params) { window.tpl = params.tpl; modal.attachurl = params.attachurl; modal.danmu = params.danmu; modal.merch = params.merch; if (!modal.danmu) { modal.danmu = modal.default } tpl.helper("imgsrc", function (src) { if (typeof src != 'string') { return '' } if (src.indexOf('http://') == 0 || src.indexOf('https://') == 0 || src.indexOf('../addons') == 0) { return src } else if (src.indexOf('images/') == 0) { return modal.attachurl + src } }); modal.initItems(); modal.initEditor(); $(".btn-save").unbind('click').click(function () { var status = $(this).data('status'); if (status) { tip.msgbox.err("正在保存,请稍候。。。"); return } modal.save() }); }; modal.initItems = function () { var danmu = modal.danmu; danmu.merch = modal.merch; var html = tpl("tpl_show_danmu", modal.danmu); $("#phone").html(html).show(); }; modal.initSortable = function () { $(".diy-editor .form-items .inner").sortable({ opacity: 0.8, placeholder: "highlight", items: '.item', revert: 100, scroll: false, cancel: '.goods-selector,input,select,.btn,.btn-del,.three', start: function (event, ui) { var height = ui.item.height(); $(".highlight").css({"height": height + 22 + "px"}); $(".highlight").html('
放置此处
'); $(".highlight div").css({"line-height": height + 16 + "px"}) }, update: function (event, ui) { var childType = ui.item.closest(".form-items").data('type'); modal.sortChildItems(childType) } }) }; modal.sortChildItems = function () { var newArr = []; $("#form-items .item").each(function (i) { var index = $(this).data('index'); var item = modal.danmu.data[index]; if(item){ newArr[i] = item; } }); modal.danmu.data = newArr; modal.initItems(); modal.initEditor() }; modal.initEditor = function () { var html = tpl("tpl_edit_danmu", modal.danmu); $("#diy-editor .inner").html(html); $("#diy-editor .slider").each(function () { var decimal = $(this).data('decimal'); var multiply = $(this).data('multiply'); var defaultValue = $(this).data("value"); if (decimal) { defaultValue = defaultValue * decimal } $(this).slider({ slide: function (event, ui) { var sliderValue = ui.value; if (decimal) { sliderValue = sliderValue / decimal } $(this).siblings(".input").val(sliderValue).trigger("propertychange"); $(this).siblings(".count").find("span").text(sliderValue) }, value: defaultValue, min: $(this).data("min"), max: $(this).data("max") }) }); $("#diy-editor").find(".diy-bind").bind('input propertychange change', function () { var _this = $(this); var bind = _this.data("bind"); var bindchild = _this.data('bind-child'); var bindparent = _this.data('bind-parent'); var bindthree = _this.data('bind-three'); var initEditor = _this.data('bind-init'); var value = ''; var tag = this.tagName; if (tag == 'INPUT') { var placeholder = _this.data('placeholder'); value = _this.val(); value = value == '' ? placeholder : value } else if (tag == 'SELECT') { value = _this.find('option:selected').val() } else if (tag == 'TEXTAREA') { value = _this.val() } value = $.trim(value); if (bindchild) { if (bindparent || bindparent==0) { if (bindthree) { modal.danmu[bindchild][bindparent].child[bindthree][bind] = value } else { modal.danmu[bindchild][bindparent][bind] = value } } else { modal.danmu[bindchild][bind] = value } } else { modal.danmu[bind] = value } modal.initItems(); if (initEditor) { modal.initEditor() } }); $("#phone").mouseenter(function () { $("#diy-editor").find('.diy-bind').blur() }); $("#addChild").unbind('click').click(function () { var max = $(this).closest(".form-items").data('max'); if(max){ if(modal.danmu.data.length>=max){ tip.msgbox.err("最大添加 "+max+" 个!"); return } } var newChild = $.extend(true, {}, modal.default.data[0]); modal.danmu.data.push(newChild); modal.initItems(); modal.initEditor(); }); $("#diy-editor .form-items .item .btn-del").unbind('click').click(function () { var index = $(this).closest(".item").data('index'); var min = $(this).closest(".form-items").data("min"); if (min) { if(!modal.danmu.data){ modal.danmu.data = []; } var length = modal.danmu.data.length; if (length <= min) { tip.msgbox.err("至少保留 " + min + " 个!"); return } } tip.confirm("确定删除吗", function () { delete modal.danmu.data.splice(index, 1); modal.initItems(); modal.initEditor() }) }); $("#diy-editor").show(); modal.initSortable(); }; modal.save = function () { if (!modal.danmu) { tip.msgbox.err("数据错误,请刷新页面重试!"); return } $(".btn-save").data('status', 1).text("保存中..."); var posturl = biz.url("diypage/shop/danmu", null, modal.merch); $.post(posturl, {data: modal.danmu}, function (ret) { if (ret.status == 0) { tip.msgbox.err(ret.result.message); $(".btn-save").text("保存并设置").data("status", 0); return } tip.msgbox.suc("操作成功!"); $(".btn-save").text("保存并设置").data("status", 0) }, 'json') }; return modal });