aamin пре 1 година
родитељ
комит
953b35d75d
34 измењених фајлова са 481 додато и 107 уклоњено
  1. 2 1
      houtai/declares.d.ts
  2. 66 6
      houtai/package-lock.json
  3. 2 0
      houtai/package.json
  4. 2 2
      houtai/src/assets/styles/base.css
  5. 10 2
      houtai/src/components/Z_RichText/index.tsx
  6. 29 1
      houtai/src/pages/A1Rule/RuleEdit/index.tsx
  7. 139 43
      houtai/src/pages/A1Rule/TopicSetting/index.tsx
  8. 17 4
      houtai/src/pages/A2Integral/index.tsx
  9. 1 1
      houtai/src/pages/A3User/index.tsx
  10. 1 1
      houtai/src/pages/A4Prize/index.module.scss
  11. 13 9
      houtai/src/pages/A4Prize/index.tsx
  12. 25 1
      houtai/src/pages/A6IDUser/index.tsx
  13. 1 1
      houtai/src/store/action/A1Rule.ts
  14. 9 0
      houtai/src/store/action/A6IDUser.ts
  15. 1 0
      zhengquan/public/scene/hot/css/app.5a6ac8a4.css
  16. 9 0
      zhengquan/public/scene/hot/css/chunk-vendors.ff3e1284.css
  17. BIN
      zhengquan/public/scene/hot/img/IMGerror.f7bd5886.png
  18. BIN
      zhengquan/public/scene/hot/img/loading.236fa088.gif
  19. 1 0
      zhengquan/public/scene/hot/index.html
  20. 2 0
      zhengquan/public/scene/hot/js/about.168b35c2.js
  21. 1 0
      zhengquan/public/scene/hot/js/about.168b35c2.js.map
  22. 2 0
      zhengquan/public/scene/hot/js/app.0f737a6d.js
  23. 1 0
      zhengquan/public/scene/hot/js/app.0f737a6d.js.map
  24. 34 0
      zhengquan/public/scene/hot/js/chunk-vendors.e38b11cc.js
  25. 1 0
      zhengquan/public/scene/hot/js/chunk-vendors.e38b11cc.js.map
  26. BIN
      zhengquan/public/staticData/game/mobile/6g.png
  27. BIN
      zhengquan/src/assets/images/home/icon-up-mo.png
  28. 3 1
      zhengquan/src/stores/index.ts
  29. 44 3
      zhengquan/src/views/Game/gamePage.vue
  30. 14 10
      zhengquan/src/views/Home/components/homeTabbar.vue
  31. 1 1
      zhengquan/src/views/Home/components/sceneListInfo.vue
  32. 13 9
      zhengquan/src/views/Home/components/unitList.vue
  33. 25 3
      zhengquan/src/views/HomeMo/homePageMo.vue
  34. 12 8
      zhengquan/src/views/Scene/ScenePage.vue

+ 2 - 1
houtai/declares.d.ts

@@ -1 +1,2 @@
-declare module 'js-export-excel';
+declare module 'js-export-excel';
+declare module 'uuid';

+ 66 - 6
houtai/package-lock.json

@@ -43,6 +43,8 @@
         "redux-thunk": "^2.4.1",
         "sass": "^1.55.0",
         "typescript": "^4.8.4",
+        "uuid": "^9.0.1",
+        "vue3-uuid": "^1.0.0",
         "web-vitals": "^2.1.4",
         "yarn": "^1.22.19"
       },
@@ -4047,6 +4049,11 @@
       "resolved": "https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
       "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
     },
+    "node_modules/@types/uuid": {
+      "version": "8.3.4",
+      "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-8.3.4.tgz",
+      "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
+    },
     "node_modules/@types/ws": {
       "version": "8.5.3",
       "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz",
@@ -15707,6 +15714,14 @@
         "websocket-driver": "^0.7.4"
       }
     },
+    "node_modules/sockjs/node_modules/uuid": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "bin": {
+        "uuid": "dist/bin/uuid"
+      }
+    },
     "node_modules/sortablejs": {
       "version": "1.15.0",
       "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.0.tgz",
@@ -16762,9 +16777,9 @@
       }
     },
     "node_modules/uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "version": "9.0.1",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+      "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
       "bin": {
         "uuid": "dist/bin/uuid"
       }
@@ -16806,6 +16821,23 @@
         "node": ">=0.8"
       }
     },
+    "node_modules/vue3-uuid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/vue3-uuid/-/vue3-uuid-1.0.0.tgz",
+      "integrity": "sha512-TyRCP6KgHHRjwWVI4Eyhd5+eZi9bspkohuXJGEQArtc5VMYKX938ridCff3NpqxPjdawqK+6AZ7rKh9AhT9Jtw==",
+      "dependencies": {
+        "@types/uuid": "^8.0.0",
+        "uuid": "^8.1.0"
+      }
+    },
+    "node_modules/vue3-uuid/node_modules/uuid": {
+      "version": "8.3.2",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+      "bin": {
+        "uuid": "dist/bin/uuid"
+      }
+    },
     "node_modules/w3c-hr-time": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -20693,6 +20725,11 @@
       "resolved": "https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
       "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
     },
