state.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  1. layui.config({
  2. base: '../../lib/layui/lay/mymodules/'
  3. ,version: '101100'
  4. }).use('eleTree');
  5. layui.extend({
  6. admin: '{/}../../static/js/admin'
  7. });
  8. layui.use(['jquery','eleTree','table','laypage','admin'], function(){
  9. var $= layui.jquery,
  10. eleTree = layui.eleTree,
  11. laypage = layui.laypage,
  12. table = layui.table;
  13. var addStateHtml = '../../pages/admin/addstate.html';
  14. var updateHtml = '../../pages/admin/updateState.html';
  15. // 部门
  16. var belpID = 'root';
  17. delpFun();
  18. function delpFun(){
  19. $.ajax({
  20. url:'http://apptest.jieweizhineng.com/api/section/getlist',
  21. method:'get',
  22. dataType: 'json',
  23. data: {
  24. },
  25. success:function (res) {
  26. if(res.code === 0){
  27. var data = [res.data];
  28. eleTree.render({
  29. elem: '.ele1',
  30. data:data ,
  31. defaultExpandAll:true,
  32. // showCheckbox: true,
  33. });
  34. eleTree.on("nodeClick(data)",function(d) {
  35. belpID = d.data.currentData.id;
  36. sessionStorage.setItem("ztreeDepid",d.data.currentData.id)
  37. $('.stetaName').val("");
  38. var info={
  39. statusContent: '',
  40. departmentId: d.data.currentData.id,
  41. deleteStatus: 'false',
  42. pageNumber: '1',
  43. pageSize: '1',
  44. };
  45. getStateList(info);
  46. })
  47. }else{
  48. layer.msg('请检查网路', {icon: 2});
  49. }
  50. },
  51. error:function (err) {
  52. layer.msg('请检查网路', {icon: 2});
  53. }
  54. })
  55. }
  56. var info={
  57. statusContent: $('.stetaName').val(),
  58. departmentId: belpID,
  59. deleteStatus: 'false',
  60. pageNumber: '1',
  61. pageSize: '1',
  62. };
  63. getStateList(info);
  64. function getStateList(res) {
  65. $.ajax({
  66. url: 'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/getStatusList',
  67. method: 'get',
  68. dataType: 'json',
  69. data: res,
  70. success: function (data) {
  71. laypage.render({
  72. elem: 'pageItem',
  73. count: data.count,
  74. limit: 10,
  75. layout: ['count', 'prev', 'page', 'next', 'skip'],
  76. jump: function(obj, first) {
  77. var index = layer.load(2);
  78. table.render({
  79. elem: '#stateRemind',
  80. url: 'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/getStatusList',
  81. id: 'idstetaTable',
  82. method: 'get',
  83. loading: true,
  84. cols: [[
  85. {field: 'statusContent', title: '状态名称', align: 'center'}
  86. , {field: 'createDate', title: '创建日期', align: 'center'}
  87. , {title: ' 操作', align: 'center', toolbar: '#barDemo'}
  88. ]],
  89. where: {
  90. statusContent: res.statusContent,
  91. departmentId: res.departmentId,
  92. deleteStatus: res.deleteStatus,
  93. pageNumber: obj.curr,
  94. pageSize: obj.limit,
  95. },
  96. response: {
  97. statusName: 'code'
  98. , statusCode: 200,
  99. countName: 'count',
  100. dataName: 'data'
  101. },
  102. done: function (res, curr, count) {
  103. layer.close(index);
  104. if (res.code === '200') {
  105. $('.fr').html('共有数据:'+res.count+' 条')
  106. }
  107. }
  108. });
  109. }
  110. })
  111. }
  112. });
  113. }
  114. // 查询
  115. $(".seachSteta").click(function () {
  116. var checkbox = $("#checkboxT").prop('checked'),
  117. root='',
  118. info;
  119. if(checkbox == true){
  120. root = '';
  121. info={
  122. statusContent: $('.stetaName').val(),
  123. departmentId: root,
  124. deleteStatus: 'false',
  125. pageNumber: '1',
  126. pageSize: '1',
  127. };
  128. }else {
  129. info={
  130. statusContent: $('.stetaName').val(),
  131. departmentId: belpID,
  132. deleteStatus: 'false',
  133. pageNumber: '1',
  134. pageSize: '1',
  135. };
  136. }
  137. getStateList(info)
  138. });
  139. // 监听状态table
  140. table.on('tool(stateItme)', function(obj) {
  141. if( obj.event === "move"){
  142. sessionStorage.setItem("statusId",obj.data.id);
  143. moveDep('选择部门信息','http://apptest.jieweizhineng.com/api/swagger/api/status/v1/moveStatus/','400','500',table);
  144. } else if (obj.event === "copy"){
  145. var content ={
  146. _method:'put'
  147. };
  148. layer.alert('确认要复制记录模板吗?',{icon: 8}, function(index){
  149. $.ajax({
  150. url: 'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/copyStatus/'+obj.data.id,
  151. method: 'post',
  152. dataType: 'json',
  153. data: content,
  154. success: function (res) {
  155. if (res.code === '200'){
  156. layer.msg('复制成功', {icon: 1});
  157. table.reload('idstetaTable');
  158. } else{
  159. layer.msg('复制失败', {icon: 2});
  160. table.reload('idstetaTable');
  161. }
  162. layer.close(index);
  163. },
  164. error:function () {
  165. layer.msg('请检查网络', {icon: 2});
  166. layer.close(index);
  167. }
  168. });
  169. });
  170. } else if (obj.event === "edit"){
  171. var objID =obj.data;
  172. var delobj=[];
  173. layer.open({
  174. type: 2,
  175. id: 'updateState',
  176. title:'修改状态和提醒设置',
  177. shadeClose: true,
  178. scrollbar:true,
  179. shade: 0.3,
  180. maxmin: true,
  181. skin: 'oaBtn',
  182. btn: ['确认', '取消'],
  183. area: ['500px', '500px'],
  184. content: updateHtml,
  185. success: function (layero, index) {
  186. var body = layer.getChildFrame('body', index);
  187. body.find('#stetaName').val(obj.data.statusContent);
  188. $.ajax({
  189. url: 'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/getStatusItemList/'+obj.data.id,
  190. method: 'get',
  191. dataType: 'json',
  192. success: function (res) {
  193. for (var i=0;i<res.data.length;i++){
  194. var str =`
  195. <div class="a_itme" id-data="${res.data[i].id}" delete-flay="true">
  196. <div class="a_colour">
  197. <span color_data="${res.data[i].statusColor}" style="background: ${res.data[i].statusColor}"></span>
  198. </div>
  199. <div class="a_modle">
  200. <i class="pointedSpan"></i>
  201. <b class="a_continue">继续</b>
  202. <b class="a_complete">完成</b>
  203. <span></span>
  204. <span></span>
  205. </div>
  206. <div class="a_delete">
  207. <i class="layui-icon layui-icon-delete"></i>
  208. </div>
  209. <input type="text" value="${res.data[i].statusContent}" placeholder="请输入状态名称" name="username" required="" lay-verify="required" autocomplete="off" class="layui-input a_steta ${i == 0?"a_steta1":""}">
  210. </div>`;
  211. body.find(".a_itmes").append(str)
  212. }
  213. },
  214. error:function () {
  215. layer.msg('请检查网络', {icon: 2});
  216. }
  217. });
  218. body.delegate('.a_delete','click',function () {
  219. if (body.find(".a_itmes .a_itme").length === 1) {
  220. return;
  221. }else {
  222. var id = $(this).parent().attr("id-data"),
  223. deleteFlay = $(this).parent().attr("delete-flay");
  224. var sonterm = {deleteFlag:deleteFlay,id:id,statusColor:'',statusContent:'',zIndex:''};
  225. delobj.push(sonterm)
  226. }
  227. })
  228. },
  229. yes: function (index, layero) {
  230. var body = layer.getChildFrame('body', index);
  231. var reg = /\S/;
  232. if (!reg.test(body.find("#stetaName").val())) {
  233. layer.msg('请输入状态组名称', {icon: 8});
  234. return false;
  235. }
  236. if (!reg.test(body.find(".a_steta1").val())) {
  237. layer.msg('请输入状态组子项至少填一个', {icon: 8});
  238. return false;
  239. }
  240. var item = body.find('.a_itmes .a_itme');
  241. var a_colour = body.find('.a_colour');
  242. var arr = [];
  243. var ID = [];
  244. var json =[];
  245. var color =[];
  246. var obj = {deleteFlag:'false',id:'',statusColor:'',statusContent:'',zIndex:''};
  247. a_colour.each(function () {
  248. var value = $(this).find('span').attr("color_data");
  249. color.push(value);
  250. });
  251. item.each(function () {
  252. var value = $(this).find('input').val();
  253. var ids = $(this).attr("id-data");
  254. if (value != "") {
  255. arr.push(value);
  256. ID.push(ids)
  257. }
  258. });
  259. for (var i = 0; i < arr.length; i++) {
  260. if (arr[i] != "") {
  261. obj = {};
  262. obj.deleteFlag = false;
  263. obj.id = ID[i];
  264. obj.statusColor = color[i];
  265. obj.statusContent = arr[i];
  266. obj.zIndex = i+1;
  267. delobj.push(obj)
  268. }
  269. }
  270. var updateStetaInfo = {
  271. id:objID.id,
  272. statusContent:body.find('#stetaName').val(),
  273. statusItems:delobj,
  274. _method:'put'
  275. };
  276. $.ajax({
  277. url:'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/updateStatus',
  278. method:'POST',
  279. dataType: 'json',
  280. data: updateStetaInfo,
  281. success:function (res) {
  282. if(res.code === '200'){
  283. layer.msg('修改成功', {icon: 1});
  284. table.reload('idstetaTable');
  285. layer.close(index);
  286. }else if (res.code == '422') {
  287. layer.msg('状态内容不能为空', {icon: 2});
  288. table.reload('idstetaTable');
  289. layer.close(index);
  290. }else{
  291. layer.msg('修改失败,请检查信息', {icon: 2});
  292. table.reload('idstetaTable');
  293. layer.close(index);
  294. }
  295. },
  296. error:function (err) {
  297. layer.close(index);
  298. }
  299. })
  300. }
  301. })
  302. } else if (obj.event === "delete"){
  303. var content ={
  304. _method:'DELETE'
  305. };
  306. layer.alert('确认要删除吗?',{icon: 8}, function(index){
  307. $.ajax({
  308. url: 'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/reomveStatus/'+obj.data.id,
  309. method: 'post',
  310. dataType: 'json',
  311. data: content,
  312. success: function (res) {
  313. if (res.code === '200'){
  314. layer.msg('删除成功', {icon: 1});
  315. table.reload('idstetaTable');
  316. } else{
  317. layer.msg('删除失败', {icon: 2});
  318. table.reload('idstetaTable');
  319. }
  320. layer.close(index);
  321. },
  322. error:function () {
  323. layer.msg('请检查网络', {icon: 2});
  324. layer.close(index);
  325. }
  326. });
  327. });
  328. }
  329. });
  330. // 添加状态
  331. // 打开添加弹窗
  332. $(".addState").click(function () {
  333. layer.open({
  334. type: 2,
  335. id: 'addState',
  336. title:'添加状态和提醒设置',
  337. shadeClose: true,
  338. scrollbar:true,
  339. shade: 0.3,
  340. maxmin: true,
  341. skin: 'oaBtn',
  342. btn: ['确认', '取消'],
  343. area: ['500px', '500px'],
  344. content: addStateHtml,
  345. success: function (layero, index) {
  346. var body = layer.getChildFrame('body', index);
  347. },
  348. yes: function (index, layero) {
  349. var body = layer.getChildFrame('body', index);
  350. var reg = /\S/;
  351. if (!reg.test(body.find("#stetaName").val())) {
  352. layer.msg('请输入状态组名称', {icon: 8});
  353. return false;
  354. }
  355. if (!reg.test(body.find(".a_steta1").val())) {
  356. layer.msg('请输入状态组子项至少填一个', {icon: 8});
  357. return false;
  358. }
  359. var item = body.find('.a_itmes .a_itme');
  360. var a_colour = body.find('.a_colour');
  361. var json =[];
  362. var arr = [];
  363. var color =[];
  364. var obj = {statusColor:'',statusContent:'',zIndex:''};
  365. a_colour.each(function () {
  366. var value = $(this).find('span').attr("color_data");
  367. color.push(value);
  368. });
  369. item.each(function () {
  370. var value = $(this).find('input').val();
  371. if ($(this).find('input').val() != "") {
  372. arr.push(value);
  373. }
  374. });
  375. for (var j = 0; j < arr.length; j++) {
  376. if (arr[j] != "") {
  377. obj = {};
  378. obj.statusColor = color[j];
  379. obj.statusContent = arr[j];
  380. obj.zIndex = j+1;
  381. json.push(obj);
  382. }
  383. }
  384. var addStetaInfo = {
  385. departmentId:belpID,
  386. statusContent:body.find('#stetaName').val(),
  387. statusItems:json
  388. };
  389. $.ajax({
  390. url:'http://apptest.jieweizhineng.com/api/swagger/api/status/v1/addStatus',
  391. method:'POST',
  392. dataType: 'json',
  393. data: addStetaInfo,
  394. success:function (res) {
  395. if(res.code === '200'){
  396. layer.msg('添加成功', {icon: 1});
  397. table.reload('idstetaTable');
  398. layer.close(index);
  399. }else if (res.code == '422') {
  400. layer.msg('状态内容不能为空', {icon: 2});
  401. table.reload('idstetaTable');
  402. layer.close(index);
  403. } else{
  404. layer.msg('添加失败,请检查信息或网络', {icon: 2});
  405. table.reload('idstetaTable')
  406. }
  407. },
  408. error:function (err) {
  409. layer.msg('网络错误', {icon: 2});
  410. }
  411. })
  412. }
  413. })
  414. })
  415. });