Bootstrap-dialog的使用(续Bootstrap Table)

Bootstrap-dialog实现表格内容的增,删,改。

插件引入:必须先引入jquery和bootstrap和artTemplate。

<link rel="stylesheet" href="${ctx}/assets/plugins/bootstrap-dialog/css/bootstrap-dialog.min.css">
<script src="${ctx}/assets/plugins/bootstrap-dialog/js/bootstrap-dialog.min.js"></script>
<script src="${ctx}/assets/js/app-jquery-dialog.js"></script>  //自写的插件,结合ajax。

增:

点击新增订单:弹出如图所示的弹框。

$("#addBtn").on("click", function() {
     $.FORM.showFormDialog({  //显示需要提交的表单。
          title: "添加VIP订单", //标题
          postUrl: "${aapi}/orderVip/create", //数据提交的接口
          templateUrl: ‘${aapi}/page/custom/vipForm‘,  //form表单所在的jsp页面,在mysql中手动添加。
          formId: "#vipForm",  // 需要提交的form表单的id
          postType: "multipart",  // 提交数据类型,与后台@requestBody保持一致。
          data: {  //自定义上传的参数
                  pid: 0,
                  pname: "--",
                  level: 0
                },
          onPostSuccess: function() {
               $("#table").bootstrapTable("refresh");  //请求成功刷新表格,加载数据
          }
      });
});

templateUrl里的jsp页面表单部分。

注意:后台会给出接口文档,name与表单提交的字段名保持一致,否则无法上传。

<form id="vipForm" method="post" action="">
    <input type="hidden" name="id">     <input type="hidden" name="pid" value="{{pid}}">    <input type="hidden" name="level" value="{{level}}">
    <input type="hidden" name="cusId" id="id" value="" placeholder="id" />
    <input type="hidden" name="cusName" id="cusName" value="" placeholder="选择大客户姓名" />
    <div class="form-group ">
        <label for="fixMove">订单类型:</label>         <label class="checkbox-inline">
            <input type="checkbox" name="type" value="1" />搬运
        </label>         <label class="checkbox-inline">             <input type="checkbox" name="type" value="0" />维修
        </label>
    </div>
    <div class="form-group ">
        <label>订单备注:</label>
        <div>
            <textarea name="remark" rows="3" cols="70"></textarea>
        </div>
    </div>
    <div class="form-group ">
        <label for="file">订单文件</label>
        <div>
            <input type="file" id="file" name="orderFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,             application/vnd.ms-excel,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
        </div>
    </div>
    <div class="form-group" id="searchForm">
        <label for="isHot">订单用户:</label>        <span id="cusname"></span>
        <div>
            <input type="text" class="searEle" name="nickname" value="" placeholder="姓名" />
            <input type="text" class="searEle" name="phone" value="" placeholder="手机号码" />
            <input id="searchcus" type="button" value="查询" />
        </div>
        <div>
            <table id="cusTable"></table>
        </div>
    </div>
</form>

添加内容并且上传,在后台接口中打一个断点,就能监听到前端传入后台的数据(info)。如下图所示。

成功后信息提示,表格刷新显示刚才增加的订单。信息提示本文暂不做阐述,在Pnotify插件使用中详细阐述。

改:

点击修改按钮,弹出表单框。

js代码:除了新增了dataSource和isReadOnly,与上述无异。

$.FORM.showFormDialog({
     title: "修改VIP订单",
     postUrl: "${aapi}/orderVip/update", //更新内容的接口
     dataSource: "${aapi}/orderVip/detail/2/" + row.orderNo,//新增了dataSource结合artTemplate用于渲染数据表单数据,实现在此基础上的修改。
     isReadOnly: false, //设置为非只读模式,进入修改模式,提交按钮变成修改。
     templateUrl: ‘${aapi}/page/custom/vipModifyForm‘, //修改的jsp页面,与新增的页面不一致,使用artTemplate将datasource的数据渲染到表单中。
     formId: "#vipForm", //修改为“vipModifyForm.jsp”页面的formid
     postType: "multipart",
     data: {
            pid: 0,
            pname: "--",
            level: 0
           },
     onPostSuccess: function() {
         $("#table").bootstrapTable("refresh");
     }
});

templateUrl:

