找回密码
 免费注册

[开发笔记] 附件管理插件jQuery模板替换实例

[复制链接]
admin 发表于 2022-11-28 02:30:22 | 显示全部楼层 |阅读模式
  1. {extend name="apps/common/view/front.tpl" /}
  2. <!-- -->
  3. {block name="header_meta"}
  4. <title>我的文件-{:config('common.site_name')}</title>
  5. {/block}
  6. {block name="header"}{include file="apps/common/view/widget/header.tpl" /}{/block}
  7. <!--main -->
  8. {block name="main"}
  9. <div class="container pt-2">
  10.   <div class="card mb-2">
  11.     <div class="card-body d-flex justify-content-between">
  12.       <form action="{:DcUrl('attachment/json/index')}" method="get" data-toggle="form" data-callback="daicuo.attachment.result">
  13.         <div class="input-group">
  14.           <input type="text" class="form-control form-control-sm" name="searchText" id="searchText" maxlength="20" autocomplete="off" data-toggle="attachment-search">
  15.           <div class="input-group-append">
  16.           <button class="btn btn-sm btn-secondary" type="submit" data-toggle="submit">搜索</button>
  17.           </div>
  18.         </div>
  19.       </form>
  20.       <a class="btn btn-sm btn-secondary" data-start="0" data-toggle="attachment-start">下一页</a>
  21.     </div>
  22.   </div>
  23.   <div class="table-responsive">
  24.     <table class="table table-bordered text-center">
  25.         <thead>
  26.           <tr>
  27.             <th width="80">ID</th>
  28.             <th class="text-left">文件名</th>
  29.             <th width="80">后缀</th>
  30.             <th width="120">操作</th>
  31.           </tr>
  32.         </thead>
  33.         <tbody id="tbody">
  34.           <tr data-id="{{info_id}}">
  35.               <td>{{info_id}}</td>
  36.               <td class="text-left">{{info_title}}</td>
  37.               <td>{{info_type}}</td>
  38.               <td><a href="javascript:;" data-toggle="attachment-previw">预览</a> <a href="javascript:;" data-toggle="attachment-edit">修改</a> <a href="javascript:;" data-toggle="attachment-delete">删除</a></td>
  39.           </tr>
  40.         </tbody>
  41.     </table>
  42.   </div>
  43. </div>
  44. {/block}
  45. {block name="js"}
  46. <script>
  47. daicuo.attachment = {
  48.     tpl: '',
  49.     element: '#tbody',
  50.     url: function(){
  51.         return $('[data-toggle="form"]').attr('action')+'?searchText='+$('[data-toggle="attachment-search"]').val()+'&pageStart='+$('[data-toggle="attachment-start"]').data('start');
  52.     },
  53.     init: function(obj){
  54.         this.element = obj.element;
  55.         this.tpl = $(obj.element).html();
  56.         //初始请求
  57.         daicuo.ajax.get(obj.url, function(json,status,xhr){
  58.             daicuo.attachment.result(json,status,xhr);
  59.         },function(xhr,status,json){
  60.             daicuo.bootstrap.dialog(status);
  61.         });
  62.         //监听下一页
  63.         daicuo.attachment.next();
  64.         //监听删除
  65.         daicuo.attachment.delete();
  66.         //监听搜索表单
  67.         daicuo.form.init();
  68.     },
  69.     //下一页按钮
  70.     next: function(){
  71.         $(document).on("click",'[data-toggle="attachment-start"]',function(){
  72.             daicuo.ajax.get(daicuo.attachment.url(),function(json,status,xhr){
  73.                 daicuo.attachment.result(json,status,xhr);
  74.             },function(xhr,status,json){
  75.                 daicuo.bootstrap.dialog(status);
  76.             });
  77.         });
  78.     },
  79.     //删除按钮
  80.     delete: function(){
  81.         $(document).on("click",'[data-toggle="attachment-delete"]',function(){
  82.             alert($(this).parents('tr').data('id'));
  83.         });
  84.     },
  85.     //替换模板
  86.     result: function(json,status,xhr){
  87.         if(json){
  88.             var tbody = [];
  89.             $.each(json.data,function(index,value){
  90.                tbody.push(daicuo.attachment.tpl.replaceAll('{{info_id}}',value.info_id).replaceAll('{{info_title}}',value.info_title).replaceAll('{{info_type}}',value.info_type));
  91.             });
  92.             $(daicuo.attachment.element).html(tbody.join(','));
  93.             //下一页
  94.             if(json.has_more){
  95.                 $('[data-toggle="attachment-start"]').data('start',json.next_item[0].info_id);
  96.             }else{
  97.                 $('[data-toggle="attachment-start"]').addClass('disabled');
  98.             }
  99.         }else{
  100.             daicuo.bootstrap.dialog('no');
  101.         }
  102.     }
  103. };
  104. $(function(){
  105.     daicuo.attachment.init({
  106.         element: "#tbody",
  107.         url: $('[data-toggle="form"]').attr('action')
  108.     });
  109. });
  110. </script>
  111. {/block}
  112. {block name="footer"}{include file="apps/common/view/widget/footer.tpl" /}{/block}
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

QQ|Archiver|手机版|小黑屋|信息共享网

GMT+8, 2024-5-15 16:17 , Processed in 0.072655 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表