+    "@types/uuid": {
+      "version": "8.3.4",
+      "resolved": "https://registry.npmmirror.com/@types/uuid/-/uuid-8.3.4.tgz",
+      "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
+    },
     "@types/ws": {
       "version": "8.5.3",
       "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz",
@@ -29604,6 +29641,13 @@
         "faye-websocket": "^0.11.3",
         "uuid": "^8.3.2",
         "websocket-driver": "^0.7.4"
+      },
+      "dependencies": {
+        "uuid": {
+          "version": "8.3.2",
+          "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+          "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+        }
       }
     },
     "sortablejs": {
@@ -30440,9 +30484,9 @@
       }
     },
     "uuid": {
-      "version": "8.3.2",
-      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
-      "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+      "version": "9.0.1",
+      "resolved": "https://registry.npmmirror.com/uuid/-/uuid-9.0.1.tgz",
+      "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA=="
     },
     "v8-to-istanbul": {
       "version": "8.1.1",
@@ -30469,6 +30513,22 @@
       "resolved": "https://registry.npmmirror.com/voc/-/voc-1.2.0.tgz",
       "integrity": "sha512-BOuDjFFYvJdZO6e/N65AlaDItXo2TgyLjeyRYcqgAPkXpp5yTJcvkL2n+syO1r9Qc5g96tfBD2tuiMhYDmaGcA=="
     },
+    "vue3-uuid": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/vue3-uuid/-/vue3-uuid-1.0.0.tgz",
+      "integrity": "sha512-TyRCP6KgHHRjwWVI4Eyhd5+eZi9bspkohuXJGEQArtc5VMYKX938ridCff3NpqxPjdawqK+6AZ7rKh9AhT9Jtw==",
+      "requires": {
+        "@types/uuid": "^8.0.0",
+        "uuid": "^8.1.0"
+      },
+      "dependencies": {
+        "uuid": {
+          "version": "8.3.2",
+          "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+          "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+        }
+      }
+    },
     "w3c-hr-time": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",

+ 2 - 0
houtai/package.json

@@ -38,6 +38,8 @@
     "redux-thunk": "^2.4.1",
     "sass": "^1.55.0",
     "typescript": "^4.8.4",
+    "uuid": "^9.0.1",
+    "vue3-uuid": "^1.0.0",
     "web-vitals": "^2.1.4",
     "yarn": "^1.22.19"
   },

+ 2 - 2
houtai/src/assets/styles/base.css

@@ -6,7 +6,7 @@
 html {
   height: 100%;
   font-size: 14px;
-  user-select: none;
+  /* user-select: none; */
 }
 body {
   font: 1em/1.4 'Microsoft Yahei', 'PingFang SC', 'Avenir', 'Segoe UI', 'Hiragino Sans GB', 'STHeiti', 'Microsoft Sans Serif', 'WenQuanYi Micro Hei', sans-serif;
@@ -80,7 +80,7 @@ textarea {
   color: #ff4d4d;
 }
 #root .ant-pagination {
-  margin: 15px 0 !important;
+  margin: 20px 0 !important;
 }
 #root .ant-pagination .ant-pagination-item {
   border-radius: 50%;

+ 10 - 2
houtai/src/components/Z_RichText/index.tsx

