datalist.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-page">
  5. <form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
  6. <div class="layui-input-inline" style="width:100px;">
  7. <select name="status">
  8. <option value="">项目状态</option>
  9. <option value="1">未开始</option>
  10. <option value="2">进行中</option>
  11. <option value="3">已完成</option>
  12. <option value="4">已关闭</option>
  13. </select>
  14. </div>
  15. <div class="layui-input-inline" style="width:136px;">
  16. <select name="cate_id">
  17. <option value="">项目类别</option>
  18. {volist name = ":get_base_data('ProjectCate')" id="vo"}
  19. <option value="{$vo.id}">{$vo.title}</option>
  20. {/volist}
  21. </select>
  22. </div>
  23. <div class="layui-input-inline" style="width:160px;">
  24. <input type="text" name="director" placeholder="项目负责人,可多选" readonly class="layui-input picker-admin" data-type="2" autocomplete="off" />
  25. <input name="director_uid" style="display: none;" value="" />
  26. </div>
  27. <div class="layui-input-inline" style="width:300px">
  28. <input type="text" name="keywords" placeholder="关键字,项目名称/项目描述" class="layui-input" autocomplete="off" />
  29. </div>
  30. <div class="layui-input-inline" style="width:150px">
  31. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  32. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
  33. </div>
  34. </form>
  35. <table class="layui-hide" id="table_project" lay-filter="table_project"></table>
  36. </div>
  37. <script type="text/html" id="toolbarDemo">
  38. <div class="layui-btn-container">
  39. <button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/project/index/add">+ 添加项目</button>
  40. </div>
  41. </script>
  42. {/block}
  43. <!-- /主体 -->
  44. <!-- 脚本 -->
  45. {block name="script"}
  46. <script>
  47. const auth = {$auth};
  48. const moduleInit = ['tool','tablePlus','oaPicker'];
  49. function gouguInit() {
  50. var table = layui.tablePlus, tool = layui.tool;
  51. layui.pageTable = table.render({
  52. elem: "#table_project"
  53. , toolbar: "#toolbarDemo"
  54. ,url: "/project/index/datalist"
  55. ,page: true
  56. ,limit: 20
  57. ,cellMinWidth: 80
  58. ,height: 'full-114'
  59. ,cols: [[
  60. {field:'id',width:80, title: 'ID号', align:'center'}
  61. ,{ field: 'status', title: '项目状态', align: 'center', width: 90, templet: function (d) {
  62. var html = '<span class="check-status-color-' + d.status + '">『' + d.status_name + '』</span>';
  63. return html;
  64. }
  65. }
  66. ,{field:'cate',title: '项目类别',width:100,align:'center'}
  67. ,{field:'name',title: '项目名称',minWidth:240}
  68. ,{field:'director_name',title: '负责人',width:80,align:'center'}
  69. ,{ field:'range_time', title: '项目计划周期', align: 'center', width: 200}
  70. ,{field:'step',title: '当前阶段及负责人',align: 'center',width: 180}
  71. ,{field:'tasks_unfinish', align: 'center', style: 'color: #91CC75;', width: 90, 'title': '进行中任务' }
  72. ,{field:'tasks_finish', align: 'center', style: 'color: #FAC858;', width: 90, 'title': '已完成任务' }
  73. ,{field:'tasks_pensent', align: 'center', style: 'color: #EE6666;', width: 90, 'title': '任务完成率' }
  74. ,{field:'admin_name',title: '创建人',width:80,align:'center'}
  75. ,{field:'create_time', title: '创建时间',width:150,align:'center'}
  76. ,{width:120,fixed:'right',title: '操作', align:'center',ignoreExport:true,templet: function(d){
  77. var html='';
  78. var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</a>';
  79. var btn2='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
  80. var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
  81. if(d.status==3){
  82. btn2='';
  83. btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="affirm">反确认完成</a>';
  84. }
  85. if(auth == 1 || d.admin_id == login_admin || d.director_uid == login_admin){
  86. return '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
  87. }
  88. else{
  89. return btn1
  90. }
  91. }}
  92. ]]
  93. });
  94. table.on('tool(table_project)',function (obj) {
  95. var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
  96. var data = obj.data;
  97. if (obj.event === 'view') {
  98. tool.side("/project/index/view?id="+data.id);
  99. return;
  100. }
  101. if (obj.event === 'edit') {
  102. tool.side("/project/index/add?id="+data.id);
  103. return;
  104. }
  105. if (obj.event === 'affirm') {
  106. let callback = function (e) {
  107. layer.msg(e.msg);
  108. if(e.code==0){
  109. layui.pageTable.reload();
  110. }
  111. }
  112. layer.open({
  113. type: 1,
  114. title: '请输入反确认的原因或理由',
  115. area: ['500px', '252px'],
  116. content: '<div style="padding:5px;"><textarea class="layui-textarea" id="remarkTextarea" style="width: 100%; height:132px;"></textarea></div>',
  117. btnAlign: 'c',
  118. btn: ['确认操作'],
  119. yes: function (index) {
  120. let remark = $("#remarkTextarea").val();
  121. if (remark != '') {
  122. tool.post("/project/api/step_check", {id: data.id,check:3,content:remark}, callback);
  123. layer.close(index);
  124. } else {
  125. layer.msg('请输入原因或理由');
  126. }
  127. }
  128. })
  129. return;
  130. }
  131. if (obj.event === 'del') {
  132. layer.confirm('确定要删除该项目吗?', { icon: 3, title: '提示' }, function (index) {
  133. let callback = function (e) {
  134. layer.msg(e.msg);
  135. if (e.code == 0) {
  136. obj.del();
  137. }
  138. }
  139. tool.delete("/project/index/del", { id: data.id }, callback);
  140. layer.close(index);
  141. });
  142. return;
  143. }
  144. });
  145. }
  146. </script>
  147. {/block}
  148. <!-- /脚本 -->