0
0

state.js 18 KB

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