@@ -84,9 +84,17 @@ function RichText({ check, dirCode, isLook, myUrl }: Props, ref: any) {
   // 判断 富文本是否为空
   const isTxtFlag = useMemo(() => {
     const txt: string = editorValue.toHTML();
+    console.log(
+      "判空函数",
+      txt.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll(" ", "")
+    );
     if (
       txt.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll(" ", "") ===
-      ""
+        "" ||
+      txt.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll(" ", "") ===
+        '<psize="5"_root="[objectObject]"__ownerID="undefined"__hash="undefined"__altered="false">' ||
+      txt.replaceAll("<p>", "").replaceAll("</p>", "").replaceAll(" ", "") ===
+        '<psize="0"_root="undefined"__ownerid="undefined"__hash="undefined"__altered="false">'
     ) {
       return true;
     } else return false;
@@ -174,7 +182,7 @@ function RichText({ check, dirCode, isLook, myUrl }: Props, ref: any) {
           readOnly={isLook}
           placeholder="请输入内容"
           value={editorValue}
-          onChange={(e:any) => setEditorValue(e)}
+          onChange={(e: any) => setEditorValue(e)}
           imageControls={["remove"]}
         />
       </div>

+ 29 - 1
houtai/src/pages/A1Rule/RuleEdit/index.tsx

@@ -60,6 +60,7 @@ function RuleEdit({ id, closePage, upTableList, editMode }: Props) {
       setCheck(true);
       // 富文本 为空
       const { val, flag } = richTxtRef.current.fatherBtnOkFu();
+      console.log("富文本", val, flag);
       if (flag) {
         MessageFu.error("游戏规则不能为空");
         return;
@@ -85,6 +86,33 @@ function RuleEdit({ id, closePage, upTableList, editMode }: Props) {
     [closePage, id, upTableList]
   );
 
+  // 通过校验点击确定--观看视频
+  const onFinish2 = useCallback(
+    async (values: any) => {
+    
+      const obj = {
+        description: "",
+        id: 10,
+        name: "观看视频",
+        rtf: "",
+        score:values.score,
+        second: 0
+      }
+
+      const res: any = await ruleSaveAPI(obj);
+
+      if (res.code === 0) {
+        MessageFu.success(id ? "编辑成功!" : "新增成功!");
+        if (id) upTableList();
+        else;
+
+        closePage();
+      }
+      console.log("通过校验,点击确定");
+    },
+    [closePage, id, upTableList]
+  );
+
   return (
     <>
       {editMode === 1 ? (
@@ -194,7 +222,7 @@ function RuleEdit({ id, closePage, upTableList, editMode }: Props) {
               ref={FormBoxRef}
               name="basic"
               labelCol={{ span: 5 }}
-              onFinish={onFinish}
+              onFinish={onFinish2}
               onFinishFailed={onFinishFailed}
               autoComplete="off"
             >

+ 139 - 43
houtai/src/pages/A1Rule/TopicSetting/index.tsx

@@ -25,6 +25,7 @@ import { QuestionTableType } from "@/types";
 import { MessageFu } from "@/utils/message";
 import encodeStr from "@/utils/pass";
 import { Base64 } from "js-base64";
+import { v4 } from "uuid";
 type Props = {
   closeFu: () => void;
 };
@@ -40,13 +41,10 @@ function TopicSetting({ closeFu }: Props) {
     endTime: "",
   });
 
-  // 页码变化
-  const paginationChange = (pageNum: number, pageSize: number) => {
-    pageNumRef.current = pageNum;
-    pagePageRef.current = pageSize;
-    setTableSelect({ ...tableSelect, pageNum, pageSize });
-  };
-
+  // 用于表格展示分页的数据
+  const [tableShowData, setTableShowData] = useState<any>(
+    [] as QuestionTableType[]
+  );
   // 编辑前数据保存
   const [editBeforeData, setEditBeforeData] = useState<any>(
     [] as QuestionTableType[]
@@ -59,61 +57,146 @@ function TopicSetting({ closeFu }: Props) {
     [] as QuestionTableType[]
   );
 
+  // 页码变化
+  const paginationChange = (pageNum: number, pageSize: number) => {
+    pageNumRef.current = pageNum;
+    pagePageRef.current = pageSize;
+    setTableSelect({ ...tableSelect, pageNum, pageSize });
+  };
+
   const [form] = Form.useForm();
   const [curEdit, setCurEdit] = useState<any>();
   const onFinish = useCallback(
     async (values: any) => {
       let newList = editShowData;
-      console.log(curEdit, newList[curEdit.index], values.numberVal);
+      // console.log(curEdit, newList[curEdit.index + (Number(pageNumRef) * Number(pagePageRef))], values.numberVal);
+      console.log(curEdit, editShowData);
       if (curEdit) {
         switch (curEdit.project) {
           case "题目描述":
-            newList[curEdit.index].question = values.numberVal;
+            newList[
+              curEdit.index +
+                Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+            ].question = values.numberVal;
             break;
           case "选项1":
-            newList[curEdit.index].answer.answer[0]
-              ? (newList[curEdit.index].answer.answer[0].name =
-                  values.numberVal)
-              : newList[curEdit.index].answer.answer.push({
+            newList[
+              curEdit.index +
+                Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+            ].answer.answer[0]
+              ? (newList[
+                  curEdit.index +
+                    Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+                ].answer.answer[0].name = values.numberVal)
+              : newList[
+                  curEdit.index +
+                    Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+                ].answer.answer.push({
                   name: values.numberVal,
                   val: encodeStr(Base64.encode("A")),
                 });
             break;
           case "选项2":
-            newList[curEdit.index].answer.answer[1]
-              ? (newList[curEdit.index].answer.answer[1].name =
-                  values.numberVal)
-              : newList[curEdit.index].answer.answer.push({
-                  name: values.numberVal,
-                  val: encodeStr(Base64.encode("B")),
-                });
+            if (
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer.length <= 0
+            ) {
+              MessageFu.warning("请先填写前面选项!");
+            } else {
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer[1]
+                ? (newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer[1].name = values.numberVal)
+                : newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer.push({
+                    name: values.numberVal,
+                    val: encodeStr(Base64.encode("B")),
+                  });
+            }
             break;
           case "选项3":
-            newList[curEdit.index].answer.answer[2]
-              ? (newList[curEdit.index].answer.answer[2].name =
-                  values.numberVal)
-              : newList[curEdit.index].answer.answer.push({
-                  name: values.numberVal,
-                  val: encodeStr(Base64.encode("C")),
-                });
+            if (
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer.length <= 1
+            ) {
+              MessageFu.warning("请先填写前面选项!");
+            } else {
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer[2]
+                ? (newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer[2].name = values.numberVal)
+                : newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer.push({
+                    name: values.numberVal,
+                    val: encodeStr(Base64.encode("C")),
+                  });
+            }
             break;
           case "选项4":
-            newList[curEdit.index].answer.answer[3]
-              ? (newList[curEdit.index].answer.answer[3].name =
-                  values.numberVal)
-              : newList[curEdit.index].answer.answer.push({
-                  name: values.numberVal,
-                  val: encodeStr(Base64.encode("D")),
-                });
+            if (
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer.length <= 2
+            ) {
+              MessageFu.warning("请先填写前面选项!");
+            } else {
+              newList[
+                curEdit.index +
+                  Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+              ].answer.answer[3]
+                ? (newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer[3].name = values.numberVal)
+                : newList[
+                    curEdit.index +
+                      Number(pageNumRef.current - 1) *
+                        Number(pagePageRef.current)
+                  ].answer.answer.push({
+                    name: values.numberVal,
+                    val: encodeStr(Base64.encode("D")),
+                  });
+            }
             break;
           case "答案解析":
-            newList[curEdit.index].description = values.numberVal;
+            newList[
+              curEdit.index +
+                Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+            ].description = values.numberVal;
             break;
         }
       }
       setEditShowData([...newList]);
       setEditShow(false);
-      console.log(curEdit, editShowData[curEdit.index], values.numberVal);
+      console.log(
+        "修改的单元",
+        newList[
+          curEdit.index +
+            Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+        ]
+      );
     },
     [curEdit, editShowData]
   );
@@ -127,12 +210,15 @@ function TopicSetting({ closeFu }: Props) {
       });
     });
     setEditShowData(newList);
+    // setTableShowData(newList.splice(0, pagePageRef.current));
   }, []);
 
   const handleCorrectChange = useCallback(
     (value: string, index: number) => {
       let newList = editShowData;
-      newList[index].answer.correct = value;
+      newList[
+        index + Number(pageNumRef.current - 1) * Number(pagePageRef.current)
+      ].answer.correct = value;
       setEditShowData([...newList]);
       console.log(editShowData);
     },
@@ -177,6 +263,7 @@ function TopicSetting({ closeFu }: Props) {
         title: "序号",
         render: (text: any, record: any, index: any) =>
           index + 1 + (pageNumRef.current - 1) * pagePageRef.current,
+        // index,
       },
       {
         title: "题目描述",
@@ -188,6 +275,7 @@ function TopicSetting({ closeFu }: Props) {
                 setEditShow(true);
                 setCurEdit({
                   index: index,
+                  id: item.id,
                   project: "题目描述",
                   value: item.question,
                 });
@@ -339,6 +427,7 @@ function TopicSetting({ closeFu }: Props) {
                 setEditShow(true);
                 setCurEdit({
                   index: index,
+                  id: item.id,
                   project: "答案解析",
                   value: item.description ? item.description : "",
                 });
@@ -383,7 +472,8 @@ function TopicSetting({ closeFu }: Props) {
       setEditShowData([
         ...editShowData,
         {
-          id: null,
+          id: v4(),
+          type: "add",
           answer: {
             answer: [],
           },
@@ -409,7 +499,7 @@ function TopicSetting({ closeFu }: Props) {
     }
     // 执行数据提交   新增不用传id  编辑要传id
     let data = editShowData.map((item: any) => {
-      return item.id == null
+      return item.type && item.type === "add"
         ? {
             answer: JSON.stringify(item.answer),
             description: item.description,
@@ -435,20 +525,21 @@ function TopicSetting({ closeFu }: Props) {
       MessageFu.warning("至少提交一道题目");
       return;
     }
+    console.log(editShowData);
 
     editShowData.forEach((element: any) => {
       // 题目描述为空
       if (element.question === "" || !element.question) {
         MessageFu.warning("题目描述不能为空");
-        return;
+        throw new Error("");
       }
       if (element.answer.answer.length < 2) {
         MessageFu.warning("每道题目至少填入两个选项");
-        return;
+        throw new Error("");
       }
       if (!element.answer.correct || element.answer.correct === "") {
         MessageFu.warning("需设置正确答案且正确答案不能为空");
-        return;
+        throw new Error("");
       }
     });
     submitFinish();
@@ -537,7 +628,12 @@ function TopicSetting({ closeFu }: Props) {
               style={{ marginTop: "40px" }}
               hide-required-asterisk={true}
             >
-              <Input placeholder="请输入" />
+              <Input
+                placeholder="请输入"
+                maxLength={
+                  curEdit ? (curEdit.project === "题目描述" ? 200 : 20) : 20
+                }
+              />
             </Form.Item>
             {/* 确定和取消按钮 */}
             <br />

+ 17 - 4
houtai/src/pages/A2Integral/index.tsx

@@ -1,6 +1,12 @@
 import { RootState } from "@/store";
 import { Input, DatePicker, Table, Button, Select } from "antd";
-import React, { useEffect, useMemo, useRef, useState } from "react";
+import React, {
+  useCallback,
+  useEffect,
+  useMemo,
+  useRef,
+  useState,
+} from "react";
 import { useDispatch, useSelector } from "react-redux";
 
 import styles from "./index.module.scss";
@@ -44,14 +50,20 @@ function A2Integral() {
   };
 
   // 类型选择发生改变
-  const typeChange = (value: any) => {
-    setTableSelect({ ...tableSelect, type: value, pageNum: 1 });
-  };
+  const typeChange = useCallback(
+    (value: any) => {
+      setSelectKey(value);
+      setTableSelect({ ...tableSelect, type: value, pageNum: 1 });
+    },
+    [tableSelect]
+  );
 
   const [inputKey, setInputKey] = useState(1);
+  const [selectKey, setSelectKey] = useState(null);
   // 重置
   const resetFu = () => {
     setInputKey(Date.now());
+    setSelectKey(null);
     setTableSelect({
       searchKey: "",
       pageSize: 10,
@@ -137,6 +149,7 @@ function A2Integral() {
             <span>类型:</span>
             <Select
               style={{ width: 120 }}
+              value={selectKey}
               onChange={typeChange}
               placeholder="请选择"
               options={[

+ 1 - 1
houtai/src/pages/A3User/index.tsx

@@ -292,7 +292,7 @@ function A3User() {
               key={inputKey}
               maxLength={8}
               style={{ width: 150, borderRadius: 0 }}
-              placeholder="请输入关键字"
+              placeholder="请输入用户名"
               allowClear
               onChange={(e) => realNameChange(e)}
             />

+ 1 - 1
houtai/src/pages/A4Prize/index.module.scss

@@ -39,7 +39,7 @@
         // box-shadow: 3px 0px 10px 0px #d5d5d9;
 
         .ant-table-body {
-          height: 300px;
+          height: 600px;
           overflow-y: auto !important;
           overflow-y: overlay !important;
 

+ 13 - 9
houtai/src/pages/A4Prize/index.tsx

@@ -136,7 +136,7 @@ function A4Prize() {
         }
       }
       form.resetFields();
-      setCover("")
+      setCover("");
     },
     [cover, curEditItem, form, getList, modalType]
   );
@@ -192,16 +192,20 @@ function A4Prize() {
               >
                 编辑
               </Button>
-              <Button
-                size="small"
-                type="text"
-                onClick={() => {
+              <Popconfirm
+                title={`是否将用户从列表中移除?`}
+                okText="确认"
+                cancelText="取消"
+                onConfirm={() => {
+                  // IDUserStateChange(item.id, item.isEnabled === 0 ? 1 : 0);
                   deletePrizeFu(item.id);
-                 
                 }}
+                okButtonProps={{ loading: false }}
               >
-                删除
-              </Button>
+                <Button size="small" type="text" style={{ color: "red" }}>
+                  删除
+                </Button>
+              </Popconfirm>
             </>
           );
         },
@@ -391,7 +395,7 @@ function A4Prize() {
               onConfirm={() => {
                 setEditPageVisible(false);
                 form.resetFields();
-                setCover("")
+                setCover("");
               }}
               okButtonProps={{ loading: false }}
             >

+ 25 - 1
houtai/src/pages/A6IDUser/index.tsx

@@ -12,6 +12,7 @@ import styles from "./index.module.scss";
 import { IDUserTableType } from "@/types/api/A6IDUser";
 import IntegralEdit from "./IntegralEdit";
 import {
+  DelIDUserAPI,
   IDUserPassResetAPI,
   IDUserStateChangeAPI,
   getIDUserListAPI,
@@ -116,6 +117,17 @@ function A6IDUser() {
     [dispatch, tableSelect]
   );
 
+  // 删除用户
+  const deleteIDUser = useCallback(async(id:number) => {
+    const res: any = await DelIDUserAPI(id);
+    if (res.code === 0) {
+      MessageFu.success("删除成功!")
+      pageNumRef.current = tableSelect.pageNum;
+      pagePageRef.current = tableSelect.pageSize;
+      dispatch(getIDUserListAPI(tableSelect));
+    };
+  }, [dispatch, tableSelect]);
+
   const columns = useMemo(() => {
     return [
       {
@@ -180,12 +192,24 @@ function A6IDUser() {
                   {item.isEnabled === 0 ? "取消黑名单" : "设为黑名单"}
                 </Button>
               </Popconfirm>
+              <Popconfirm
+                title={`删除后,用户信息将被清除,且无法找回,请谨慎操作`}
+                okText="确认"
+                cancelText="取消"
+                onConfirm={() => {
+                  // IDUserStateChange(item.id, item.isEnabled === 0 ? 1 : 0);
+                  deleteIDUser(item.id)
+                }}
+                okButtonProps={{ loading: false }}
+              >
+                <Button type="text" style={{color: "red"}}>{"删除"}</Button>
+              </Popconfirm>
             </>
           );
         },
       },
     ];
-  }, [IDUserStateChange, resetPassFu]);
+  }, [IDUserStateChange, deleteIDUser, resetPassFu]);
 
   return !editPageShow ? (
     <div className={styles.A6IDUser}>

+ 1 - 1
houtai/src/store/action/A1Rule.ts

@@ -28,7 +28,7 @@ export const getOnlineRuleAPI = (type: string) => {
 /**
  * 修改游戏规则
  */
-export const ruleSaveAPI = (data: SaveRuleType) => {
+export const ruleSaveAPI = (data: any) => {
   return http.post("cms/rule/save", data);
 };
 

+ 9 - 0
houtai/src/store/action/A6IDUser.ts

@@ -46,3 +46,12 @@ export const IDUserScoreSaveAPI = (data: SaveIDUserScoreType) => {
 export const IDUserPassResetAPI = (id: number) => {
   return http.get(`cms/user/reset/pass/${id}`);
 };
+
+
+/**
+ * 删除用户
+ */
+export const DelIDUserAPI = (id: number) => {
+  return http.get(`cms/user/del/${id}`);
+};
+

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
zhengquan/public/scene/hot/css/app.5a6ac8a4.css


Разлика између датотеке није приказан због своје велике величине
+ 9 - 0
zhengquan/public/scene/hot/css/chunk-vendors.ff3e1284.css


BIN
zhengquan/public/scene/hot/img/IMGerror.f7bd5886.png


BIN
zhengquan/public/scene/hot/img/loading.236fa088.gif


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
zhengquan/public/scene/hot/index.html


+ 2 - 0
zhengquan/public/scene/hot/js/about.168b35c2.js

@@ -0,0 +1,2 @@
+(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["about"],{f820:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement;t._self._c;return t._m(0)},s=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"about"},[n("h1",[t._v("This is an about page")])])}],u=n("2877"),c={},i=Object(u["a"])(c,a,s,!1,null,null,null);e["default"]=i.exports}}]);
+//# sourceMappingURL=about.168b35c2.js.map

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
zhengquan/public/scene/hot/js/about.168b35c2.js.map


Разлика између датотеке није приказан због своје велике величине
+ 2 - 0
zhengquan/public/scene/hot/js/app.0f737a6d.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
zhengquan/public/scene/hot/js/app.0f737a6d.js.map


Разлика између датотеке није приказан због своје велике величине
+ 34 - 0
zhengquan/public/scene/hot/js/chunk-vendors.e38b11cc.js


Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
zhengquan/public/scene/hot/js/chunk-vendors.e38b11cc.js.map


BIN
zhengquan/public/staticData/game/mobile/6g.png


BIN
zhengquan/src/assets/images/home/icon-up-mo.png


+ 3 - 1
zhengquan/src/stores/index.ts

@@ -9,7 +9,9 @@ export const useStore = defineStore('home', {
       // 所有热点列表
       hotspots: [] as any,
       token: '',
-      userInfo: {} as any
+      userInfo: {} as any,
+      currentUnit: {} as any,
+      isShowGameThumb: true
     }
   },
   // 相当于计算属性

+ 44 - 3
zhengquan/src/views/Game/gamePage.vue

@@ -1,14 +1,54 @@
 <script setup lang='ts'>
+import { useStore } from '@/stores';
 import { useRoute } from 'vue-router';
 
+declare global {
+  interface Window {
+    goBackSceneFu: () => void,
+  }
+}
+
 const route = useRoute()
+const router = useRouter()
+const store = useStore()
+
+
+// 返回到之前场景
+const goBackScene = () => {
+  router.push({
+    path: '/scene',
+    query: {
+      code: store.currentUnit.code,
+      name: store.currentUnit.name == '尾厅' ? '尾厅' : ''
+    }
+  })
+}
+
+onMounted(() => {
+  window.addEventListener('message', (e: any) => {
+    console.log('获得返回场景信号', e.data.from)
+    if (e.data.from == 'game') {
+      console.log('获得返回场景信号', e.data)
+      goBackScene()
+    }
+  })
+
+  window.goBackSceneFu = () => {
+    store.isShowGameThumb = false
+    router.replace({
+      path: '/scene',
+      query: {
+        code: store.currentUnit.code,
+        name: store.currentUnit.name == '尾厅' ? '尾厅' : ''
+      }
+    })
+  }
+})
 </script>
 
 <template>
   <div class='game-page'>
-    <iframe
-      :src="`/game/index.html#/?gameIdx=${route.query.code}`"
-      frameborder="0"></iframe>
+    <iframe :src="`/game/index.html#/?gameIdx=${route.query.code}`" frameborder="0"></iframe>
   </div>
 </template>
 
@@ -22,6 +62,7 @@ const route = useRoute()
   iframe {
     width: 100%;
     height: 100%;
+
     @media screen and (max-width: 700px) {
       width: 100%;
       // height: 100%;

+ 14 - 10
zhengquan/src/views/Home/components/homeTabbar.vue

@@ -52,7 +52,7 @@ const openMo = ref(false)
         <img src="@/assets/images/home/icon-left.png" alt="">
       </div>
       <div class="list-item" v-for="(item, index) in 5" :key="index"
-        @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItem + item - 1].code } }) }">
+        @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItem + item - 1].code, name: store.dataAll.sceneList[startItem + item - 1].name === '尾厅' ? '尾厅' : '' } }) }">
         <img :src="`${baseResourceUrl}/icon/${store.dataAll.sceneList[startItem + item - 1].icon}`" alt="">
         <div style="margin-top: -2vh;">{{ store.dataAll.sceneList[startItem + item - 1].name }}</div>
       </div>
@@ -79,8 +79,8 @@ const openMo = ref(false)
             <div>公益单位</div>
           </div>
         </div>
-        <div class="gonyi" v-for="(item,index) in 3" :key="item"
-          @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItemMo + index].code } }) }">
+        <div class="gonyi" v-for="(item, index) in 3" :key="item"
+          @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItemMo + index].code, name: store.dataAll.sceneList[startItem + item - 1].name === '尾厅' ? '尾厅' : '' } }) }">
           <!-- 在第一位 -->
           <img v-if="startItemMo != 0 && index == 0" class="item-bg" src="@/assets/images/home/bg1-1.png" alt="">
           <img v-else v-show="startItemMo + index != store.dataAll.sceneList.length - 1" class="item-bg"
@@ -113,19 +113,21 @@ const openMo = ref(false)
             <img class="item-bg" style="border-top-left-radius: 60px" src="@/assets/images/home/bg1-1open.png" alt="">
             <!-- 封面 -->
             <div class="thumb-img"
-              :style="{ background: `url(${baseResourceUrl}/thumbnail/img-gonyi.png`, backgroundSize: 'cover' }"></div>
+              :style="{ background: `url(${baseResourceUrl}/thumbnail/img-gonyi.png) 50% 50% / cover`, borderRadius: '15px 0 0 0 ' }">
+            </div>
             <div class="item-name">公益单位</div>
             <div class="item-numbser">1</div>
           </div>
           <div class="scene-list-item" v-for="(item, index) in store.dataAll.sceneList" :key="index"
-            @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[index].code } }) }">
+            @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[index].code, name: store.dataAll.sceneList[startItemMo + index].name === '尾厅' ? '尾厅' : '' } }) }">
             <img v-show="index != store.dataAll.sceneList.length - 1" class="item-bg"
               src="@/assets/images/home/bg1open.png" alt="">
             <img v-show="index == store.dataAll.sceneList.length - 1" class="item-bg"
               src="@/assets/images/home/bg3open.png" alt="">
             <!-- 封面 -->
             <div class="thumb-img"
