zoukankan      html  css  js  c++  java
  • 21-----BBS论坛

    BBS论坛(二十一)

    21.1.编辑轮播图功能完成

    (1)cms_banners.html

    把属性绑定到<tr>上面,方便找到各属性的值

       <tbody>
            {% for banner in banners %}
                <tr data-name="{{ banner.name }}" data-id="{{ banner.id }}" data-img="{{ banner.img_url }}"
                    data-link="{{ banner.link_url }}" data-priority="{{ banner.priority }}">
    
                    <td>{{ banner.name }}</td>
                    <td><a href="{{ banner.img_url }}" target="_blank">{{ banner.img_url }}</a></td>
                    <td><a href="{{ banner.link_url }}" target="_blank">{{ banner.link_url }}</a></td>
                    <td>{{ banner.priority }}</td>
                    <td>{{ banner.create_time }}</td>
                    <td>
                        <button class="btn btn-default btn-xs edit-banner-btn">编辑</button>
                        <button class="btn btn-danger btn-xs delete-banner-btn">删除</button>
                    </td>
                </tr>
            {% endfor %}
            </tbody>

    (2)banner.js

    $(function () {
        $('#save_banner_btn').click(function (event) {
            event.preventDefault();
            var self = $(this);
            var dialog = $('#modal-dialog');
            var nameInput = $("input[name='name']");
            var imgInput = $("input[name='img_url']");
            var linkInput = $("input[name='link_url']");
            var priorityInput = $("input[name='priority']");
    
            var name = nameInput.val();
            var img_url = imgInput.val();
            var link_url = linkInput.val();
            var priority = priorityInput.val();
            var submitType = self.attr('data-type');
            var bannerId = self.attr('data-id');
    
    
            if (!name || !img_url || !link_url || !priority) {
                zlalert.alertInfo('请输入所有数据');
                return;
            }
    
            var url = '';
            if (submitType == 'update') {
                url = '/cms/ubanner/';
            } else {
                url = '/cms/abanner/'
            }
            zlajax.post({
                'url': url,
                'data': {
                    'name': name,
                    'img_url': img_url,
                    'link_url': link_url,
                    'priority': priority,
                    'banner_id': bannerId
                },
                'success': function (data) {
                    if (data['code'] == 200) {
                        dialog.modal('hide');
                        window.location.reload()
                    } else {
                        zlalert.alertInfo(data['message']);
                    }
                },
                'fail': function (error) {
                    zlalert.alertNetworkError()
                }
            });
        });
    
    });
    
    $(function () {
        $('.edit-banner-btn').on('click', function (event) {
            var $this = $(this);
            var dialog = $('#banner-dialog');
            dialog.modal('show');
    
            var tr = $this.parent().parent();
            var name = tr.attr('data-name');
            var img = tr.attr('data-img');
            var link = tr.attr('data-link');
            var priority = tr.attr('data-priority');
            var nameInput = dialog.find('input[name=name]');
            var imgInput = dialog.find('input[name=img_url]');
            var linkInput = dialog.find('input[name=link_url]');
            var priorityInput = dialog.find('input[name=priority]');
            var saveBtn = dialog.find('#save_banner_btn');
    
            nameInput.val(name);
            imgInput.val(img);
            linkInput.val(link);
            priorityInput.val(priority);
            saveBtn.attr('data-type', 'update');
            saveBtn.attr('data-id', tr.attr('data-id'));
    
        });
    });

    (3)cms/forms.py

    class AddBannerForm(BaseForm):
        name=StringField(validators=[InputRequired(message='请输入轮播图名称')])
        img_url=StringField(validators=[InputRequired(message='请输入轮播图链接')])
        link_url=StringField(validators=[InputRequired(message='请输入轮播图跳转链接')])
        priority=IntegerField(validators=[InputRequired(message='请输入轮播图优先级')])

    (4)cms/views.py

    @bp.route('/ubanner/',methods=['POST'])
    def ubanner():
        form=UpdateBannerForm(request.form)
        if form.validate():
            banner_id=form.banner_id.data
            name=form.name.data
            img_url=form.img_url.data
            link_url=form.link_url.data
            priority=form.priority.data
            banner=BannerModel.query.get(banner_id)
            if banner:
                banner.name=name
                banner.img_url=img_url
                banner.link_url=link_url
                banner.priority=priority
                db.session.commit()
                return restful.success()
            else:
                return restful.params_error(message='没有这个轮播图')
        else:
            return restful.params_error(message=form.get_error())

    21.2.删除轮播图功能完成

    (1)cms/forms.py

    class UpdateBannerForm(AddBannerForm):
        banner_id=IntegerField(validators=[InputRequired(message='请输入轮播图ID')])

    (2)banner.js

    $(function () {
        $('.delete-banner-btn').on('click', function () {
            var banner_id = $(this).parent().parent().attr('data-id');
            zlalert.alertConfirm({
                'msg': '确定要删除这张图片吗?',
                'confirmCallback': function () {
                    zlajax.post({
                        'url': '/cms/dbanner/',
                        'data': {
                            'banner_id': banner_id
                        },
                        'success': function (data) {
                            if (data['code'] == 200) {
                                window.location.reload();
                            } else {
                                zlalert.alertInfo(data['message'])
                            }
                        }
    
                    })
                }
            });
        });
    });

     

  • 相关阅读:
    TechRoad_oneStep_0509
    TechRoad_0417
    [Network] 判断设备是否能访问 Internet
    云原生相关知识点
    Algorithm: 多项式乘法 Polynomial Multiplication: 快速傅里叶变换 FFT / 快速数论变换 NTT
    Mac下配置Apache服务器
    解决antdv 中input每输入一个字符就失去焦点
    *装饰者模式(Decorator)
    *单例模式(singleton)
    ubuntu20.04 线缆已拔出
  • 原文地址:https://www.cnblogs.com/edeny/p/10021091.html
Copyright © 2011-2022 走看看