datalist.html 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="style"}
  4. <style>
  5. .layui-unselect dl {
  6. max-height: 188px;
  7. }
  8. </style>
  9. {/block}
  10. {block name="body"}
  11. <div class="p-page">
  12. <div class="gg-form-bar border-t border-x">
  13. <form id="taskForm" class="layui-form" lay-filter="barsearchform">
  14. <div class="layui-input-inline" style="width:100px;">
  15. <select name="status" lay-filter="status">
  16. <option value="">任务状态</option>
  17. {volist name=":get_task_status()" id="vo"}
  18. {gt name="$key" value="0"}
  19. <option value="{$key}">{$vo}</option>
  20. {/gt}
  21. {/volist}
  22. </select>
  23. </div>
  24. <div class="layui-input-inline" style="width:100px;">
  25. <select name="priority" lay-filter="priority">
  26. <option value="">优先级</option>
  27. {volist name=":get_priority()" id="vo"}
  28. {gt name="$key" value="0"}
  29. <option value="{$key}">{$vo}</option>
  30. {/gt}
  31. {/volist}
  32. </select>
  33. </div>
  34. <div class="layui-input-inline" style="width:100px;">
  35. <select name="work_id" lay-filter="cate">
  36. <option value="">工作类型</option>
  37. {volist name=":get_base_data('WorkCate')" id="vo"}
  38. <option value="{$vo.id}">{$vo.title}</option>
  39. {/volist}
  40. </select>
  41. </div>
  42. <div class="layui-input-inline" style="width:240px;">
  43. <input type="text" name="project_name" placeholder="所属项目" readonly class="layui-input picker-oa" data-types="project" autocomplete="off" />
  44. <input name="project_id" style="display: none;" value="" />
  45. </div>
  46. <div class="layui-input-inline" style="width:160px;">
  47. <input type="text" name="director" placeholder="任务负责人,可多选" readonly class="layui-input picker-admin" data-type="2" autocomplete="off" />
  48. <input name="director_uid" style="display: none;" value="" />
  49. </div>
  50. <div class="layui-input-inline" style="width:240px;">
  51. <input type="text" name="keywords" placeholder="关键字,任务主题/描述内容" class="layui-input" autocomplete="off" />
  52. </div>
  53. <div class="layui-input-inline" style="width:150px;">
  54. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  55. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
  56. </div>
  57. </form>
  58. </div>
  59. <table class="layui-hide" id="task" lay-filter="task"></table>
  60. </div>
  61. <script type="text/html" id="toolbarDemo">
  62. <div class="layui-btn-container">
  63. <button class="layui-btn layui-btn-sm" lay-event="add">+ 新建任务</button>
  64. </div>
  65. </script>
  66. {/block}
  67. <!-- /主体 -->
  68. <!-- 脚本 -->
  69. {block name="script"}
  70. <script>
  71. const moduleInit = ['tool','tablePlus','oaPicker'];
  72. function gouguInit() {
  73. var table = layui.tablePlus, form = layui.form, tool = layui.tool;
  74. layui.taskTable = table.render({
  75. elem: '#task',
  76. title: '任务列表',
  77. toolbar: '#toolbarDemo',
  78. is_excel:true,
  79. cellMinWidth: 80,
  80. url: "/project/task/datalist", //数据接口
  81. height: 'full-114',
  82. cols: [[
  83. {field: 'id', title: '任务编号', width: 80, align: 'center', fixed: 'left', templet: function (d) {
  84. return 'T' + d.id;
  85. }}
  86. ,{ field: 'status', title: '任务状态', align: 'center', width: 90, templet: function (d) {
  87. var html = '<span class="check-status-color-' + d.status + '">『' + d.status_name + '』</span>';
  88. return html;
  89. }
  90. }
  91. , { field: 'cate_name', title: '工作类型', width: 90, align: 'center'}
  92. ,{field:'title',title: '任务主题', minWidth: 300,templet:function(d){
  93. var html = '<span class="layui-badge layui-bg-'+d.priority+'">'+d.priority_name+'</span> <a data-href="/project/task/view/id/'+d.id+'.html" class="side-a">'+d.title+'</a>';
  94. return html;
  95. }}
  96. ,{field:'director_name',title: '负责人', align:'center',width: 80}
  97. ,{field:'assist_admin_names',title: '协作人',width: 160}
  98. ,{field:'plan_hours',title: '预估工时', align:'center',width: 80}
  99. ,{field:'end_time',title: '预计结束日期', width: 150,templet:function(d){
  100. var html = d.end_time;
  101. if(d.delay>0){
  102. html+= '<span class="red ml-1" style="font-size:12px;">逾期'+d.delay+'天</span>';
  103. }
  104. return html;
  105. }}
  106. ,{field: 'right', title: '操作',fixed:'right', width:90, align:'center',templet:function(d){
  107. var html='<div class="layui-btn-group"><button class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">查看</button><button class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</button></div>';
  108. return html;
  109. }}
  110. ]]
  111. });
  112. //触发事件
  113. table.on('toolbar(task)', function(obj){
  114. if(obj.event === 'add'){
  115. tool.side('/project/task/add');
  116. return;
  117. }
  118. });
  119. table.on('tool(task)', function(obj){
  120. if(obj.event === 'view'){
  121. tool.side('/project/task/view/id/'+obj.data.id);
  122. return;
  123. }
  124. if(obj.event === 'del'){
  125. layer.confirm('您确定要删除该任务?', {
  126. icon: 3,
  127. title: '提示'
  128. }, function (index) {
  129. let callback = function (e) {
  130. layer.msg(e.msg);
  131. if (e.code == 0) {
  132. layui.taskTable.reload();
  133. }
  134. }
  135. tool.delete("/project/task/del", { id: obj.data.id }, callback);
  136. layer.close(index);
  137. });
  138. }
  139. });
  140. }
  141. </script>
  142. {/block}
  143. <!-- /脚本 -->