0
0

state.js 17 KB

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