flowable_group.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>流程用户组</title>
  8. <link rel="stylesheet" href="../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../assets/module/admin.css?v=312"/>
  10. <link rel="stylesheet" href="../../assets/module/formSelects/formSelects-v4.css"/>
  11. <style>
  12. .layui-table-cell {
  13. height: auto;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <!-- 页面加载loading -->
  19. <div class="page-loading">
  20. <div class="ball-loader">
  21. <span></span><span></span><span></span><span></span>
  22. </div>
  23. </div>
  24. <!-- 正文开始 -->
  25. <div class="layui-fluid">
  26. <div class="layui-card-header" style="background-color: #fff;padding-top: 10px;padding-bottom: 10px;">
  27. <div class="layui-inline pull-left">
  28. <h3 id="htmlHeader">流程用户组</h3>
  29. </div>
  30. <!-- <div class="layui-inline pull-right">-->
  31. <!-- <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>-->
  32. <!-- </div>-->
  33. </div>
  34. <div class="layui-card">
  35. <div class="layui-card-body">
  36. <div class="layui-form toolbar" lay-filter="filterForm">
  37. <div class="layui-form-item">
  38. <div class="layui-inline">
  39. <label class="layui-form-label w-auto">组ID:</label>
  40. <div class="layui-input-inline mr0">
  41. <input name="gId" id="gId" class="layui-input" type="text"
  42. placeholder="组ID"/>
  43. </div>
  44. </div>
  45. <div class="layui-inline">
  46. <label class="layui-form-label w-auto">名称:</label>
  47. <div class="layui-input-inline mr0">
  48. <input name="gName" id="gName" class="layui-input" type="text"
  49. placeholder="名称"/>
  50. </div>
  51. </div>
  52. <div class="layui-inline">
  53. <button class="layui-btn icon-btn" lay-filter="formSubSearch" lay-submit
  54. style="background-color: #007DDB;" id="searchBtn" disabled>
  55. <i class="layui-icon">&#xe615;</i>搜索
  56. </button>
  57. <!-- <button class="layui-btn icon-btn" type="reset" lay-reset-->
  58. <!-- style="background-color: #007DDB;">搜索-->
  59. <!-- </button>-->
  60. </div>
  61. <div class="layui-inline pull-right">
  62. <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
  63. </div>
  64. </div>
  65. </div>
  66. <!-- <table class="layui-table" id="datatable" lay-filter="datatable"></table>-->
  67. <table class="layui-table" id="datatable" lay-filter="datatable">
  68. <colgroup>
  69. <col width="60" style="text-align: center;">
  70. <col width="300" style="text-align: center;">
  71. <col width="500">
  72. <col>
  73. </colgroup>
  74. <thead>
  75. <tr>
  76. <th style="text-align: center;">序号</th>
  77. <th>组ID</th>
  78. <th>名称</th>
  79. <th>操作</th>
  80. </tr>
  81. </thead>
  82. <tbody id="dataBody"></tbody>
  83. </table>
  84. </div>
  85. </div>
  86. </div>
  87. <script type="text/html" id="modelTpl">
  88. <form id="modelForm" lay-filter="modelForm" class="layui-form model-form">
  89. <div class="layui-form-item">
  90. <label class="layui-form-label"><span class="layui-badge-dot"></span>组ID</label>
  91. <div class="layui-input-block">
  92. <input type="text" name="id" id="id" class="layui-input" placeholder="组ID"
  93. lay-verType="tips" lay-verify="required">
  94. </div>
  95. </div>
  96. <div class="layui-form-item">
  97. <label class="layui-form-label"><span class="layui-badge-dot"></span>名称</label>
  98. <div class="layui-input-block">
  99. <input type="text" name="name" id="name" class="layui-input" placeholder="名称"
  100. lay-verType="tips" lay-verify="required">
  101. </div>
  102. </div>
  103. <div class="layui-form-item">
  104. <label class="layui-form-label">用户</label>
  105. <div class="layui-input-block">
  106. <select name="uId" id="uId" class="layui-select"/>
  107. </div>
  108. </div>
  109. <div class="layui-form-item text-right">
  110. <button type="button" class="layui-btn" lay-filter="modelSubmit" lay-submit>保存</button>
  111. <button type="button" class="layui-btn layui-btn-primary" ew-event="closePageDialog">取消</button>
  112. </div>
  113. </form>
  114. </script>
  115. <!-- js部分 -->
  116. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  117. <script type="text/javascript" src="../../assets/js/common.js?v=312"></script>
  118. <!-- 表格操作列 -->
  119. <script type="text/html" id="optionTpl">
  120. <div class="layui-btn-group">
  121. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
  122. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  123. </div>
  124. </script>
  125. <script>
  126. var $;
  127. var layer;
  128. var form;
  129. var table;
  130. var admin;
  131. var uParas;
  132. var util;
  133. var flowable;
  134. var renderTable;
  135. layui.use(['layer', 'form', 'table', 'admin', 'uParas', 'util', 'flowable'], function () {
  136. $ = layui.jquery;
  137. layer = layui.layer;
  138. form = layui.form;
  139. table = layui.table;
  140. admin = layui.admin;
  141. uParas = layui.uParas;
  142. util = layui.util;
  143. flowable = layui.flowable;
  144. // console.info(flowable);
  145. var dataBody = $('#dataBody');
  146. // 渲染表格数据
  147. // var insTb = table.render({
  148. // elem: '#datatable',
  149. // url: uParas.baseUrl + flowable.groups,
  150. // // where: {"flag": flag},
  151. // page: true,
  152. // toolbar: true,
  153. // cellMinWidth: 100,
  154. // cols: [[
  155. // {type: 'numbers', title: '序号'},
  156. // {field: 'id', sort: false, title: '组ID'},
  157. // {field: 'name', sort: false, title: '名称'},
  158. // {align: 'center', title: '操作', toolbar: '#optionTpl', minWidth: 200}
  159. // ]]
  160. // });
  161. // 渲染表格数据
  162. renderTable = function renderTable() {
  163. var index = layer.load();
  164. $('#searchBtn').prop('disabled', true);
  165. dataBody.empty();
  166. $.ajax({
  167. url: uParas.baseUrl + flowable.groups,
  168. type: 'get',
  169. dataType: 'json',
  170. success: function(resp) {
  171. if (resp && resp.data) {
  172. layer.close(index);
  173. // console.info(resp.data);
  174. $.each(resp.data, function(index, val) {
  175. var row = renderRow(index, val);
  176. dataBody.append(row);
  177. });
  178. }
  179. $('#searchBtn').prop('disabled', false);
  180. },
  181. error: function(resp) {
  182. $('#searchBtn').prop('disabled', false);
  183. }
  184. });
  185. }
  186. renderTable();
  187. // 渲染表格数据
  188. function renderRow(rowIndex, data) {
  189. var row = '<tr>';
  190. row += '<td style="text-align: center;">' + (rowIndex + 1) + '</td>';
  191. row += '<td>' + data.id + '</td>';
  192. row += '<td>' + data.name + '</td>';
  193. row += '<td>' + renderOpt(rowIndex, data) + '</td>';
  194. row += '</tr>';
  195. return row;
  196. }
  197. // 渲染操作列
  198. function renderOpt(rowIndex, data) {
  199. var optContent = '<div class="layui-btn-group">' +
  200. ' <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit" onclick="showEditModel(\''+ data.id +'\')">编辑</a>' +
  201. ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" onclick="doDel(\''+ data.id + '\')">删除</a>' +
  202. '</div>';
  203. return optContent;
  204. }
  205. // 搜索
  206. form.on('submit(formSubSearch)', function (data) {
  207. // insTb.reload({where: data.field}, 'data');
  208. renderTable();
  209. });
  210. // 工具条点击事件
  211. table.on('tool(datatable)', function (obj) {
  212. console.info(obj);
  213. var data = obj.data;
  214. var layEvent = obj.event;
  215. if (layEvent == 'del') { // 删除
  216. doDel(data);
  217. } else if(layEvent == 'edit') { // 编辑
  218. doEdit(data);
  219. }
  220. });
  221. // // 删除
  222. // function doDel(id) {
  223. // layer.confirm('确定要删除吗?', {
  224. // skin: 'layui-layer-admin',
  225. // shade: .1
  226. // }
  227. // , function (i) {
  228. // layer.close(i);
  229. // layer.load();
  230. // var url = uParas.baseUrl + flowable.groupsPD + id;
  231. // admin.req(url, {}, function (res) {
  232. // layer.closeAll('loading');
  233. // if (res) {
  234. // layer.msg(res.msg);
  235. // // insTb.reload({}, 'data');
  236. // renderTable();
  237. // } else {
  238. // layer.msg(res.msg);
  239. // }
  240. // }, 'post');
  241. //
  242. // });
  243. // }
  244. // 编辑
  245. function doEdit(data) {
  246. showEditModel(data);
  247. }
  248. // 添加
  249. $('#btnAdd').click(function () {
  250. showAddModel();
  251. });
  252. // 新增
  253. function showAddModel() {
  254. var index1 = layer.load();
  255. admin.open({
  256. type: 1,
  257. title: '添加流程用户组',
  258. offset: 'auto',
  259. area:'500px',
  260. content: $('#modelTpl').html(),
  261. success: function (layero, dIndex) {
  262. $.ajax({
  263. url: uParas.baseUrl + flowable.users,
  264. type: 'get',
  265. success: function(resp) {
  266. if (resp && resp.data) {
  267. $("#uId").append(uParas.initSelectHtml(resp, "firstName" ,"id"));
  268. form.render();
  269. layer.close(index1);
  270. }
  271. }
  272. });
  273. var url = uParas.baseUrl + flowable.groups;
  274. form.on('submit(modelSubmit)', function (data) {
  275. var index = layer.load();
  276. $.ajax({
  277. url: url,
  278. type: 'post',
  279. data: JSON.stringify(data.field),
  280. contentType: 'application/json;charset=utf-8',
  281. success: function(resp) {
  282. // console.info(resp);
  283. layer.close(index);
  284. if (resp) {
  285. var uId = $("#uId").val();
  286. if (uId && uId != '') {
  287. var addMemShipUrl = uParas.baseUrl + flowable.groupsMembers;
  288. addMemShipUrl = addMemShipUrl.replace('{0}', resp.id);
  289. console.info(addMemShipUrl);
  290. $.ajax({
  291. url: addMemShipUrl,
  292. type: 'post',
  293. data: '{"userId": \"'+ uId +'\"}',
  294. contentType: 'application/json;charset=utf-8',
  295. success: function(resp) {
  296. // layer.closeAll();
  297. // layer.msg('保存成功!');
  298. }
  299. });
  300. }
  301. layer.closeAll();
  302. layer.msg('保存成功!');
  303. renderTable();
  304. } else {
  305. layer.msg('保存失败!');
  306. }
  307. }
  308. });
  309. return false;
  310. });
  311. }
  312. });
  313. }
  314. // // 修改
  315. // function showEditModel(id) {
  316. // admin.open({
  317. // type: 1,
  318. // title: '修改流程用户组',
  319. // offset: 'auto',
  320. // area: '500px',
  321. // content: $('#modelTpl').html(),
  322. // success: function (layero, dIndex) {
  323. // $('#id').prop('readonly', true);
  324. // // 表单回显
  325. // var index = layer.load();
  326. // var getUrl = uParas.baseUrl + flowable.groups + id;
  327. // admin.req(getUrl, null, function(resp) {
  328. // if (resp && resp.data) {
  329. // form.val('modelForm', resp.data);
  330. // layer.close(index);
  331. //
  332. // var url = uParas.baseUrl + flowable.groups;
  333. // form.on('submit(modelSubmit)', function (data) {
  334. // index = layer.load();
  335. // $.ajax({
  336. // url: url,
  337. // type: 'post',
  338. // data: JSON.stringify(data.field),
  339. // contentType: 'application/json;charset=utf-8',
  340. // success: function(resp) {
  341. // // console.info(resp);
  342. // layer.close(index);
  343. // if (resp) {
  344. // layer.closeAll();
  345. // layer.msg('保存成功!');
  346. // // insTb.reload({}, 'data');
  347. // } else {
  348. // layer.msg('保存失败!');
  349. // }
  350. // }
  351. // });
  352. //
  353. // return false;
  354. // });
  355. // }
  356. // });
  357. // }
  358. // });
  359. // }
  360. });
  361. // 删除
  362. function doDel(id) {
  363. layer.confirm('确定要删除吗?', {
  364. skin: 'layui-layer-admin',
  365. shade: .1
  366. }
  367. , function (i) {
  368. layer.close(i);
  369. layer.load();
  370. var url = uParas.baseUrl + flowable.groupsPD + id;
  371. // admin.req(url, {}, function (resp, status) {
  372. // console.info(status);
  373. // layer.closeAll('loading');
  374. // // if (res) {
  375. // // layer.msg('删除成功!');
  376. // // renderTable();
  377. // // } else {
  378. // // layer.msg('删除失败!');
  379. // // }
  380. // }, 'delete');
  381. $.ajax({
  382. url: url,
  383. type: 'delete',
  384. success: function(resp) {
  385. layer.closeAll('loading');
  386. layer.msg('删除成功!');
  387. renderTable();
  388. },
  389. error: function(resp, status, error) {
  390. layer.closeAll('loading');
  391. if (error) {
  392. layer.msg('删除失败!');
  393. }
  394. }
  395. });
  396. });
  397. }
  398. // 修改
  399. function showEditModel(id) {
  400. admin.open({
  401. type: 1,
  402. title: '修改流程用户组',
  403. offset: 'auto',
  404. area: '500px',
  405. content: $('#modelTpl').html(),
  406. success: function (layero, dIndex) {
  407. $('#id').prop('readonly', true);
  408. // 表单回显
  409. var index = layer.load();
  410. var getUrl = uParas.baseUrl + flowable.groupsPD + id;
  411. admin.req(getUrl, null, function(resp) {
  412. // console.info(resp);
  413. if (resp) {
  414. form.val('modelForm', resp);
  415. layer.close(index);
  416. // 渲染流程用户列表
  417. $.ajax({
  418. url: uParas.baseUrl + flowable.users,
  419. type: 'get',
  420. success: function(resp) {
  421. if (resp && resp.data) {
  422. $("#uId").append(uParas.initSelectHtml(resp, "firstName" ,"id", id));
  423. form.render();
  424. }
  425. }
  426. });
  427. var url = uParas.baseUrl + flowable.groupsPD + id;
  428. form.on('submit(modelSubmit)', function (data) {
  429. index = layer.load();
  430. $.ajax({
  431. url: url,
  432. type: 'put',
  433. data: JSON.stringify(data.field),
  434. contentType: 'application/json;charset=utf-8',
  435. success: function(resp) {
  436. // console.info(resp);
  437. layer.close(index);
  438. if (resp) {
  439. layer.closeAll();
  440. layer.msg('保存成功!');
  441. renderTable();
  442. } else {
  443. layer.msg('保存失败!');
  444. }
  445. }
  446. });
  447. return false;
  448. });
  449. }
  450. });
  451. }
  452. });
  453. }
  454. </script>
  455. </body>
  456. </html>