|
@@ -0,0 +1,161 @@
|
|
|
+/**
|
|
|
+ * intro.js新手指引工具
|
|
|
+ * introOption.steps = steps[title]
|
|
|
+ * this.$intro().setOptions(introOption).start()
|
|
|
+ */
|
|
|
+// const introOption= { // 参数对象
|
|
|
+// prevLabel: '上一步',
|
|
|
+// nextLabel: '下一步',
|
|
|
+// skipLabel: '跳过',
|
|
|
+// doneLabel: '完成',
|
|
|
+// tooltipClass: 'intro-tooltip', /* 引导说明文本框的样式 */
|
|
|
+// // highlightClass: 'intro-highlight', /* 说明高亮区域的样式 */
|
|
|
+// exitOnEsc: true, /* 是否使用键盘Esc退出 */
|
|
|
+// exitOnOverlayClick: false, /* 是否允许点击空白处退出 */
|
|
|
+// keyboardNavigation: true, /* 是否允许键盘来操作 */
|
|
|
+// showBullets: true, /* 是否使用点显示进度 */
|
|
|
+// showProgress: false, /* 是否显示进度条 */
|
|
|
+// showStepNumbers: false,//是否显示说明的数据步骤
|
|
|
+// scrollToElement: true, /* 是否滑动到高亮的区域 */
|
|
|
+// overlayOpacity: 0.75, // 遮罩层的透明度 0-1之间
|
|
|
+// positionPrecedence: ['bottom', 'top', 'right', 'left'], /* 当位置选择自动的时候,位置排列的优先级 */
|
|
|
+// disableInteraction: false, /* 是否禁止与元素的相互关联 */
|
|
|
+// hidePrev: true, /* 是否在第一步隐藏上一步 */
|
|
|
+// hideNext: true, /* 是否在最后一步隐藏下一步 */
|
|
|
+// steps: [], /* steps步骤,可以写个工具类保存起来 */
|
|
|
+// helperElementPadding: 2,//提示边框的 padding
|
|
|
+// disableInteraction: false,//是否禁止与元素的相互关联
|
|
|
+// }
|
|
|
+// const steps = {
|
|
|
+// '首页':[
|
|
|
+// { title: '系统使用指导', element: '#step1', intro: `鼠标悬浮在各个功能模块上,可快速查找系统对应操作SOP以及运维人员。`},
|
|
|
+// { title: '个人信息', element: '#step2', intro: `点击个人头像/下拉图标,选择个人信息,初始密码为******,建议修改为个人账号密码。`, },
|
|
|
+// { title: '重新引导', element: '#step3', intro: '点击此处可重新查看引导流程。', },
|
|
|
+// ],
|
|
|
+// }
|
|
|
+
|
|
|
+const steps = {
|
|
|
+ '首页':[
|
|
|
+ {
|
|
|
+ element: "#step1", // 需要引导展示的iD
|
|
|
+ popover: {
|
|
|
+ title: "系统使用指导", //展示模块标题
|
|
|
+ description: "鼠标悬浮在各个功能模块上,可快速查找系统对应操作SOP以及运维人员。", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ element: "#step2", // 需要引导展示的iD
|
|
|
+ popover: {
|
|
|
+ title: "个人信息", //展示模块标题
|
|
|
+ description: "点击个人头像/下拉图标,选择个人信息,初始密码为******,建议修改为个人账号密码。", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ element: "#step3", // 需要引导展示的iD
|
|
|
+ popover: {
|
|
|
+ title: "重新引导", //展示模块标题
|
|
|
+ description: "点击此处可重新查看引导流程。", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ '企业专利数据库':[
|
|
|
+ {
|
|
|
+ element: "#step1", // 需要引导展示的iD
|
|
|
+ popover: {
|
|
|
+ title: "搜索", //展示模块标题
|
|
|
+ description: "可以搜索想要搜索的信息", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ element: "#step2", // 需要引导展示的iD
|
|
|
+ sign:'/workspace/folder/merge/applicationMerge/delete',
|
|
|
+ popover: {
|
|
|
+ title: "新增", //展示模块标题
|
|
|
+ description: "可以新增企业专利数据库", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ element: "#step3", // 需要引导展示的iD
|
|
|
+ sign:'s',
|
|
|
+ popover: {
|
|
|
+ title: "新增", //展示模块标题
|
|
|
+ description: "可以新增企业专利数据库", // 展示模块类容
|
|
|
+ position: "right" // 模块的位置 可以定位 看自己了
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ]
|
|
|
+}
|
|
|
+/**
|
|
|
+ * driver.js v1.3.0 新手指引工具
|
|
|
+ */
|
|
|
+import {driver} from 'driver.js'
|
|
|
+import 'driver.js/dist/driver.css'
|
|
|
+//配置
|
|
|
+const config ={
|
|
|
+ overlayOpacity: 0.75,
|
|
|
+ popoverClass: "scoped-class",
|
|
|
+ stagePadding: 10,
|
|
|
+ // showButtons: [ 'next','prev', 'close'], //1 pass an array of buttons to show
|
|
|
+ allowKeyboardControl:true,
|
|
|
+ allowClose: true, // 禁止点击外部关闭
|
|
|
+ showProgress:true,
|
|
|
+ progressText:'{{current}}/{{total}}',
|
|
|
+ doneBtnText: '完成', // 结束按钮的文字
|
|
|
+ animate: true, // 动画
|
|
|
+ stageBackground: '#ffffff', // 突出显示元素的背景颜色
|
|
|
+ nextBtnText: '下一步', // 下一步按钮的文字
|
|
|
+ prevBtnText: '上一步', // 上一步按钮的文字
|
|
|
+ closeBtnText: '关闭', // 关闭按钮的文字
|
|
|
+ // overlayColor:'#f40',
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+export const guide = {
|
|
|
+ methods: {
|
|
|
+ //打开新手指引
|
|
|
+ openGuide(title){
|
|
|
+ var firstRoute = localStorage.firstRoute
|
|
|
+ if(firstRoute){
|
|
|
+ var arr = JSON.parse(firstRoute)
|
|
|
+ var index = arr.indexOf(title)
|
|
|
+ if(index != -1){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ var arr = []
|
|
|
+ }
|
|
|
+ this.startGuide(title,arr)
|
|
|
+
|
|
|
+ },
|
|
|
+ //开始新手指引
|
|
|
+ startGuide(title,arr){
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ var step = steps[title].filter(item=>{
|
|
|
+ return !item.sign || this.$permission(item.sign)
|
|
|
+ })
|
|
|
+ const drivers = driver({
|
|
|
+ ...config,
|
|
|
+ steps:step,
|
|
|
+ // onCloseClick:() => {
|
|
|
+ // arr.push(title)
|
|
|
+ // localStorage.firstRoute = JSON.stringify(arr)
|
|
|
+ // drivers.destroy();
|
|
|
+ // },
|
|
|
+ onDestroyed:()=>{
|
|
|
+ if(arr){
|
|
|
+ arr.push(title)
|
|
|
+ localStorage.firstRoute = JSON.stringify(arr)
|
|
|
+ }
|
|
|
+ drivers.destroy();
|
|
|
+ }
|
|
|
+ })
|
|
|
+ drivers.drive()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|