aogg
6/19/2019 - 2:36 AM

微擎示例

微擎示例

开关,自带ajax

<td>
    <span class='label {if $item['status']==0}label-success{else}label-default{/if}'
    data-toggle='ajaxSwitch'
    data-switch-value='{$item['status']}'
    data-switch-value0='1|隐藏|label label-default|{php echo webUrl('xkjh_order.index.user_complain_status',array('status'=>0,'id'=>$item['id']))}'
    data-switch-value1='0|显示|label label-success|{php echo webUrl('xkjh_order.index.user_complain_status',array('status'=>1,'id'=>$item['id']))}'
    {$yesAndNo[$item['status']]}
    </span>
</td>

如果要添加弹框可以增加属性


                data-confirm='确认修改吗'

单选框

<!-- 语言 -->
<div class="form-group">
    <label class="col-sm-2 control-label must">语言</label>
    <div class="col-sm-9 col-xs-12">
        
        {loop $langArr $key $lang}
        <label class='radio-inline'>
            <input type='radio' name='lang' value='{$key}' {if $item['lang'] == $key}checked{/if} /> {$lang}
        </label>
        {/loop}
    </div>
</div>

单选select

<!-- 主护士 -->
<div class="form-group">
    <label class="col-sm-2 control-label must">主护士</label>
    <div class="col-sm-9 col-xs-12 ">
        <select id="master_nurse"  name='master_nurse' class="form-control select" >
            <option value="0">请选择</option>
            {loop $nurseData $nurseItem}
            <option value="{$nurseItem['id']}"
                    {if is_array($nurseItem) && $nurseItem['id'] == $item['master_nurse']}selected{/if} >{$nurseItem['name']}</option>
            {/loop}
        </select>
        <span class="help-block image-block">这里的主护士只做展示用,需要分配必须选进分配的护士中</span>
    </div>
</div>

多选select

<!-- 分配护士 -->
<div class="form-group">
    <label class="col-sm-2 control-label must">分配护士</label>
    <div class="col-sm-9 col-xs-12 ">

        <select id="nurse_list"  name='nurse_list[]' class="form-control select2" multiple='' >
            {loop $nurseData $nurseItem}
            <option value="{$nurseItem['id']}"
                    {if is_array($nurseItem) &&  in_array($nurseItem['id'], $nurseIds)}selected{/if} >{$nurseItem['name']}</option>
            {/loop}
        </select>
    </div>
</div>

分组多选

        <select id="number_cates"  name='number_cates[]' class="form-control select2" data-role="multiselect" style='width:605px;' multiple='' >
            {loop $numberArr['parent'] $p}
            <optgroup label="{$p['name']}" class="group-1">
                {if $numberArr['children'][$p['id']]}
                {loop $numberArr['children'][$p['id']] $c}
                <option
                        value="{$c['id']}"
                        {if is_array($number_cates) &&  in_array($c['id'],$number_cates)}selected{/if}
                >
                {$c['name']}
                </option>
                {/loop}
                {/if}
            </optgroup>
            {/loop}
        </select>

效果图

普通input输入框

<div class="form-group">
    <label class="col-sm-2 control-label">商家预约电话</label>
    <div class="col-sm-9">
        {ife 'xkjh_order.index.order_edit' $item}
            <input type="number" name="money" class="form-control" value="{$item['money']}" />
        {else}
            <div class="form-control">{$item['money']}</div>
        {/if}
    </div>
</div>

人人商城腾讯地图选择

文件地址:addons/ewei_shopv2/template/web/util/area/map.html P2KBZ-6NTKO-GPPWJ-SHKPH-PWG2V-ZEB2X

替换并且处理

<script charset="utf-8" src="//map.qq.com/api/js?v=2.exp&key=P2KBZ-6NTKO-GPPWJ-SHKPH-PWG2V-ZEB2X"></script>

留意地址文案要指定id为address_label

<div class="form-group">
    <label class="col-sm-2 control-label">商家经纬度</label>
    <div class="col-sm-9">
        {php echo tpl_form_field_position('position', ['lng' => $item['longitude'], 'lat' => $item['latitude']])}
    </div>
</div>

<div class="form-group">
    <label class="col-sm-2 control-label">商家位置文案</label>
    <div class="col-sm-9">
        <input type="text" name="address" id="address_label" class="form-control" value="{$item['address']}" />
    </div>