<script>
    if("{{type}}"=="1,0"){
        $("#movetype").attr("checked","checked");
        $("#fixtype").attr("checked","checked");
    }else if("{{type}}"=="0"){
         $("#fixtype").attr("checked","checked");
    }else if("{{type}}"=="1"){
        $("#movetype").attr("checked","checked");
    }
    function clickCk(){
        var movetype = $("#movetype").prop("checked");
        var fixtype = $("#fixtype").prop("checked");
        var typeStr = "1,0";
        if(movetype&&!fixtype){
            typeStr = "1";
        }else if(!movetype&&fixtype){
            typeStr = "0";
        }
        $("#typeStr").val(typeStr);
    }
</script>
<form id="vipForm" method="post" action="">
    <input type="hidden" name="id"> //type:hiden,看不见这个form控件,但是值能随着表单一起提交。    <input type="hidden" name="pid" value="{{pid}}">     <input type="hidden" name="level" value="{{level}}">
    <input type="hidden" name="orderNo" value="{{orderNo}}" /> //由于是修改这一条订单的内容,所以必须上传该条订单的某个参数用以区分,后台要求传orderNo。
    <input type="hidden" name="cusId" id="id" value="" placeholder="id" />
    <input type="hidden" name="cusName" id="cusName" value="" placeholder="选择大客户姓名" />

    <div class="form-group ">
        <label for="fixMove">订单类型:</label>         <label class="checkbox-inline">
            <input type="checkbox" value="1" id="movetype" onclick="clickCk()"/>搬运
        </label>         <label class="checkbox-inline">            <input type="checkbox" value="0" id="fixtype" onclick="clickCk()"/>维修
        </label>            <input type="hidden" name="type" readonly id="typeStr"/>
    </div>

    <div class="form-group ">
        <label>订单备注:</label>
        <div>
            <textarea name="remark" rows="3" cols="70"></textarea>
        </div>
    </div>
    <div class="form-group ">
        <label>订单文件:</label><span>{{fileRealName}}</span>        <input name="orderFile" id="input-1" type="file" class="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,        application/vnd.ms-excel,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document">
    </div>
    <div class="form-group" id="searchForm">
        <label for="isHot">订单用户:</label>        <span id="cusname"></span>
        <div>
            <input type="text" class="searEle" name="nickname" value="" placeholder="姓名" />
            <input type="text" class="searEle" name="phone" value="" placeholder="手机号码" />
            <input id="searchcus" type="button" value="查询" />
        </div>
        <div>
            <table id="cusTable"></table>
        </div>
    </div>
</form>

请求成功后,提示成功,并且表格更新为已改的数据。

删:

点击删除按钮。弹出删除信息。

js代码:

$.FORM.showConfirm({
       title: "提示",
       message: "您确认要取消订单【" + row.orderNo + "】?", //内置文字
       url: "${aapi}/orderVip/delete/" + row.orderNo, //删除的接口
       autoClose: true, //自动关闭
       successTitle: "成功",
       successMessage: "订单【" + row.orderNo + "】已取消!",
       onSuccess: function() {
              $("#table").bootstrapTable("refresh");
       }
});

删除成功后消息提示,并且从表格中被删除。

详情:

点击订单编号,弹出订单详情。

js代码:

$.FORM.showFormDialog({
      title: "订单详情",
      isReadOnly: true, //设置为true就没有保存的按钮了。
      dataSource: "${aapi}/orderVip/detail/2/" + row.orderNo,
      templateUrl: ‘${aapi}/page/custom/vipOrderDetail‘
});

artTemplate渲染模版:

<div id="messageForm">
    <input type="hidden" name="id">
    <div class="form-group ">
        <label>订单编号</label>
        <p>{{orderNo}}</p>
    </div>
    <div class="form-group ">
        <label>拆分数目</label>
        <p>{{if type==‘0‘}} 维修 {{else if type==‘1‘}}搬运{{else if type=="1,0"}}搬运、维修{{/if}}</p>
    </div>
    <div class="form-group ">
        <label>发起人</label>
        <p>{{cusName}}</p>
    </div>
    <div class="form-group ">
        <label>备注</label>
        <p>{{remark}}</p>
    </div>
    <div class="form-group ">
        <label>创建时间</label>
        <p>{{createdDtm}}</p>
    </div>
    <div class="form-group ">
        <label>文档下载</label>
        <p id="download" style="cursor: pointer;"><i class="fa fa-file-o" aria-hidden="true"></i>{{fileRealName}}</p>
    </div>
