Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 7x | import SEmpty from '../../../components/s-empty.vue'; export const UTimelineItem = { name: 'u-timeline-item', props: { color: { type: String, default: 'blue', }, label: { type: String, }, position: { validator(value) { return ['left', 'right'].indexOf(value) !== -1; }, default: 'right', }, item: { type: [Object, String, Number], }, index: { type: [Object, String, Number], }, }, components: { SEmpty, }, inject: ['timeline'], data() { return { observerwh: null, }; }, computed: { hastop() { return this.$env.VUE_APP_DESIGNER; }, itemPosition() { return ['alternate', 'label'].indexOf(this.timeline.mode) !== -1 ? this.position : undefined; }, }, mounted() { this.observeLabel(); }, updated() { this.observeLabel(); }, destroyed() { this.observerwh && this.observerwh.disconnect(); }, methods: { observeLabel() { if (!this.$refs.labelwrap) return; this.observerwh = new MutationObserver(this.pwh); this.observerwh.observe(this.$refs.labelwrap, { attributes: true, childList: true, subtree: true, }); setTimeout(() => { this.pwh(); }); }, pwh() { let realH; const realHeight = this.$refs.labelwrap.scrollHeight; const realHeightr = this.$refs.contentwrap.scrollHeight; // eslint-disable-next-line prefer-const realH = Math.max(realHeight, realHeightr); if (this.timeline.mode === 'label' && realH && realH > 0) { // const originHeight = this.$refs.wrap.offsetHeight; (this.$refs.wrap.style.height = realH + 20 + 'px'); } }, }, }; export default UTimelineItem; |