formulaItem.vue 962 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <template>
  2. <span :class="getItemClass(item)" @click="itemClick(item)">
  3. {{item.name}}
  4. </span>
  5. </template>
  6. <script>
  7. export default {
  8. name: "formulaItem",
  9. props: {
  10. item: {
  11. type: Object,
  12. default: function () {
  13. return {};
  14. }
  15. },
  16. },
  17. data(){
  18. return{
  19. }
  20. },
  21. methods:{
  22. itemClick(item){
  23. item.selected = !item.selected;
  24. this.$emit('click',{
  25. selected:item.selected,
  26. item
  27. })
  28. },
  29. getItemClass(item){
  30. let obj = {};
  31. // obj[item.type.toLocaleLowerCase()+'-class']=true;
  32. obj['element-class']=true;
  33. if(item.selected){
  34. obj.selected = true;
  35. }
  36. return obj;
  37. }
  38. }
  39. }
  40. </script>
  41. <style scoped lang="scss">
  42. .element-class{
  43. cursor: pointer;
  44. padding: 0 3px;
  45. &.selected{
  46. color: rgba(64,149,229,1);
  47. }
  48. }
  49. .text-blue{
  50. font-size: 20px;
  51. color: rgba(64,149,229,1);
  52. font-weight:bold;
  53. }
  54. </style>