内容div

<div id="modal-cont"></div>

模板tpl

<script id="modal-tpl" type="text/template">
<!-- 模态框(Modal) -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">×
</button>
<h4 class="modal-title" id="myModalLabel">
查看申请
</h4>
</div>
<div class="modal-body">
<table class="table table-striped">
<thead>
<tr>
<th>uid</th>
<th>姓名</th>
<th>手机号</th>
<th>状态</th>
<th>申请时间</th>
<th>更新时间</th>
<th>操作</th>
</tr>
</thead>
<tbody id="modal_tbody">
{{ each data }}
<tr>
<td>{{ $value.uid }}</td>
<td>{{ $value.name }}</td>
<td>{{ $value.telephone }}</td>
<td id="apply_status_{{ $value.id }}">
{{ if $value.apply_status == 0 }}
申请中
{{ else if $value.apply_status == 1 }}
已同意
{{ else if $value.apply_status == 2 }}
已拒绝
{{ /if }} </td>
<td>{{ $value.create_time }}</td>
<td>{{ $value.update_time }}</td>
<td id="apply_opt_{{ $value.id }}">
{{ if $value.apply_status == 0 }}
<a href="javascript:;" data-id="{{ $value.id }}" data-student_id="{{ $value.student_id }}" class="audit-apply">审核</a>
{{ /if }}
</td>
</tr>
{{ /each }}
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default"
data-dismiss="modal">关闭
</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</script>

获取数据

$(".info_apply").on('click',function () {
let student_id = $(this).parent().data('id');
// 获取申请信息
$.ajax({
type:'POST',
url:'ajax_get_apply',
data: {student_id: student_id},
dataType:'json',
success:function(data){
if(data.errno == 0){
let html = template('modal-tpl', {data:data.data});
$('#modal-cont').html(html);
$("#myModal").modal("show");
}else{
alert(data.errdesc);
return false;
}
}
});
});

操作审核,异步处理

// 页面加载好之后,添加点击事件
$(document).on("click",".audit-apply",function(){
let apply_id = $(this).data('id');
let student_id = $(this).data('student_id'); layer.confirm('是否审核通过?', {
btn: ['通过','不通过'] //按钮
}, function(){
// ajax设置通过
$.ajax({
type:'POST',
url:'ajax_audit_apply',
data: {apply_id: apply_id,pass:1},
dataType:'json',
success:function(obj){
layer.msg(obj.errdesc);
$("#apply_status_"+apply_id).text('已同意');
$("#apply_opt_"+apply_id).text('');
$("#student_help_status_"+student_id).html('<span class="text-success">已帮助</span>');
layer.close();
}
});
}, function(){
// ajax设置通过
$.ajax({
type:'POST',
url:'ajax_audit_apply',
data: {apply_id: apply_id,pass:2},
dataType:'json',
success:function(obj){
layer.msg(obj.errdesc);
$("#apply_status_"+apply_id).text('已拒绝');
$("#apply_opt_"+apply_id).text('');
$("#student_help_status_"+student_id).html('<span class="text-primary">未帮助</span>');
layer.close();
}
});
});
})

modal结合art-template的更多相关文章

  1. art template前端模板引擎

    偶然看到后台有一段代码 采用的是art template的模板引擎 地址为 http://aui.github.io/artTemplate/ 这段代码很简洁 var html = template( ...

  2. art.template 循环里面分组。

    后台提供给我们一个数组,我们要用模版实现上面的格式输出怎么版呢? 下面就是解决方案: <h2>循环4个一组</h2> <script type="text/ht ...

  3. 利用art.template模仿VUE 一次渲染多个模版

    TypeScript代码 import template = require('art-template/lib/template-web'); interface TemplateBindConfi ...

  4. 利用art.template模仿VUE

    首先先看一下Typescript代码: import template = require('art-template/lib/template-web'); interface TemplateBi ...

  5. js 模板引擎 -Art Template

    一个例子涵盖所有: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  6. vue 实现modal

    本文只是作为练习弹出框,弹框内部的东西需要进行自定义添加,主要对更新,删除,新建 ,提示四种弹框进行实现,例子中只是简单的组件应用 Modal.vue文件 <template> <d ...

  7. VUE实现Studio管理后台(完结):标签式输入、名值对输入、对话框(modal dialog)

    一周的时间,几乎每天都要工作十几个小时,敲代码+写作文,界面原型算是完成了,下一步是写内核的HTML处理引擎,纯JS实现.本次实战展示告一段落,等RXEditor下一个版本完成,再继续分享吧.剩下的功 ...

  8. 6个强大的AngularJS扩展应用

    本文链接:http://www.codeceo.com/article/6-angularjs-extension.html本文作者:码农网 – 小峰 AngularJS现在非常热门,是Google推 ...

  9. 一步步编写avalon组件01:弹出层组件

    avalon2已经稳定下来,是时候教大家如何使用组件这个高级功能了. 组件是我们实现叠积木开发的关键. avalon2实现一个组件非常轻松,并且如何操作这个组件也比以前的avalon2,还是react ...

  10. AngularJS进阶(六)AngularJS+BootStrap实现弹出对话框

    AngularJS+BootStrap实现弹出对话框 参考资料: http://angular-ui.github.io/bootstrap/#/modal https://www.zybuluo.c ...

随机推荐

  1. jpg、gif、png-8、png-24的区别

    一.gif格式的特点 1.透明性.gif是一种布尔透明类型,即它可以是全透明,也可以是全不透明,但是没有半透明 2.动画.gif支持动画 3.无损耗性.gif是一种无损耗的图像格式,这意味着你可以对g ...

  2. django 分页函数

    实现类似: 上一页 1 ... 4 5 7 8 ... 89 下一页 的效果 def pageGenerate(fullList,pagenum,urltype,type,currpage): pag ...

  3. redis 缓存锁的实现方法

    1. redis加锁分类 redis能用的的加锁命令分表是INCR.SETNX.SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执 ...

  4. jsonp获取股票信息

    源码: <script src="http://hq.sinajs.cn/list=sh600050" charset="gb2312"></ ...

  5. 01: docker 基本使用

    1.1 docker基础 1.docker与虚拟机比较 2.docker版本 1. 社区版(Community Edition, CE) 2. 企业版(Enterprise Edition, EE) ...

  6. mysql "The user specified as a definer ('root'@'%') does not exist" 问题

    在重配mysql的时候碰到, 解决办法: 重新授权 grant all privileges on *.* to root@"%" identified by ".&qu ...

  7. Codeforces 772A Voltage Keepsake - 二分答案

    You have n devices that you want to use simultaneously. The i-th device uses ai units of power per s ...

  8. tar+nc传输文件的使用

  9. you must restart adb and eclipse的相关解决办法

    问题是5037端口被占用: C:\>netstat -aon|findstr "5037" 看到了吗,端口被进程号为5037的进程占用,继续执行下面命令(也可以去任务管理器中 ...

  10. 尚硅谷面试第一季-14Redis持久化类型及其区别

    课堂重点: Redis提供了两种不同形式的持久化方案,分别是RDB和AOF. RDB使用Snapshot快照做全量的存储. RDB优缺点: AOF 以日志的方式记录每个写操作,只最佳,不该写文件.增量 ...