BJUI实现点击按钮弹窗,提交到后台action后回显数据流程整理

场景

当我们点击页面的某个按钮去执行某个业务时,需要弹出一个dialog窗口,然后再点击提交或者保存,提及

给后台action,后台回显结果。

效果

点击某个按钮

弹出窗口dialog

点击提交按钮回显消息

实现

点击按钮页面

<label for="name" class="control-label x90">销账:</label> 
      <button type="button" class="btn btn-default"
          data-toggle="dialog"
          data-options="{id:'toRecharge',url:'${ctx}/sys/cooperativePartnersManageAction/toWriteOff',type:'post',data:{id:${partner.id}}}"
          data-width="300" data-height="200"
          data-id="dialog-user-role"
          data-title="${partner.partnerName}销账">销账
       </button>

注:data-toggle要设置为dialog;

data-options中设置后台提交的action的url,以及要提交的参数等;

data-width="300" data-height="200"设置弹窗的宽度和高度;

data-title设置弹窗的标题;

后台action

@RequestMapping(value="/toWriteOff")
 public ModelAndView toWriteOff(Integer id) {
  ModelAndView mv = null;
  try {
   mv = new ModelAndView();
   mv.addObject("partnerId", id);
   SysPartners sysPartner = sysPartnersService.getByPrimaryKey(id);
   
   //传递对象,防止对象错误
   mv.addObject("partnerName", sysPartner.getPartnerName());
   mv.setViewName(ModelAndViewConstants.PARTNER_WRITEOFF_VIEW);
   LogService.getInstance(this).debug("获取销账数据成功:"+ModelAndViewConstants.PARTNER_WRITEOFF_VIEW);
  }
  catch(Exception ex) {
   LogService.getInstance(this).error("获取销账数据失败:" + ex.getMessage(), ex);
   mv = new ModelAndView(ModelAndViewConstants.ERROR_VIEW);
  }
  return mv;
 }

此action作用是获取要销账的对象并传递过去,执行跳转的jsp页面,也就是下面的弹窗。

弹窗jsp页面

<div class="bjui-pageContent" style="background: #FFF;">
 <form id="WriteOffRecordForm" action="${ctx}/sys/cooperativePartnersManageAction/doWriteOff"
     data-toggle="validate" 
   enctype="multipart/form-data">
  <input type="hidden" name="partnerId" id="partnerId" value="${partnerId }">
  <input type="hidden" name="status" id="status" value="${dataResult.status}">
  <table class="table table-condensed table-hover">
   <tbody>
    <tr style="height: 30px;">
     <td>
         <label for="partnerName" class="control-label x90">销账对象:</label>
      <label for="partnerName" class="control-label x90">${partnerName}</label>
     </td>
    </tr>
    <tr style="height: 30px;">
     <td>
         <label for="name" class="control-label x90">确定要销账吗?</label>
     </td>
    </tr>
  </table>
 </form>
</div>
<div class="bjui-pageFooter">
 <ul>
  <li><button type="button" class="btn-close" data-icon="close">关闭</button></li>
  
  <li><button type="submit" class="btn-default" data-icon="save" >销账</button></li>
  
 </ul>
</div>

弹窗点击提交后的action

@ResponseBody
 @RequestMapping(value="/doWriteOff")
 public Map<String, Object> doWriteOff(Integer partnerId) {
  Map<String, Object> jsonResult = null;
  try {
   //与配置权限管理中相对应,实现添加或编辑完实时更新
   String tabid = tabid(ModelAndViewConstants.PARTNER_SYS_ID);
   String msg = "销账成功";
   int result;
   SysPartners sysPartner = sysPartnersService.getByPrimaryKey(partnerId);
   if(sysPartner.getCurrentAdvanceMoney().compareTo(new BigDecimal("0.00"))==0 ) {
    msg="此用户当前预付款为0";
   }else {
       result =passPartnersBillseriaService.doWriteOff(partnerId,sysPartner);
    msg = "销账成功";
   }
   
   
   Integer statusCode = 200;
   
   jsonResult = JsonResult.jsonReturn(statusCode, msg, tabid);
  }
  catch(Exception ex) {
   LogService.getInstance(this).error("销账失败:" + ex.getMessage(), ex);
   String msg =  "销账失败:" + ex.getMessage();
   jsonResult = JsonResult.jsonReturnErr(msg);
  }
  return jsonResult;
 }


 

 

 

 


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要将弹窗中选择的数据回显到 `el-table` 的单元格中,可以使用以下步骤: 1. 首先,需要在 `el-table` 中创建一个列,用于显示选择的数据。可以使用以下代码: ```html <el-table-column prop="selectedData" label="选择的数据"></el-table-column> ``` 其中 `prop` 属性表示要显示的数据数据源中的属性名,`label` 属性表示列标题。 2. 在 Vue 组件的 `data` 中,添加一个 `selectedData` 属性,用于存储选择的数据,例如: ```javascript data() { return { selectedData: null } } ``` 3. 在弹窗中,当用户选择数据时,将其存储到 `selectedData` 属性中。可以使用以下代码: ```javascript methods: { selectData(data) { this.selectedData = data; } } ``` 其中 `selectData` 方法用于处理用户选择数据的事件。在这个方法中,将用户选择的数据存储到 `selectedData` 属性中。 4. 最后,在 `el-table` 中的相应行中,使用 `selectedData` 属性来显示选择的数据。可以使用以下代码: ```html <el-table-column prop="selectedData" label="选择的数据"></el-table-column> <el-table-column prop="其他数据" label="其他数据"></el-table-column> <el-table-column> <template slot-scope="scope"> <el-button @click="showDialog(scope.row)">选择数据</el-button> </template> </el-table-column> ``` 其中 `prop` 属性表示要显示的数据数据源中的属性名,`label` 属性表示列标题。在第三列中,使用 `el-button` 组件来触发弹窗。 5. 在弹窗中,当用户选择数据时,将其回显到 `el-table` 中的相应单元格中。可以使用以下代码: ```javascript methods: { selectData(data) { this.selectedData = data; // 回显选择的数据 this.$emit('update:selectedData', this.selectedData); // 关闭弹窗 this.dialogVisible = false; } } ``` 其中 `update:selectedData` 事件用于将选择的数据回传给父组件。在子组件中,可以使用 `v-model` 指令来监听该事件,例如: ```html <my-dialog v-model="selectedData"></my-dialog> <el-table :data="tableData"> <el-table-column prop="selectedData" label="选择的数据"></el-table-column> <el-table-column prop="其他数据" label="其他数据"></el-table-column> <el-table-column> <template slot-scope="scope"> <el-button @click="showDialog(scope.row)">选择数据</el-button> </template> </el-table-column> </el-table> ``` 其中,`my-dialog` 是弹窗组件的名称,`v-model` 指令会自动将 `selectedData` 属性传递给弹窗组件,并监听 `update:selectedData` 事件。当用户在弹窗中选择数据时,`selectedData` 属性将被更新,然后将回显到 `el-table` 的单元格中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值