sign-progress-filter.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. (function(){
  2. Vue.component('sign-progress-filter',{
  3. template:'<div style="height: 400px;overflow: auto;margin-bottom: 50px;">\
  4. <div class="mt10 ml10 filter-title">统计年份</div>\
  5. <div class="c-row mt20 ml40" id="signYear" v-html="yearHtml" @click="yearClick">\
  6. </div>\
  7. <div class="mt20 ml10 filter-title">统计维度</div>\
  8. <div class="div-content" @click="contentClick">\
  9. <div class="mt20 div-group-btn c-row ml40">\
  10. <div class="div-btn c-33 active" data-val="1">\
  11. <a href="#" class="f-fs14">按任务</a>\
  12. </div>\
  13. <div class="div-btn c-33" data-val="2">\
  14. <a href="#" class="f-fs14">按人口</a>\
  15. </div>\
  16. <div class="div-btn c-33" data-val="5" data-lowCode="3">\
  17. <a href="#" class="f-fs14">65岁以上签约</a>\
  18. </div>\
  19. </div>\
  20. <div class="mt20 div-group-btn c-row ml40">\
  21. <div class="div-btn c-33" data-val="3" data-lowCode="1">\
  22. <a href="#" class="f-fs14">高血压</a>\
  23. </div>\
  24. <div class="div-btn c-33" data-val="4" data-lowCode="2">\
  25. <a href="#" class="f-fs14">糖尿病</a>\
  26. </div>\
  27. </div>\
  28. </div>\
  29. <div id="footer">\
  30. <div class="c-row btn-wrap c-border-top fr">\
  31. <div class="div-foot-btn mr20" @click="resetClick">\
  32. <a href="#" class="c-666 f-fs16">重置</a>\
  33. </div>\
  34. <div class="div-foot-btn active" @click="confirmClick">\
  35. <a href="#" class="c-666 f-fs16">保存</a>\
  36. </div>\
  37. </div>\
  38. </div>\
  39. </div>',
  40. props:['yearHtml','contentHtml'],
  41. data: function(){
  42. return {
  43. }
  44. },
  45. methods: {
  46. yearClick:function(){
  47. $(event.target.closest("div")).addClass('active').siblings().removeClass('active');
  48. },
  49. contentClick:function(){
  50. $(".div-content").find(".div-btn").removeClass('active');
  51. $(event.target.closest("div")).addClass('active');
  52. },
  53. resetClick:function(){
  54. $("#signYear").find(".c-33").removeClass("active");
  55. $("#signYear").find(".c-33").eq(0).addClass("active");
  56. $(".div-content").find(".c-33").removeClass("active");
  57. $(".div-content").find(".c-33").eq(0).addClass("active");
  58. },
  59. confirmClick:function(){
  60. var vm = this;
  61. var year = $("#signYear .c-33.active").attr("data-val"),
  62. $type = $(".div-content .div-btn.active"),
  63. typeCode = $type.attr("data-val"),
  64. lowCode = $type.attr("data-lowCode"),
  65. name = $type.find("a").html();
  66. console.log("year:"+$("#signYear .c-33.active").attr("data-val"))
  67. console.log("id:"+typeCode)
  68. console.log("lowCode:"+lowCode)
  69. console.log("name:"+name)
  70. //触发刷新
  71. this.$emit('vuedals:close', {
  72. chooseYear: year,
  73. id: typeCode,
  74. lowCode: lowCode,
  75. name: name,
  76. yearHtml:$("#signYear").html(),
  77. contentHtml:$(".div-content").html()
  78. });
  79. },
  80. formatYearData: function () {
  81. //显示年份最低是2016年
  82. var now = new Date(),
  83. year = now.getFullYear();
  84. var yearHtml = "";
  85. if(now.getMonth() >= 6){
  86. yearHtml += '<div class="c-33 active" data-val="'+year+'"><a>'+year+"</a></div>";
  87. }
  88. for(i=year-1; i>=2016; i--){
  89. if(i == (year-1) && now.getMonth() < 6){
  90. yearHtml += '<div class="c-33 active" data-val="'+i+'"><a>'+i+"</a></div>";
  91. }else{
  92. yearHtml += '<div class="c-33" data-val="'+i+'"><a>'+i+"</a></div>";
  93. }
  94. }
  95. this.yearHtml = yearHtml;
  96. },
  97. },
  98. mounted: function(){
  99. if(this.contentHtml){
  100. $(".div-content").html(this.contentHtml);
  101. }else{
  102. this.formatYearData();
  103. }
  104. }
  105. });
  106. })()