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" ;
2023-11-22 15:41:46 +08:00
import { useStore } from "vuex" ;
2023-11-22 09:37:30 +08:00
//版本一
2023-11-22 15:41:46 +08:00
let driverIndex _ _ = 0
let store
2023-11-23 15:31:40 +08:00
let element
2023-11-24 16:18:44 +08:00
let data = {
index : driverIndex _ _ ,
driver : true ,
}
2023-11-22 09:37:30 +08:00
const driverObj _ _ = driver ( {
steps : [
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_1_1' , popover : { title : 'Title' , description : 'Description' } } ,
{ element : '.Guide_1_27' , popover : { title : '' , description : 'You can change the mannequin and other settings in Workspace.' } } ,
2023-12-08 17:37:26 +08:00
{ element : '.Guide_1_28' , popover : { title : '' , description : 'Change the mannequin here.' , side : "right" , align : 'center' } } ,
{ element : '.Guide_1_28' , popover : { title : '' , description : 'Change the mannequin here.' , side : "right" , align : 'end' } } ,
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_29' , popover : { title : '' , description : 'Select a mannequin of your choice from our system library.' } } ,
{ element : '.Guide_1_1' , popover : { title : '' , description : 'Begin your creative journey here. ' } } ,
{ element : '.Guide_1_1_2' , popover : { title : '' , description : 'Begin your creative journey here. ' } } ,
{ element : '.Guide_1_1_2' , popover : { title : '' , description : 'Begin your creative journey here. ' } } ,
// { element: '.Guide_1_1_2', popover: { title: '', description: 'Begin your creative journey here. ' } },
// { element: '.Guide_1_3', popover: { title: '', description: 'Description' } },
2023-12-01 15:02:37 +08:00
// { element: '.Guide_1_2', popover: { title: '', description: 'Description' } },
{ element : '.Guide_1_4' , popover : { title : '' , description : 'Click here to try the latest image generation technology to create your mood board.' } } ,
{ element : '.Guide_1_5' , popover : { title : '' , description : "Enter keywords that capture the mood you wish to express and then click the 'Generate' button." } } ,
{ element : '.Guide_1_6' , popover : { title : '' , description : 'Select three images for your moodboard.' } } ,
{ element : '.Guide_1_7' , popover : { title : '' , description : 'Click here to layout your moodboard.' } } ,
{ element : '.Guide_1_8' , popover : { title : '' , description : 'Click here for next step.' } } ,
//以上moodboard
2023-12-07 14:26:21 +08:00
{ element : '.Guide_1_2_1' , popover : { title : '' , description : 'Upload two print images here' } } ,
{ element : '.Guide_1_2_2' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_2_2' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_3' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_4' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_5' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_6' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_7' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_8' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
{ element : '.Guide_1_2_9' , popover : { title : '' , description : 'Crop the uploaded image here.' } } ,
2023-12-01 15:02:37 +08:00
{ element : '.Guide_1_8' , popover : { title : '' , description : 'Click here for next step.' } } ,
{ element : '.Guide_1_10' , popover : { title : '' , description : 'Click here to extract primary colors from image.' } } ,
{ element : '.Guide_1_11' , popover : { title : '' , description : 'Select the color you want from these color blocks as the first color.' } } ,
2023-11-28 17:07:38 +08:00
2023-12-01 15:02:37 +08:00
{ element : '.Guide_1_11_1' , popover : { title : '' , description : 'Click on this block to select the second color.' } } ,
{ element : '.Guide_1_11_2' , popover : { title : '' , description : 'Choose the color you want from these color blocks.' } } ,
2023-11-28 17:07:38 +08:00
2023-12-01 15:02:37 +08:00
{ element : '.Guide_1_8' , popover : { title : '' , description : 'Click here for next step.' } } ,
2023-12-07 14:26:21 +08:00
{ element : '.Guide_1_9' , popover : { title : '' , description : 'Upload or select two sketches for your collection on this page.' } } ,
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_9_1' , popover : { title : '' , description : 'Upload or select two sketches for your collection on this page.' } } ,
{ element : '.Guide_1_9_2' , popover : { title : '' , description : 'Upload or select two sketches for your collection on this page.' } } ,
2023-12-01 15:02:37 +08:00
2023-12-07 14:26:21 +08:00
{ element : '.Guide_1_13' , popover : { title : '' , description : 'Click here to choose a category for the uploaded sketch.' } } ,
2023-12-01 17:13:22 +08:00
{ element : '.Guide_1_13_1' , popover : { title : '' , description : 'Choose correct category for the sketch.' } } ,
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_13_2' , popover : { title : '' , description : 'Choose correct category for the sketch.' } } ,
2023-12-01 17:13:22 +08:00
{ element : '.Guide_1_14' , popover : { title : '' , description : 'After you have confirmed categories of sketches are correct, click here to complete the uploading process.' } } ,
//开始design
{ element : '.Guide_1_15' , popover : { title : '' , description : 'Click here to let AI generate design illustrations.' } } ,
{ element : '.Guide_1_16' , popover : { title : '' , description : 'Please wait a few seconds.' } } ,
{ element : '.Guide_1_17' , popover : { title : '' , description : 'Click on any design image you are interested in to modify the details.' } } ,
// { element: '.Guide_1_18', popover: { title: '', description: 'Description' } },
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_30' , popover : { title : '' , description : 'Click the ‘ Redesign’ button to generate new results using the selected mannequin.' } } ,
{ element : '.Guide_1_16' , popover : { title : '' , description : 'Click here to let AI generate design illustrations.' } } ,
{ element : '.Guide_1_17' , popover : { title : '' , description : 'Click on any design image you are interested in to modify the details.' } } ,
2023-12-01 17:13:22 +08:00
{ element : '.Guide_1_19' , popover : { title : '' , description : 'Click on the clothes to modify its details.' } } ,
{ element : '.Guide_1_20' , popover : { title : '' , description : 'Click here to add or change the print.' } } ,
{ element : '.Guide_1_21' , popover : { title : '' , description : 'You can find the print you uploaded earlier in your Library.' } } ,
{ element : '.Guide_1_22' , popover : { title : '' , description : 'Select a print for this sketch.' } } ,
{ element : '.Guide_1_23' , popover : { title : '' , description : 'Click here to layout the selected print' } } ,
// { element: '.Guide_1_24', popover: { title: '', description: 'Description' } },
2023-12-07 14:26:21 +08:00
{ element : '.Guide_1_25' , popover : { title : '' , description : 'Preview printed design here.' , side : "right" , align : 'end' } } ,
2023-12-01 17:13:22 +08:00
{ element : '.Guide_1_26' , popover : { title : '' , description : 'Click here to finalize your modification.' } } ,
2023-12-08 16:27:35 +08:00
{ element : '.Guide_1_99' , popover : { title : 'Begin Your Design' , description : 'Your guide is complete, and now the canvas is yours to create freely. For more insights and details, check out our demo video on the homepage at <a href="https://code-create.com.hk/aida/" style="pointer-events: auto;" target="_blank">https://code-create.com.hk/aida/</a>' } } ,
2023-11-22 09:37:30 +08:00
] ,
// showProgress: true,//控制总页数和当前页数是否显示
allowClose : false ,
showButtons : false ,
stagePadding : 10 , //切口到元素的距离
stageRadius : 5 , //切口圆弧度
allowKeyboardControl : true , //控制是否可以键盘控制下一步
disableActiveInteraction : false , //是否禁用显示元素的交互
2023-11-22 15:41:46 +08:00
overlayOpacity : . 4 ,
overlay : true ,
2023-11-30 17:02:15 +08:00
// nextBtnText: '—›',
// prevBtnText: '‹—',
doneBtnText : '✕' ,
2023-11-22 09:37:30 +08:00
onPopoverRender : ( popover , options ) => { //每个步骤的元素和所有信息
2023-12-07 14:26:21 +08:00
// console.log(popover,options,element);
2023-11-22 15:41:46 +08:00
popover . previousButton . style . display = 'none'
2023-12-08 16:27:35 +08:00
// let driver = document.querySelector('body')
driverIndex _ _ = driverObj _ _ . getState ( ) . activeIndex
data = {
index : driverIndex _ _ ,
driver : true ,
}
store ? . commit ( "setGuide" , data ) ;
if ( options . state . activeIndex == 0 ) {
popover . wrapper . style . display = 'none'
2023-11-29 16:30:17 +08:00
} else {
2023-12-08 16:27:35 +08:00
popover . wrapper . style . display = 'block'
2023-11-29 16:30:17 +08:00
}
2023-12-08 16:27:35 +08:00
//判断是不是generate 如果是就吧边距设为0
// if(options.state.activeIndex >= 2 && options.state.activeIndex < 3){
// options.config.stagePadding = 0
// }else{
// options.config.stagePadding = 10
// }
2023-11-24 16:18:44 +08:00
if (
2023-12-08 17:37:26 +08:00
// options.state.activeIndex >= 2 && options.state.activeIndex < 3 ||
options . state . activeIndex >= 6 && options . state . activeIndex < 9 ||
options . state . activeIndex >= 14 && options . state . activeIndex < 16 ||
2023-12-01 17:13:22 +08:00
// options.state.activeIndex >= 24 && options.state.activeIndex < 25 ||
2023-11-30 10:54:22 +08:00
driverObj _ _ . isLastStep ( )
2023-11-24 16:18:44 +08:00
) {
2023-11-22 09:37:30 +08:00
popover . footer . style . display = 'block'
2023-12-08 16:27:35 +08:00
// popover.previousButton.style.display = 'block'
2023-12-07 13:23:50 +08:00
popover . footerButtons . style . pointerEvents = 'auto' ;
// driver.classList.add('showEvents')
2023-12-08 16:27:35 +08:00
// addDiv(options.state.activeElement)
2023-11-22 09:37:30 +08:00
} else {
popover . footer . style . display = 'none'
2023-12-08 16:27:35 +08:00
// popover.previousButton.style.display = 'none'
// removeDiv(options.state.activeElement)
2023-12-07 13:23:50 +08:00
popover . footerButtons . style . pointerEvents = 'none' ;
// driver.classList.remove('showEvents')
2023-11-22 15:41:46 +08:00
}
2023-12-08 16:27:35 +08:00
nextTick ( ) . then ( ( ) => {
if ( element ) {
element . classList . remove ( 'Guide_' )
}
element = options . state . activeElement
element . classList . add ( 'Guide_' )
} )
2023-11-22 09:37:30 +08:00
} ,
2023-11-24 16:18:44 +08:00
//销毁前
onDestroyStarted : ( ) => {
2023-12-11 10:24:04 +08:00
console . log ( 213123123 ) ;
2023-11-29 16:30:17 +08:00
data = {
index : driverIndex _ _ ,
driver : false ,
}
2023-11-24 16:18:44 +08:00
store ? . commit ( "setGuide" , data ) ;
2023-11-30 10:54:22 +08:00
setCookie ( "isBeginner" , false ) ;
2023-11-24 16:18:44 +08:00
driverObj _ _ . destroy ( ) ; //销毁方法
} ,
//销毁前
onDestroyed : ( ) => {
} ,
2023-12-11 10:24:04 +08:00
// onNextClick:(element, step, options) =>{
// // if(options.state.activeIndex == 2){
// // driverObj__.moveTo(4)
// // }else{
// // driverObj__.moveNext()
// // }
// }
2023-11-22 09:37:30 +08:00
} ) ;
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 ) ;
}
}
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 = ( ) => {
2023-11-30 10:54:22 +08:00
let isBeginner = JSON . parse ( getCookie ( 'isBeginner' ) )
let data
// console.log(isBeginner);
2023-11-30 11:02:33 +08:00
if ( isBeginner ) {
2023-11-30 17:02:15 +08:00
driverObj _ _ . drive ( ) ;
2023-11-30 10:54:22 +08:00
data = {
index : driverIndex _ _ ,
driver : true ,
}
} else {
driverObj _ _ . destroy ( ) ;
data = {
index : driverIndex _ _ ,
driver : false ,
}
}
2023-12-11 15:26:18 +08:00
driverObj _ _ . destroy ( ) ;
// driverObj__.drive();
2023-11-30 17:02:15 +08:00
2023-11-30 11:02:33 +08:00
data = {
index : driverIndex _ _ ,
2023-12-11 15:26:18 +08:00
driver : false ,
2023-11-30 11:02:33 +08:00
}
2023-11-22 15:41:46 +08:00
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
}
export {
openGuide ,
driverObj _ _ ,
2023-11-22 15:41:46 +08:00
driverIndex _ _ ,
2023-11-22 09:37:30 +08:00
}