-              :style="{ background: `url(${baseResourceUrl}/thumbnail/${item.thumbnail})`, backgroundSize: 'cover' }"></div>
+              :style="{ background: `url(${baseResourceUrl}/thumbnail/${item.thumbnail}) 50% 50% / cover` }">
+            </div>
             <div class="item-name">{{ store.dataAll.sceneList[startItemMo + index].name }}</div>
             <div class="item-numbser" v-show="startItemMo + index != store.dataAll.sceneList.length - 1">{{ index + 2 }}
             </div>
@@ -271,7 +273,7 @@ const openMo = ref(false)
   }
 }
 
-@media screen and (max-width: 700px)  {
+@media screen and (max-width: 700px) {
 
   .up-icon {
     position: absolute;
@@ -309,8 +311,9 @@ const openMo = ref(false)
 
       .item-bg {
         width: 35vw;
+        height: 110%;
         position: absolute;
-        top: 0;
+        top: 3px;
         left: 0;
         filter: blur(1px);
         margin-right: -10px;
@@ -318,8 +321,9 @@ const openMo = ref(false)
 
       .item-bg-last {
         width: 32vw;
+        height: 110%;
         position: absolute;
-        top: 0;
+        top: 3px;
         left: 0;
         filter: blur(1px);
         margin-right: -10px;
@@ -428,7 +432,7 @@ const openMo = ref(false)
 
   .down-icon {
     position: absolute;
-    top: calc(97.5vw);
+    bottom: 42vh;
     left: 50%;
   }
 

+ 1 - 1
zhengquan/src/views/Home/components/sceneListInfo.vue

@@ -76,7 +76,7 @@ const startItem = ref(0)
           <img src="@/assets/images/home/icon-left.png" alt="">
         </div>
         <div class="list-item" v-for="(item, index) in 5" :key="index"
-          @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItem + item - 1].code } }) }">
+          @click="() => { router.push({ name: 'scene', query: { code: store.dataAll.sceneList[startItem + item - 1].code, name: store.dataAll.sceneList[startItem + item - 1].name === '尾厅' ? '尾厅' : '' } }) }">
           <div class="thumb-img" @mouseover="hoverIndex = index" @mouseleave="hoverIndex = -1"
             :style="{ background: `url(${baseResourceUrl}/thumbnail/${store.dataAll.sceneList[startItem + item - 1].thumbnail})`, backgroundSize: '100% 100%' }">
             <div class="info-disc" v-show="hoverIndex == index">{{ store.dataAll.sceneList[startItem + item - 1].intro }}

