瀏覽代碼

修复引导页

mo 1 年之前
父節點
當前提交
848dedbcec

+ 1 - 1
src/page-instrument/component/mode-type-mode/index.module.less

@@ -14,7 +14,7 @@
   .infoWrap{
     display: flex;
     flex-direction: row;
-    justify-content: space-around;
+    justify-content: space-between;
     width: 14.31rem;
     img{
       display: block;

+ 2 - 2
src/page-instrument/custom-plugins/guide-page/index.module.less

@@ -144,10 +144,10 @@
         }
       }
       .nextBtn {
-        width: 74px;
+        width: 60px;
         height: 25px;
         background: url('./images/nextBtn.png') no-repeat;
-        background-size: 74px 25px;
+        background-size: 60px 25px;
         line-height: 25px;
         font-size: 9px;
         padding: 0;

+ 212 - 0
src/page-instrument/custom-plugins/guide-page/teacher-bootom.tsx

@@ -6,6 +6,7 @@ import { getImage } from "./images";
 import { getQuery } from "/src/utils/queryString";
 
 export default defineComponent({
+<<<<<<< Updated upstream
   name: "aiTeacher-guide",
   emits: ["close"],
   setup(props, { emit }) {
@@ -196,4 +197,215 @@ export default defineComponent({
       </Popup>
     );
   },
+=======
+	name: "aiTeacher-guide",
+	emits: ["close"],
+	setup(props, { emit }) {
+		const data = reactive({
+			box: {},
+			show: false,
+			steps: [
+				{
+					eleRect: {
+           			left: '5rem',
+            top: '-3rem'
+          },
+					img: getImage("aiTeacher1.png"),
+					imgStyle: {
+						width: "6.48rem",
+						height: "3rem",
+					},
+					btnsStyle: {
+						bottom: ".9rem",
+						left: "1.7rem",
+					},
+					boxStyle:{
+						borderRadius: '40px',
+						transform: 'scale(1)'
+						
+					},
+					eleRectPadding: {
+						left: 14,
+						top: 14,
+						width: 28,
+						height: 28
+					  }
+				},
+				{
+					img: getImage("aiTeacher2.png"),
+          eleRect: {
+            top: '-3rem'
+          },
+					imgStyle: {
+						left:'-0.7rem',
+						width: "6.48rem",
+						height: "3.01rem",
+					},
+					btnsStyle: {
+						bottom: ".9rem",
+						left: "1rem",
+					},
+					boxStyle:{
+						borderRadius: '40px',
+						
+					},
+				},
+				{
+					img: getImage("aiTeacher3.png"),
+          eleRect: {
+            top: '-3rem'
+          },
+					imgStyle: {
+						left:'-0.7rem',
+						width: "6.48rem",
+						height: "3rem",
+					},
+					btnsStyle: {
+						bottom: ".9rem",
+						left: "1rem",
+					},
+					boxStyle:{
+						borderRadius: '40px',
+						
+					},
+				},
+				{
+					img: getImage("aiTeacher4.png"),
+          eleRect: {
+            top: '-3rem',
+            left: '-1rem'
+          },
+					imgStyle: {
+						width: "6.48rem",
+						height: "3.01rem",
+					},
+					btnsStyle: {
+						bottom: ".9rem",
+						left: "1.7rem",
+						"justify-content": "center",
+						padding: 0,
+					},
+					boxStyle:{
+						borderRadius: '40px',
+						
+					},
+				},
+			],
+			step: 0,
+		});
+
+		const tipShow = ref(false);
+		const guideInfo = localStorage.getItem("guideInfo");
+		const query: any = getQuery();
+		if ((guideInfo && JSON.parse(guideInfo).teacherBottom) || !query.showGuide) {
+			tipShow.value = false;
+		} else {
+			tipShow.value = true;
+		}
+    const steps = ['modeType-box', 'modeType-0', 'modeType-1', 'modeType-2']
+		const getStepELe = () => {
+			console.log(steps[data.step]);
+			const ele: HTMLElement = document.getElementById(steps[data.step])!;
+			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 - left + 'px',
+				  top: eleRect.y - top + 'px',
+				  width: eleRect.width + width + 'px',
+				  height: eleRect.height + height + 'px'
+				};
+				console.log(`coai-${data.step}`, data.box);
+			  }else{
+				handleNext()
+			  }
+		};
+		onMounted(() => {
+			getStepELe();
+		});
+		const handleNext = () => {
+			if (data.step >= 3) {
+				endGuide();
+				return;
+			}
+			data.step = data.step + 1;
+			getStepELe();
+		};
+
+		const endGuide = () => {
+			let guideInfo = JSON.parse(localStorage.getItem("guideInfo") || "{}") || null;
+			if (!guideInfo) {
+				guideInfo = { teacherBottom: true };
+			} else {
+				guideInfo.teacherBottom = true;
+			}
+			localStorage.setItem("guideInfo", JSON.stringify(guideInfo));
+			tipShow.value = false;
+			//  localStorage.setItem('endC')
+		};
+		return () => (
+			<Popup
+				teleport="body"
+				overlay={false}
+				closeOnClickOverlay={false}
+				class={["popup-custom", styles.guidePopup]}
+				v-model:show={tipShow.value}
+			>
+				<div class={styles.content} onClick={() => handleNext()}>
+					<div
+						class={styles.backBtn}
+						onClick={(e: Event) => {
+							e.stopPropagation();
+							endGuide();
+						}}
+					>
+						跳过
+					</div>
+					<div class={styles.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()}
+								class={styles.item}
+								style={{
+									display: index === data.step ? "" : "none",
+									left: `${item.eleRect?.left}`,
+									top: `${item.eleRect?.top}`,
+								}}
+							>
+								<img class={styles.img} style={item.imgStyle} src={item.img} />
+								<div class={styles.btns} style={item.btnsStyle}>
+									{data.step + 1 == data.steps.length ? (
+										<>
+											<div class={[styles.endBtn]} onClick={() => endGuide()}>
+												完成
+											</div>
+											<div
+												class={[styles.nextBtn]}
+												style={{ "border-color": "#fff" }}
+												onClick={() => {
+													data.step = 0;
+													getStepELe();
+												}}
+											>
+												再看一遍
+											</div>
+										</>
+									) : (
+										<Button class={styles.teacherBtn} round type="primary" onClick={() => handleNext()}>
+											下一步 ({data.step + 1}/{data.steps.length})
+										</Button>
+									)}
+								</div>
+							</div>
+						))}
+					</div>
+				</div>
+			</Popup>
+		);
+	},
+>>>>>>> Stashed changes
 });

+ 6 - 6
src/page-instrument/custom-plugins/guide-page/teacher-top.tsx

@@ -28,7 +28,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-0.7rem'
+            left:'-0.4rem'
           },
         },
         {
@@ -47,7 +47,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-0.7rem'
+            left:'-0.4rem'
           },
         },
         {
@@ -66,7 +66,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-0.7rem'
+            left:'-0.4rem'
           },
         },
         {
@@ -85,7 +85,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-0.7rem'
+            left:'-0.4rem'
           },
         },
         {
@@ -104,7 +104,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-0.7rem'
+            left:'-0.4rem'
           },
         },
         {
@@ -123,7 +123,7 @@ export default defineComponent({
           },
           btnsStyle: {
             top: "2.8rem",
-            left:'-1.8rem'
+            left:'-1.65rem'
           },
         },
       ],