|
@@ -1,32 +1,794 @@
|
|
|
<script>
|
|
<script>
|
|
|
import Vue from 'vue'
|
|
import Vue from 'vue'
|
|
|
-
|
|
|
|
|
|
|
+import { driver } from 'driver.js'
|
|
|
|
|
+import 'driver.js/dist/driver.css'
|
|
|
|
|
+import JSConfetti from 'js-confetti'
|
|
|
export default Vue.extend({
|
|
export default Vue.extend({
|
|
|
name: 'InteractiveGuide',
|
|
name: 'InteractiveGuide',
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
- createExpoStep: [
|
|
|
|
|
- {
|
|
|
|
|
- guideId: 'createExpoStep1',
|
|
|
|
|
- handel: '#createExpoButton',
|
|
|
|
|
- trigger: 'click',
|
|
|
|
|
- before: () => {
|
|
|
|
|
- this.$router.push({ name: 'preRegManageList' })
|
|
|
|
|
- },
|
|
|
|
|
- after: () => {}
|
|
|
|
|
- }
|
|
|
|
|
- ]
|
|
|
|
|
|
|
+ driverObj: null,
|
|
|
|
|
+ expoGuide: {
|
|
|
|
|
+ showProgress: true,
|
|
|
|
|
+ allowClose: false,
|
|
|
|
|
+ nextBtnText: '下一步',
|
|
|
|
|
+ prevBtnText: '上一步',
|
|
|
|
|
+ doneBtnText: '完成',
|
|
|
|
|
+ steps: [
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu .el-submenu:nth-child(3)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建展会',
|
|
|
|
|
+ description: '点击展开展会管理菜单。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu > .el-submenu:nth-child(3) .el-menu > .el-menu-item:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建展会',
|
|
|
|
|
+ description: '点击前往展会管理页面。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .head .el-button',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建展会',
|
|
|
|
|
+ description: '点击添加展商来新建一个展会。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '让我们完善展会信息,首先是展会名称。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '接下来设置展会的起止时间。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(3)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '然后设置展会举办的地点。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(4)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '然后设置主办单位的名称。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(5)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '然后是主办单位的联系电话。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .info .scroll > .form-item:nth-child(6)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ side: 'right',
|
|
|
|
|
+ description: '然后是主办单位的联系邮箱。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .desc .scroll .avatar-upload',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ description: '为您的展会设置一个头像。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .desc .scroll .cover-upload',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ description: '为您的展会设置一个主视觉图,它会在很多地方作为背景出现。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .desc .scroll .text-area',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ description: '简单介绍一下展会内容把。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .save .el-button',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完善信息',
|
|
|
|
|
+ description: '确认无误后就可以创建展会了。当然,在展会的第一个观众报名之前,您仍可以反复修改展会信息!',
|
|
|
|
|
+ showButtons: ['close', 'previous']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 2000)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .el-table',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建展会',
|
|
|
|
|
+ description: '这里的第一项就是您刚刚创建的展会了,您创建的所有展会都会在这里显示。接下来,我们为刚刚建立的展会制作一个观众报名表。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu > .el-submenu:nth-child(4)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建报名表',
|
|
|
|
|
+ description: '点击展开表单管理菜单。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu .el-submenu:nth-child(4) .el-menu > .el-menu-item:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建报名表',
|
|
|
|
|
+ description: '点击前往表单管理页',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .head .el-button',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建报名表',
|
|
|
|
|
+ description: '点击创建表单来新建一个观众报名表。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 1000)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .comp-lib .list .drag-cont > div:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '使用鼠标左键按住并向右拖拽这个组件,期间不要放开鼠标左键。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '继续按住鼠标左键!将组件拖拽到这里然后松开鼠标。不小心松开鼠标了也没关系,点击上一步按钮然后再来一次。',
|
|
|
|
|
+ showButtons: ['close', 'previous']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('drop', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 100)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('drop', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body .drag-cont > div:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '点击我们刚刚添加的组件。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 100)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .comp-edit .body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '然后我们就能编辑这个组件的配置了,您可以将鼠标放在配置项右边的小问号里查看相关帮助。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .comp-edit .title .icon',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '编辑完组件的配置后,点击这里回到全局配置界面。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 100)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .comp-lib .list .drag-cont > div:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '使用鼠标左键按住并向右拖拽这个组件,期间不要放开鼠标左键。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '继续按住鼠标左键!将组件拖拽到这里然后松开鼠标。不小心松开鼠标了也没关系,点击上一步按钮然后再来一次。',
|
|
|
|
|
+ showButtons: ['close', 'previous']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('drop', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 100)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('drop', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body .drag-cont > div:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '使用鼠标左键按住我们刚刚添加的组件,并上下左右拖拽这个组件。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '继续按住鼠标左键!上下左右拖动组件,尝试与另一个组件交换位置。',
|
|
|
|
|
+ showButtons: ['close', 'previous']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('drop', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 100)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('drop', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .form-view .form-cont .form-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '这就是对报名表里各表单项排序的方法!',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box > .comp-edit > .body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '我们先只放两个表单项,稍后您可以回来完善。现在补充一下表单名称和介绍。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .comp-edit .button > .el-button',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '编辑报名表',
|
|
|
|
|
+ description: '点击这里保存表单。',
|
|
|
|
|
+ showButtons: ['close', 'previous']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-breadcrumb .el-breadcrumb .el-breadcrumb__item:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '绑定报名表',
|
|
|
|
|
+ description: '我们可以通过左侧菜单,或者顶部导航快速回到表单管理页。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .el-table',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '绑定报名表',
|
|
|
|
|
+ description: '这里第一项就是我们刚刚创建的报名表了,这里会显示我们创建的所有报名表。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .el-table .el-table__fixed-right .el-table__fixed-body-wrapper .el-table__row:nth-child(1) td:last-child .cell .button:first-child',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '绑定报名表',
|
|
|
|
|
+ description: '现在需要将刚刚创建的表单与之前创建的展会进行绑定,我们点击绑定按钮。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.el-dialog__wrapper .el-dialog',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '绑定报名表',
|
|
|
|
|
+ description: '我们先选择之前创建的那个展会,然后点击确认按钮,就能完成展会的绑定了!',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element.querySelector('.el-dialog__footer .el-button:last-child')
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu .el-submenu:nth-child(3)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '分享展会',
|
|
|
|
|
+ description: '点击展开展会管理菜单。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu > .el-submenu:nth-child(3) .el-menu > .el-menu-item:nth-child(1)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '分享展会',
|
|
|
|
|
+ description: '点击前往展会管理页面。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 2000)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .el-table .el-table__fixed-right .el-table__fixed-body-wrapper .el-table__row:nth-child(1) td:last-child .cell > .button:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '分享展会',
|
|
|
|
|
+ description: '点击分享按钮,进入分享模块。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.share-center .share-view .button-list .el-button:last-child',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '分享展会',
|
|
|
|
|
+ description: '您展会的报名链接已生成,点击它复制链接,然后分发给您的观众进行报名把。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '完成了!',
|
|
|
|
|
+ description: '您的展会已经创建完成,现在您可以回到‘展会管理’,‘表单管理’继续完善您的展会信息,或者探索多果表单的其它功能。通过链接报名的观众可以前往‘观众管理’查看与管理。',
|
|
|
|
|
+ showButtons: ['close', 'next'],
|
|
|
|
|
+ onNextClick: () => {
|
|
|
|
|
+ const jsConfetti = new JSConfetti()
|
|
|
|
|
+ jsConfetti.addConfetti()
|
|
|
|
|
+ this.driverObj.destroy()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
|
|
+ inviteGuide: {
|
|
|
|
|
+ showProgress: true,
|
|
|
|
|
+ allowClose: false,
|
|
|
|
|
+ nextBtnText: '下一步',
|
|
|
|
|
+ prevBtnText: '上一步',
|
|
|
|
|
+ doneBtnText: '完成',
|
|
|
|
|
+ steps: [
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu .el-submenu:nth-child(5)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '点击展开邀请函管理菜单。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu > .el-submenu:nth-child(5) .el-menu > .el-menu-item:nth-child(2)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '点击前往邀请函管理页面。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .head .el-button',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '点击添加模板来新建一个邀请函。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.template-dialog',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '选择一个模板来创建一个邀请函。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element.querySelector('.template-item')
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '当我们展会的需要邀请函的观众数量过多时,逐一填写观众信息并发送邀请函费时费力,使用邀请函模板系统可以自动填写观众信息快速发送邀请函。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .variable',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '实现自动填写观众信息的核心是变量系统,多果表单可以帮您将观众报名表上的信息自动填写进对应观众的邀请函里。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .variable .tool-box',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '不同展会的报名表内容可能不尽相同,所以我们现在制作的邀请函模板只能应用于对应的展会。点击此处可以切换展会。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .variable .variable-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '此处是您所选定的展会可以使用的变量,包括展会信息与观众填写的报名表信息。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .variable .variable-body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '我们使用鼠标左键按住任意一个您想添加的变量并向左拖动,期间不要放开鼠标左键。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('dragstart', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .viewer .tox-edit-area',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '继续按住鼠标左键不要松开!将光标移动至您想插入变量的文本处,然后松开鼠标。如果不小心松开了也没关系,点击上一步按钮然后重新拖拽。',
|
|
|
|
|
+ showButtons: ['close', 'previous', 'next']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('drop', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('drop', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body .viewer .tox-edit-area',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '您已经成功添加了一个变量,变量将会使用蓝色虚线标注出来。邀请函发送后对方无法看到这些蓝色虚线,而内部的文字将会被转换。',
|
|
|
|
|
+ showButtons: ['previous', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .head > span > .el-button--primary',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '我们现在保存这个邀请函模板',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.invitation-popover',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '填写模板的名称以及描述,然后点击保存并退出',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element.querySelector('.el-button--default')
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 600)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '创建邀请函',
|
|
|
|
|
+ description: '这里将会展示所有您创建的邀请函模板,点击下一步前往发送邀请函。',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.layout-menu .el-menu > .el-submenu:nth-child(5) .el-menu > .el-menu-item:nth-child(3)',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '发送邀请函',
|
|
|
|
|
+ description: '点击前往发送邀请函页面。',
|
|
|
|
|
+ showButtons: ['close']
|
|
|
|
|
+ },
|
|
|
|
|
+ onHighlighted: (element, step, options) => {
|
|
|
|
|
+ const targetElement = element
|
|
|
|
|
+ const nextStepHandler = () => {
|
|
|
|
|
+ targetElement.removeEventListener('click', nextStepHandler)
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.moveNext()
|
|
|
|
|
+ }, 1200)
|
|
|
|
|
+ }
|
|
|
|
|
+ targetElement.addEventListener('click', nextStepHandler)
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ element: '.main-box .body',
|
|
|
|
|
+ popover: {
|
|
|
|
|
+ title: '发送邀请函',
|
|
|
|
|
+ description: '当有观众申请邀请函时,您可以在这里审核申请与发送邀请函',
|
|
|
|
|
+ showButtons: ['close', 'next']
|
|
|
|
|
+ },
|
|
|
|
|
+ onNextClick: () => {
|
|
|
|
|
+ const jsConfetti = new JSConfetti()
|
|
|
|
|
+ jsConfetti.addConfetti()
|
|
|
|
|
+ this.driverObj.destroy()
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+ this.listenEvent()
|
|
|
|
|
+ },
|
|
|
methods: {
|
|
methods: {
|
|
|
-
|
|
|
|
|
|
|
+ listenEvent() {
|
|
|
|
|
+ this.$bus.$on('guide', (name) => {
|
|
|
|
|
+ this.driverObj = driver(this[name])
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.driverObj.drive()
|
|
|
|
|
+ },600)
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
</script>
|
|
</script>
|
|
|
<template>
|
|
<template>
|
|
|
-
|
|
|
|
|
|
|
+ <div class="guide" />
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<style scoped>
|
|
<style scoped>
|
|
|
-
|
|
|
|
|
|
|
+.guide {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|