2023-12-08 16:27:35 +08:00
|
|
|
|
import { nextTick} from "vue";
|
2023-11-22 09:37:30 +08:00
|
|
|
|
import { driver } from "driver.js";
|
2023-11-30 10:54:22 +08:00
|
|
|
|
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
2023-11-22 09:37:30 +08:00
|
|
|
|
import "driver.js/dist/driver.css";
|
2024-01-08 13:59:13 +08:00
|
|
|
|
import store from "../store/index";
|
2023-12-13 16:09:17 +08:00
|
|
|
|
import { Https } from "@/tool/https";
|
2023-11-22 09:37:30 +08:00
|
|
|
|
//版本一
|
2024-01-10 15:25:43 +08:00
|
|
|
|
import ENGLISH from '../lang/en'
|
|
|
|
|
|
import CHINESE_SIMPLIFIED from '../lang/cn'
|
|
|
|
|
|
import KOREAN from '../lang/kr'
|
|
|
|
|
|
import JAPANESE from '../lang/ja'
|
|
|
|
|
|
import RUSSIAN from '../lang/ru'
|
|
|
|
|
|
import FRENCH from '../lang/fr'
|
|
|
|
|
|
import THAI from '../lang/th'
|
|
|
|
|
|
import VIETNAMESE from '../lang/vn'
|
|
|
|
|
|
import ITALIAN from '../lang/it'
|
|
|
|
|
|
let longList = [
|
|
|
|
|
|
{
|
|
|
|
|
|
value:ENGLISH,
|
|
|
|
|
|
name:'ENGLISH',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:CHINESE_SIMPLIFIED,
|
|
|
|
|
|
name:'CHINESE_SIMPLIFIED',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:KOREAN,
|
|
|
|
|
|
name:'KOREAN',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:JAPANESE,
|
|
|
|
|
|
name:'JAPANESE',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:RUSSIAN,
|
|
|
|
|
|
name:'RUSSIAN',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:FRENCH,
|
|
|
|
|
|
name:'FRENCH',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:THAI,
|
|
|
|
|
|
name:'THAI',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:VIETNAMESE,
|
|
|
|
|
|
name:'VIETNAMESE',
|
|
|
|
|
|
},{
|
|
|
|
|
|
value:ITALIAN,
|
|
|
|
|
|
name:'ITALIAN',
|
|
|
|
|
|
},
|
|
|
|
|
|
]
|
|
|
|
|
|
let i18n = ENGLISH.guide
|
2023-11-22 15:41:46 +08:00
|
|
|
|
let driverIndex__ = 0
|
2024-01-08 13:59:13 +08:00
|
|
|
|
// let store = store
|
2023-11-23 15:31:40 +08:00
|
|
|
|
let element
|
2024-01-08 13:59:13 +08:00
|
|
|
|
let stepsLenth = 99
|
2023-11-24 16:18:44 +08:00
|
|
|
|
let data = {
|
|
|
|
|
|
index:driverIndex__,
|
|
|
|
|
|
driver:true,
|
2024-01-08 13:59:13 +08:00
|
|
|
|
stepsLenth:stepsLenth
|
2023-11-24 16:18:44 +08:00
|
|
|
|
}
|
2024-01-10 15:25:43 +08:00
|
|
|
|
let driverObj__ = createDriver()
|
|
|
|
|
|
function createDriver(){
|
|
|
|
|
|
return driver({
|
|
|
|
|
|
steps: [
|
|
|
|
|
|
{ element: '.Guide_1_1_1', popover: { title: 'Title', description: 'Description' } },
|
|
|
|
|
|
{ element: '.Guide_1_27', popover: { title: '', description: i18n.guide1 } },
|
|
|
|
|
|
{ element: '.Guide_1_28', popover: { title: '', description: i18n.guide2, side: "right", } },
|
|
|
|
|
|
{ element: '.Guide_1_28', popover: { title: '', description: i18n.guide3, side: "right",align: 'end' } },
|
|
|
|
|
|
{ element: '.Guide_1_29', popover: { title: '', description: i18n.guide4 } },
|
|
|
|
|
|
{ element: '.Guide_1_1', popover: { title: '', description: i18n.guide5 } },
|
|
|
|
|
|
{ element: '.Guide_1_1_2', popover: { title: '', description: i18n.guide6, side: "left",align: 'start' } },
|
|
|
|
|
|
{ element: '.Guide_1_1_2', popover: { title: '', description: i18n.guide7 } },
|
|
|
|
|
|
{ element: '.Guide_1_4', popover: { title: '', description: i18n.guide8 } },
|
|
|
|
|
|
{ element: '.Guide_1_5', popover: { title: '', description: i18n.guide9 } },
|
|
|
|
|
|
{ element: '.Guide_1_6', popover: { title: '', description: i18n.guide10 } },
|
|
|
|
|
|
|
|
|
|
|
|
{ element: '.Guide_1_7', popover: { title: '', description: i18n.guide11 } },
|
|
|
|
|
|
{ element: '.Guide_1_8', popover: { title: '', description: i18n.guide12 } },
|
|
|
|
|
|
//以上moodboard
|
|
|
|
|
|
{ element: '.Guide_1_2_1', popover: { title: '', description: i18n.guide13 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_2', popover: { title: '', description: i18n.guide14 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_3', popover: { title: '', description: i18n.guide15 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_4', popover: { title: '', description: i18n.guide16 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_5', popover: { title: '', description: i18n.guide17 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_6', popover: { title: '', description: i18n.guide18 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_7', popover: { title: '', description: i18n.guide19 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_8', popover: { title: '', description: i18n.guide20 } },
|
|
|
|
|
|
{ element: '.Guide_1_2_9', popover: { title: '', description: i18n.guide21 } },
|
|
|
|
|
|
{ element: '.Guide_1_8', popover: { title: '', description: i18n.guide22 } },
|
|
|
|
|
|
{ element: '.Guide_1_10', popover: { title: '', description: i18n.guide23 } },
|
|
|
|
|
|
{ element: '.Guide_1_11', popover: { title: '', description: i18n.guide24 } },
|
|
|
|
|
|
{ element: '.Guide_1_11_1', popover: { title: '', description: i18n.guide25 } },
|
|
|
|
|
|
{ element: '.Guide_1_11_2', popover: { title: '', description: i18n.guide26 } },
|
|
|
|
|
|
{ element: '.Guide_1_8', popover: { title: '', description: i18n.guide27 } },
|
|
|
|
|
|
{ element: '.Guide_1_9', popover: { title: '', description: i18n.guide28 } },
|
|
|
|
|
|
{ element: '.Guide_1_9_1', popover: { title: '', description: i18n.guide29 } },
|
|
|
|
|
|
{ element: '.Guide_1_9_2', popover: { title: '', description: i18n.guide30 } },
|
|
|
|
|
|
{ element: '.Guide_1_13', popover: { title: '', description: i18n.guide31 } },
|
|
|
|
|
|
{ element: '.Guide_1_13_1', popover: { title: '', description: i18n.guide32 } },
|
|
|
|
|
|
{ element: '.Guide_1_13_2', popover: { title: '', description: i18n.guide33 } },
|
|
|
|
|
|
{ element: '.Guide_1_14', popover: { title: '', description: i18n.guide34 } },
|
|
|
|
|
|
//开始design
|
|
|
|
|
|
{ element: '.Guide_1_15', popover: { title: '', description: i18n.guide35 } },
|
|
|
|
|
|
{ element: '.Guide_1_16', popover: { title: '', description: i18n.guide36 } },
|
|
|
|
|
|
{ element: '.Guide_1_17', popover: { title: '', description: i18n.guide37 } },
|
|
|
|
|
|
{ element: '.Guide_1_30', popover: { title: '', description: i18n.guide38 } },
|
|
|
|
|
|
{ element: '.Guide_1_16_1', popover: { title: '', description: i18n.guide39 } },
|
|
|
|
|
|
{ element: '.Guide_1_17', popover: { title: '', description: i18n.guide40 } },
|
|
|
|
|
|
{ element: '.Guide_1_19', popover: { title: '', description: i18n.guide41 } },
|
|
|
|
|
|
{ element: '.Guide_1_20', popover: { title: '', description: i18n.guide42 } },
|
|
|
|
|
|
{ element: '.Guide_1_21', popover: { title: '', description: i18n.guide43 } },
|
|
|
|
|
|
{ element: '.Guide_1_22', popover: { title: '', description: i18n.guide44 } },
|
|
|
|
|
|
{ element: '.Guide_1_23', popover: { title: '', description: i18n.guide45 } },
|
|
|
|
|
|
{ element: '.Guide_1_25', popover: { title: '', description: i18n.guide46 ,side: "right",align: 'end' } },
|
|
|
|
|
|
{ element: '.Guide_1_25_1', popover: { title: '', description: i18n.guide47 ,side: "right",align: 'end' } },
|
|
|
|
|
|
{ element: '.Guide_1_26', popover: { title: '', description: i18n.guide48 } },
|
|
|
|
|
|
{ element: '.Guide_1_31', popover: { title: '', description: i18n.guide49 } },
|
|
|
|
|
|
{ element: '.Guide_1_99', popover: { title: 'Begin Your Design', description: i18n.guide50 } },
|
|
|
|
|
|
],
|
|
|
|
|
|
// showProgress: true,//控制总页数和当前页数是否显示
|
|
|
|
|
|
allowClose:false,
|
|
|
|
|
|
showButtons:false,
|
|
|
|
|
|
stagePadding:10,//切口到元素的距离
|
|
|
|
|
|
stageRadius:5,//切口圆弧度
|
|
|
|
|
|
allowKeyboardControl:false,//控制是否可以键盘控制下一步
|
|
|
|
|
|
disableActiveInteraction:false,//是否禁用显示元素的交互
|
|
|
|
|
|
overlayOpacity:.4,
|
|
|
|
|
|
overlay: true,
|
|
|
|
|
|
// nextBtnText: '—›',
|
|
|
|
|
|
// prevBtnText: '‹—',
|
|
|
|
|
|
doneBtnText: '✕',
|
|
|
|
|
|
onPopoverRender: (popover, options) => {//每个步骤的元素和所有信息
|
|
|
|
|
|
stepsLenth = options.config.steps.length
|
|
|
|
|
|
addClose()
|
|
|
|
|
|
popover.previousButton.style.display = 'none'
|
|
|
|
|
|
driverIndex__ = driverObj__.getState().activeIndex
|
|
|
|
|
|
data = {
|
|
|
|
|
|
index : driverIndex__,
|
|
|
|
|
|
driver : true,
|
|
|
|
|
|
stepsLenth:stepsLenth,
|
2023-12-08 16:27:35 +08:00
|
|
|
|
}
|
2024-01-10 15:25:43 +08:00
|
|
|
|
store?.commit("setGuide", data);
|
|
|
|
|
|
if(options.state.activeIndex == 0 ||
|
|
|
|
|
|
options.state.activeIndex == 39
|
|
|
|
|
|
){
|
|
|
|
|
|
popover.wrapper.style.display = 'none'
|
|
|
|
|
|
}else{
|
|
|
|
|
|
popover.wrapper.style.display = 'block'
|
|
|
|
|
|
}
|
|
|
|
|
|
if(options.state.activeIndex == 2){
|
|
|
|
|
|
popover.wrapper.style.transform = 'translateY(11rem)'
|
|
|
|
|
|
// options.config.stagePadding = 10
|
|
|
|
|
|
}else if(options.state.activeIndex == 6 || options.state.activeIndex == 7){
|
|
|
|
|
|
popover.wrapper.style.transform = 'translateY(4rem)'
|
|
|
|
|
|
}else if(options.state.activeIndex == 46){
|
|
|
|
|
|
popover.wrapper.style.transform = 'translateY(-6rem)'
|
|
|
|
|
|
}else{
|
|
|
|
|
|
popover.wrapper.style.transform = 'initial'
|
|
|
|
|
|
}
|
|
|
|
|
|
if(
|
|
|
|
|
|
options.state.activeIndex >= 6 && options.state.activeIndex < 9 ||
|
|
|
|
|
|
options.state.activeIndex >= 14 && options.state.activeIndex < 15 ||
|
|
|
|
|
|
driverObj__.isLastStep()
|
|
|
|
|
|
){
|
|
|
|
|
|
popover.footer.style.display = 'block'
|
|
|
|
|
|
popover.footerButtons.style.pointerEvents = 'auto';
|
|
|
|
|
|
}else{
|
|
|
|
|
|
popover.footer.style.display = 'none'
|
|
|
|
|
|
popover.footerButtons.style.pointerEvents = 'none';
|
|
|
|
|
|
}
|
|
|
|
|
|
nextTick().then(()=>{
|
|
|
|
|
|
if(element){
|
|
|
|
|
|
element.classList.remove('Guide_')
|
|
|
|
|
|
}
|
|
|
|
|
|
element = options.state.activeElement
|
|
|
|
|
|
element.classList.add('Guide_')
|
|
|
|
|
|
})
|
|
|
|
|
|
},
|
|
|
|
|
|
//销毁前
|
|
|
|
|
|
onDestroyStarted:()=>{
|
2024-01-04 14:51:57 +08:00
|
|
|
|
setDestroy()
|
2024-01-10 15:25:43 +08:00
|
|
|
|
},
|
|
|
|
|
|
//销毁前
|
|
|
|
|
|
onDestroyed:()=>{
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2023-11-22 15:41:46 +08:00
|
|
|
|
function addDiv(element){
|
|
|
|
|
|
element.style.posiiton = 'relative'
|
2023-11-22 17:05:09 +08:00
|
|
|
|
const mask = document.getElementsByClassName('driver-mask__')?.[0]
|
2023-11-22 15:41:46 +08:00
|
|
|
|
if(mask){
|
|
|
|
|
|
}else{
|
|
|
|
|
|
const mask = document.createElement('div');
|
|
|
|
|
|
mask.style.position = 'absolute';
|
|
|
|
|
|
mask.style.top = '0';
|
|
|
|
|
|
mask.style.left = '0';
|
|
|
|
|
|
mask.style.width = '100%';
|
|
|
|
|
|
mask.style.height = '100%';
|
2023-11-22 17:05:09 +08:00
|
|
|
|
mask.style.backgroundColor = 'rgba(0, 0, 0, 0)';
|
2023-11-22 15:41:46 +08:00
|
|
|
|
mask.style.zIndex = '9999';
|
2023-11-22 17:05:09 +08:00
|
|
|
|
mask.classList.add('driver-mask__')
|
2023-11-22 15:41:46 +08:00
|
|
|
|
element.appendChild(mask);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-01-04 14:51:57 +08:00
|
|
|
|
function addClose(){
|
|
|
|
|
|
const body = document.querySelector('body')
|
|
|
|
|
|
const div = document.createElement('div');
|
|
|
|
|
|
if(document.getElementsByClassName('driver-close__').length == 0){
|
|
|
|
|
|
div.classList.add('driver-close__')
|
|
|
|
|
|
div.innerText = '×'
|
|
|
|
|
|
div.addEventListener('click',()=>{
|
|
|
|
|
|
setDestroy()
|
|
|
|
|
|
})
|
|
|
|
|
|
body.appendChild(div)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
function removeClose(){
|
|
|
|
|
|
const body = document.querySelector('body')
|
|
|
|
|
|
if(document.getElementsByClassName('driver-close__').length > 0){
|
|
|
|
|
|
let div = document.getElementsByClassName('driver-close__')[0]
|
|
|
|
|
|
body.removeChild(div)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-22 15:41:46 +08:00
|
|
|
|
function removeDiv(element){
|
2023-11-22 17:05:09 +08:00
|
|
|
|
const mask = document.getElementsByClassName('driver-mask__')?.[0]
|
2023-11-22 15:41:46 +08:00
|
|
|
|
if(mask){
|
|
|
|
|
|
// element.removeChild(mask);
|
|
|
|
|
|
mask.remove()
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-30 10:54:22 +08:00
|
|
|
|
|
2023-11-22 09:37:30 +08:00
|
|
|
|
const openGuide = () =>{
|
2024-01-05 14:12:03 +08:00
|
|
|
|
let isTest = JSON.parse(getCookie('isTest'))
|
2023-11-30 10:54:22 +08:00
|
|
|
|
let isBeginner = JSON.parse(getCookie('isBeginner'))
|
2023-12-13 16:09:17 +08:00
|
|
|
|
// console.log(isBeginner);
|
|
|
|
|
|
let isBeginnerNum = JSON.parse(getCookie('isBeginnerNum')?getCookie('isBeginnerNum'):'0')
|
2023-11-30 10:54:22 +08:00
|
|
|
|
// console.log(isBeginner);
|
2024-01-05 16:49:49 +08:00
|
|
|
|
if(isBeginner && !isTest){
|
2023-12-12 15:17:54 +08:00
|
|
|
|
if(isBeginnerNum){
|
|
|
|
|
|
driverObj__.drive(isBeginnerNum);
|
|
|
|
|
|
}else{
|
2023-12-28 10:36:48 +08:00
|
|
|
|
driverObj__.drive(0);
|
2023-12-12 15:17:54 +08:00
|
|
|
|
}
|
2023-11-30 10:54:22 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
driverObj__.destroy();
|
2024-01-08 13:59:13 +08:00
|
|
|
|
return
|
2023-11-30 10:54:22 +08:00
|
|
|
|
}
|
2024-01-08 13:59:13 +08:00
|
|
|
|
data = {
|
|
|
|
|
|
index:driverIndex__,
|
|
|
|
|
|
driver:true,
|
|
|
|
|
|
stepsLenth:stepsLenth
|
2024-01-05 16:49:49 +08:00
|
|
|
|
}
|
2024-01-08 13:59:13 +08:00
|
|
|
|
// if(!store){
|
|
|
|
|
|
// store = useStore()
|
|
|
|
|
|
// }
|
2023-11-24 16:18:44 +08:00
|
|
|
|
// driverObj__.moveTo(18);
|
|
|
|
|
|
store?.commit("setGuide", data);
|
2023-11-22 15:41:46 +08:00
|
|
|
|
// driverObj__.moveNext();
|
|
|
|
|
|
// driverObj__.movePrevious();
|
2023-11-22 09:37:30 +08:00
|
|
|
|
}
|
2023-12-14 13:19:27 +08:00
|
|
|
|
function setDestroy(){
|
|
|
|
|
|
data = {
|
|
|
|
|
|
index : driverIndex__,
|
|
|
|
|
|
driver : false,
|
2024-01-08 13:59:13 +08:00
|
|
|
|
stepsLenth:stepsLenth,
|
2023-12-14 13:19:27 +08:00
|
|
|
|
}
|
2024-01-04 14:51:57 +08:00
|
|
|
|
removeClose()
|
|
|
|
|
|
|
2023-12-14 13:19:27 +08:00
|
|
|
|
store?.commit("setGuide", data);
|
|
|
|
|
|
setCookie("isBeginner", false);
|
|
|
|
|
|
driverObj__.destroy();//销毁方法
|
|
|
|
|
|
let data_ = {}
|
|
|
|
|
|
Https.axiosPost(Https.httpUrls.completeGuidancet, data_).then(
|
|
|
|
|
|
).catch(res=>{
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2024-01-10 15:25:43 +08:00
|
|
|
|
|
|
|
|
|
|
function setLang(text){
|
|
|
|
|
|
for (const item in longList) {
|
|
|
|
|
|
if(longList[item].name == text){
|
|
|
|
|
|
i18n = longList[item].value.guide
|
|
|
|
|
|
createDriver()
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-22 09:37:30 +08:00
|
|
|
|
export{
|
|
|
|
|
|
openGuide,
|
|
|
|
|
|
driverObj__,
|
2023-11-22 15:41:46 +08:00
|
|
|
|
driverIndex__,
|
2023-12-14 13:19:27 +08:00
|
|
|
|
setDestroy,
|
2024-01-10 15:25:43 +08:00
|
|
|
|
setLang,
|
2023-11-22 09:37:30 +08:00
|
|
|
|
}
|