+ 13 - 9
zhengquan/src/views/Home/components/unitList.vue

@@ -53,21 +53,21 @@ var timer = null as any
 
 watch(hoverIndex, (newVal: any) => {
   const infoBoxPcDom = document.getElementById('infoBoxPc')
-  console.log('余数', newVal % 7)
   if (infoBoxPcDom) {
     clearTimeout(timer)
     timer = setTimeout(() => {
       if (newVal % 7 <= 4 && newVal % 7 > 0) {
         infoBoxPcDom.style.right = 'auto'
         infoBoxPcDom.style.left = hoverDomRightX.value + 'px'
+      } else if (newVal % 7 == -1) {
+        isShowInfoBox.value = false
       } else {
         infoBoxPcDom.style.left = 'auto'
         infoBoxPcDom.style.right = window.innerWidth - hoverDomLeftX.value + 'px'
       }
-      if (newVal <= 7) {
+      if (newVal <= 7 && newVal > 0) {
         infoBoxPcDom!.style.bottom = window.innerHeight - hoverDomBottomY.value - hoverDomBottomY.value / 4 + 'px'
-
-      } else {
+      } else if (newVal > 8) {
         infoBoxPcDom!.style.bottom = window.innerHeight - hoverDomBottomY.value - 40 + 'px'
       }
       isShowInfoBox.value = true
@@ -154,7 +154,8 @@ onMounted(() => {
     </div>
     <div class="content" v-if="!browser.mobile">
       <!-- 左箭头 -->
-      <div class="arrows-left" :style="{ opacity: startItem != 0 ? '1' : '0' }" @click="startItem -= 21">
+      <div class="arrows-left" :style="{ opacity: startItem != 0 ? '1' : '0' }"
+        @click="() => { startItem != 0 ? startItem -= 21 : '' }">
         <img src="@/assets/images/home/icon-left.png" alt="">
       </div>
       <div class="content-list">
@@ -179,7 +180,8 @@ onMounted(() => {
         </div>
       </div>
       <!-- 右箭头 -->
-      <div class="arrows-left arrows-right" @click="startItem += 21"
+      <div class="arrows-left arrows-right"
+        @click="() => { startItem + 21 < store.dataAll.welfareList.length ? startItem += 21 : '' }"
         :style="{ opacity: startItem + 21 < store.dataAll.welfareList.length ? '1' : '0' }">
         <img src="@/assets/images/home/icon-right.png" alt="">
       </div>
@@ -400,7 +402,8 @@ onMounted(() => {
     bottom: 15px;
     cursor: pointer;
   }
-  .icon-down{
+
+  .icon-down {
     position: absolute;
     bottom: 80%;
     left: 45%;
@@ -408,7 +411,7 @@ onMounted(() => {
   }
 }
 
-@media screen and (max-width: 700px)  {
+@media screen and (max-width: 700px) {
   .scene-list-box {
     justify-content: end;
     height: 100%;
@@ -423,7 +426,8 @@ onMounted(() => {
       background: #C5A16C;
       z-index: 3;
       font-family: 'AlibabaPuHuiTi2.0-75SemiBold';
-      .back-icon{
+
+      .back-icon {
         margin-left: 5%;
         margin-top: 5%;
       }

+ 25 - 3
zhengquan/src/views/HomeMo/homePageMo.vue

@@ -1,14 +1,35 @@
 <script setup lang='ts'>
+import { useStore } from '@/stores';
 import { useRoute } from 'vue-router';
 
 const route = useRoute()
+const router = useRouter()
+const store = useStore()
+
+
+declare global {
+  interface Window {
+    goBackSceneFu: () => void,
+  }
+}
+onMounted(() => {
+  window.goBackSceneFu = () => {
+    store.isShowGameThumb = false
+    router.replace({
+      path: '/scene',
+      query: {
+        code: store.currentUnit.code,
+        name: store.currentUnit.name == '尾厅' ? '尾厅' : ''
+
+      }
+    })
+  }
+})
 </script>
 
 <template>
   <div class='game-page'>
-    <iframe
-      :src="`${route.query.src}`"
-      frameborder="0"></iframe>
+    <iframe :src="`${route.query.src}`" frameborder="0"></iframe>
   </div>
 </template>
 
@@ -22,6 +43,7 @@ const route = useRoute()
   iframe {
     width: 100%;
     height: 100%;
+
     @media screen and (max-width: 700px) {
       width: 100%;
       // height: 100%;

+ 12 - 8
zhengquan/src/views/Scene/ScenePage.vue

@@ -21,6 +21,7 @@ declare global {
 }
 
 const baseAPIUrl = ref('')
+// const baseAPIUrl = ref('http://192.168.20.61:8063')
 // const baseAPIUrl = ref('https://sit-cnzhengquan.4dage.com')
 
 const route = useRoute()
@@ -35,7 +36,7 @@ const isReady = ref(false)
 const pointInfo = ref('')
 
 const changeUnit = (unit: any) => {
-  console.log('换到尾厅', unit)
+  store.currentUnit = unit
   currentUnit.value = unit
   animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
   duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
@@ -43,6 +44,7 @@ const changeUnit = (unit: any) => {
   //   pointInfo.value = '&firstView=pano:42,qua:0.009218044457158925,0.8470543054294898,-0.01469850441003682,0.5312231071060547&qs=1'
   // }
   isShowHosList.value = false
+  isShowExperienceGame.value = true
 }
 const hotspots = ref([] as any)
 
@@ -73,14 +75,13 @@ const sortHotspots = (hotspots: any) => {
       newHot[key] = hotspots[key]
     }
   }
-  console.log('创建后', newHot)
   return newHot
 }
 // 获取所有单元的热点列表
 const getAllHotspot = () => {
   store.dataAll.sceneList.forEach((item: any) => {
     // https://super.4dage.com
-    axios.get(`https://super.4dage.com/data/${item.code == '' ? 'SHANGJJ' : item.code}/data2.js?m=${new Date().getTime()}`).then((res: any) => {
+    axios.get(`https://super.4dage.com/data/${item.code}/data2.js?m=${new Date().getTime()}`).then((res: any) => {
       //@ts-ignore
       hotspots.value.push({
         id: item.id,
@@ -94,14 +95,15 @@ const getAllHotspot = () => {
       if (item.code == route.query.code) {
         currentUnit.value = {
           id: item.id,
-          unit: item.name,
+          unit: route.query.name == '尾厅' ? '尾厅' : item.name,
           hots: sortHotspots(filterEmptyProps(res.data.hots)),
           code: item.code,
           xuliezhen: item.xuliezhen,
           gameId: item.gameId,
           backPoint: item.backPoint
         }
-        if (currentUnit.value.unit == '尾厅') pointInfo.value = '&firstView=pano:42,qua:0.009218044457158925,0.8470543054294898,-0.01469850441003682,0.5312231071060547&qs=1'
+        store.currentUnit = currentUnit.value
+        if (route.query.name == '尾厅') pointInfo.value = '&firstView=pano:42,qua:0.009218044457158925,0.8470543054294898,-0.01469850441003682,0.5312231071060547&qs=1'
       }
     })
   })
@@ -281,13 +283,16 @@ const goBack = () => {
   if (currentUnit.value.backPoint != '') {
     // pointInfo.value = currentUnit.value.backPoint
     window.changeUnitByHot('SHANGJJ', currentUnit.value.backPoint)
-
   }
 }
 
 
 onMounted(() => {
   getAllHotspot()
+
+  setTimeout(() => {
+    store.isShowGameThumb ? isShowExperienceGame.value = true : store.isShowGameThumb = true
+  }, 500)
   // store.hotspots.length == 0 ? getAllHotspot() : hotspots.value = store.hotspots, currentUnit.value = hotspots.value[0]
   window.hotListShowChangeFu = () => {
     isShowHosList.value = !isShowHosList.value
@@ -301,7 +306,6 @@ onMounted(() => {
     duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
     setTimeout(() => {
       isReady.value = true
-      isShowExperienceGame.value = true
     }, 500)
   }
 
@@ -382,7 +386,7 @@ onMounted(() => {
         },
         data: {
           description: "",
-          score: score,
+          score: encodeStr(Base64.encode(score)),
           type: v,
           userId: store.userInfo.id
         }