datalist.html 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. {extend name="../../base/view/common/base" /}
  2. {block name="style"}
  3. <style>
  4. .tab-5 .search-item,.tab-6 .search-item{display:none;}
  5. </style>
  6. {/block}
  7. <!-- 主体 -->
  8. {block name="body"}
  9. <div class="p-page">
  10. <div class="layui-card border-x border-t" style="margin-bottom:0; box-shadow:0 0 0 0 rgb(5 32 96 / 0%)">
  11. <div class="body-table layui-tab layui-tab-brief" lay-filter="tab">
  12. <ul class="layui-tab-title">
  13. <li class="layui-this">全部</li>
  14. <li>我申请的</li>
  15. <li>待我审批</li>
  16. <li>我已审批</li>
  17. <li>抄送我的</li>
  18. <li>已开具</li>
  19. <li>已作废</li>
  20. </ul>
  21. </div>
  22. </div>
  23. <form class="layui-form gg-form-bar border-x tab-0" id="barsearchform">
  24. <div class="layui-input-inline" style="width:175px;">
  25. <input type="text" class="layui-input" id="diff_time" placeholder="选择开票时间区间" readonly name="diff_time">
  26. </div>
  27. <div class="layui-input-inline search-item" style="width:120px;">
  28. <select name="check_status">
  29. <option value="">选择审批状态</option>
  30. {volist name=":get_check_status()" id="vo"}
  31. <option value="{$key}">{$vo}</option>
  32. {/volist}
  33. </select>
  34. </div>
  35. <div class="layui-input-inline search-item" style="width:120px;">
  36. <select name="open_status">
  37. <option value="">开票状态</option>
  38. <option value="0">未开票</option>
  39. <option value="1">已开票</option>
  40. <option value="2">已作废</option>
  41. </select>
  42. </div>
  43. <div class="layui-input-inline" style="width:150px">
  44. <input type="hidden" name="tab" value="0"/>
  45. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  46. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
  47. </div>
  48. </form>
  49. <table class="layui-hide" id="table_invoice" lay-filter="table_invoice"></table>
  50. </div>
  51. <script type="text/html" id="toolbarDemo">
  52. <div class="layui-btn-container">
  53. <button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/finance/invoice/add">+ 添加开票申请</button>
  54. </div>
  55. </script>
  56. {/block}
  57. <!-- /主体 -->
  58. <!-- 脚本 -->
  59. {block name="script"}
  60. <script>
  61. const moduleInit = ['tool','tablePlus','laydatePlus'];
  62. function gouguInit() {
  63. var table = layui.tablePlus, tool = layui.tool, laydatePlus = layui.laydatePlus, element = layui.element;
  64. //tab切换
  65. element.on('tab(tab)', function(data){
  66. $('[name="tab"]').val(data.index);
  67. $("#barsearchform")[0].reset();
  68. $("#barsearchform").attr('class','layui-form gg-form-bar border-x tab-'+data.index);
  69. layui.pageTable.reload({where:{tab:data.index},page:{curr:1}});
  70. return false;
  71. });
  72. //日期范围
  73. var diff_time = new laydatePlus({'target':'diff_time'});
  74. layui.pageTable = table.render({
  75. elem: "#table_invoice"
  76. ,toolbar: "#toolbarDemo"
  77. ,title: '发票列表'
  78. ,url: "/finance/invoice/datalist"
  79. ,page: true
  80. ,limit: 20
  81. ,cellMinWidth: 80
  82. ,height: 'full-154'
  83. ,cols: [[
  84. {
  85. field: 'id',
  86. title: 'ID号',
  87. align: 'center',
  88. width: 80
  89. },{
  90. field: 'invoice_title',
  91. title: '开票抬头',
  92. minWidth: 240,
  93. templet:function(d){
  94. var html='<span class="layui-badge layui-bg-blue">企业</span> '+d.invoice_title;
  95. if(d.types==2){
  96. html='<span class="layui-badge layui-bg-green">个人</span> '+d.invoice_title;
  97. }
  98. return html;
  99. }
  100. }, {
  101. field: 'amount',
  102. title: '发票金额(元)',
  103. align: 'right',
  104. width: 100,
  105. },{
  106. field: 'invoice_type',
  107. title: '开票类型',
  108. align: 'center',
  109. width: 120,
  110. templet:function(d){
  111. var html='-';
  112. if(d.invoice_type==1){
  113. html='<span class="green">增值税专用发票</span>';
  114. }
  115. else if(d.invoice_type==2){
  116. html='<span class="blue">普通发票</span>';
  117. }
  118. else if(d.invoice_type==3){
  119. html='<span class="red">专业发票</span>';
  120. }
  121. return html;
  122. }
  123. },{
  124. field:'check_status',title: '审批状态',width:100, align:'center',templet: function(d){
  125. var html = '<span class="check-status-color-'+d.check_status+'">『'+d.check_status_str+'』</span>';
  126. return html;
  127. }
  128. },
  129. {
  130. field: 'admin_name',
  131. title: '发票申请员工',
  132. align: 'center',
  133. width: 100
  134. },{
  135. field: 'department',
  136. title: '发票申请部门',
  137. align: 'center',
  138. width: 120
  139. },{
  140. field: 'create_time',
  141. title: '申请时间',
  142. align: 'center',
  143. width: 150
  144. },{
  145. field: 'check_user',
  146. title: '当前审核人'
  147. },{
  148. field: 'open_status',
  149. title: '开票状态',
  150. align: 'center',
  151. width: 90,
  152. templet:function(d){
  153. var html='';
  154. if(d.check_status==2){
  155. html = '<span class="red">『未开票』</span>';
  156. if(d.open_status==1){
  157. html = '<span class="green">『已开票』</span>';
  158. }
  159. }
  160. else{
  161. html='-';
  162. }
  163. return html;
  164. }
  165. },{
  166. field: 'open_name',
  167. title: '开票人',
  168. align: 'center',
  169. width: 90
  170. },{
  171. field: 'open_time',
  172. title: '开票日期',
  173. align: 'center',
  174. width: 100
  175. },{
  176. field: 'code',
  177. title: '发票号码',
  178. align: 'center',
  179. width: 120
  180. },{
  181. field: 'right',
  182. fixed: 'right',
  183. title: '操作',
  184. width: 130,
  185. align: 'center',
  186. templet:function(d){
  187. var html='<div class="layui-btn-group">';
  188. var btn1='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
  189. var btn2='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
  190. var btn3='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
  191. html+=btn1;
  192. if((d.check_status==0 ||d.check_status==4) && d.admin_id==login_admin){
  193. html+=btn2+btn3;
  194. }
  195. html+='</div>';
  196. return html;
  197. }
  198. }
  199. ]
  200. ]
  201. });
  202. table.on('tool(table_invoice)',function (obj) {
  203. var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
  204. var data = obj.data;
  205. if (obj.event === 'view') {
  206. tool.side("/finance/invoice/view?id="+data.id);
  207. return;
  208. }
  209. if (obj.event === 'edit') {
  210. tool.side("/finance/invoice/add?id="+data.id);
  211. return;
  212. }
  213. if (obj.event === 'del') {
  214. layer.confirm('确定要删除该内容吗?', { icon: 3, title: '提示' }, function (index) {
  215. let callback = function (e) {
  216. layer.msg(e.msg);
  217. if (e.code == 0) {
  218. obj.del();
  219. }
  220. }
  221. tool.delete("/finance/invoice/del", { id: data.id }, callback);
  222. layer.close(index);
  223. });
  224. return;
  225. }
  226. });
  227. }
  228. </script>
  229. {/block}
  230. <!-- /脚本 -->