userCenterRightsRankGrade.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <div class="userCenterRightsRankGrade">
  3. <div v-for="(item,index) in gradeList" :style="{width:`${100 / gradeList.length}%`}" :class="[index==grade?'active':index+1==grade?'prep':'',index%2==1?'top':'bottom']">
  4. <div class="colorBar"></div>
  5. </div>
  6. </div>
  7. </template>
  8. <script>
  9. export default {
  10. name: "userCenterRightsRankGrade",
  11. props:{
  12. grade:{
  13. type:[Number, String],
  14. default: 0,
  15. },
  16. gradeList:{
  17. type:Array,
  18. default:() => {
  19. return [
  20. {
  21. icon:'api/file/pub/def/user.png',
  22. name:'白银用户',
  23. },
  24. {
  25. icon:'api/file/pub/def/user.png',
  26. name:'黄金用户',
  27. },
  28. {
  29. icon:'api/file/pub/def/user.png',
  30. name:'白金用户',
  31. },
  32. {
  33. icon:'api/file/pub/def/user.png',
  34. name:'钻石用户',
  35. },
  36. ];
  37. }
  38. }
  39. },
  40. methods:{
  41. }
  42. }
  43. </script>
  44. <style scoped lang="less">
  45. .userCenterRightsRankGrade{
  46. width: 100%;
  47. box-sizing: border-box;
  48. height: 170px;
  49. padding: 0 95px;
  50. >div{
  51. display: inline-block;
  52. vertical-align: middle;
  53. height: 100%;
  54. }
  55. .colorBar{
  56. height: 5px;
  57. background-color: #F00;
  58. width: 90%;
  59. }
  60. .top{
  61. .colorBar{
  62. transform: rotate(-10deg);
  63. }
  64. }
  65. .bottom{
  66. .colorBar{
  67. transform: rotate(10deg);
  68. }
  69. }
  70. }
  71. </style>