mirror of
				https://github.com/pure-admin/vue-pure-admin.git
				synced 2025-11-03 13:44:47 +08:00 
			
		
		
		
	chore: use intro.js replace driver.js
				
					
				
			This commit is contained in:
		
							parent
							
								
									2235d9d7a8
								
							
						
					
					
						commit
						867ef87a34
					
				@ -45,11 +45,11 @@
 | 
			
		||||
    "china-area-data": "^5.0.1",
 | 
			
		||||
    "cropperjs": "^1.5.12",
 | 
			
		||||
    "dayjs": "^1.11.5",
 | 
			
		||||
    "driver.js": "^0.9.8",
 | 
			
		||||
    "echarts": "^5.4.0",
 | 
			
		||||
    "el-table-infinite-scroll": "^3.0.1",
 | 
			
		||||
    "element-plus": "^2.2.21",
 | 
			
		||||
    "element-plus": "^2.2.22",
 | 
			
		||||
    "element-resize-detector": "^1.2.4",
 | 
			
		||||
    "intro.js": "^6.0.0",
 | 
			
		||||
    "js-cookie": "^3.0.1",
 | 
			
		||||
    "jsbarcode": "^3.11.5",
 | 
			
		||||
    "lodash": "^4.17.21",
 | 
			
		||||
@ -98,6 +98,7 @@
 | 
			
		||||
    "@intlify/vite-plugin-vue-i18n": "^6.0.3",
 | 
			
		||||
    "@pureadmin/theme": "^2.4.0",
 | 
			
		||||
    "@types/element-resize-detector": "1.1.3",
 | 
			
		||||
    "@types/intro.js": "^5.1.0",
 | 
			
		||||
    "@types/js-cookie": "^3.0.1",
 | 
			
		||||
    "@types/lodash": "^4.14.180",
 | 
			
		||||
    "@types/lodash-es": "^4.17.6",
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										49
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										49
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@ -24,6 +24,7 @@ specifiers:
 | 
			
		||||
  "@pureadmin/theme": ^2.4.0
 | 
			
		||||
  "@pureadmin/utils": ^1.6.5
 | 
			
		||||
  "@types/element-resize-detector": 1.1.3
 | 
			
		||||
  "@types/intro.js": ^5.1.0
 | 
			
		||||
  "@types/js-cookie": ^3.0.1
 | 
			
		||||
  "@types/lodash": ^4.14.180
 | 
			
		||||
  "@types/lodash-es": ^4.17.6
 | 
			
		||||
@ -52,16 +53,16 @@ specifiers:
 | 
			
		||||
  cropperjs: ^1.5.12
 | 
			
		||||
  cssnano: ^5.1.14
 | 
			
		||||
  dayjs: ^1.11.5
 | 
			
		||||
  driver.js: ^0.9.8
 | 
			
		||||
  echarts: ^5.4.0
 | 
			
		||||
  el-table-infinite-scroll: ^3.0.1
 | 
			
		||||
  element-plus: ^2.2.21
 | 
			
		||||
  element-plus: ^2.2.22
 | 
			
		||||
  element-resize-detector: ^1.2.4
 | 
			
		||||
  eslint: ^8.8.0
 | 
			
		||||
  eslint-plugin-prettier: ^4.0.0
 | 
			
		||||
  eslint-plugin-vue: ^9.7.0
 | 
			
		||||
  font-awesome: ^4.7.0
 | 
			
		||||
  husky: ^7.0.4
 | 
			
		||||
  intro.js: ^6.0.0
 | 
			
		||||
  js-cookie: ^3.0.1
 | 
			
		||||
  jsbarcode: ^3.11.5
 | 
			
		||||
  lint-staged: 11.1.2
 | 
			
		||||
@ -130,8 +131,8 @@ dependencies:
 | 
			
		||||
  "@logicflow/core": 1.1.31
 | 
			
		||||
  "@logicflow/extension": 1.1.31
 | 
			
		||||
  "@pureadmin/components": 1.1.0_vue@3.2.45
 | 
			
		||||
  "@pureadmin/descriptions": 1.1.1_element-plus@2.2.21
 | 
			
		||||
  "@pureadmin/table": 1.2.0_element-plus@2.2.21
 | 
			
		||||
  "@pureadmin/descriptions": 1.1.1_element-plus@2.2.22
 | 
			
		||||
  "@pureadmin/table": 1.2.0_element-plus@2.2.22
 | 
			
		||||
  "@pureadmin/utils": 1.6.6_aotapuqn7htzdjltsyimavekky
 | 
			
		||||
  "@vueuse/core": 9.5.0_vue@3.2.45
 | 
			
		||||
  "@vueuse/motion": 2.0.0-beta.12_vue@3.2.45
 | 
			
		||||
