JkCategory.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. var data = "";
  2. $(function(){
  3. getdata();
  4. // test();
  5. //新增分类
  6. var addHtm = '<div class="item has-input">'+
  7. '<input type="text" class="cus-input" placeholder="请输入分类"/><a href="javascript:;" class="c-btn c-btn-blue btn-save ml10">保存</a>'+
  8. '</div>';
  9. var cusTable = $('.custom-table');
  10. var cusLi = '<li class="addli">'+
  11. '<div class="table-key">'+
  12. '<div class="item has-input">'+
  13. '<input type="text" class="cus-input" placeholder="请输入分类"/><a href="javascript:;" class="c-btn c-btn-blue btn-save ml10">保存</a><p class="error c-hide">请先填写一级分类</p>'+
  14. '</div>'+
  15. '</div>'+
  16. '<div class="table-info">'+
  17. '<div class="item has-input">'+
  18. '<input type="text" class="cus-input" placeholder="请输入分类"/><a href="javascript:;" class="c-btn c-btn-blue btn-save ml10">保存</a>'+
  19. '</div>'+
  20. '</div>'+
  21. '</li>';
  22. $('#classifyAdd').click(function(){
  23. if(cusTable.hasClass('openadd')){return;}
  24. if(cusTable.hasClass('openedit')){
  25. cusTable.removeClass('openedit');
  26. }
  27. cusTable.addClass('openadd');
  28. cusTable.find('li').not('.table-th').find('.table-info').append(addHtm);
  29. cusTable.append(cusLi);
  30. });
  31. //input聚焦
  32. $(document).on('focus','.cus-input',function(){
  33. $(this).siblings('.btn-save').show();
  34. var infoObj = $(this).parents('.table-info');
  35. infoObj.siblings('.table-key').find('.error').hide();
  36. if(infoObj.siblings('.table-key').find('.has-input').length != 0){
  37. infoObj.find('input').attr('disabled','disabled');
  38. infoObj.siblings('.table-key').find('.error').show();
  39. }
  40. }).on('blur','.cus-input',function(){
  41. $(this).siblings('.btn-save').hide();
  42. });
  43. //保存新增分类
  44. $(document).on('mousedown','.btn-save',function(){
  45. var val = $(this).siblings('input').val();
  46. var uuid=guid();
  47. if(val == ''){return;}
  48. var item = '<div class="item"><span class="tag">'+ val +'</span>'+
  49. '<span class="tag-edit"><input type="text" value="'+val+'" data-value="'+uuid+'"/><i class="icon icon-tagclose"></i></span>'+'</div>';
  50. $(this).parents('li').removeClass('addli');
  51. if($(this).parent().parent().hasClass('table-key')){
  52. addcategory(uuid,val,1);//添加一级分类
  53. $(this).parent('.item').before(item);
  54. if($(this).parent('.item').hasClass('has-input')){
  55. $(this).parents('.table-key').siblings('.table-info').find('input').removeAttr('disabled');
  56. }
  57. $(this).parent('.item').remove();
  58. cusTable.append(cusLi);
  59. }else{
  60. var name = $(this).parents('.table-info').siblings('.table-key').find('input').val();
  61. var firstLevelId = $(this).parents('.table-info').siblings('.table-key').find('input').data('value');
  62. addcategory(uuid,val,2,firstLevelId);//添加二级分类
  63. $(this).parent('.item').before(item);
  64. }
  65. $(this).siblings('input').val('');
  66. });
  67. //保存分类
  68. $('#classifySave').click(function(){
  69. if(cusTable.hasClass('openadd')){
  70. cusTable.find('.item.has-input').remove();
  71. cusTable.removeClass('openadd');
  72. }
  73. if(cusTable.find('.addli')){
  74. cusTable.find('.addli').remove();
  75. }
  76. if(cusTable.hasClass('openedit')){
  77. cusTable.find('.tag-edit').each(function(index,ele){
  78. var val = $(ele).find('input').val();
  79. if($(ele).siblings('.tag').text()!=val){
  80. save($(ele).find('input').data('value'),val);//保存修改后的值
  81. }
  82. $(ele).siblings('.tag').text(val);
  83. });
  84. cusTable.removeClass('openedit');
  85. }
  86. });
  87. //编辑分类
  88. $('#classifyEdit').click(function(){
  89. if(cusTable.hasClass('openadd')){
  90. cusTable.removeClass('openadd');
  91. }
  92. if(cusTable.find('.addli')){
  93. cusTable.find('.addli').remove();
  94. }
  95. if(cusTable.find('.has-input')){
  96. cusTable.find('.has-input').remove();
  97. }
  98. cusTable.addClass('openedit');
  99. });
  100. //删除标签
  101. $(document).on('click','.tag-edit .icon-tagclose',function(){
  102. var editItem = $(this).parent().parent();
  103. var info = editItem.parent();
  104. if(editItem.parent().hasClass('table-key')){
  105. var categoryId = editItem.find('input').data('value');
  106. update(categoryId);
  107. editItem.parent().parent('li').remove();
  108. }else{
  109. var categoryId = editItem.find('input').data('value');
  110. update(categoryId);
  111. editItem.remove();
  112. if(info.children().length == 0){
  113. info.parent('li').remove();
  114. }
  115. }
  116. });
  117. });
  118. function test(){
  119. var param = {};
  120. var uid=guid();
  121. param.categoryId=uid;
  122. param.categoryName="test";
  123. param.categoryLevel=1;
  124. param.secondLevelId=
  125. param.firstLevelId=uid;
  126. param.orgName="健康教育";
  127. param.orgId = "123";
  128. param.operatorName = "t";
  129. param.operatorId ="20";
  130. $.post("/JkEdu/Category/addCategory", param, function(result) {
  131. });
  132. }
  133. function getdata(){
  134. var param = {};
  135. $.post("/JkEdu/Category/getCategoryList", param, function(result) {
  136. if (result.Code==10000){
  137. data = result.result;
  138. init();
  139. } else {
  140. ask(result.Message);
  141. }
  142. });
  143. }
  144. function init(){
  145. var html='';
  146. html+='<li class="table-th">'
  147. +'<div class="table-key">一级分类</div>'
  148. +'<div class="table-info">二级分类</div>'
  149. +'</li>';
  150. $.each(data, function (i, val) {
  151. if(val.categorylevel==1){
  152. html+='<li><div class="table-key">'
  153. +'<div class="item">'
  154. +'<span class="tag">'+val.categoryname+'</span>'
  155. +'<span class="tag-edit"><input type="text" value="'+val.categoryname+'" data-value="'+val.categoryid+'"/><i class="icon icon-tagclose"></i></span>'
  156. +'</div>'
  157. +'</div>';
  158. html+='<div class="table-info">';
  159. $.each(data, function (j, val2) {
  160. if(val2.categorylevel==2&&val2.firstlevelid==val.categoryid){
  161. html+='<div class="item">'
  162. +'<span class="tag">'+val2.categoryname+'</span>'
  163. +'<span class="tag-edit"><input type="text" value="'+val2.categoryname+'" data-value="'+val2.categoryid+'"/><i class="icon icon-tagclose"></i></span>'
  164. +'</div>';
  165. }
  166. });
  167. html+='</div></li>';
  168. }
  169. });
  170. $("#category").append(html);
  171. }
  172. function guid() {
  173. return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
  174. var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
  175. return v.toString(16);
  176. });
  177. }
  178. function addcategory(categoryId,categoryName,level,firstLevelId){
  179. var param = {};
  180. var uid=guid();
  181. param.categoryId=categoryId;
  182. param.categoryName=categoryName;
  183. param.categoryLevel=level;
  184. param.secondLevelId="";
  185. if(level==1){
  186. param.firstLevelId=categoryId;
  187. }else{
  188. param.firstLevelId=firstLevelId;
  189. }
  190. param.orgName="健康教育";
  191. param.orgId = "123";
  192. param.operatorName = "t";
  193. param.operatorId ="20";
  194. $.post("/JkEdu/Category/addCategory", param, function(result) {
  195. if(result.Code==10000){
  196. return true;
  197. }else{
  198. return false;
  199. }
  200. });
  201. }
  202. function update(categoryId){
  203. var param = {};
  204. param.categoryId=categoryId;
  205. param.categoryState=2;
  206. $.post("/JkEdu/Category/updateCategory", param, function(result) {
  207. console.log(result.Code);
  208. if(result.Code==10000){
  209. return true;
  210. }else{
  211. return false;
  212. }
  213. });
  214. }
  215. function save(categoryId,categoryName){
  216. var param = {};
  217. param.categoryId=categoryId;
  218. param.categoryName=categoryName;
  219. param.categoryState="";
  220. $.post("/JkEdu/Category/updateCategory", param, function(result) {
  221. console.log(result.Code);
  222. if(result.Code==10000){
  223. return true;
  224. }else{
  225. return false;
  226. }
  227. });
  228. }