</div>

帮助小写说明

<span class="help-block image-block">
耗材图片,尺寸建议宽度为120*120,并保持图片大小一致
</span>
// addons/ewei_shopv2/static/js/web/init.js
define(['jquery', 'bootstrap'], function($, bs) {
    window.redirect = function(url) {
        location.href = url
    }
        ,
        $(document).on('click', '[data-toggle=refresh]', function(e) {
            e && e.preventDefault();
            var url = $(e.target).data("href");
            url ? window.location = url : window.location.reload()
        }),
        $(document).on('click', '[data-toggle=back]', function(e) {
            e && e.preventDefault();
            var url = $(e.target).data("href");
            url ? window.location = url : window.history.back()
        });
    function _bindCssEvent(events, callback) {
        var dom = this;
        function fireCallBack(e) {
            if (e.target !== this) {
                return
            }
            callback.call(this, e);
            for (var i = 0; i < events.length; i++) {
                dom.off(events[i], fireCallBack)
            }
        }
        if (callback) {
            for (var i = 0; i < events.length; i++) {
                dom.on(events[i], fireCallBack)
            }
        }
    }
    $.fn.animationEnd = function(callback) {
        _bindCssEvent.call(this, ['webkitAnimationEnd', 'animationend'], callback);
        return this
    }
    ;
    $.fn.transitionEnd = function(callback) {
        _bindCssEvent.call(this, ['webkitTransitionEnd', 'transitionend'], callback);
        return this
    }
    ;
    $.fn.transition = function(duration) {
        if (typeof duration !== 'string') {
            duration = duration + 'ms'
        }
        for (var i = 0; i < this.length; i++) {
            var elStyle = this[i].style;
            elStyle.webkitTransitionDuration = elStyle.MozTransitionDuration = elStyle.transitionDuration = duration
        }
        return this
    }
    ;
    $.fn.transform = function(transform) {
        for (var i = 0; i < this.length; i++) {
            var elStyle = this[i].style;
            elStyle.webkitTransform = elStyle.MozTransform = elStyle.transform = transform
        }
        return this
    }
    ;
    $.toQueryPair = function(key, value) {
        if (typeof value == 'undefined') {
            return key
        }
        return key + '=' + encodeURIComponent(value === null ? '' : String(value))
    }
    ;
    $.toQueryString = function(obj) {
        var ret = [];
        for (var key in obj) {
            key = encodeURIComponent(key);
            var values = obj[key];
            if (values && values.constructor == Array) {
                var queryValues = [];
                for (var i = 0, len = values.length, value; i < len; i++) {
                    value = values[i];
                    queryValues.push($.toQueryPair(key, value))
                }
                ret = concat(queryValues)
            } else {
                ret.push($.toQueryPair(key, values))
            }
        }
        return ret.join('&')
    }
    ;
    myrequire(['web/table']);
    myrequire(['jquery.gcjs']);
    myrequire(['web/tip']);
    myrequire(['tooltipbox']);
    if ($('form.form-validate').length > 0 || $('form.form-modal').length > 0) {
        myrequire(['web/form'], function(form) {
            form.init()
        })
    }
    myrequire(['web/biz']);
    if ($('.select2').length > 0) {
        myrequire(['select2'], function() {
            $('.select2').each(function() {
                $(this).select2({})
            })
        })
    }
    myrequire(['web/table']);
    if ($('.js-switch').length > 0) {
        myrequire(['switchery'], function() {
            $('.js-switch').switchery()
        })
    }
    if ($('.js-clip').length > 0) {
        myrequire(['clipboard'], function(Clipboard) {
            var clipboard = new Clipboard('.js-clip',{
                text: function(e) {
                    return $(e).data('url') || $(e).data('href')
                }
            });
            clipboard.on('success', function(e) {
                tip.msgbox.suc('复制成功')
            })
        })
    }
    $.fn.append2 = function(html, callback) {
        var len = $("body").html().length;
        this.append(html);
        var e = 1
            , interval = setInterval(function() {
            e++;
            var clear = function() {
                clearInterval(interval);
                callback && callback()
            };
            if (len != $("body").html().length || e > 1000) {
                clear()
            }
        }, 1)
    }
    ;
    $('[data-toggle="popover"]').popover();
    $(document).on("click", '[data-toggle="ajaxModal"]', function(e) {
        e.preventDefault();
        var obj = $(this)
            , confirm = obj.data("confirm");
        var handler = function() {
            $("#ajaxModal").remove(),
                e.preventDefault();
            var url = obj.data("href") || obj.attr("href"), data = obj.data("set"), modal;
            $.ajax(url, {
                type: "get",
                dataType: "html",
                cache: false,
                data: data
            }).done(function(html) {
                if (html.substr(0, 8) == '{"status') {
                    json = eval("(" + html + ')');
                    if (json.status == 0) {
                        msg = typeof (json.result) == 'object' ? json.result.message : json.result;
                        tip.msgbox.err(msg || tip.lang.err);
                        return
                    }
                }
                modal = $('<div class="modal fade" id="ajaxModal"><div class="modal-body "></div></div>');
                $(document.body).append(modal),
                    modal.modal('show');
                myrequire(['jquery.gcjs'], function() {
                    modal.append2(html, function() {
                        var form_validate = $('form.form-validate', modal);
                        if (form_validate.length > 0) {
                            $("button[type='submit']", modal).length && $("button[type='submit']", modal).attr("disabled", true);
                            myrequire(['web/form'], function(form) {
                                form.init();
                                $("button[type='submit']", modal).length && $("button[type='submit']", modal).removeAttr("disabled")
                            })
                        }
                    })
                })
            })
        }, a;
        if (confirm) {
            tip.confirm(confirm, handler)
        } else {
            handler()
        }
    }),
        $(document).on("click", '[data-toggle="ajaxPost"]', function(e) {
            e.preventDefault();
            var obj = $(this)
                , confirm = obj.data("confirm")
                , url = obj.data('href') || obj.attr('href')
                , data = obj.data('set') || {}
                , html = obj.html();
            handler = function() {
                e.preventDefault();
                if (obj.attr('submitting') == '1') {
                    return
                }
                obj.html('<i class="fa fa-spinner fa-spin"></i>').attr('submitting', 1);
                $.post(url, {
                    data: data
                }, function(ret) {
                    ret = eval("(" + ret + ")");
                    if (ret.status == 1) {
                        tip.msgbox.suc(ret.result.message || tip.lang.success, ret.result.url)
                    } else {
                        tip.msgbox.err(ret.result.message || tip.lang.error, ret.result.url),
                            obj.removeAttr('submitting').html(html)
                    }
                }).fail(function() {
                    obj.removeAttr('submitting').html(html),
                        tip.msgbox.err(tip.lang.exception)
                })
            }
            ;
            confirm && tip.confirm(confirm, handler);
            !confirm && handler()
        }),
        $(document).on("click", '[data-toggle="ajaxEdit"]', function(e) {
            var obj = $(this)
                , url = obj.data('href') || obj.attr('href')
                , data = obj.data('set') || {}
                , html = $.trim(obj.text())
                , required = obj.data('required') || true
                , edit = obj.data('edit') || 'input';
            var oldval = $.trim($(this).text());
            e.preventDefault();
            submit = function() {
                e.preventDefault();
                var val = $.trim(input.val());
                if (required) {
                    if (val == '') {
                        tip.msgbox.err(tip.lang.empty);
                        return
                    }
                }
                if (val == html) {
                    input.remove(),
                        obj.html(val).show();
                    return
                }
                if (url) {
                    $.post(url, {
                        value: val
                    }, function(ret) {
                        ret = eval("(" + ret + ")");
                        if (ret.status == 1) {
                            obj.html(val).show()
                        } else {
                            tip.msgbox.err(ret.result.message, ret.result.url)
                        }
                        input.remove()
                    }).fail(function() {
                        input.remove(),
                            tip.msgbox.err(tip.lang.exception)
                    })
                } else {
                    input.remove();
                    obj.html(val).show()
                }
                obj.trigger('valueChange', [val, oldval])
            }
                ,
                obj.hide().html('<i class="fa fa-spinner fa-spin"></i>');
            var input = $('<input type="text" class="form-control input-sm" style="width: 80%;display: inline;" />');
            if (edit == 'textarea') {
                input = $('<textarea type="text" class="form-control" style="resize:none" rows=3 ></textarea>')
            }
            obj.after(input);
            input.val(html).select().blur(function() {
                submit(input)
            }).keypress(function(e) {
                if (e.which == 13) {
                    submit(input)
                }
            })
        }),
        $(document).on("click", '[data-toggle="ajaxSwitch"]', function(e) {
            e.preventDefault();
            var obj = $(this)
                , confirm = obj.data('msg') || obj.data('confirm')
                , othercss = obj.data('switch-css')
                , other = obj.data('switch-other')
                , refresh = obj.data('switch-refresh') || false;
            if (obj.attr('submitting') == '1') {
                return
            }
            var value = obj.data('switch-value')
                , value0 = obj.data('switch-value0')
                , value1 = obj.data('switch-value1');
            if (value === undefined || value0 === undefined || value1 === undefined) {
                return
            }
            var url, css, text, newvalue, newurl, newcss, newtext;
            value0 = value0.split('|');
            value1 = value1.split('|');
            if (value == value0[0]) {
                url = value0[3],
                    css = value0[2],
                    text = value0[1],
                    newvalue = value1[0],
                    newtext = value1[1],
                    newcss = value1[2]
            } else {
                url = value1[3],
                    css = value1[2],
                    text = value1[1],
                    newvalue = value0[0],
                    newtext = value0[1],
                    newcss = value0[2]
            }
            var html = obj.html();
            var submit = function() {
                $.post(url).done(function(data) {
                    var newData = data;
                    try {
                        data = eval("(" + data + ")");
                    }catch (e) {
                        data = newData
                    }
                    if (data.status == 1) {
                        if (other && othercss) {
                            if (newvalue == '1') {
                                $(othercss).each(function() {
                                    if ($(this).data('switch-value') == newvalue) {
                                        this.className = css;
                                        $(this).data('switch-value', value).html(text || html)
                                    }
                                })
                            }
                        }
                        obj.data('switch-value', newvalue);
                        obj.html(newtext || html);
                        obj[0].className = newcss;
                        refresh && location.reload()
                    } else {
                        obj.html(html),
                            tip.msgbox.err(data.result.message || tip.lang.error, data.result.url)
                    }
                    obj.removeAttr('submitting')
                }).fail(function() {
                    obj.removeAttr('submitting');
                    obj.button('reset');
                    tip.msgbox.err(tip.lang.exception)
                })
            }, a;
            if (confirm) {
                tip.confirm(confirm, function() {
                    obj.html('<i class="fa fa-spinner fa-spin"></i>').attr('submitting', 1),
                        submit()
                })
            } else {
                obj.html('<i class="fa fa-spinner fa-spin"></i>').attr('submitting', 1),
                    submit()
            }
        });
    $(document).on('click', '[data-toggle="selectUrl"]', function() {
        $("#selectUrl").remove();
        var _input = $(this).data('input');
        var _full = $(this).data('full');
        var _platform = $(this).data('platform');
        var _callback = $(this).data('callback') || false;
        var _cbfunction = !_callback ? false : eval("(" + _callback + ")");
        if (!_input && !_callback) {
            return
        }
        var merch = $(".diy-phone").data("merch");
        var url = biz.url('util/selecturl', null, merch);
        var store = $(".diy-phone").data("store");
        if (store) {
            url = biz.url('store/diypage/selecturl')
        }
        if (_full) {
            url = url + "&full=1"
        }
        if (_platform) {
            url = url + "&platform=" + _platform
        }
        if ($(_input).length > 0 && $(_input).val()) {
            url += '&url=' + encodeURIComponent($(_input).val())
        }
        $.ajax(url, {
            type: "get",
            dataType: "html",
            cache: false
        }).done(function(html) {
            modal = $('<div class="modal fade" id="selectUrl"></div>');
            $(document.body).append(modal),
                modal.modal('show');
            modal.append2(html, function() {
                $(document).off("click", '#selectUrl nav').on("click", '#selectUrl nav', function() {
                    var _href = $.trim($(this).data("href"));
                    if (_input) {
                        $(_input).val(_href).trigger('change')
                    } else if (_cbfunction) {
                        _cbfunction(_href)
                    }
                    modal.find(".close").click()
                })
            })
        })
    });
    $(document).on('click', '[data-toggle="selectImg"]', function() {
        var _input = $(this).data('input');
        var _img = $(this).data('img');
        var _full = $(this).data('full');
        require(['jquery', 'util'], function($, util) {
            util.image('', function(data) {
                var imgurl = data.attachment;
                if (_full) {
                    imgurl = data.url
                }
                if (_input) {
                    $(_input).val(imgurl).trigger('change')
                }
                if (_img) {
                    $(_img).attr('src', data.url)
                }
            })
        })
    });
    $(document).on('click', '[data-toggle="selectIcon"]', function() {
        var _input = $(this).data('input');
        var _element = $(this).data('element');
        if (!_input && !_element) {
            return
        }
        var merch = $(".diy-phone").data("merch");
        var url = biz.url('util/selecticon', null, merch);
        $.ajax(url, {
            type: "get",
            dataType: "html",
            cache: false
        }).done(function(html) {
            modal = $('<div class="modal fade" id="selectIcon"></div>');
            $(document.body).append(modal),
                modal.modal('show');
            modal.append2(html, function() {
                $(document).off("click", '#selectIcon nav').on("click", '#selectIcon nav', function() {
                    var _class = $.trim($(this).data("class"));
                    if (_input) {
                        $(_input).val(_class).trigger('change')
                    }
                    if (_element) {
                        $(_element).removeAttr("class").addClass("icon " + _class)
                    }
                    modal.find(".close").click()
                })
            })
        })
    });
    $(document).on('click', '[data-toggle="selectAudio"]', function() {
        var _input = $(this).data('input');
        var _full = $(this).data('full');
        require(['jquery', 'util'], function($, util) {
            util.audio('', function(data) {
                var audiourl = data.attachment;
                if (_full) {
                    audiourl = data.url
                }
                if (_input) {
                    $(_input).val(audiourl).trigger('change')
                }
            })
        })
    });
    $(document).on('click', '[data-toggle="selectVideo"]', function() {
        var _input = $(this).data('input');
        var _full = $(this).data('full');
        var _network = $(this).data('network');
        require(['jquery', 'util'], function($, util) {
            util.audio('', function(data) {
                var audiourl = data.attachment;
                if (_full || !data.attachment) {
                    audiourl = data.url
                }
                if (_input) {
                    $(_input).val(audiourl).trigger('change')
                }
            }, {
                type: 'video',
                netWorkVideo: _network
            })
        })
    });
    $(document).on('click', '[data-toggle="previewVideoDel"]', function(e) {
        e.stopPropagation();
        var elm = $(this).data('element');
        $(elm).val('')
    });
    $(document).on('click', '[data-toggle="previewVideo"]', function() {
        var videoelm = $(this).data('input');
        if (!videoelm) {
            return
        }
        var video = $(videoelm).data('url') || $(videoelm).val();
        if (!video || video == '') {
            tip.msgbox.err('未选择视频');
            return
        }
        if (video.indexOf('videos/') == 0) {
            video = window.sysinfo.attachurl + video
        }
        if ($('#previewVideo').length < 1) {
            $('body').append('<div class="modal fade" id="previewVideo"><div class="modal-dialog" style="min-width: 400px !important;"><div class="modal-content"><div class="modal-header"><button data-dismiss="modal" class="close" type="button">×</button><h4 class="modal-title">视频预览</h4></div><div class="modal-body" style="padding: 0; background: #000;"><video src="' + video + '" style="height: 450px; width: 100%; display: block;" controls="controls"></video><iframe src="' + video + '" style="height: 450px; width: 100%; border: 0;"></iframe></div></div></div></div>')
        } else {
            $("#previewVideo video").attr("src", video);
            $("#previewVideo iframe").attr("src", video)
        }
        if (video.indexOf('v.qq.com/iframe/player.html') > -1) {
            $("#previewVideo video").hide();
            $("#previewVideo iframe").show()
        } else {
            $("#previewVideo video").show();
            $("#previewVideo iframe").hide()
        }
        $("#previewVideo").modal();
        $("#previewVideo").on("hidden.bs.modal", function() {
            $(this).find("video").attr('src', '');
            $(this).find("iframe").attr('src', '')
        })
    });
    $(window).resize(function() {
        var width = $(window).width();
        if (width <= 1440) {
            $(".wb-panel-fold").removeClass('in').html('<i class="icow icow-info"></i> 消息提醒');
            $(".wb-panel").removeClass('in');
            $('.wb-container').addClass('right-panel')
        } else {
            $(".wb-panel-fold").addClass('in').html('<i class="fa fa-angle-double-right"></i> 收起面板');
            $(".wb-panel").addClass('in');
            $('.wb-container').removeClass('right-panel')
        }
    });
    $(window).scroll(function() {
        if ($(window).scrollTop() > 200) {
            $('.fixed-header').addClass('active')
        } else {
            $('.fixed-header').removeClass('active')
        }
    });
    $('.wb-nav-fold').click(function() {
        var nav = $(this).closest(".wb-nav");
        if (nav.hasClass('fold')) {
            nav.removeClass('fold');
            $(".wb-header .logo").removeClass('small');
            $(".fast-nav").removeClass('indent');
            util.cookie.set('foldnav', 0)
        } else {
            nav.addClass('fold');
            $(".wb-header .logo").addClass('small');
            $(".fast-nav").addClass('indent');
            util.cookie.set('foldnav', 1)
        }
    });
    $('.wb-subnav-fold').click(function() {
        var subnav = $(this).closest(".wb-subnav");
        if (subnav.hasClass('fold')) {
            subnav.removeClass('fold')
        } else {
            subnav.addClass('fold')
        }
    });
    $('.menu-header').click(function() {
        if ($(this).hasClass('active')) {
            $(this).next('ul').eq(0).hide();
            $(this).find('.menu-icon').removeClass('fa-caret-down').addClass('fa-caret-right');
            $(this).removeClass('active')
        } else {
            $(this).next('ul').eq(0).show();
            $(this).find('.menu-icon').removeClass('fa-caret-right').addClass('fa-caret-down');
            $(this).addClass('active')
        }
    });
    $('.wb-header-btn').click(function() {
        if ($('.wb-topbar-search').hasClass('expand-search')) {
            $('.wb-search-box').focus();
            var keyword = $.trim($(".wb-search-box").val());
            if (keyword != '') {
                location.href = './index.php?c=site&a=entry&m=ewei_shopv2&do=web&r=search&keyword=' + keyword;
                return
            }
        } else {}
    });
    $(".wb-search-box").bind('input propertychange', function() {
        var keyword = $.trim($(this).val());
        var merch = $(this).data('merch') || 0;
        if (keyword == '') {
            $('.wb-search-result ul').empty();
            $('.wb-search-result').hide();
            $(".wb-search-box").val('');
            return
        }
        $.getJSON(biz.url('searchlist', null, merch), {
            keyword: keyword
        }, function(ret) {
            var result = ret.result;
            var html = '';
            $('.wb-search-result ul').empty();
            if (result.menu.length < 1) {
                html = '<li class="empty-data"><a>暂未搜索到与“' + keyword + '”相关功能</a></li>'
            } else {
                $.each(result.menu, function(index, menu) {
                    html += '<li><a href="' + menu.url + '">' + menu.title + '</a></li>'
                })
            }
            $('.wb-search-result ul').html(html);
            $('.wb-search-result').show()
        })
    });
    $(".wb-header-logout").click(function() {
        var href = $(this).closest('li').data('href');
        tip.confirm("当前已登录,确认退出?", function() {
            location.href = href
        })
    });
    $(".wb-panel-fold").click(function() {
        $(this).toggleClass('in');
        $(".wb-panel").toggleClass('in');
        if (!$(this).hasClass('in')) {
            $(this).html('<i class="icow icow-info"></i> 消息提醒');
            util.cookie.set('foldpanel', 1);
            $('.wb-container').addClass('right-panel')
        } else {
            $(this).html('<i class="fa fa-angle-double-right"></i> 收起面板');
            util.cookie.set('foldpanel', 0);
            $('.wb-container').removeClass('right-panel')
        }
    });
    $(".wb-shortcut").click(function() {
        if ($(this).hasClass('active')) {
            $(this).removeClass('active');
            $(".fast-nav").removeClass('in')
        } else {
            $(this).addClass('active');
            $(".fast-nav").addClass('in')
        }
    });
    $(".fast-list.menu a").hover(function() {
        $(this).addClass('active').siblings().removeClass('active');
        var tab = $(this).data('tab');
        $(".fast-list.list [data-tab='" + tab + "']").addClass('in').siblings('.in').removeClass('in');
        $(".funbar-panel").hide();
        $("#funbar-name").val('');
        $("#funbar-color").val('#666666')
    });
    $(".funbar-add-btn").click(function() {
        $(".funbar-panel").show();
        $("#funbar-bold-0").prop('checked', 'checked')
    });
    $(".funbar-cancel-btn").click(function() {
        $(".funbar-panel").hide();
        $("#funbar-name").val('');
        $("#funbar-color").val('#666666')
    });
    $(".funbar-save-btn").click(function() {
        var name = $.trim($("#funbar-name").val());
        if (name == '') {
            tip.msgbox.err('请输入导航名称');
            return
        }
        var color = $("#funbar-color").val();
        var bold = $("#funbar-bold-1").is(':checked') ? 1 : 0;
        var link = $("#funbar-link").val();
        var fundata = {
            href: link,
            text: name,
            color: color,
            bold: bold
        };
        $.post(biz.url('sysset/funbar/post'), {
            funbardata: fundata
        }, function(ret) {
            if (ret.status == 1) {
                var html = '<a href="' + link + '" style=" ';
                if (bold == 1) {
                    html += 'font-weight: bold;'
                }
                if (color != '#666666') {
                    html += 'color: ' + color + ';'
                }
                html += '">' + name + '</a>';
                $("#funbar-list").prepend(html);
                $(".funbar-panel").hide();
                $("#funbar-name").val('');
                $("#funbar-color").val('#666666')
            } else {
                tip.msgbox.err("保存失败请重试!")
            }
        }, 'json')
    });
    $("#btn-clear-history").click(function() {
        var merch = $(this).data('merch') || 0;
        tip.confirm("确认清除最近访问吗?", function() {
            $.post(biz.url('clearhistory', null, merch), {
                type: 0
            }, function(ret) {
                $(".fast-list.history").remove()
            })
        })
    });
    $(document).click(function(e) {
        var btn1 = $(e.target).closest('.wb-shortcut').length;
        if (!btn1) {
            var fastNav = $(e.target).closest('.fast-nav').length;
            if (!fastNav) {
                $(".wb-shortcut").removeClass('active');
                $(".fast-nav").removeClass('in')
            }
        }
    });
    if ($(".form-editor-group").length > 0) {
        $(".form-editor-group .form-editor-btn").click(function() {
            var editor = $(this).closest(".form-editor-group");
            editor.find(".form-editor-show").hide();
            editor.find(".form-editor-edit").css('display', 'table')
        });
        $(".form-editor-group .form-editor-finish").click(function() {
            if ($(this).closest(".form-group").hasClass("has-error")) {
                return
            }
            var editor = $(this).closest(".form-editor-group");
            editor.find(".form-editor-show").show();
            editor.find(".form-editor-edit").hide();
            var input = editor.find(".form-editor-input");
            var value = $.trim(input.val());
            editor.find(".form-editor-text").text(value)
        })
    }
    $("img").error(function() {
        $(this).attr('src', '../addons/ewei_shopv2/static/images/nopic.png')
    })
});

