datalist.html 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-page">
  5. <div class="layui-card border-x border-t" style="margin-bottom:0; box-shadow:0 0 0 0 rgb(5 32 96 / 0%)">
  6. <div class="body-table layui-tab layui-tab-brief" lay-filter="tab">
  7. <ul class="layui-tab-title">
  8. <li class="layui-this">全部</li>
  9. <li>待我审批</li>
  10. <li>我已审批</li>
  11. </ul>
  12. </div>
  13. </div>
  14. <form class="layui-form gg-form-bar border-x" id="barsearchform" lay-filter="barsearchform">
  15. {gt name="$is_auth" value="0"}
  16. <div class="layui-input-inline user-name" style="width:90px;">
  17. <input type="text" name="username" placeholder="选择签定人" class="layui-input picker-admin" readonly />
  18. <input type="text" name="uid" value="" style="display:none" />
  19. </div>
  20. {else/}
  21. {gt name="$is_leader" value="0"}
  22. <div class="layui-input-inline user-name" style="width:90px;">
  23. <input type="text" name="username" placeholder="选择签定人" class="layui-input picker-sub" readonly />
  24. <input type="text" name="uid" value="" style="display:none" />
  25. </div>
  26. {/gt}
  27. {/gt}
  28. <div class="layui-input-inline" style="width:122px;">
  29. <select name="types">
  30. <option value="">选择合同性质</option>
  31. <option value="1">普通采购</option>
  32. <option value="2">物品采购</option>
  33. <option value="3">服务采购</option>
  34. </select>
  35. </div>
  36. <div class="layui-input-inline" style="width:122px;">
  37. <select name="cate_id">
  38. <option value="">选择合同类别</option>
  39. {volist name=":get_base_data('ContractCate');" id="vo"}
  40. <option value="{$vo.id}">{$vo.title}</option>
  41. {/volist}
  42. </select>
  43. </div>
  44. <div class="layui-input-inline" style="width:122px;">
  45. <select name="check_status">
  46. <option value="">选择审批状态</option>
  47. {volist name=":get_check_status()" id="vo"}
  48. <option value="{$key}">{$vo}</option>
  49. {/volist}
  50. </select>
  51. </div>
  52. <div class="layui-input-inline" style="width:175px;">
  53. <input type="text" class="layui-input" id="sign_time" placeholder="选择合同签订日期" readonly name="sign_time">
  54. </div>
  55. <div class="layui-input-inline" style="width:175px;">
  56. <input type="text" class="layui-input" id="end_time" placeholder="选择合同到期日期" readonly name="end_time">
  57. </div>
  58. <div class="layui-input-inline" style="width:220px;">
  59. <input type="text" name="keywords" placeholder="输入关键字,合同编号/合同名称" class="layui-input" />
  60. </div>
  61. <div class="layui-input-inline" style="width:150px">
  62. <input type="hidden" name="tab" value="0" />
  63. <input type="hidden" name="order_field" value=''>
  64. <input type="hidden" name="order_type" value=''>
  65. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  66. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
  67. </div>
  68. </form>
  69. <table class="layui-hide" id="table_contract" lay-filter="table_contract"></table>
  70. </div>
  71. <script type="text/html" id="toolbarDemo">
  72. <div class="layui-btn-container">
  73. <button class="layui-btn layui-btn-sm" lay-event="add">
  74. <span>+ 添加合同</span>
  75. <i class="layui-icon layui-icon-down layui-font-12"></i>
  76. </button>
  77. </div>
  78. </script>
  79. {/block}
  80. <!-- /主体 -->
  81. <!-- 脚本 -->
  82. {block name="script"}
  83. <script>
  84. const delay_num = {$delay_num|default=30};
  85. const contract_types = [{"id":1,"title":"普通采购"},{"id":2,"title":"物品采购"},{"id":3,"title":"服务采购"}];
  86. const moduleInit = ['tool','tablePlus','oaPicker','laydatePlus'];
  87. function gouguInit() {
  88. var table = layui.tablePlus,form = layui.form,dropdown = layui.dropdown,element = layui.element, tool = layui.tool,laydatePlus = layui.laydatePlus;
  89. //tab切换
  90. element.on('tab(tab)', function(data){
  91. $('[name="tab"]').val(data.index);
  92. $("#barsearchform")[0].reset();
  93. let searchObject = form.val('barsearchform');
  94. layui.pageTable.reload({where:searchObject,page:{curr:1}});
  95. return false;
  96. });
  97. //日期范围
  98. var sign_time = new laydatePlus({'target':'sign_time'});
  99. var end_time = new laydatePlus({'target':'end_time'});
  100. layui.pageTable = table.render({
  101. elem: "#table_contract"
  102. ,title: "采购合同列表"
  103. ,toolbar: "#toolbarDemo"
  104. ,url: "/contract/purchase/datalist"
  105. ,page: true
  106. ,limit: 20
  107. ,cellMinWidth: 80
  108. ,height: 'full-154'
  109. ,autoSort: false
  110. ,cols: [[ //表头
  111. {
  112. field: 'id',
  113. title: 'ID号',
  114. align: 'center',
  115. sort: true,
  116. width: 80
  117. },{ field: 'check_status', title: '审批状态', align: 'center', width: 110, templet: function (d) {
  118. var html = '<span class="check-status-color-' + d.check_status + '">『' + d.status_name + '』</span>';
  119. return html;
  120. }
  121. },{
  122. field: 'code',
  123. title: '合同编号',
  124. align: 'center',
  125. width: 150
  126. },{
  127. field: 'name',
  128. title: '合同名称',
  129. minWidth:240,
  130. templet: '<div><a data-href="/contract/purchase/view/id/{{d.id}}.html" class="side-a">{{d.name}}</a></div>'
  131. },{
  132. field: 'types_name',
  133. title: '合同性质',
  134. align: 'center',
  135. width: 80,
  136. templet: function (d) {
  137. var html = '<span class="layui-color-' + d.types + '">' + d.types_name + '</span>';
  138. return html;
  139. }
  140. },{
  141. field: 'cate_title',
  142. title: '合同类别',
  143. align: 'center',
  144. width: 100
  145. },{
  146. field: 'end_time',
  147. title: '合同有效时间',
  148. align: 'center',
  149. sort: true,
  150. width: 268,
  151. templet: function (d) {
  152. var html = d.interval_time;
  153. if (d.delay > 0 && d.delay < delay_num) {
  154. html += '<span class="red ml-1" style="font-size:12px;">' + d.delay + '天后到期</span>';
  155. }
  156. if (d.delay == 0) {
  157. html += '<span class="red ml-1" style="font-size:12px;">已过期</span>';
  158. }
  159. return html;
  160. }
  161. },{
  162. field: 'cost',
  163. title: '合同金额(元)',
  164. align: 'right',
  165. width: 100
  166. },{
  167. field: 'sign_name',
  168. title: '签定人',
  169. align: 'center',
  170. width: 80
  171. },{
  172. field: 'keeper_name',
  173. title: '保管人',
  174. align: 'center',
  175. width: 80
  176. },{
  177. field: 'sign_time',
  178. title: '签订日期',
  179. align: 'center',
  180. sort: true,
  181. width: 100
  182. },{
  183. field: 'right',
  184. fixed:'right',
  185. title: '操作',
  186. width: 120,
  187. align: 'center',
  188. ignoreExport:true,
  189. templet: function (d) {
  190. var html = '<div class="layui-btn-group">';
  191. var btn0='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
  192. var btn1='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
  193. var btn2='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
  194. if(d.check_status==0 || d.check_status==4){
  195. return html+btn0+btn1+btn2+'</div>';
  196. }
  197. else{
  198. return btn0;
  199. }
  200. }
  201. }
  202. ]]
  203. });
  204. //表头工具栏事件
  205. table.on('toolbar(table_contract)', function(obj){
  206. var that = this;
  207. if (obj.event === 'add'){
  208. dropdown.render({
  209. elem: that,
  210. show: true, // 外部事件触发即显示
  211. data: contract_types,
  212. click: function(obj){
  213. tool.side("/contract/purchase/add?types="+obj.id);
  214. }
  215. });
  216. return;
  217. }
  218. });
  219. table.on('tool(table_contract)',function (obj) {
  220. var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
  221. var data = obj.data;
  222. if (obj.event === 'view') {
  223. tool.side("/contract/purchase/view?id="+data.id);
  224. return;
  225. }
  226. if (obj.event === 'edit') {
  227. tool.side("/contract/purchase/add?id="+data.id);
  228. return;
  229. }
  230. if (obj.event === 'del') {
  231. layer.confirm('确定要删除该合同吗?', { icon: 3, title: '提示' }, function (index) {
  232. let callback = function (e) {
  233. layer.msg(e.msg);
  234. if (e.code == 0) {
  235. obj.del();
  236. }
  237. }
  238. tool.delete("/contract/purchase/del", { id: data.id }, callback);
  239. layer.close(index);
  240. });
  241. return;
  242. }
  243. });
  244. }
  245. </script>
  246. {/block}
  247. <!-- /脚本 -->