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 79 80 81 82 83 84 85 86 87 88 89 90 91
| <template> <div class="app-container" /> </template>
<script> import Driver from 'driver.js' import 'driver.js/dist/driver.min.css' import excelMergeSteps from './steps/excelMergeSteps.js'
export default { name: 'Guide', emits: ['close-guide'], components: {}, props: { guide: { type: Boolean, require: true, default: false, validator(value) { return [true, false].includes(value) } }, content: { type: String, require: true, default: '' } }, data() { return { driver: null } }, computed: {}, watch: { guide: function() { if (this.guide) { setTimeout(() => { this.startGuide() }, 900) } } }, created() {}, mounted() { this.driver = new Driver({ className: 'scoped-class', animate: true, opacity: 0.7, padding: 0, allowClose: true, overlayClickNext: false, stageBackground: '#ffffff', showButtons: true, keyboardControl: true, doneBtnText: '完成', closeBtnText: '关闭', prevBtnText: '上一步', nextBtnText: '下一步', onHighlightStarted: (Element) => {}, onHighlighted: (Element) => {}, onDeselected: (Element) => { this.onDeselected(Element) }, onReset: (Element) => {}, onNext: (Element) => {}, onPrevious: (Element) => {} }) }, methods: { startGuide() { let data = {} if (this.content === 'excelMerge') { data = excelMergeSteps } else { return false } this.driver.defineSteps(data) this.driver.start() }, onDeselected(element) { this.$emit('close-guide') } } } </script>
<style scoped> </style>
|