@ -142,11 +143,11 @@ dependencies:
 | 
			
		||||
  china-area-data: 5.0.1
 | 
			
		||||
  cropperjs: 1.5.12
 | 
			
		||||
  dayjs: 1.11.6
 | 
			
		||||
  driver.js: 0.9.8
 | 
			
		||||
  echarts: 5.4.0
 | 
			
		||||
  el-table-infinite-scroll: 3.0.1
 | 
			
		||||
  element-plus: 2.2.21_vue@3.2.45
 | 
			
		||||
  element-plus: 2.2.22_vue@3.2.45
 | 
			
		||||
  element-resize-detector: 1.2.4
 | 
			
		||||
  intro.js: 6.0.0
 | 
			
		||||
  js-cookie: 3.0.1
 | 
			
		||||
  jsbarcode: 3.11.5
 | 
			
		||||
  lodash: 4.17.21
 | 
			
		||||
@ -195,6 +196,7 @@ devDependencies:
 | 
			
		||||
  "@intlify/vite-plugin-vue-i18n": 6.0.3_vite@3.1.8+vue-i18n@9.2.2
 | 
			
		||||
  "@pureadmin/theme": 2.4.0
 | 
			
		||||
  "@types/element-resize-detector": 1.1.3
 | 
			
		||||
  "@types/intro.js": 5.1.0
 | 
			
		||||
  "@types/js-cookie": 3.0.2
 | 
			
		||||
  "@types/lodash": 4.14.189
 | 
			
		||||
  "@types/lodash-es": 4.17.6
 | 
			
		||||
@ -1364,7 +1366,7 @@ packages:
 | 
			
		||||
      vue: 3.2.45
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@pureadmin/descriptions/1.1.1_element-plus@2.2.21:
 | 
			
		||||
  /@pureadmin/descriptions/1.1.1_element-plus@2.2.22:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-4BHLKomLU/LxGs5EUA+h+aKNrJEkhrU6+QE8VoWfJZ8VTU6ddvFLT/Pi4WuO5CWNXM9ZjqvHLFFVwEPlKntqtg==
 | 
			
		||||
@ -1373,11 +1375,11 @@ packages:
 | 
			
		||||
      element-plus: ^2.0.0
 | 
			
		||||
    dependencies:
 | 
			
		||||
      "@element-plus/icons-vue": 2.0.10_vue@3.2.45
 | 
			
		||||
      element-plus: 2.2.21_vue@3.2.45
 | 
			
		||||
      element-plus: 2.2.22_vue@3.2.45
 | 
			
		||||
      vue: 3.2.45
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@pureadmin/table/1.2.0_element-plus@2.2.21:
 | 
			
		||||
  /@pureadmin/table/1.2.0_element-plus@2.2.22:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-mJBpMj0YkaqTM5TDz+ek/f8h74qRLhDc/gLJhBq0wpyfCgG++Jd/9i+QUj8gedA5oN8IL6LOSFbcvlGDYxHgkw==
 | 
			
		||||
@ -1385,7 +1387,7 @@ packages:
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      element-plus: ^2.0.0
 | 
			
		||||
    dependencies:
 | 
			
		||||
      element-plus: 2.2.21_vue@3.2.45
 | 
			
		||||
      element-plus: 2.2.22_vue@3.2.45
 | 
			
		||||
      vue: 3.2.45
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
@ -1520,6 +1522,13 @@ packages:
 | 
			
		||||
      }
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@types/intro.js/5.1.0:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-XHkD6t7f3bn8B2//kOlznRzmk15KvsRkFpY6i8em/eDphblQ8QHbCiW+6OPjX7CxI0aVNVJK6Yamb2h2KMmFdA==
 | 
			
		||||
      }
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@types/js-cookie/3.0.2:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
@ -3952,13 +3961,6 @@ packages:
 | 
			
		||||
      unidragger: 2.4.0
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /driver.js/0.9.8:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-bczjyKdX6XmFyCDkwtRmlaORDwfBk1xXmRO0CAe5VwNQTM98aWaG2LAIiIdTe53iV/B7W5lXlIy2xYtf0JRb7Q==
 | 
			
		||||
      }
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /echarts/5.4.0:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
@ -3983,7 +3985,7 @@ packages:
 | 
			
		||||
      }
 | 
			
		||||
    dependencies:
 | 
			
		||||
      core-js: 3.26.1
 | 
			
		||||
      element-plus: 2.2.21_vue@3.2.45
 | 
			
		||||
      element-plus: 2.2.22_vue@3.2.45
 | 
			
		||||
      vue: 3.2.45
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
      - "@vue/composition-api"
 | 
			
		||||
@ -3996,10 +3998,10 @@ packages:
 | 
			
		||||
      }
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /element-plus/2.2.21_vue@3.2.45:
 | 
			
		||||
  /element-plus/2.2.22_vue@3.2.45:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-wZUePoXZ1zuCkzENK/8mn+mekuLJ9OoGYiudjUujzCf+T8HfOQl+TKQStwOkGBNk93fK8e9YdFIty4jH4AX6dg==
 | 
			
		||||
        integrity: sha512-gg2g2WOMNpWf0wGesymUvTV0VZDF/4khQKroSNeCV/vWJ/cqssPYdtqfGxTiFRt/f+JpyFkV7O1mo0yzMCzrBg==
 | 
			
		||||
      }
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      vue: ^3.2.0
 | 
			
		||||