</div>

<script>
   $("#download").on("click",function(){
     location.href=‘${aapi}/orderVip/downLoad/{{orderNo}}‘;//下载文件的接口
   });
 </script>

 
时间: 2024-10-25 16:19:14

Bootstrap-dialog的使用(续Bootstrap Table)的相关文章

Bootstrap dropdown menu within a responsive table

Bootstrap 的 dropdown menu 在 responsive table内 会被外层遮挡住 解决办法: $('.table-responsive').on('show.bs.dropdown', function () { $('.table-responsive').css( "overflow", "inherit" ); }); $('.table-responsive').on('hide.bs.dropdown', function ()

bootstrap学习笔记一: bootstrap初认识,hello bootstrap(下)

这一篇主要是补上源码,开始之前请先回顾:bootstrap学习笔记一: bootstrap初认识,hello bootstrap(上) 首先,我们的页面要求, lang,charset等就不用说了,老html属性, viewport是h5的属性,目的是 width=device-width 铺满设备宽度, initial-scale=1正常比较 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta c

Bootstrap for MVC:Html.Bootstrap().TextBoxFor(model=&gt;model.Name)

在上篇博文中提到最近比较忙,也打过招呼Orchard系列文章更新速度可能会放缓,但还是会继续写下去,主要原因在最近想着开发一个新的东西(系统?组件?),等有一定成果时会跟大家分享一些相关的东西,今天介绍因为这个新项目而抽空写的一个类库,主要是在MVC中快速使用Bootstrap的. 为什么需要封装? Bootstrap 使用起来非常的简单便捷,那为什么还需要封装呢?Bootstrap 在使用过程中无非就是一些className和javascript,在之前的MVC开发中已经习惯了@Html.Te

Bootstrap入门一:Hello Bootstrap

一.Bootstrap简介 Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap是基于 HTML5.CSS3和Javascriopt开发的,它在 jQuery的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件,为实现快速开发提供了一套前端工具包,包括丰富的布局.栅格.丰富的Web组件和jQuery插件等,并能通过Less进行样式定制. 二.Hello Bootstrap 1.建立项目目录结构,新建app.css.fo

桂电在线-转变成bootstrap版2(记录学习bootstrap)

下载bootstrap框架https://github.com/twbs/bootstrap 或者 http://getbootstrap.com/ 拷贝模板 修改基本模板 语言zh-cn,标题,描述 修改css,js,网站logo路径 修改后 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv=&q

bootstrap教程(一)———bootstrap标题(一)

本文为H5EDU机构官方的HTML5培训教程 bootstrap教程(一). 我们首先要下载bootstrap的框架文件,放到我们的项目目录当中.然后将bootstrap框架当中的bootstrap.css文件引入到项目当中.之后我们可以看,在bootstrap当中的标题与我们没用使用框架的文件是有不同之处的.最明显的是文字变细. <link rel="stylesheet" href="boostrap.css"> <!--bootstrap中的

Bootstrap中样式Jumbotron,row, table的实例应用

之前只是大概预览了下Bootstrap中涉及到的相关元素,插件等的使用.接下来将通过实例演练加强对Bootstrap的了解.实例来自http://www.runoob.com/有兴趣的可以上去学习跟w3cschool上的差不多. 为了加深理解,决定先在本地用google浏览器测试后,再写到这里.加深印象. 第一:首先是基本的网页标签的定义.采用的是html5的写法如下: <!DOCTYPE html> <html> <head> <title>Bootstr

Bootstrap学习记录-2.container和table

1. Container Bootstrap中容器类提供了2个类标识:container.container-fluid. 两者的区别在于: container:容器不止有15px的padding,还有一个随着浏览器宽度变化而变化的margin.container-fluid:只有固定的15px的padding. 因此,container类的自适应是通过修改margin的改变来完成的,而container-fluid类的百分百宽度是指在固定的15px的padding前提下宽度总是当前视窗的宽度.

Bootstrap 基本用法(续)

在bootstrap中有很多的组件,这些组件可以帮组我们更快的写出一些好看的样式,下面就是一些样式: 导航框: <ul class="nav nav-tabs"> <li class="active"><a href="#">Home</a></li> <li><a href="#">Profile</a></li> &