移入浮窗效果

html的

<tr rel="pop"
    data-title="时间 "
    data-content="
        <label class='label label-primary'>支付时间:</label><br />{$item['pay_time']} <br/>
        <label class='label label-primary'>创建时间:</label><br />{$item['created_time']} <br/>
    "
>

</tr>

js的

require(['bootstrap'],function(){
    $("[rel=pop]").popover({
        trigger:'manual',
        placement : 'left',
        title : $(this).data('title'),
        html: 'true',
        content : $(this).data('content'),
        animation: false
    }).on("mouseenter", function () {
        var _this = this;
        $(this).popover("show");
        $(this).siblings(".popover").on("mouseleave", function () {
            $(_this).popover('hide');
        });
    }).on("mouseleave", function () {
        var _this = this;
        setTimeout(function () {
            if (!$(".popover:hover").length) {
                $(_this).popover("hide")
            }
        }, 100);
    });


});

textarea输入框

<!-- 审核不通过的理由 -->
<div class="form-group">
    <label class="col-sm-2 control-label">审核不通过的理由</label>
    <div class="col-sm-9 col-xs-12 ">
        {ife 'xkjh_order.index.order_edit' $item}
        <textarea class="form-control" name="audit_refuse_text" rows="5">{$item['audit_refuse_text']}</textarea>
        {else}
        <div class="form-control">{$item['audit_refuse_text']}</div>
        {/if}
    </div>
</div>