|
@@ -6,198 +6,6 @@ import { getImage } from "./images";
|
|
|
import { getQuery } from "/src/utils/queryString";
|
|
|
|
|
|
export default defineComponent({
|
|
|
-<<<<<<< Updated upstream
|
|
|
- name: "aiTeacher-guide",
|
|
|
- emits: ["close"],
|
|
|
- setup(props, { emit }) {
|
|
|
- const data = reactive({
|
|
|
- box: {},
|
|
|
- show: false,
|
|
|
- steps: [
|
|
|
- {
|
|
|
- ele: "",
|
|
|
- eleRect: {} as DOMRect,
|
|
|
- img: getImage("aiTeacher1.png"),
|
|
|
- handStyle: {
|
|
|
- top: "0.91rem",
|
|
|
- },
|
|
|
- imgStyle: {
|
|
|
- top: "-3.01rem",
|
|
|
- width:'6.48rem',
|
|
|
- height:'3.01rem',
|
|
|
- left:'4.67rem'
|
|
|
- },
|
|
|
- btnsStyle: {
|
|
|
- top: "-1.61rem",
|
|
|
- left:'6rem'
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- ele: "",
|
|
|
- img: getImage("aiTeacher2.png"),
|
|
|
- handStyle: {
|
|
|
- top: "-1.39rem",
|
|
|
- left:'0.15rem',
|
|
|
- transform: 'rotate(180deg)'
|
|
|
- },
|
|
|
- imgStyle: {
|
|
|
- top: "-3.01rem",
|
|
|
- width:'6.48rem',
|
|
|
- height:'3.01rem',
|
|
|
- },
|
|
|
- btnsStyle: {
|
|
|
- top: "-1.61rem",
|
|
|
- left:'1.3rem',
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- ele: "",
|
|
|
- img: getImage("aiTeacher3.png"),
|
|
|
- handStyle: {
|
|
|
- top: "-1.39rem",
|
|
|
- left:'0.17rem',
|
|
|
- transform: 'rotate(180deg)'
|
|
|
- },
|
|
|
- imgStyle: {
|
|
|
- top: "-3.01rem",
|
|
|
- width:'6.48rem',
|
|
|
- height:'3.01rem',
|
|
|
-
|
|
|
- },
|
|
|
- btnsStyle: {
|
|
|
- top: "-1.61rem",
|
|
|
- left:'1.3rem',
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- ele: "",
|
|
|
- img: getImage("aiTeacher4.png"),
|
|
|
- handStyle: {
|
|
|
- top: "-1.39rem",
|
|
|
- left:'1.4rem',
|
|
|
- transform: 'rotate(180deg)'
|
|
|
- },
|
|
|
- imgStyle: {
|
|
|
- top: "-3.01rem",
|
|
|
- width:'6.48rem',
|
|
|
- height:'3.01rem',
|
|
|
-
|
|
|
- },
|
|
|
- btnsStyle: {
|
|
|
- top: "-1.61rem",
|
|
|
- left:'0.8rem',
|
|
|
- "justify-content": "center",
|
|
|
- padding: 0,
|
|
|
- },
|
|
|
- },
|
|
|
- ],
|
|
|
- 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 getStepELe = () => {
|
|
|
- console.log(`aiTeacher${data.step}`)
|
|
|
- const ele: HTMLElement = document.getElementById(`aiTeacher-${data.step}`)!;
|
|
|
- if (ele) {
|
|
|
- const eleRect = ele.getBoundingClientRect();
|
|
|
- data.box = {
|
|
|
- left: eleRect.x + "px",
|
|
|
- top: eleRect.y + "px",
|
|
|
- width: eleRect.width + "px",
|
|
|
- height: eleRect.height + "px",
|
|
|
- };
|
|
|
- }
|
|
|
- };
|
|
|
- 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} 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}px`,
|
|
|
- top: `${item.eleRect?.top}px`,
|
|
|
- }}
|
|
|
- >
|
|
|
- <img class={styles.img} style={item.imgStyle} src={item.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 ? (
|
|
|
- <>
|
|
|
- <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>
|
|
|
- );
|
|
|
- },
|
|
|
-=======
|
|
|
name: "aiTeacher-guide",
|
|
|
emits: ["close"],
|
|
|
setup(props, { emit }) {
|
|
@@ -356,15 +164,16 @@ export default defineComponent({
|
|
|
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.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
|
|
@@ -407,5 +216,4 @@ export default defineComponent({
|
|
|
</Popup>
|
|
|
);
|
|
|
},
|
|
|
->>>>>>> Stashed changes
|
|
|
});
|