WidgetTableItem.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <div
  3. class="widget-table-view"
  4. :class="{
  5. active: selectWidget.key == element.key,
  6. 'is_req': element.options.required,
  7. 'is_hidden': element.options.hidden,
  8. 'mobile': platform == 'mobile'
  9. }"
  10. @click.stop="handleSelectWidget(index)"
  11. @mouseover.stop="handleMouseover"
  12. @mouseout="handleMouseout"
  13. ref="widgetTableItem"
  14. :style="{
  15. width: platform != 'mobile' ? (!element.options.width ? '200px' : element.options.width) : ''
  16. }"
  17. >
  18. <widget-element-item
  19. :element="element"
  20. :is-table="true"
  21. :key="element.key"
  22. :label="element.options.hideLabel ? '' : element.name"
  23. :label-width="element.options.hideLabel ? '0px' : (element.options.isLabelWidth ? element.options.labelWidth + 'px' : config.labelWidth + 'px')"
  24. :config="config"
  25. ></widget-element-item>
  26. <div class="widget-view-action" v-if="selectWidget.key == element.key">
  27. <i class="fm-iconfont icon-icon_clone" @click.stop="handleWidgetClone(index)" :title="$t('fm.tooltip.clone')"></i>
  28. <i class="fm-iconfont icon-trash" @click.stop="handleWidgetDelete(index)" :title="$t('fm.tooltip.trash')"></i>
  29. </div>
  30. <div class="widget-view-drag" v-if="selectWidget.key == element.key">
  31. <i class="fm-iconfont icon-drag drag-widget"></i>
  32. </div>
  33. <div class="widget-view-model" :style="{'color': element.options.dataBind ? '' : '#666'}">
  34. <span>{{element.model}}</span>
  35. </div>
  36. <div class="widget-view-type ">
  37. <span>{{element.type ? this.$t('fm.components.fields.' + element.type) : ''}}</span>
  38. </div>
  39. </div>
  40. </template>
  41. <script>
  42. import WidgetElementItem from './WidgetElementItem.vue'
  43. import { widgetTableItemMixin } from '../../mixins/widgetTableItem.js'
  44. export default {
  45. components: {
  46. WidgetElementItem
  47. },
  48. props: ['config'],
  49. mixins: [widgetTableItemMixin]
  50. }
  51. </script>