edit_user.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. <div class="p-3 bg-white">
  2. <table class="layui-hide" id="user" lay-filter="user"></table>
  3. </div>
  4. <script type="text/html" id="toolbaruser">
  5. <div class="layui-btn-container">
  6. {if $detail.maker_type==2}<button class="layui-btn layui-btn-sm" lay-event="addEntrust">+ 新增委托单位成员</button>{/if}
  7. <button class="layui-btn layui-btn-sm" lay-event="add_head">+ 新增项目负责人</button>
  8. <button class="layui-btn layui-btn-sm" lay-event="add">+ 新增作业负责人</button>
  9. <button class="layui-btn layui-btn-sm picker-more" lay-event="adda">+ 新增作业成员</button>
  10. <button class="layui-btn layui-btn-sm picker-more" lay-event="adc">+ 新增送审单位成员</button>
  11. </div>
  12. </script>
  13. <script>
  14. function project_user() {
  15. let tool = layui.tool, table = layui.table, employeepicker = layui.employeepicker;
  16. //项目成员
  17. parent.layui.userTable = table.render({
  18. elem: '#user',
  19. title: '项目成员列表',
  20. cellMinWidth: 80,
  21. toolbar: '#toolbaruser',
  22. url: "/admin/project.cost_company/project_user", //数据接口
  23. where: {'project_id': project_id},
  24. page: false, //开启分页
  25. limit: 20,
  26. cols: [[ //表头
  27. {field: 'nickname', fixed: 'left', title: '成员姓名', width: 200, align: 'center', rowspan: 2},
  28. {field: 'unit_name', title: '所在单位', align: 'center', width: 200, rowspan: 2},
  29. {
  30. field: 'type', title: '成员类型', align: 'center', width: 200, rowspan: 2,
  31. templet: function (a) {
  32. var html = "";
  33. if (a.type == 1) {
  34. html = "项目负责人"
  35. } else if (a.type == 2) {
  36. html = "项目负责人"
  37. } else if (a.type == 3) {
  38. html = "作业负责人"
  39. } else if (a.type == 4) {
  40. html = "作业成员"
  41. } else if (a.type == 5) {
  42. html = "项目负责人"
  43. } else if (a.type == 6) {
  44. html = "项目负责人"
  45. }
  46. return html;
  47. }
  48. },
  49. {field: 'unit_type', title: '单位类型', align: 'center', width: 200, rowspan: 2},
  50. {field: 'mobile', title: '手机号码', align: 'center', rowspan: 2},
  51. {field: 'email', title: '单位邮箱', align: 'center', rowspan: 2},
  52. {
  53. title: '操作', fixed: 'right', align: 'center', width: 150, rowspan: 2, templet: function (d) {
  54. var html = '<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="remove">移除</span>';
  55. return html;
  56. }
  57. }
  58. ]]
  59. });
  60. //触发事件
  61. table.on('toolbar(user)', function (obj) {
  62. var checkStatus = table.checkStatus(obj.config.id);
  63. switch (obj.event) {
  64. case 'addEntrust':
  65. // let callback = function (){
  66. // layui.alert("hhh")
  67. // }
  68. aaa()
  69. break;
  70. case 'add':
  71. employeepicker.init({
  72. type: 0,
  73. department_url: "/admin/project.cost_company/get_department_tree",
  74. employee_url: "/admin/project.cost_company/get_employee",
  75. callback: function (ids, names, dids, departments) {
  76. let callback = function (e) {
  77. layer.msg(e.msg);
  78. if (e.code == 0) {
  79. parent.layui.userTable.reload();
  80. }
  81. }
  82. tool.post("/admin/project.cost_company/add_user_company_type1", {
  83. id: ids,
  84. project_id: project_id,
  85. type: 1
  86. }, callback);
  87. }
  88. })
  89. break;
  90. case "adda":
  91. employeepicker.init({
  92. type: 0,
  93. department_url: "/admin/project.cost_company/get_department_tree",
  94. employee_url: "/admin/project.cost_company/get_employee",
  95. callback: function (ids, names, dids, departments) {
  96. let callback = function (e) {
  97. layer.msg(e.msg);
  98. if (e.code == 0) {
  99. parent.layui.userTable.reload();
  100. }
  101. }
  102. tool.post("/admin/project.cost_company/add_user_company_type2", {
  103. id: ids,
  104. project_id: project_id
  105. }, callback);
  106. }
  107. })
  108. break;
  109. case "adc":
  110. employeepicker.init({
  111. type: 0,
  112. department_url: "/admin/project.cost_company/get_department_tree_proprietor?project_id=" + project_id,
  113. employee_url: "/admin/project.cost_company/get_employee_proprietor",
  114. callback: function (ids, names, dids, departments) {
  115. let callback = function (e) {
  116. console.log(e)
  117. layer.msg(e.msg);
  118. if (e.code == 0) {
  119. parent.layui.userTable.reload();
  120. }
  121. }
  122. tool.post("/admin/project.cost_company/add_sent_review_unit", {
  123. id: ids,
  124. project_id: project_id
  125. }, callback);
  126. }
  127. })
  128. break;
  129. // getSentReview()
  130. // let call = function () {
  131. // layer.msg(e.msg);
  132. // if (e.code == 0) {
  133. // parent.layui.userTable.reload();
  134. // }
  135. // }
  136. // employeepicker.init({
  137. // type: 0,
  138. // department_url: "/admin/project.cost_company/get_department_tree",
  139. // employee_url: "/admin/project.cost_company/get_employee",
  140. // callback: function (ids, names, dids, departments) {
  141. // let callback = function (e) {
  142. // layer.msg(e.msg);
  143. // if (e.code == 0) {
  144. // parent.layui.userTable.reload();
  145. // }
  146. // }
  147. // tool.post("/admin/project.cost_company/add_sent_review_unit", {
  148. // id: ids,
  149. // project_id: project_id,
  150. // }, callback);
  151. // }
  152. // })
  153. // parent.layui.tool.side('/admin/project.cost_company/add_sent_review_unit?project_id=' + project_id, call);
  154. // break;
  155. case "add_head":
  156. employeepicker.init({
  157. type: 0,
  158. department_url: "/admin/project.cost_company/get_department_tree",
  159. employee_url: "/admin/project.cost_company/get_employee",
  160. callback: function (ids, names, dids, departments) {
  161. let callback = function (e) {
  162. layer.msg(e.msg);
  163. if (e.code == 0) {
  164. parent.layui.userTable.reload();
  165. }
  166. }
  167. tool.post("/admin/project.cost_company/add_user_company_head", {
  168. id: ids,
  169. project_id: project_id,
  170. }, callback);
  171. }
  172. })
  173. break;
  174. }
  175. });
  176. //监听行工具事件
  177. table.on('tool(user)', function (obj) {
  178. let postData = {"id": obj.data.id, "project_id": project_id, "type": obj.data.type};
  179. let callback = function (e) {
  180. layer.closeAll();
  181. layer.msg(e.msg);
  182. if (e.code == 0) {
  183. parent.layui.userTable.reload();
  184. }
  185. }
  186. if (obj.event === 'remove') {
  187. if (obj.data.type == 3 || obj.data.type == 4) {
  188. console.log(postData);
  189. layer.confirm('确定要移除该项目成员吗?', {icon: 3, title: '提示'}, function (index) {
  190. tool.delete("/admin/project.cost_company/remove_user_company", postData, callback);
  191. });
  192. } else if (obj.data.type == 6) {
  193. layer.confirm('确定要移除该送审单位成员吗?', {icon: 3, title: '提示'}, function (index) {
  194. tool.delete("/admin/project.cost_company/remove_sent_review", {
  195. "id": obj.data.id,
  196. "project_id": project_id,
  197. "type": obj.data.type,
  198. "nickname": obj.data.nickname
  199. }, callback);
  200. });
  201. } else if (obj.data.type == 2) {
  202. layer.confirm('确定要移除该送审单位成员吗?', {icon: 3, title: '提示'}, function (index) {
  203. tool.delete("/admin/project.cost_company/remove_review_head", postData, callback);
  204. });
  205. } else if (obj.data.type == 1) {
  206. layer.confirm('确定要移除该委托单位成员吗?', {icon: 3, title: '提示'}, function (index) {
  207. tool.delete("/admin/project.cost_company/remove_entrust_head", postData, callback);
  208. });
  209. }else {
  210. layer.msg("该成员不可移除");
  211. }
  212. }
  213. return;
  214. });
  215. //委托单位
  216. function aaa(callback){
  217. var customeTable,form = layui.form;
  218. const a = layer.open({
  219. title: '选择委托单位',
  220. area: ['600px', '580px'],
  221. type: 1,
  222. content: '<div class="picker-table">\
  223. <form class="layui-form pb-2">\
  224. <div class="layui-input-inline" style="width:480px;">\
  225. <input type="text" name="keywords" placeholder="委托单位" class="layui-input" autocomplete="off" />\
  226. </div>\
  227. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search_customer">提交搜索</button>\
  228. </form>\
  229. <div id="customerTable"></div></div>',
  230. success: function () {
  231. customeTable = table.render({
  232. elem: '#customerTable'
  233. , url: '/admin/project.api/get_entrust'
  234. , page: true //开启分页
  235. , limit: 10
  236. , cols: [[
  237. {type: 'radio', title: '选择'},
  238. {field: 'title', title: '委托单位名称', align: 'center'},
  239. {field: 'address', title: ' 评审单位地址', align: 'center'}
  240. ]]
  241. });
  242. //客户搜索提交
  243. form.on('submit(search_customer)', function (data) {
  244. customeTable.reload({where: {keywords: data.field.keywords}, page: {curr: 1}});
  245. return false;
  246. });
  247. },
  248. btn: ['确定'],
  249. btnAlign: 'c',
  250. yes: function () {
  251. var checkStatus = table.checkStatus(customeTable.config.id);
  252. var data = checkStatus.data;
  253. console.log(data)
  254. if (data.length > 0) {
  255. bbb(data);
  256. layer.close(a);
  257. } else {
  258. layer.msg('请先选择委托单位');
  259. return false;
  260. }
  261. }
  262. })
  263. }
  264. function bbb(e){
  265. var entrustPeopleTable,form = layui.form;
  266. layer.open({
  267. title: '选择委托单位',
  268. area: ['600px', '580px'],
  269. type: 1,
  270. content: '<div class="picker-table">\
  271. <form class="layui-form pb-2">\
  272. <div class="layui-input-inline" style="width:480px;">\
  273. <input type="text" name="keywords" placeholder="委托单位" class="layui-input" autocomplete="off" />\
  274. </div>\
  275. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="entrustPeople">提交搜索</button>\
  276. </form>\
  277. <div id="entrustPeopleTable"></div></div>',
  278. success: function () {
  279. entrustPeopleTable = table.render({
  280. elem: '#entrustPeopleTable'
  281. , url: '/admin/project.api/get_entrust_people'
  282. , where:{unit_id:e[0]["id"]}
  283. , page: true //开启分页
  284. , limit: 10
  285. , cols: [[
  286. {type: 'radio', title: '选择'},
  287. {field: 'id', width: 80, title: '编号', align: 'center'},
  288. {field: 'nickname', title: '昵称', align: 'center'},
  289. ]]
  290. });
  291. //客户搜索提交
  292. form.on('submit(entrustPeople)', function (data) {
  293. entrustPeopleTable.reload({where: {keywords: data.field.keywords,unit_id:e[0]["id"]}, page: {curr: 1}});
  294. return false;
  295. });
  296. },
  297. btn: ['确定'],
  298. btnAlign: 'c',
  299. yes: function () {
  300. var checkStatus = table.checkStatus(entrustPeopleTable.config.id);
  301. var data = checkStatus.data;
  302. console.log(data)
  303. if (data.length > 0) {
  304. let callback = function (e) {
  305. layer.msg(e.msg);
  306. if (e.code == 0) {
  307. layer.closeAll();
  308. parent.layui.userTable.reload();
  309. }
  310. }
  311. tool.post("/admin/project.cost_company/add_entrust_people", {
  312. id: data[0]["id"],
  313. project_id: project_id,
  314. }, callback);
  315. } else {
  316. layer.msg('请先选择委托单位人员');
  317. return false;
  318. }
  319. }
  320. })
  321. }
  322. function getSentReview(){
  323. var sentReviewTable,form = layui.form;
  324. const a = layer.open({
  325. title: '选择送审单位',
  326. area: ['600px', '580px'],
  327. type: 1,
  328. content: '<div class="picker-table">\
  329. <form class="layui-form pb-2">\
  330. <div class="layui-input-inline" style="width:480px;">\
  331. <input type="text" name="keywords" placeholder="委托单位" class="layui-input" autocomplete="off" />\
  332. </div>\
  333. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search_customer">提交搜索</button>\
  334. </form>\
  335. <div id="sentReviewTable"></div></div>',
  336. success: function () {
  337. sentReviewTable = table.render({
  338. elem: '#sentReviewTable'
  339. , url: '/admin/project.api/get_sent_review'
  340. , page: true //开启分页
  341. , limit: 10
  342. , cols: [[
  343. {type: 'radio', title: '选择'},
  344. {field: 'id', width: 80, title: '编号', align: 'center'},
  345. {field: 'title', title: '送审单位名称', align: 'center'},
  346. {field: 'address', title: ' 送审单位地址', align: 'center'}
  347. ]]
  348. });
  349. //客户搜索提交
  350. form.on('submit(search_customer)', function (data) {
  351. sentReviewTable.reload({where: {keywords: data.field.keywords}, page: {curr: 1}});
  352. return false;
  353. });
  354. },
  355. btn: ['确定'],
  356. btnAlign: 'c',
  357. yes: function () {
  358. var checkStatus = table.checkStatus(sentReviewTable.config.id);
  359. var data = checkStatus.data;
  360. console.log(data)
  361. if (data.length > 0) {
  362. getSentReviewPeople(data);
  363. layer.close(a);
  364. } else {
  365. layer.msg('请先选择送审单位');
  366. return false;
  367. }
  368. }
  369. })
  370. }
  371. function getSentReviewPeople(e){
  372. var sentReviewPeople,form = layui.form;
  373. layer.open({
  374. title: '选择送审单位',
  375. area: ['600px', '580px'],
  376. type: 1,
  377. content: '<div class="picker-table">\
  378. <form class="layui-form pb-2">\
  379. <div class="layui-input-inline" style="width:480px;">\
  380. <input type="text" name="keywords" placeholder="委托单位" class="layui-input" autocomplete="off" />\
  381. </div>\
  382. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="entrustPeople">提交搜索</button>\
  383. </form>\
  384. <div id="sentReviewPeople"></div></div>',
  385. success: function () {
  386. sentReviewPeople = table.render({
  387. elem: '#sentReviewPeople'
  388. , url: '/admin/project.api/get_sent_review_people'
  389. , where:{unit_id:e[0]["id"]}
  390. , page: true //开启分页
  391. , limit: 10
  392. , cols: [[
  393. {type: 'radio', title: '选择'},
  394. {field: 'id', width: 80, title: '编号', align: 'center'},
  395. {field: 'nickname', title: '昵称', align: 'center'},
  396. ]]
  397. });
  398. //客户搜索提交
  399. form.on('submit(entrustPeople)', function (data) {
  400. sentReviewPeople.reload({where: {keywords: data.field.keywords,unit_id:e[0]["id"]}, page: {curr: 1}});
  401. return false;
  402. });
  403. },
  404. btn: ['确定'],
  405. btnAlign: 'c',
  406. yes: function () {
  407. var checkStatus = table.checkStatus(sentReviewPeople.config.id);
  408. var data = checkStatus.data;
  409. console.log(data)
  410. if (data.length > 0) {
  411. let callback = function (e) {
  412. layer.msg(e.msg);
  413. if (e.code == 0) {
  414. layer.closeAll();
  415. parent.layui.userTable.reload();
  416. }
  417. }
  418. tool.post("/admin/project.cost_company/add_sent_review_unit", {
  419. id: data[0]["id"],
  420. project_id: project_id,
  421. }, callback);
  422. } else {
  423. layer.msg('请先选择送审单位人员');
  424. return false;
  425. }
  426. }
  427. })
  428. }
  429. }
  430. </script>