customSku.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. var customPropId = -1;//自定义属性类型ID
  2. var customPropValId = -1;//自定义属性值id
  3. $(function(){
  4. //克隆SKU模板生成自定义sku
  5. $(document).on("click" , ".cloneSku" , function(){
  6. var cloneSource = $("#skuCloneModel");//要克隆的sku模板
  7. var cloneNode = cloneSource.clone(true);//克隆出来的节点
  8. cloneNode.css("display","block");//显示元素
  9. //移除id
  10. cloneNode.removeAttr("id");
  11. customPropId -- ;
  12. //设置自定义属性类型主键
  13. $(cloneNode).find(".cusSkuTypeInput").parent().attr("propid",customPropId);
  14. //设置SKU类型主键 propid
  15. $(cloneNode).find(".cusSkuValInput").prev().attr("propid",customPropId);
  16. customPropValId -- ;
  17. //设置自定义属性类型值主键
  18. $(cloneNode).find(".cusSkuValInput").prev().attr("propvalid",customPropValId);
  19. $(this).before(cloneNode);//添加到该按钮的前面
  20. });
  21. //添加自定义sku值
  22. $(document).on("click",".cloneSkuVal",function(){
  23. //要克隆的SKU值模板
  24. var cloneSource = $("#onlySkuValCloneModel");
  25. //克隆出来的节点
  26. var cloneNode = cloneSource.clone(true);
  27. //移除id
  28. cloneNode.removeAttr("id");
  29. //获取并设置SKU类型主键
  30. var propid = $(this).parents("ul").prev().find("li").attr("propid");
  31. $(cloneNode).find(".cusSkuValInput").prev().attr("propid",propid);
  32. customPropValId -- ;
  33. //设置自定义属性类型值主键
  34. $(cloneNode).find(".cusSkuValInput").prev().attr("propvalid",customPropValId);
  35. //显示元素
  36. cloneNode.css("display","block");
  37. //添加到该按钮的前面
  38. $(this).before(cloneNode);
  39. });
  40. //SKU类型改变
  41. $(document).on("change", ".cusSkuTypeInput", function(){
  42. //判断当前的SKU类型是否已经存在
  43. var isHaveThisSkuType = false;
  44. var customSkuTypeName = $(this).val();
  45. if(customSkuTypeName){
  46. $("ul[class*='SKU_TYPE']").find("li").each(function(){
  47. var currSkuTypeName = $(this).attr("sku-type-name");//当前SKU类型名称
  48. if(currSkuTypeName == customSkuTypeName){//该SKU类型已经存在
  49. isHaveThisSkuType = true;
  50. }
  51. });
  52. }
  53. if(isHaveThisSkuType){
  54. layer.alert("该SKU类型已经存在!");
  55. $(this).val("");
  56. }
  57. //赋值类型属性
  58. $(this).parent().attr("sku-type-name",$(this).val());
  59. if(!$(this).val() || isHaveThisSkuType){
  60. $(this).parent().parent().next().find("input[type='checkbox'][class*='sku_value']").each(function(){
  61. //取消选中
  62. $(this).attr("checked",false)
  63. //移除class
  64. $(this).removeClass("sku_value");
  65. });
  66. }
  67. //触发change事件,重绘表格
  68. $(".model_sku_val").trigger("change");
  69. });
  70. //SKU值改变
  71. $(document).on("change", ".cusSkuValInput", function(){
  72. var isHaveSkuVal = false;//是否已经存在当前的SKU值
  73. var thisSkuVal = $(this).val();
  74. //判断SKU值是否已经重复了
  75. $(".model_sku_val,.sku_value").each(function(){
  76. var customSkuVal = $(this).val();//当前SKU值
  77. if(thisSkuVal == customSkuVal){
  78. isHaveSkuVal = true;
  79. return;
  80. }
  81. });
  82. if(isHaveSkuVal){
  83. layer.alert("该SKU类型已经存在!");
  84. $(this).val("");
  85. }
  86. $("input[type*='checkbox'][class*='']")
  87. var cusSkuVal = $(this).val();
  88. if(!cusSkuVal || isHaveSkuVal){
  89. //移除class
  90. $(this).prev().removeClass("sku_value");
  91. if($(this).prev().is(":checked")){
  92. //移除选中
  93. $(this).prev().attr("checked",false);
  94. }
  95. }
  96. //赋值类型属性
  97. $(this).prev().val(cusSkuVal);
  98. //触发change事件
  99. $(".model_sku_val").trigger("change");
  100. });
  101. //未设置sku值和属性的sku选择框改变事件
  102. $(document).on("change",".model_sku_val",function(){
  103. //SKU类型
  104. var skuTypeVal = $(this).parent().parent().prev().find("li").attr("sku-type-name");
  105. //是否设置了sku类型及sku值
  106. if(skuTypeVal && $(this).val()){
  107. //添加class
  108. $(this).addClass("sku_value");
  109. }
  110. //触发change事件,重绘表格
  111. $("input[type='checkbox']").first().trigger("change");
  112. });
  113. //删除自定义sku类型模块
  114. $(document).on("click",".delCusSkuType",function(){
  115. $(this).parent().parent().parent().remove();
  116. //触发change事件,重绘表格
  117. $("input[type='checkbox']").first().trigger("change");
  118. });
  119. //删除自定义sku值
  120. $(document).on("click",".delCusSkuVal",function(){
  121. $(this).parent().remove();
  122. //触发change事件,重绘表格
  123. $("input[type='checkbox']").first().trigger("change");
  124. });
  125. })