|  | @@ -9,7 +9,8 @@ import {
 | 
	
		
			
				|  |  |  } from 'vue';
 | 
	
		
			
				|  |  |  import styles from './index.module.less';
 | 
	
		
			
				|  |  |  import { getImage } from './images';
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +import {px2vw} from '@/utils/index'
 | 
	
		
			
				|  |  | +import { visibility } from 'html2canvas/dist/types/css/property-descriptors/visibility';
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  |    name: 'coai-guide',
 | 
	
		
			
				|  |  |    emits: ['close'],
 | 
	
	
		
			
				|  | @@ -17,71 +18,117 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      const data = reactive({
 | 
	
		
			
				|  |  |        box: {},
 | 
	
		
			
				|  |  |        show: false,
 | 
	
		
			
				|  |  | +      /**
 | 
	
		
			
				|  |  | +       *
 | 
	
		
			
				|  |  | +            width:  px2vw(840),
 | 
	
		
			
				|  |  | +            height:  px2vw(295)
 | 
	
		
			
				|  |  | +       */
 | 
	
		
			
				|  |  |        steps: [
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |            ele: '',
 | 
	
		
			
				|  |  |            eleRect: {} as DOMRect,
 | 
	
		
			
				|  |  | -          img: getImage('coai-1.png'),
 | 
	
		
			
				|  |  | +          img: getImage('home1.png'),
 | 
	
		
			
				|  |  |            handStyle: {
 | 
	
		
			
				|  |  |              top: '0.91rem'
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            imgStyle: {
 | 
	
		
			
				|  |  | -            top: '1.5rem'
 | 
	
		
			
				|  |  | +            left: px2vw(295),
 | 
	
		
			
				|  |  | +            width:  px2vw(840),
 | 
	
		
			
				|  |  | +            height:  px2vw(295)
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            btnsStyle: {
 | 
	
		
			
				|  |  | -            top: '4.5rem',
 | 
	
		
			
				|  |  | -            left: '1rem'
 | 
	
		
			
				|  |  | +            top:  px2vw(215),
 | 
	
		
			
				|  |  | +            left:  px2vw(540),
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          boxStyle:{
 | 
	
		
			
				|  |  | +            border:'none',
 | 
	
		
			
				|  |  | +            width:'0px',
 | 
	
		
			
				|  |  | +            height:'0px',
 | 
	
		
			
				|  |  | +            backgroundColor: 'transparent'
 | 
	
		
			
				|  |  | +            // visibility: 'hidden'
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          eleRectPadding:{
 | 
	
		
			
				|  |  | +            left:7,
 | 
	
		
			
				|  |  | +            top:7,
 | 
	
		
			
				|  |  | +            width:14,
 | 
	
		
			
				|  |  | +            height:14
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |            ele: '',
 | 
	
		
			
				|  |  | -          img: getImage('coai-2.png'),
 | 
	
		
			
				|  |  | -          handStyle: {
 | 
	
		
			
				|  |  | -            top: '-1.39rem',
 | 
	
		
			
				|  |  | -            left: '0.15rem',
 | 
	
		
			
				|  |  | -            transform: 'rotate(180deg)'
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | +          img: getImage('home2.png'),
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |            imgStyle: {
 | 
	
		
			
				|  |  | -            top: '-4rem'
 | 
	
		
			
				|  |  | +            top: '51Px',
 | 
	
		
			
				|  |  | +            left: '-18em',
 | 
	
		
			
				|  |  | +            width:  px2vw(401),
 | 
	
		
			
				|  |  | +            height:  px2vw(227)
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            btnsStyle: {
 | 
	
		
			
				|  |  | -            top: '-1.3rem',
 | 
	
		
			
				|  |  | -            left: '1.3rem'
 | 
	
		
			
				|  |  | +            top:  px2vw(200),
 | 
	
		
			
				|  |  | +            left: px2vw(-90),
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          boxStyle:{
 | 
	
		
			
				|  |  | +            borderRadius:'25px'
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          eleRectPadding:{
 | 
	
		
			
				|  |  | +            left:7,
 | 
	
		
			
				|  |  | +            top:7,
 | 
	
		
			
				|  |  | +            width:14,
 | 
	
		
			
				|  |  | +            height:14
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |            ele: '',
 | 
	
		
			
				|  |  | -          img: getImage('coai-3.png'),
 | 
	
		
			
				|  |  | +          img: getImage('home3.png'),
 | 
	
		
			
				|  |  |            handStyle: {
 | 
	
		
			
				|  |  |              top: '-1.39rem',
 | 
	
		
			
				|  |  |              left: '0.17rem',
 | 
	
		
			
				|  |  |              transform: 'rotate(180deg)'
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            imgStyle: {
 | 
	
		
			
				|  |  | -            top: '-4rem'
 | 
	
		
			
				|  |  | +            top:px2vw(575),
 | 
	
		
			
				|  |  | +            width:  px2vw(454),
 | 
	
		
			
				|  |  | +            height:  px2vw(227),
 | 
	
		
			
				|  |  | +            left:px2vw(282)
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            btnsStyle: {
 | 
	
		
			
				|  |  | -            top: '-1.3rem',
 | 
	
		
			
				|  |  | -            left: '1.3rem'
 | 
	
		
			
				|  |  | +            top:px2vw(730),
 | 
	
		
			
				|  |  | +            left:px2vw(450)
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          eleRectPadding:{
 | 
	
		
			
				|  |  | +            left:44,
 | 
	
		
			
				|  |  | +            top:44,
 | 
	
		
			
				|  |  | +            width:88,
 | 
	
		
			
				|  |  | +            height:88
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |            ele: '',
 | 
	
		
			
				|  |  | -          img: getImage('coai-4.png'),
 | 
	
		
			
				|  |  | +          img: getImage('home4.png'),
 | 
	
		
			
				|  |  |            handStyle: {
 | 
	
		
			
				|  |  |              top: '-1.39rem',
 | 
	
		
			
				|  |  |              left: '1.4rem',
 | 
	
		
			
				|  |  |              transform: 'rotate(180deg)'
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            imgStyle: {
 | 
	
		
			
				|  |  | -            top: '-4rem',
 | 
	
		
			
				|  |  | -            left: '-3.2rem'
 | 
	
		
			
				|  |  | +            top: '4rem',
 | 
	
		
			
				|  |  | +            left:  px2vw(-310),
 | 
	
		
			
				|  |  | +            width:  px2vw(477),
 | 
	
		
			
				|  |  | +            height:  px2vw(227),
 | 
	
		
			
				|  |  |            },
 | 
	
		
			
				|  |  |            btnsStyle: {
 | 
	
		
			
				|  |  |              top: '-0.85rem',
 | 
	
		
			
				|  |  |              left: '-3rem',
 | 
	
		
			
				|  |  |              'justify-content': 'center',
 | 
	
		
			
				|  |  |              padding: 0
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          eleRectPadding:{
 | 
	
		
			
				|  |  | +            left:7,
 | 
	
		
			
				|  |  | +            top:7,
 | 
	
		
			
				|  |  | +            width:14,
 | 
	
		
			
				|  |  | +            height:14
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        ],
 | 
	
	
		
			
				|  | @@ -95,15 +142,20 @@ export default defineComponent({
 | 
	
		
			
				|  |  |        tipShow.value = true;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      const getStepELe = () => {
 | 
	
		
			
				|  |  | -      console.log(`coai-${data.step}`);
 | 
	
		
			
				|  |  | -      const ele: HTMLElement = document.getElementById(`coai-${data.step}`)!;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      const ele: HTMLElement = document.getElementById(`home-${data.step}`)!;
 | 
	
		
			
				|  |  | +      console.log(`coai-${data.step}`,data.steps[data.step].eleRectPadding);
 | 
	
		
			
				|  |  |        if (ele) {
 | 
	
		
			
				|  |  |          const eleRect = ele.getBoundingClientRect();
 | 
	
		
			
				|  |  | +        const left = data.steps[data.step].eleRectPadding?.left || 0;
 | 
	
		
			
				|  |  | +        const top = data.steps[data.step].eleRectPadding?.top || 0;
 | 
	
		
			
				|  |  | +        const width = data.steps[data.step].eleRectPadding?.width || 0;
 | 
	
		
			
				|  |  | +        const height = data.steps[data.step].eleRectPadding?.height || 0
 | 
	
		
			
				|  |  |          data.box = {
 | 
	
		
			
				|  |  | -          left: eleRect.x + 'px',
 | 
	
		
			
				|  |  | -          top: eleRect.y + 'px',
 | 
	
		
			
				|  |  | -          width: eleRect.width + 'px',
 | 
	
		
			
				|  |  | -          height: eleRect.height + 'px'
 | 
	
		
			
				|  |  | +          left: eleRect.x - left+ 'px',
 | 
	
		
			
				|  |  | +          top: eleRect.y - top +'px',
 | 
	
		
			
				|  |  | +          width: eleRect.width + width+'px',
 | 
	
		
			
				|  |  | +          height: eleRect.height +height+ 'px'
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      };
 | 
	
	
		
			
				|  | @@ -135,7 +187,9 @@ export default defineComponent({
 | 
	
		
			
				|  |  |      return () => (
 | 
	
		
			
				|  |  |        <>
 | 
	
		
			
				|  |  |          {tipShow.value ? (
 | 
	
		
			
				|  |  | -          <div v-model:show={tipShow.value} class={["n-modal-mask","n-modal-mask-guide"]}>
 | 
	
		
			
				|  |  | +          <div
 | 
	
		
			
				|  |  | +            v-model:show={tipShow.value}
 | 
	
		
			
				|  |  | +            class={['n-modal-mask', 'n-modal-mask-guide']}>
 | 
	
		
			
				|  |  |              <div class={styles.content} onClick={() => handleNext()}>
 | 
	
		
			
				|  |  |                <div
 | 
	
		
			
				|  |  |                  class={styles.backBtn}
 | 
	
	
		
			
				|  | @@ -147,8 +201,9 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                </div>
 | 
	
		
			
				|  |  |                <div
 | 
	
		
			
				|  |  |                  class={styles.box}
 | 
	
		
			
				|  |  | -                style={data.box}
 | 
	
		
			
				|  |  | +                style={{...data.box,...data.steps[data.step].boxStyle}}
 | 
	
		
			
				|  |  |                  id={`modeType-${data.step}`}>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                  {data.steps.map((item: any, index) => (
 | 
	
		
			
				|  |  |                    <div
 | 
	
		
			
				|  |  |                      onClick={(e: Event) => e.stopPropagation()}
 | 
	
	
		
			
				|  | @@ -163,42 +218,34 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                        style={item.imgStyle}
 | 
	
		
			
				|  |  |                        src={item.img}
 | 
	
		
			
				|  |  |                      />
 | 
	
		
			
				|  |  | -                    <img
 | 
	
		
			
				|  |  | +                    {/* <img
 | 
	
		
			
				|  |  |                        class={styles.iconHead}
 | 
	
		
			
				|  |  |                        style={item.handStyle}
 | 
	
		
			
				|  |  |                        src={getImage('indexDot.png')}
 | 
	
		
			
				|  |  | -                    />
 | 
	
		
			
				|  |  | +                    /> */}
 | 
	
		
			
				|  |  |                      <div class={styles.btns} style={item.btnsStyle}>
 | 
	
		
			
				|  |  |                        {data.step + 1 == data.steps.length ? (
 | 
	
		
			
				|  |  |                          <>
 | 
	
		
			
				|  |  | -                          <NButton
 | 
	
		
			
				|  |  | +                          <div
 | 
	
		
			
				|  |  |                              class={styles.btn}
 | 
	
		
			
				|  |  | -                            round
 | 
	
		
			
				|  |  |                              color="transparent"
 | 
	
		
			
				|  |  |                              style={{ 'border-color': '#fff' }}
 | 
	
		
			
				|  |  | -                            type="primary"
 | 
	
		
			
				|  |  |                              onClick={() => {
 | 
	
		
			
				|  |  |                                data.step = 0;
 | 
	
		
			
				|  |  |                                getStepELe();
 | 
	
		
			
				|  |  |                              }}>
 | 
	
		
			
				|  |  |                              再看一遍
 | 
	
		
			
				|  |  | -                          </NButton>
 | 
	
		
			
				|  |  | -                          <NButton
 | 
	
		
			
				|  |  | +                          </div>
 | 
	
		
			
				|  |  | +                          <div
 | 
	
		
			
				|  |  |                              class={[styles.btn, styles.endBtn]}
 | 
	
		
			
				|  |  | -                            round
 | 
	
		
			
				|  |  | -                            type="primary"
 | 
	
		
			
				|  |  |                              onClick={() => endGuide()}>
 | 
	
		
			
				|  |  |                              完成
 | 
	
		
			
				|  |  | -                          </NButton>
 | 
	
		
			
				|  |  | +                          </div>
 | 
	
		
			
				|  |  |                          </>
 | 
	
		
			
				|  |  |                        ) : (
 | 
	
		
			
				|  |  | -                        <NButton
 | 
	
		
			
				|  |  | -                          class={styles.btn}
 | 
	
		
			
				|  |  | -                          round
 | 
	
		
			
				|  |  | -                          type="primary"
 | 
	
		
			
				|  |  | -                          onClick={() => handleNext()}>
 | 
	
		
			
				|  |  | +                        <div class={styles.btn} onClick={() => handleNext()}>
 | 
	
		
			
				|  |  |                            下一步 ({data.step + 1}/{data.steps.length})
 | 
	
		
			
				|  |  | -                        </NButton>
 | 
	
		
			
				|  |  | +                        </div>
 | 
	
		
			
				|  |  |                        )}
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                    </div>
 |