• driver.js 扩展下次“不再提示”功能


    文档地址:https://github.com/kamranahmedse/driver.js
    官方demo:https://kamranahmed.info/driver.js/

    1. /**
    2. * @Title: 页面引导 ……
    3. * @Author: JackieZheng
    4. * @Date: 2023-08-16 10:43:31
    5. * @LastEditTime: 2023-08-16 10:55:08
    6. * @LastEditors:
    7. * @Description:
    8. * @FilePath:utils\\driver.js
    9. */
    10. import { driver } from 'driver.js'
    11. import 'driver.js/dist/driver.css'
    12. import { ElMessage, ElMessageBox } from 'element-plus'
    13. import store from '../store'
    14. const driverObj = driver({
    15. popoverClass: 'driverjs-theme',
    16. showProgress: true,
    17. opacity: 0.1,
    18. animate: true,
    19. allowClose: true, // 是否允许点击遮罩时关闭
    20. doneBtnText: '我知道了',
    21. closeBtnText: '跳过', // 关闭按钮文案
    22. nextBtnText: '下一步', // 下一步的按钮文案
    23. prevBtnText: '上一步', // 上一步的按钮文案
    24. keyboardControl: true, // 允许通过键盘控制(退出关闭,箭头键移动)
    25. progressText: '{{current}} / {{total}}',
    26. guidName:'',
    27. /**
    28. *@description: 准备开始退出事件
    29. *@author: JackieZheng
    30. *@date: 2023-08-16 12:47:38
    31. */
    32. onDestroyStarted: () => {
    33. // doSomething
    34. driverObj.destroy() // 自理完后,必须要重新执行退出
    35. },
    36. /**
    37. *@description: 点击关按钮或外部关闭
    38. *@author: JackieZheng
    39. *@date: 2023-08-16 12:47:14
    40. */
    41. onCloseClick: () => {
    42. // doSomething
    43. driverObj.destroy() // 处理完后,必须要重新执行退出
    44. },
    45. /**
    46. *@description: 彻底退出事件
    47. *@author: JackieZheng
    48. *@date: 2023-08-16 12:47:38
    49. */
    50. onDestroyed: () => {
    51. // doSomething
    52. driverObj.destroy() // 处理完后,必须要重新执行退出
    53. },
    54. /**
    55. *@description: 设置某个页面显示引导
    56. *@author: JackieZheng
    57. *@para: guidName 当前页面 参数
    58. *@date: 2023-08-16 14:05:31
    59. */
    60. ShowGuidesSet: (guidName) => {
    61. const guides = store.state.driverGuides
    62. guides[guidName] = true
    63. store.commit('CacheDriverGuides', guides)
    64. },
    65. /**
    66. *@description: 不再展示某个页面的引导
    67. *@author: JackieZheng
    68. *@date: 2023-08-16 14:05:06
    69. */
    70. HideNextTime: (guidName) => {
    71. const guides = store.state.driverGuides
    72. guides[guidName] = false
    73. store.commit('CacheDriverGuides', guides)
    74. },
    75. /**
    76. *@description: 最后一步 改下次是否提示
    77. *@author: JackieZheng
    78. *@date: 2023-10-04 13:20:07
    79. */
    80. onHighlighted : () => {
    81. if (!driverObj.hasNextStep()) {
    82. let preBtn = document.querySelector('.driver-popover-prev-btn')
    83. let btn = document.createElement('button')
    84. btn.textContent = '不再提示'
    85. btn.style.cssText =
    86. 'background-color: #ff9800;border: 2px solid #ff9800;'
    87. btn.addEventListener('click', ()=> {
    88. driverObj.getConfig().HideNextTime(driverObj.getConfig().guidName)
    89. driverObj.destroy()
    90. })
    91. let btnBox = preBtn.parentNode
    92. btnBox.insertBefore(btn, preBtn)
    93. btnBox.removeChild(preBtn)
    94. }
    95. },
    96. /**
    97. *@description: 检测是否 不再提示
    98. *@author: JackieZheng
    99. *@date: 2023-10-04 13:32:50
    100. */
    101. enableShow:()=>{
    102. return store.state.driverGuides[driverObj.getConfig().guidName] !== false
    103. }
    104. })
    105. export default driverObj

    使用

  • 相关阅读:
    有一个List<Date> ,现在有一个Date 时间,找到这个list 里面和时间最近的一个,进行返回
    SpringBoot3.x中spring.factories功能被移除的解决方案
    dsu on tree模板
    全业务链管理平台Odoo
    java运行以jar包的形式运行和tomcat运行的区别和联系?
    隧道精确定位系统硬件设备部署方案
    福建江夏学院蔡慧梅主任一行莅临拓世科技集团,共探AI+时代教育新未来
    【Pandas总结】第三节 Pandas 的显示设置(总结所有常用显示设置)
    竞赛选题 深度学习人体跌倒检测 -yolo 机器视觉 opencv python
    如何用 7 分钟击破 Serverless 落地难点?
  • 原文地址:https://blog.csdn.net/admans/article/details/133553707