@ -5463,6 +5465,13 @@ packages:
 | 
			
		||||
      }
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /intro.js/6.0.0:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
        integrity: sha512-ZUiR6BoLSvPSlLG0boewnWVgji1fE1gBvP/pyw5pgCKXEDQz1mMeUxarggClPNs71UTq364LwSk9zxz17A9gaQ==
 | 
			
		||||
      }
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /is-arrayish/0.2.1:
 | 
			
		||||
    resolution:
 | 
			
		||||
      {
 | 
			
		||||
 | 
			
		||||
@ -170,6 +170,12 @@ html.dark {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* intro.js */
 | 
			
		||||
  .introjs-tooltip-title,
 | 
			
		||||
  .introjs-tooltiptext {
 | 
			
		||||
    color: var(--el-color-primary);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* element-plus */
 | 
			
		||||
  .el-table__cell {
 | 
			
		||||
    background: var(--el-bg-color);
 | 
			
		||||
 | 
			
		||||
@ -1,62 +1,42 @@
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
import Driver from "driver.js";
 | 
			
		||||
import "driver.js/dist/driver.min.css";
 | 
			
		||||
import intro from "intro.js";
 | 
			
		||||
import "intro.js/minified/introjs.min.css";
 | 
			
		||||
 | 
			
		||||
defineOptions({
 | 
			
		||||
  name: "Guide"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const steps = [
 | 
			
		||||
  {
 | 
			
		||||
    element: "#header-notice",
 | 
			
		||||
    popover: {
 | 
			
		||||
      title: "消息通知",
 | 
			
		||||
      description: "你可以在这里查看管理员发送的消息",
 | 
			
		||||
      position: "left"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    element: "#header-translation",
 | 
			
		||||
    popover: {
 | 
			
		||||
      title: "国际化",
 | 
			
		||||
      description: "你可以在这里进行语言切换",
 | 
			
		||||
      position: "left"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    element: ".set-icon",
 | 
			
		||||
    popover: {
 | 
			
		||||
      title: "项目配置",
 | 
			
		||||
      description: "你可以在这里查看项目配置",
 | 
			
		||||
      position: "left"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    element: ".tags-view",
 | 
			
		||||
    popover: {
 | 
			
		||||
      title: "多标签页",
 | 
			
		||||
      description: "这里是你访问过的页面的历史",
 | 
			
		||||
      position: "buttom"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
const driver = new Driver({
 | 
			
		||||
  className: "scoped-class",
 | 
			
		||||
  animate: true,
 | 
			
		||||
  opacity: 0.75,
 | 
			
		||||
  padding: 0,
 | 
			
		||||
  allowClose: true,
 | 
			
		||||
  overlayClickNext: false,
 | 
			
		||||
  doneBtnText: "完成",
 | 
			
		||||
  closeBtnText: "关闭",
 | 
			
		||||
  nextBtnText: "下一步",
 | 
			
		||||
  prevBtnText: "上一步"
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const guide = () => {
 | 
			
		||||
  driver.defineSteps(steps);
 | 
			
		||||
  driver.start();
 | 
			
		||||
  intro()
 | 
			
		||||
    .setOptions({
 | 
			
		||||
      steps: [
 | 
			
		||||
        {
 | 
			
		||||
          element: document.querySelector("#header-notice"),
 | 
			
		||||
          title: "消息通知",
 | 
			
		||||
          intro: "您可以在这里查看管理员发送的消息",
 | 
			
		||||
          position: "left"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          element: document.querySelector("#header-translation"),
 | 
			
		||||
          title: "国际化",
 | 
			
		||||
          intro: "您可以在这里进行语言切换",
 | 
			
		||||
          position: "left"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          element: document.querySelector(".set-icon"),
 | 
			
		||||
          title: "项目配置",
 | 
			
		||||
          intro: "您可以在这里查看项目配置",
 | 
			
		||||
          position: "left"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          element: document.querySelector(".tags-view"),
 | 
			
		||||
          title: "多标签页",
 | 
			
		||||
          intro: "这里是您访问过的页面的历史",
 | 
			
		||||
          position: "bottom"
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    })
 | 
			
		||||
    .start();
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
@ -69,20 +49,8 @@ const guide = () => {
 | 
			
		||||
        </span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </template>
 | 
			
		||||
    <el-button
 | 
			
		||||
      type="primary"
 | 
			
		||||
      style="margin-top: 10px"
 | 
			
		||||
      @click.prevent.stop="guide"
 | 
			
		||||
    >
 | 
			
		||||
    <el-button type="primary" class="mt-[10px]" @click="guide">
 | 
			
		||||
      打开引导页
 | 
			
		||||
    </el-button>
 | 
			
		||||
  </el-card>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<style>
 | 
			
		||||
div#driver-highlighted-element-stage,
 | 
			
		||||
div#driver-page-overlay {
 | 
			
		||||
  background: transparent !important;
 | 
			
		||||
  outline: 5000px solid rgba(0, 0, 0, 0.75);
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user