graceTags.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. <template>
  2. <view class="gui-tags">
  3. <view class="gui-tags-item" v-for="(item, index) in items" :key="index" @tap="removeTag(index)"
  4. :style="{background:bgColor, borderRadius:borderRadius, marginRight:margin+'rpx', marginBottom:margin+'rpx'}">
  5. <text class="grace-icons gui-tags-remove" :style="{fontSize:fontSize+'rpx', lineHeight:(fontSize*1.5)+'rpx', color:color}">{{item}}</text>
  6. </view>
  7. </view>
  8. </template>
  9. <script>
  10. export default{
  11. props:{
  12. fontSize:{type:Number, default:26},
  13. color:{type:String, default:'#333333'},
  14. bgColor:{type:String, default:'#F6F7F8'},
  15. borderRadius:{type:String, default:'6rpx'},
  16. items:{type:Array, default:function(){return [];}},
  17. margin:{type:Number, default:20}
  18. },
  19. data() {
  20. return {}
  21. },
  22. methods:{
  23. removeTag : function (index) {
  24. this.$emit('removeTag', index);
  25. }
  26. }
  27. }
  28. </script>
  29. <style scoped>
  30. .gui-tags{display:flex; flex-direction:row; flex-wrap:wrap;}
  31. .gui-tags-item{padding:12rpx 20rpx; line-height:38rpx; font-size:26rpx; position:relative;}
  32. .gui-tags-remove:after{content:"\e610"; padding-left:15rpx;}
  33. </style>