project_user.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <div class="p-3 bg-white">
  2. <table class="layui-hide" id="user" lay-filter="user"></table>
  3. </div>
  4. <script>
  5. function project_user() {
  6. let tool = layui.tool, table = layui.table, employeepicker = layui.employeepicker;
  7. //项目成员
  8. layui.userTable = table.render({
  9. elem: '#user',
  10. title: '项目成员列表',
  11. cellMinWidth: 80,
  12. toolbar: '#toolbaruser',
  13. url: "/admin/project.cost_company/project_user", //数据接口
  14. where: {'project_id': project_id},
  15. page: false, //开启分页
  16. limit: 20,
  17. cols: [[ //表头
  18. {field: 'nickname', fixed: 'left', title: '成员姓名', width: 200, align: 'center', rowspan: 2},
  19. {field: 'unit_name', title: '所在单位', align: 'center', width: 200, rowspan: 2},
  20. {field: 'type', title: '成员类型', align: 'center', width: 200, rowspan: 2,
  21. templet:function (a){
  22. var html= "";
  23. if(a.type==1){
  24. html = "项目负责人"
  25. }else if(a.type==2) {
  26. html = "项目负责人"
  27. }else if(a.type==3) {
  28. html = "作业负责人"
  29. }else if(a.type==4) {
  30. html = "作业成员"
  31. }else if(a.type==5) {
  32. html = "项目负责人"
  33. }else if(a.type==6) {
  34. html = "项目负责人"
  35. }
  36. return html;
  37. }},
  38. {field: 'unit_type', title: '单位类型', align: 'center', width: 200, rowspan: 2},
  39. {field: 'mobile', title: '手机号码', align: 'center', rowspan: 2},
  40. {field: 'email', title: '单位邮箱', align: 'center', rowspan: 2},
  41. // {
  42. // title: '操作', fixed: 'right', align: 'center', width: 150, rowspan: 2, templet: function (d) {
  43. // var html = '<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">移除</span>';
  44. // return html;
  45. // }
  46. // }
  47. ]]
  48. });
  49. //触发事件
  50. table.on('toolbar(user)', function (obj) {
  51. var checkStatus = table.checkStatus(obj.config.id);
  52. switch (obj.event) {
  53. case 'add':
  54. employeepicker.init({
  55. type: 0,
  56. department_url: "/admin/project.cost_company/get_department_tree",
  57. employee_url: "/admin/project.cost_company/get_employee",
  58. callback: function (ids, names, dids, departments) {
  59. let callback = function (e) {
  60. layer.msg(e.msg);
  61. if (e.code == 0) {
  62. layui.userTable.reload();
  63. }
  64. }
  65. tool.post("/admin/project.cost_company/add_user_company_type1", {id: ids, project_id: project_id,type:1}, callback);
  66. }
  67. })
  68. break;
  69. case "adda":
  70. employeepicker.init({
  71. type: 0,
  72. department_url: "/admin/project.cost_company/get_department_tree",
  73. employee_url: "/admin/project.cost_company/get_employee",
  74. callback: function (ids, names, dids, departments) {
  75. let callback = function (e) {
  76. layer.msg(e.msg);
  77. if (e.code == 0) {
  78. layui.userTable.reload();
  79. }
  80. }
  81. tool.post("/admin/project.cost_company/add_user_company_type2", {id: ids, project_id: project_id,type:2}, callback);
  82. }
  83. })
  84. break;
  85. };
  86. });
  87. //监听行工具事件
  88. table.on('tool(user)', function (obj) {
  89. let postData = {"id": obj.data.id,"project_id":project_id,"type":obj.data.type};
  90. let callback = function (e) {
  91. layer.closeAll();
  92. layer.msg(e.msg);
  93. if (e.code == 0) {
  94. layui.userTable.reload();
  95. }
  96. }
  97. if (obj.event === 'remove') {
  98. if(obj.data.type == 3 || obj.data.type == 4){
  99. console.log(postData);
  100. layer.confirm('确定要移除该项目成员吗?', {icon: 3, title: '提示'}, function (index) {
  101. tool.delete("/admin/project.cost_company/remove_user_company", postData, callback);
  102. });
  103. }else {
  104. layer.msg("该成员不可移除");
  105. }
  106. }
  107. if (obj.event === 'recover') {
  108. console.log(postData);
  109. layer.confirm('确定要恢复该项目成员吗?', {icon: 3, title: '提示'}, function (index) {
  110. tool.post("/project/api/recover_user", postData, callback);
  111. });
  112. }
  113. return;
  114. });
  115. }
  116. </script>