aamin 1 year ago
parent
commit
41a495c087
38 changed files with 558 additions and 246 deletions
  1. 1 1
      hot/src/views/Home.vue
  2. 1 1
      houtai/src/components/Z_RichText/index.tsx
  3. 6 6
      houtai/src/pages/A1Rule/RuleEdit/index.tsx
  4. 9 5
      houtai/src/pages/A1Rule/TopicSetting/index.tsx
  5. 9 4
      houtai/src/pages/A1Rule/index.module.scss
  6. 3 13
      houtai/src/pages/A1Rule/index.tsx
  7. 1 17
      houtai/src/pages/A3User/index.tsx
  8. 3 3
      houtai/src/pages/A4Prize/index.tsx
  9. 27 3
      houtai/src/pages/A6IDUser/IntegralEdit/index.tsx
  10. 56 43
      houtai/src/pages/A6IDUser/index.tsx
  11. 8 5
      houtai/src/store/action/A6IDUser.ts
  12. 2 1
      scene/public/static/js/Hot.js
  13. BIN
      scene/src/assets/images/icon/dollhouse.png
  14. BIN
      scene/src/assets/images/icon/dollhouse_active.png
  15. BIN
      scene/src/assets/images/icon/floor.png
  16. BIN
      scene/src/assets/images/icon/floor_active .png
  17. BIN
      scene/src/assets/images/icon/floor_active.png
  18. BIN
      scene/src/assets/img/hotAc.png
  19. BIN
      scene/src/assets/img/price.png
  20. 29 4
      scene/src/views/gui/menu.vue
  21. 1 1
      zhengquan/index.html
  22. 1 1
      zhengquan/public/scene/css/app.435ab0d9.css
  23. 0 1
      zhengquan/public/scene/css/app.a17e0074.css
  24. 1 1
      zhengquan/public/scene/index.html
  25. 1 0
      zhengquan/public/scene/js/app.1f7d0deb.js
  26. 0 1
      zhengquan/public/scene/js/app.46876ebb.js
  27. 0 1
      zhengquan/public/scene/js/app.f8d02c38.js
  28. 36 8
      zhengquan/public/scene/static/js/Hot.js
  29. 2 0
      zhengquan/public/scene/static/js/main_2020_show.js
  30. 40 8
      zhengquan/public/staticData/data.js
  31. BIN
      zhengquan/src/assets/images/close-icon-red.png
  32. BIN
      zhengquan/src/assets/images/close-icon.png
  33. 3 1
      zhengquan/src/stores/index.ts
  34. 16 16
      zhengquan/src/views/Game/gamePage.vue
  35. 28 5
      zhengquan/src/views/Home/components/unitList.vue
  36. 23 1
      zhengquan/src/views/HomeMo/homePageMo.vue
  37. 250 89
      zhengquan/src/views/Scene/ScenePage.vue
  38. 1 6
      zhengquan/src/views/WelcomePage/WelcomePage.vue

+ 1 - 1
hot/src/views/Home.vue

@@ -43,7 +43,7 @@
             </div>
             <!-- 视频页面 -->
             <div class="videoBox" v-else-if="myType === 'video'">
-              <video id="videoID" controls :src="item.url" v-if="index === myInd"></video>
+              <video id="videoID" controls :src="item.url" v-if="index === myInd" autoplay></video>
             </div>
             <!-- 图片页面 -->
             <div class="imgBox" v-else-if="myType === 'img'">

+ 1 - 1
houtai/src/components/Z_RichText/index.tsx

@@ -196,7 +196,7 @@ function RichText({ check, dirCode, isLook, myUrl }: Props, ref: any) {
           check && isTxtFlag ? "noUpThumbAc" : ""
         )}
       >
-        请输入正文!
+        {/* 请输入正文! */}
       </div>
     </div>
   );

+ 6 - 6
houtai/src/pages/A1Rule/RuleEdit/index.tsx

@@ -61,10 +61,10 @@ function RuleEdit({ id, closePage, upTableList, editMode }: Props) {
       // 富文本 为空
       const { val, flag } = richTxtRef.current.fatherBtnOkFu();
       // console.log("富文本", val, flag);
-      if (flag) {
-        MessageFu.error("游戏规则不能为空");
-        return;
-      }
+      // if (flag) {
+      //   MessageFu.error("游戏规则不能为空");
+      //   return;
+      // }
 
       if(values.second > 300) {
         MessageFu.error("时限不能大于300s");
@@ -186,8 +186,8 @@ function RuleEdit({ id, closePage, upTableList, editMode }: Props) {
 
               <Form.Item name="gameRule">
                 <div style={{ marginLeft: "0%", display: "flex" }}>
-                  <span style={{ marginRight: "2px", color: "red" }}>*</span>
-                  <div>游戏规则:</div>
+                  {/* <span style={{ marginRight: "2px", color: "red" }}>*</span> */}
+                  <div style={{ marginLeft: "10px" }}>游戏规则:</div>
                 </div>
                 <div style={{ marginLeft: "8%" }}>
                   <RichText

+ 9 - 5
houtai/src/pages/A1Rule/TopicSetting/index.tsx

@@ -61,6 +61,7 @@ function TopicSetting({ closeFu }: Props) {
   const paginationChange = (pageNum: number, pageSize: number) => {
     pageNumRef.current = pageNum;
     pagePageRef.current = pageSize;
+    console.log("减少会触发吗?");
     setTableSelect({ ...tableSelect, pageNum, pageSize });
   };
 
@@ -245,15 +246,21 @@ function TopicSetting({ closeFu }: Props) {
           return item.id !== id;
         });
         setEditShowData([...newList]);
+        if (newList.length % pagePageRef.current === 0) {
+          paginationChange(pageNumRef.current - 1, pagePageRef.current);
+        }
       } else {
         setDelTopicIdList([...delTopicIdList, id]);
         let newList = editShowData.filter((item: any) => {
           return item.id !== id;
         });
         setEditShowData([...newList]);
+        if (newList.length % pagePageRef.current === 0) {
+          paginationChange(pageNumRef.current - 1, pagePageRef.current);
+        }
       }
     },
-    [delTopicIdList, editShowData]
+    [delTopicIdList, editShowData, paginationChange]
   );
 
   const FormBoxRef = useRef<FormInstance>(null);
@@ -265,7 +272,6 @@ function TopicSetting({ closeFu }: Props) {
         title: "序号",
         render: (text: any, record: any, index: any) =>
           index + 1 + (pageNumRef.current - 1) * pagePageRef.current,
-        // index,
       },
       {
         title: "题目描述",
@@ -634,9 +640,7 @@ function TopicSetting({ closeFu }: Props) {
               initialValue={curEdit ? curEdit.value : ""}
               style={{ marginTop: "40px" }}
               hide-required-asterisk={true}
-              getValueFromEvent={(e) =>
-                e.target.value.replace(" ", "")
-              }
+              getValueFromEvent={(e) => e.target.value.replace(" ", "")}
             >
               <Input
                 placeholder="请输入"

+ 9 - 4
houtai/src/pages/A1Rule/index.module.scss

@@ -3,14 +3,15 @@
   height: 100%;
   display: flex;
   flex-direction: column;
-  background-color: rgb(239, 239, 239);
+  background-color: rgb(255, 255, 255);
+  overflow: auto;
 
   :global {
     .ruleTop {
       border-radius: 4px;
       padding: 15px 20px 10px 20px;
       background-color: #fff;
-      box-shadow: 3px 0px 10px 0px #d5d5d9;
+      // box-shadow: 3px 0px 10px 0px #d5d5d9;
       position: relative;
 
       .pageTitle {
@@ -18,6 +19,10 @@
           width: 100px;
           height: 40px;
         }
+        span{
+          font-size: 12px;
+          color: #a1a1a5;
+        }
       }
 
       .scoreLimitBtn {
@@ -53,7 +58,7 @@
 
 
         .ant-table-body {
-          height: 200px;
+          height: 40vh;
           overflow-y: auto !important;
           overflow-y: overlay !important;
 
@@ -80,7 +85,7 @@
         // box-shadow: 3px 0px 10px 0px #d5d5d9;
 
         .ant-table-body {
-          height: 200px;
+          height: 15vh;
           overflow-y: auto !important;
           overflow-y: overlay !important;
 

+ 3 - 13
houtai/src/pages/A1Rule/index.tsx

@@ -185,7 +185,7 @@ function A1Rule() {
     <>
       <div className={styles.A1Rule}>
         <div className="ruleTop">
-          <div className="pageTitle">游戏规则</div>
+          <div className="pageTitle">游戏规则 <span>游戏规则需用户刷新浏览器后生效</span></div>
           <button
             className="scoreLimitBtn"
             onClick={() => {
@@ -203,12 +203,7 @@ function A1Rule() {
               dataSource={tableInfo.list}
               columns={columns}
               rowKey="id"
-              pagination={{
-                showQuickJumper: true,
-                position: ["bottomCenter"],
-                showSizeChanger: true,
-                total: tableInfo.total,
-              }}
+              pagination={false}
             />
           </div>
         </div>
@@ -222,12 +217,7 @@ function A1Rule() {
               dataSource={onlineTableInfo}
               columns={columns2}
               rowKey="id"
-              pagination={{
-                showQuickJumper: true,
-                position: ["bottomCenter"],
-                showSizeChanger: true,
-                total: tableInfo.total,
-              }}
+              pagination={false}
             />
           </div>
         </div>

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

@@ -71,22 +71,6 @@ function A3User() {
     }, 100);
   }, [getList, tableSelect]);
 
-  // 用户昵称的输入
-  const nameTime = useRef(-1);
-  const nameChange = useCallback(
-    (e: React.ChangeEvent<HTMLInputElement>) => {
-      clearTimeout(nameTime.current);
-      nameTime.current = window.setTimeout(() => {
-        setTableSelect({
-          ...tableSelect,
-          nickName: e.target.value.trim(),
-          pageNum: 1,
-        });
-      }, 500);
-    },
-    [tableSelect]
-  );
-
   // 真实姓名的输入
   const realNameTime = useRef(-1);
   const realNameChange = useCallback(
@@ -233,7 +217,7 @@ function A3User() {
           ) : (
             <>
               <Popconfirm
-                title="密码重置后为123456,是否重置?"
+                title="是否将密码重置为123456?"
                 okText="重置"
                 cancelText="取消"
                 onConfirm={() => resetPassFu(item.id!)}

+ 3 - 3
houtai/src/pages/A4Prize/index.tsx

@@ -367,15 +367,15 @@ function A4Prize() {
                 }}
                 isLook={false}
                 coverCheck={check}
-                size={5}
+                size={2}
                 dirCode={dirCode}
                 checkTxt="请上传图片!"
               />
             </div>
 
-            <span style={{ marginLeft: "14%" }}>
+            {/* <span style={{ marginLeft: "14%" }}>
               格式要求:支持png、jpg和jpeg的图片格式;最大支持2M;最多1张
-            </span>
+            </span> */}
           </Form.Item>
           <Form.Item name="introduction">
             <div style={{ marginLeft: "4%", display: "flex" }}>

+ 27 - 3
houtai/src/pages/A6IDUser/IntegralEdit/index.tsx

@@ -13,6 +13,7 @@ import {
   IDUserScoreSaveAPI,
   getIDUserInfoByIdAPI,
   getIDUserListAPI,
+  getIDUserListAPI2,
 } from "@/store/action/A6IDUser";
 import { IDUserTableType, IDUserType, SaveIDUserScoreType } from "@/types";
 import { MessageFu } from "@/utils/message";
@@ -44,6 +45,19 @@ function IntegralEdit({ currentItem, closeFu }: Props) {
     if (res.code === 0) {
       setResults(res.data);
     }
+
+    const ress = await getIDUserListAPI2({
+      isEnabled: 0,
+      pageNum: 0,
+      pageSize: 9999999,
+      searchKey: "",
+    });
+    if (ress.code === 0) {
+      const curItem = ress.data.records.find((item: any) => {
+        return item.id === currentItem.id;
+      });
+      setCurrentItemShow(curItem);
+    }
   }, [currentItem.id]);
 
   const [currentItemShow, setCurrentItemShow] = useState<IDUserTableType>();
@@ -96,21 +110,31 @@ function IntegralEdit({ currentItem, closeFu }: Props) {
         const res: any = await IDUserScoreSaveAPI({
           description: values.description,
           userId: currentItem.id,
-          score:  encodeStr(Base64.encode(values.score)),
+          score: encodeStr(Base64.encode(values.score)),
           type: "编辑",
         });
         if (res.code === 0) {
           MessageFu.success("提交成功!");
           pageNumRef.current = tableSelect.pageNum;
           pagePageRef.current = tableSelect.pageSize;
+          console.log(
+            "积分计算",
+            Number(currentItem.score) + Number(values.score),
+            Number(currentItem.score),
+            Number(values.score),
+            resultss
+          );
           getInfoById();
           dispatch(getIDUserListAPI(tableSelect));
-          setCurrentItemShow({...currentItem,score: Number(currentItem.score) + Number(values.score)});
+          // setCurrentItemShow({
+          //   ...currentItem,
+          //   score: Number(currentItem.score) + Number(values.score),
+          // });
           setEditIntegralVisible(false);
         }
       }
     },
-    [currentItem, dispatch, getInfoById, tableSelect]
+    [currentItem, dispatch, getInfoById, tableSelect, resultss]
   );
 
   return (

+ 56 - 43
houtai/src/pages/A6IDUser/index.tsx

@@ -1,5 +1,5 @@
 import { RootState } from "@/store";
-import { Input, DatePicker, Table, Button, Popconfirm, Switch } from "antd";
+import { Input, Table, Button, Popconfirm, Select } from "antd";
 import React, {
   useCallback,
   useEffect,
@@ -19,8 +19,6 @@ import {
 } from "@/store/action/A6IDUser";
 import { MessageFu } from "@/utils/message";
 
-const { RangePicker } = DatePicker;
-
 function A6IDUser() {
   const dispatch = useDispatch();
 
@@ -31,8 +29,7 @@ function A6IDUser() {
     searchKey: "",
     pageSize: 10,
     pageNum: 1,
-    startTime: "",
-    endTime: "",
+    isEnabled: "",
   });
 
   // 账号的输入
@@ -43,35 +40,36 @@ function A6IDUser() {
       setTableSelect({ ...tableSelect, searchKey: e.target.value, pageNum: 1 });
     }, 500);
   };
-  // 时间选择器改变
-  const timeChange = (date: any, dateString: any) => {
-    let startTime = "";
-    let endTime = "";
-    if (dateString[0] && dateString[1]) {
-      startTime = dateString[0] + " 00:00:00";
-      endTime = dateString[1] + " 23:59:59";
-    }
-    setTableSelect({ ...tableSelect, startTime, endTime, pageNum: 1 });
-  };
 
   const [inputKey, setInputKey] = useState(1);
-  // 重置
-  const resetFu = () => {
-    setInputKey(Date.now());
-    setTableSelect({
-      searchKey: "",
-      pageSize: 10,
-      pageNum: 1,
-      startTime: "",
-      endTime: "",
-    });
-  };
+  // // 重置
+  // const resetFu = () => {
+  //   setInputKey(Date.now());
+  //   setTableSelect({
+  //     searchKey: "",
+  //     pageSize: 10,
+  //     pageNum: 1,
+  //     startTime: "",
+  //     endTime: "",
+  //   });
+  // };
 
   // // 点击跳转
   // const pathCutFu = useCallback((path: string) => {
   //   history.push(path);
   // }, []);
 
+  const [selectKey, setSelectKey] = useState(null);
+
+  // 类型选择发生改变
+  const typeChange = useCallback(
+    (value: any) => {
+      setSelectKey(value);
+      setTableSelect({ ...tableSelect, isEnabled: value, pageNum: 1 });
+    },
+    [tableSelect]
+  );
+
   useEffect(() => {
     pageNumRef.current = tableSelect.pageNum;
     pagePageRef.current = tableSelect.pageSize;
@@ -98,7 +96,7 @@ function A6IDUser() {
   // 点击重置密码
   const resetPassFu = useCallback(async (id: number) => {
     const res: any = await IDUserPassResetAPI(id);
-    if (res.code === 0) MessageFu.success("重置成功!");
+    if (res.code === 0) MessageFu.success("用户密码已重置并以邮件形式发送至用户邮箱!");
   }, []);
 
   // 切换表格中的启用停用状态
@@ -118,15 +116,18 @@ function A6IDUser() {
   );
 
   // 删除用户
-  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 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 [
@@ -169,7 +170,7 @@ function A6IDUser() {
                 积分管理
               </Button>
               <Popconfirm
-                title="是否将密码重置为123456?"
+                title="用户重置的密码将以邮件形式发送至用户邮箱"
                 okText="确认"
                 cancelText="取消"
                 onConfirm={() => resetPassFu(item.id!)}
@@ -198,11 +199,13 @@ function A6IDUser() {
                 cancelText="取消"
                 onConfirm={() => {
                   // IDUserStateChange(item.id, item.isEnabled === 0 ? 1 : 0);
-                  deleteIDUser(item.id)
+                  deleteIDUser(item.id);
                 }}
                 okButtonProps={{ loading: false }}
               >
-                <Button type="text" style={{color: "red"}}>{"删除"}</Button>
+                <Button type="text" style={{ color: "red" }}>
+                  {"删除"}
+                </Button>
               </Popconfirm>
             </>
           );
@@ -228,10 +231,20 @@ function A6IDUser() {
             />
           </div>
           <div className="row">
-            <span>日期:</span>
-            <RangePicker key={inputKey} onChange={timeChange} />
+            <span>类型:</span>
+            <Select
+              style={{ width: 120 }}
+              value={selectKey}
+              onChange={typeChange}
+              placeholder="请选择"
+              options={[
+                { value: 0, label: "禁用" },
+                { value: 1, label: "启用" },
+
+              ]}
+            />
           </div>
-          <Button
+          {/* <Button
             className="reSetBtn"
             size="small"
             type="primary"
@@ -240,7 +253,7 @@ function A6IDUser() {
             }}
           >
             重置
-          </Button>
+          </Button> */}
         </div>
       </div>
 

+ 8 - 5
houtai/src/store/action/A6IDUser.ts

@@ -18,9 +18,16 @@ export const getIDUserListAPI = (data: any) => {
 };
 
 /**
+ * 获取用户列表
+ */
+export const getIDUserListAPI2 = (data: any) => {
+  return http.post("cms/user/pageList", data);
+};
+
+/**
  * 切换用户账号状态
  */
-export const IDUserStateChangeAPI = (id:number,num:number) => {
+export const IDUserStateChangeAPI = (id: number, num: number) => {
   return http.get(`cms/user/isEnabled/${id}/${num}`);
 };
 
@@ -31,7 +38,6 @@ export const getIDUserInfoByIdAPI = (id: number) => {
   return http.get(`cms/user/point/getList/${id}`);
 };
 
-
 /**
  * 保存用户积分修改
  */
@@ -39,7 +45,6 @@ export const IDUserScoreSaveAPI = (data: SaveIDUserScoreType) => {
   return http.post("cms/user/point/add", data);
 };
 
-
 /**
  * 重置密码
  */
@@ -47,11 +52,9 @@ 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}`);
 };
-

+ 2 - 1
scene/public/static/js/Hot.js

@@ -1226,8 +1226,9 @@ window.initHot = function(model){
                     // var newPage = window.open(src, "_blank" ); 
                     // newPage.focus();  
                     let m = src.substring(src.indexOf("?")+3, src.indexOf("&"))
-                    let point = src.substring(src.indexOf("&"))
+                    let point = m !== 'game'? src.substring(src.indexOf("&")) : src.substring(src.indexOf("&")+1)
                     // window.location.href = src
+                    console.log('游戏跳转',m,point)
                     
                     if(window.parent && window.parent.window.changeUnitByHot){
                         window.parent.window.changeUnitByHot(m,point)

BIN
scene/src/assets/images/icon/dollhouse.png


BIN
scene/src/assets/images/icon/dollhouse_active.png


BIN
scene/src/assets/images/icon/floor.png


BIN
scene/src/assets/images/icon/floor_active .png


BIN
scene/src/assets/images/icon/floor_active.png


BIN
scene/src/assets/img/hotAc.png


BIN
scene/src/assets/img/price.png


+ 29 - 4
scene/src/views/gui/menu.vue

@@ -58,7 +58,8 @@
             </div>
             <!-- 热点列表 -->
             <div id="myHotList" @click="hotListChange()">
-              <img src="../../assets/img/hot.png" alt="" />
+              <img v-show="!isOpenHotList" src="../../assets/img/hot.png" alt="" />
+              <img v-show="isOpenHotList" src="../../assets/img/hotAc.png" alt="" />
               <div class="btmText">热点列表</div>
             </div>
             <div title="迷你漫游" data-original-title="迷你模型" id="gui-modes-dollhouse" rel="tooltip">
@@ -79,8 +80,11 @@
               <img style="display: block;" src="../../assets/img/game.png" alt="" />
               <div class="btmText">互动游戏</div>
             </div>
-            <div id="volume" class="toHomeBox toHomeBox2"
-              :style="{ marginRight: '10px', float: 'left' }">
+            <div class="toHomeBox" style="margin-right: '10px';float: left;" @click="openPricePage()">
+              <img style="display: block;" src="../../assets/img/price.png" alt="" />
+              <div class="btmText">奖品兑换</div>
+            </div>
+            <div id="volume" class="toHomeBox toHomeBox2" :style="{ marginRight: '10px', float: 'left' }">
               <img id="openMusic" style="display: block;" @click="switchBGM(true)" src="../../assets/img/musicAc.png"
                 alt="" />
               <img id="closeMusic" style="display: none;" @click="switchBGM(false)" src="../../assets/img/music.png"
@@ -180,7 +184,8 @@ export default {
       isLike: false,
       isShowHotList: false,
       screenWidth: 0,
-      BGMOldState: false
+      BGMOldState: false,
+      isOpenHotList: false,
     };
   },
   watch: {},
@@ -201,6 +206,11 @@ export default {
     }
     window.initCamera = this.initCamera
 
+    window.closeHotListIcon = function () {
+      _this.isOpenHotList = false
+      console.log('外部点击关闭')
+    }
+
     let timeA = -1;
 
     timeA = window.setInterval(() => {
@@ -239,6 +249,12 @@ export default {
         window.parent.window.openGameBoxFu()
       }
     },
+    // 打开奖品兑换页面
+    openPricePage() {
+      if (window.parent && window.parent.window.openPricePageFu) {
+        window.parent.window.openPricePageFu()
+      }
+    },
     // 跳转到制定热点
     initCamera(locId) {
       const current = window.myHotList.find((item) => {
@@ -268,6 +284,7 @@ export default {
       if (window.parent.window.hotListShowChangeFu) {
         window.parent.window.hotListShowChangeFu()
       }
+      this.isOpenHotList = !this.isOpenHotList
     },
     switchBGM(flag) {
       this.musicState = flag;
@@ -457,6 +474,10 @@ export default {
   >div {
     margin-right: @margin;
 
+    @media screen and (max-width: 700px) {
+      margin-bottom: @margin;
+    }
+
     >img {
       width: @wh;
       height: @wh;
@@ -527,6 +548,10 @@ export default {
   img {
     width: @wh;
     margin-bottom: 5px;
+
+    @media screen and (max-width: 700px) {
+      margin-bottom: 10px !important;
+    }
   }
 
   &:hover {

+ 1 - 1
zhengquan/index.html

@@ -13,7 +13,7 @@
   <!-- 打包配置 -->
   <!-- <script src="./staticData/data.js"></script> -->
 
-  <title>担当——证券期货行业公益力量展</title>
+  <title>担当——证券期货基金行业公益力量展</title>
 </head>
 
 <body>

File diff suppressed because it is too large
+ 1 - 1
zhengquan/public/scene/css/app.435ab0d9.css


File diff suppressed because it is too large
+ 0 - 1
zhengquan/public/scene/css/app.a17e0074.css


File diff suppressed because it is too large
+ 1 - 1
zhengquan/public/scene/index.html


File diff suppressed because it is too large
+ 1 - 0
zhengquan/public/scene/js/app.1f7d0deb.js


File diff suppressed because it is too large
+ 0 - 1
zhengquan/public/scene/js/app.46876ebb.js


File diff suppressed because it is too large
+ 0 - 1
zhengquan/public/scene/js/app.f8d02c38.js


+ 36 - 8
zhengquan/public/scene/static/js/Hot.js

@@ -2,17 +2,21 @@
 //合并热点和展览 
 g_currentHot = null
 
+ 
 
-
-
-
+let playSyncGroup = []//需要播放同步的视频。  每次都单独定制
+    
  
 
 const playVideoWhenFlyOut = false
 //同时可播放的最大个数:
-const playVideoMax = window.isEdit ? 3  :   browser.isMobile() ? 1 : 2;   
-const playAniMax = window.isEdit ? 6 :   browser.isMobile() ? 3 : 5;
+let playVideoMax = window.isEdit ? 3  :   browser.isMobile() ? 1 : 2;   
+let playAniMax = window.isEdit ? 6 :   browser.isMobile() ? 3 : 5;
 
+if(number == 'SHANGJJ'){
+    playSyncGroup = ['okh1UR466371',  'LGmLHP2615503' ,  'VNyBI6614896'] //中,左,右 
+    playVideoMax = 3
+}
 
 
 window.initHot = function(model){
@@ -1021,7 +1025,14 @@ window.initHot = function(model){
                     video.play()
                     //video.currentTime = video.lastCurTime || 0
                     this.changeOpaWhenPlay(video)
-                     
+                    //处理同步播放
+                    let group = playSyncGroup.find(e=>e.includes(this.sid))
+                    if(group){
+                        let others = group.filter(e=>e != this.sid).map(e=>player.model.hots[e].texMedia)
+                        console.log('controlVideo play', this.id, 'other currentTime', others.map(e=>e.currentTime))
+                        video.currentTime = others[0].currentTime
+                    }
+                    
                     if(isVideoPlayed(video))console.log({str:"played " + this.sid + video.duration ,level:1})              
                 }                    
                   
@@ -1215,8 +1226,9 @@ window.initHot = function(model){
                     // var newPage = window.open(src, "_blank" ); 
                     // newPage.focus();  
                     let m = src.substring(src.indexOf("?")+3, src.indexOf("&"))
-                    let point = src.substring(src.indexOf("&"))
+                    let point = m !== 'game'? src.substring(src.indexOf("&")) : src.substring(src.indexOf("&")+1)
                     // window.location.href = src
+                    console.log('游戏跳转',m,point)
                     
                     if(window.parent && window.parent.window.changeUnitByHot){
                         window.parent.window.changeUnitByHot(m,point)
@@ -1722,7 +1734,23 @@ window.initHot = function(model){
         }
         
         setTimeout(Hot.beginShineHot, 1000)
-        
+        if(!window.isEdit){
+            if(playSyncGroup.length){
+                //每过一段时间校准同步视频的时间,使与第一个视频同步
+                setInterval(()=>{
+                    
+                    playSyncGroup.forEach(group=>{
+                        group = group.map(e=>player.model.hots[e].texMedia).filter(e=>!e.paused) 
+                        if(group.length < 2)return
+                        console.log('同步',group.map(e=>e.currentTime)) 
+                        for(let i=group.length-1;i>0;i--){
+                            group[i].currentTime = group[0].currentTime
+                        }
+                    }) 
+                    
+                },4000) 
+            }
+        } 
         player.emit('gotHotAndStartload')
     }
     window.Hot = Hot   

+ 2 - 0
zhengquan/public/scene/static/js/main_2020_show.js

@@ -14920,6 +14920,8 @@ window.Modernizr = function(n, e, t) {
                     
                     
                     $("#volume").show();
+                }else {
+                    $("#volume").hide();
                 }
 
                 //隐藏公司logo

File diff suppressed because it is too large
+ 40 - 8
zhengquan/public/staticData/data.js


BIN
zhengquan/src/assets/images/close-icon-red.png


BIN
zhengquan/src/assets/images/close-icon.png


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

@@ -11,7 +11,9 @@ export const useStore = defineStore('home', {
       token: '',
       userInfo: {} as any,
       currentUnit: {} as any,
-      isShowGameThumb: true
+      isShowGameThumb: true,
+      // 选择的服装主题id
+      customThemeId: null
     }
   },
   // 相当于计算属性

+ 16 - 16
zhengquan/src/views/Game/gamePage.vue

@@ -14,24 +14,24 @@ const store = useStore()
 
 
 // 返回到之前场景
-const goBackScene = () => {
-  router.push({
-    path: '/scene',
-    query: {
-      code: store.currentUnit.code,
-      name: store.currentUnit.name == '尾厅' ? '尾厅' : ''
-    }
-  })
-}
+// 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.addEventListener('message', (e: any) => {
+  //   console.log('获得返回场景信号', e.data.from)
+  //   if (e.data.from == 'game') {
+  //     console.log('获得返回场景信号', e.data)
+  //     goBackScene()
+  //   }
+  // })
 
   window.goBackSceneFu = () => {
     store.isShowGameThumb = false

+ 28 - 5
zhengquan/src/views/Home/components/unitList.vue

@@ -176,6 +176,10 @@ onMounted(() => {
               :src="`${baseResourceUrl}/logo/${store.dataAll.welfareList[startItem + item - 1].title}${hoverIndex == item ? ' 1' : ''}.png`"
               alt="">
           </div>
+          <div v-if="startItem + item - 1 < store.dataAll.welfareList.length"
+            :class="store.dataAll.welfareList[startItem + item - 1].title.length > 8 ? 'item-name' : ''"
+            :style="{ whiteSpace: 'nowrap' }"> {{ store.dataAll.welfareList[startItem + item -
+              1] ? store.dataAll.welfareList[startItem + item - 1].title : '' }}</div>
         </div>
       </div>
       <!-- 右箭头 -->
@@ -353,7 +357,7 @@ onMounted(() => {
     backdrop-filter: blur(10px);
     // padding: 10% 5%;
     box-sizing: border-box;
-    padding: 4% 0;
+    padding: 3% 0;
 
     .arrows-left {
       cursor: pointer;
@@ -373,20 +377,22 @@ onMounted(() => {
       gap: 10px 10px;
 
       .list-item {
-        width: 100%;
+        width: 90%;
         height: 100%;
         position: relative;
         cursor: pointer;
-        box-shadow: 0px 4px 18px 0px rgba(0, 0, 0, 0.6);
+        overflow: hidden;
 
         .list-item-con {
           width: 100%;
-          height: 100%;
+          height: 90%;
+          // box-shadow: 0px 4px 18px 0px rgba(0, 0, 0, 0.6);
+
 
           // object-fit: cover;
           img {
             width: 100%;
-            height: 100%;
+            // height: 0%;
             object-fit: cover;
           }
 
@@ -408,6 +414,23 @@ onMounted(() => {
           }
         }
 
+        .item-name {
+          width: 100%;
+          animation: identifier1 8s linear infinite;
+          white-space: nowrap;
+
+        }
+
+        @keyframes identifier1 {
+          0% {
+            transform: translate(100%);
+          }
+
+          100% {
+            transform: translate(-100%);
+          }
+        }
+
       }
     }
   }

+ 23 - 1
zhengquan/src/views/HomeMo/homePageMo.vue

@@ -12,14 +12,36 @@ declare global {
     goBackSceneFu: () => void,
   }
 }
+
+
+// 返回到之前场景
+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
     const currentUnit = localStorage.getItem('currentUnit')
+    console.log('刷新后', store.currentUnit.code, JSON.parse(currentUnit!))
     router.replace({
       path: '/scene',
       query: {
-        code: store.currentUnit.code != '' ? store.currentUnit.code : JSON.parse(currentUnit!),
+        code: store.currentUnit.code ? store.currentUnit.code : JSON.parse(currentUnit!).code,
         name: store.currentUnit.name == '尾厅' ? '尾厅' : ''
       }
     })

+ 250 - 89
zhengquan/src/views/Scene/ScenePage.vue

@@ -15,6 +15,7 @@ declare global {
     handleTopRobot: (state: string) => void,
     handleShowFigure: (v: boolean) => void,
     openGameBoxFu: (v: boolean) => void,
+    openPricePageFu: () => void,
     addScoreFu: (v: string) => void
     changeUnitByHot: (v: string, point: string) => void
   }
@@ -40,12 +41,17 @@ const changeUnit = (unit: any) => {
   store.currentUnit = unit
   localStorage.setItem('currentUnit', JSON.stringify(unit))
   currentUnit.value = unit
-  animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
-  duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+  if (store.customThemeId) {
+    changeThemeFu()
+  } else {
+    animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
+    duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+  }
+
   // if (currentUnit.value.unit == '尾厅') {
   //   pointInfo.value = '&firstView=pano:42,qua:0.009218044457158925,0.8470543054294898,-0.01469850441003682,0.5312231071060547&qs=1'
   // }
-  isShowHosList.value = false
+  clostHotListFu()
   isShowExperienceGame.value = true
 }
 const hotspots = ref([] as any)
@@ -78,30 +84,6 @@ const sortHotspots = (hotspots: any) => {
     return Number(a.sort) - Number(b.sort)
   })
 }
-
-// // 批量去掉序号
-// const sortHotspots = (hotspots: any) => {
-//   const newHot = {}
-//   for (let key in hotspots) {
-//     let index = hotspots[key].title.indexOf('.')
-
-//     if (index != -1) {
-//       hotspots[key].title = hotspots[key].title.substring(index + 1)
-//       // @ts-ignore
-//       newHot[key] = hotspots[key]
-
-//     } else if (hotspots[key].title.indexOf(' ')) {
-//       index = hotspots[key].title.indexOf(' ')
-//       hotspots[key].title = hotspots[key].title.substring(index + 1)
-//       // @ts-ignore
-//       newHot[key] = hotspots[key]
-//     } else {
-//       // @ts-ignore
-//       newHot[key] = hotspots[key]
-//     }
-//   }
-//   return newHot
-// }
 // 获取所有单元的热点列表
 const getAllHotspot = () => {
   store.dataAll.sceneList.forEach((item: any) => {
@@ -150,8 +132,13 @@ watch(hotspots.value, (newVal: any) => {
     currentUnit.value = hotspots.value.filter((item: any) => {
       return item.code == route.query.code
     })[0]
-    animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
-    duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+    if (store.customThemeId) {
+      changeThemeFu()
+    } else {
+      animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
+      duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+    }
+
   }
 }, { immediate: true })
 
@@ -174,11 +161,19 @@ const goHotCamarer = (hot: any) => {
 
     currentHot.value = hot
     console.log(currentHot.value)
-    isShowHosList.value = false
+
+    clostHotListFu()
     isShowFigure.value = true
   }, 1500)
 }
 
+const clostHotListFu = () => {
+  isShowHosList.value = false
+  const iframe = document.getElementById('sceneiframe') as HTMLIFrameElement
+  //@ts-ignore
+  iframe.contentWindow.closeHotListIcon()
+}
+
 // 形象状态 greeting-招呼 idle-静默 talk-说话
 const animalStat = ref('greeting')
 const animalZhenShuNumber = ref(48 as number)
@@ -188,6 +183,10 @@ const animalZhenShu = computed(() => {
 const translateXNumber = computed(() => {
   return browser.mobile ? `${-100 * animalZhenShuNumber.value}px` : `${-200 * animalZhenShuNumber.value}px`
 })
+
+const translateXNumberChange = computed(() => {
+  return `${-200 * animalZhenShuNumber.value}px`
+})
 const duration = ref(`3s`)
 const xingxiangListShow = ref(false)
 const isShowFigure = ref(true)
@@ -235,7 +234,7 @@ const checkLoginStatus = async () => {
 }
 
 // 内嵌小游戏界面打开
-const openGame = (index: number) => {
+const openGame = (index: any) => {
   router.push({
     path: '/game',
     query: {
@@ -320,6 +319,29 @@ const goBack = () => {
   }
 }
 
+// 切换主题
+const changeThemeFu = () => {
+  const newTheme = store.dataAll.sceneList.find((item: any) => {
+    return item.id == store.customThemeId
+  })
+  if (newTheme) {
+    animalZhenShuNumber.value = newTheme.xuliezhen[animalStat.value].zhenShu
+    duration.value = newTheme.xuliezhen[animalStat.value].duration
+  }
+}
+
+// 当自主变换主题时候,帧数也对应发生改变
+watch(() => store.customThemeId, () => {
+  console.log('主题发生改变')
+  const newTheme = store.dataAll.sceneList.find((item: any) => {
+    return item.id == store.customThemeId
+  })
+  if (newTheme) {
+    animalZhenShuNumber.value = newTheme.xuliezhen[animalStat.value].zhenShu
+    duration.value = newTheme.xuliezhen[animalStat.value].duration
+  }
+})
+
 
 onMounted(() => {
   getAllHotspot()
@@ -336,8 +358,13 @@ onMounted(() => {
   // greeting-招呼 idle-静默 talk-说话
   window.handleRobot = (state: string) => {
     animalStat.value = state
-    animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
-    duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+    if (store.customThemeId) {
+      // 如果有切换过,序列帧换成所选主题
+      changeThemeFu()
+    } else {
+      animalZhenShuNumber.value = currentUnit.value.xuliezhen[animalStat.value].zhenShu
+      duration.value = currentUnit.value.xuliezhen[animalStat.value].duration
+    }
     setTimeout(() => {
       isReady.value = true
     }, 500)
@@ -376,6 +403,16 @@ onMounted(() => {
     })
   }
 
+  // 跳转到游戏兑换页面
+  window.openPricePageFu = () => {
+    router.push({
+      path: 'homePageMo',
+      query: {
+        src: '/game/index.html#/shop-view?no-redirect=1'
+      }
+    })
+  }
+
   checkLoginStatus()
 
   // 监听是否登录
@@ -431,15 +468,19 @@ onMounted(() => {
 
   }
 
-  // 热点跳转展厅
+  // 热点跳转展厅/游戏
   window.changeUnitByHot = (v: string, point: string) => {
-    const unit = store.hotspots.find((item: any) => {
-      return item.code == v
-    })
+    if (v === 'game') {
+      openGame(parseInt(point) - 1)
+    } else {
+      const unit = store.hotspots.find((item: any) => {
+        return item.code == v
+      })
 
-    if (unit) {
-      changeUnit(unit)
-      pointInfo.value = point
+      if (unit) {
+        changeUnit(unit)
+        pointInfo.value = point
+      }
     }
   }
 
@@ -484,9 +525,9 @@ const changePassFu = () => {
     <!-- <iframe id="sceneiframe" :src="`./scene/index.html?m=${currentUnit.code}`"></iframe> -->
     <!-- 热点列表 -->
     <div v-show="isShowHosList" class="hots-box">
-      <img v-show="browser.mobile" @click="() => { isShowHosList = false; isShowFigure = true }" class="close-icon"
-        src="@/assets/images/close-icon.png" alt="">
-      <div v-show="browser.mobile" class="show-title">行业公益力量展</div>
+      <img v-show="browser.mobile" @click="() => { clostHotListFu(); isShowFigure = true }" class="close-icon"
+        src="@/assets/images/close-icon-red.png" alt="">
+      <!-- <div v-show="browser.mobile" class="show-title">行业公益力量展</div> -->
       <div class="hots-box-left">
         <div class="left-item" :style="{ background: currentHotsUnit.unit == item.unit ? '#66141885' : '' }"
           v-for="(item, index) in store.hotspots" :key="index" @click="() => { currentHotsUnit = item }">{{
@@ -494,13 +535,13 @@ const changePassFu = () => {
           }}</div>
       </div>
       <div class="hots-box-right">
-        <img v-show="!browser.mobile" @click="isShowHosList = false" class="close-icon"
-          src="@/assets/images/close-icon.png" alt="">
+        <img v-show="!browser.mobile" @click="clostHotListFu()" class="close-icon" src="@/assets/images/close-icon.png"
+          alt="">
         <div class="right-content">
           <div v-show="JSON.stringify(currentUnit.hots) == '{}'" class="right-item">暂无热点</div>
           <div class="right-item" :title="item.title" v-for="(item, index) in currentHotsUnit.hots" :key="index"
             @click="goHotCamarer(item)" :style="{ color: currentHot.sid == item.sid ? '#C5A16C' : '' }">
-            <div :class="item.title.length > 8 ? 'gundong' : ''">{{ item.title }}</div>
+            <div :class="!browser.mobile ? item.title.length > 8 ? 'gundong' : '' : 'mobileMo'">{{ item.title }}</div>
           </div>
         </div>
       </div>
@@ -509,10 +550,10 @@ const changePassFu = () => {
       <!-- 形象人 -->
       <!-- 招呼状态 -->
       <div class="xuliezhen-greeting" v-show="isReady && animalStat == 'greeting'" @click="xingxiangListShow = true"
-        :style="{ backgroundImage: `url(${baseResourceUrl}/animation/${currentUnit.id}/greeting.png)`, backgroundSize: 'cover' }">
+        :style="{ backgroundImage: `url(${baseResourceUrl}/animation/${store.customThemeId != null ? store.customThemeId : currentUnit.id}/greeting.png)`, backgroundSize: 'cover' }">
       </div>
       <div class="xuliezhen-talk" v-show="isReady && animalStat == 'talk'" @click="xingxiangListShow = true"
-        :style="{ backgroundImage: `url(${baseResourceUrl}/animation/${currentUnit.id}/talk.png)`, backgroundSize: 'cover' }">
+        :style="{ backgroundImage: `url(${baseResourceUrl}/animation/${store.customThemeId != null ? store.customThemeId : currentUnit.id}/talk.png)`, backgroundSize: 'cover' }">
       </div>
       <!-- 积分牌 -->
       <div class="score-box" v-if="isReady" @click="goDetail()">
@@ -530,14 +571,6 @@ const changePassFu = () => {
         <!-- 退出登录 -->
         <div class="user-box" v-if="isShowUserBox">
           <div @click="logout()">退出登录</div>
-          <!-- <div @click="!browser.mobile ? () => { isPassChange = true; oldPass = ''; newPass = ''; affirmPass = '' } : () => {
-            router.push({
-              path: 'homePageMo',
-              query: {
-                src: '/game/index.html#/change-password?no-redirect=1'
-              }
-            })
-          }">修改密码</div> -->
           <div @click="changePassFu()">修改密码</div>
           <div @click="() => {
             router.push({
@@ -547,16 +580,31 @@ const changePassFu = () => {
               }
             })
           }">奖品兑换</div>
-
         </div>
       </div>
-      <!-- 形象listBox -->
-      <div class="xulielistBox" v-show="xingxiangListShow">
-        <img v-show="browser.mobile" @click="isShowHosList = false" class="close-icon"
-          src="@/assets/images/close-icon.png" alt="">
-        <div class="item" v-for="(item, index) in store.hotspots" :key="index" @click="changeUnit(item)">{{ item.unit }}
+      <!-- 形象切换listBox -->
+      <div class="xulielistBox" v-show="xingxiangListShow && !browser.mobile">
+        <img @click="xingxiangListShow = false" class="close-icon" src="@/assets/images/close-icon.png" alt="">
+        <div class="item" v-for="(item, index) in store.dataAll.themeList" :key="index"
+          @click="() => { store.customThemeId = item.id; xingxiangListShow = false }">{{
+            item.unit }}
         </div>
       </div>
+
+      <div class="xulielistBox" v-show="xingxiangListShow && browser.mobile">
+        <div class="content-box">
+          <img @click="xingxiangListShow = false" class="close-icon" src="@/assets/images/close-icon.png" alt="">
+          <div class="item" v-for="(item, index) in store.dataAll.themeList" :key="index"
+            @click="() => { store.customThemeId = item.id }">{{
+              item.unit }}
+          </div>
+        </div>
+        <!-- 形象切换序列帧 -->
+        <div class="xuliezhen-greeting changing"
+          :style="{ backgroundImage: `url(${baseResourceUrl}/animation/${store.customThemeId != null ? store.customThemeId : currentUnit.id}/greeting.png)`, backgroundSize: 'cover' }">
+        </div>
+        <div></div>
+      </div>
     </div>
 
     <!-- 游戏列表弹窗 -->
@@ -571,7 +619,7 @@ const changePassFu = () => {
     </div>
 
     <!-- 游戏体验弹窗 -->
-    <div class="game-list-box" v-if="isShowExperienceGame && currentUnit.gameId !== null">
+    <!-- <div class="game-list-box" v-if="isShowExperienceGame && currentUnit.gameId !== null">
       <img class="game-ex-themb"
         :src="`${baseResourceUrl}/game/${browser.mobile ? 'mobile/' : 'pc/'}${!browser.mobile ? currentUnit.gameId : currentUnit.gameId + 'g'}.png`"
         alt="">
@@ -579,7 +627,7 @@ const changePassFu = () => {
         <div>立即体验</div>
       </div>
       <img src="@/assets/images/close-icon.png" class="close-icon" @click="isShowExperienceGame = false" alt="">
-    </div>
+    </div> -->
 
     <!-- 登录iframe -->
     <div v-if="isShowLogon" class="game-page">
@@ -765,6 +813,10 @@ const changePassFu = () => {
       backdrop-filter: blur(10px);
       border-radius: 15px 0 0 0;
 
+      @media screen and (max-width:700) {
+        border-radius: 0 0 0 0;
+      }
+
 
       &::-webkit-scrollbar {
         display: none;
@@ -790,6 +842,10 @@ const changePassFu = () => {
 
       .left-item:first-child {
         border-radius: 15px 0 0 0;
+
+        @media screen and (max-width:700) {
+          border-radius: 0 0 0 0;
+        }
       }
     }
 
@@ -931,7 +987,38 @@ const changePassFu = () => {
     }
 
     .xulielistBox {
-      display: none;
+      position: fixed;
+      bottom: 160px;
+      right: 200px;
+      background: #BC121A;
+      border-radius: 10px;
+      padding: 20px 0;
+
+      .item {
+        // width: 100%;
+        height: 5vh;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        font-size: 14px;
+        color: #ffffff;
+        font-family: 'AlibabaPuHuiTi2.0-105Heavy';
+        text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.6);
+        cursor: pointer;
+        padding: 0 20px;
+      }
+
+      .item:hover {
+        background: #7c0e14;
+      }
+
+      .close-icon {
+        position: absolute;
+        right: -20px;
+        top: -20px;
+        cursor: pointer;
+      }
+
     }
 
     .score-box {
@@ -956,9 +1043,6 @@ const changePassFu = () => {
         width: 75%;
       }
 
-      div:first-child {
-        // margin-top: 2px;
-      }
 
       .user-box {
         width: 100px;
@@ -1138,6 +1222,11 @@ const changePassFu = () => {
       justify-content: flex-end;
       align-items: flex-end;
 
+      .close-icon {
+        width: 40px;
+        height: 40px;
+      }
+
       .show-title {
         width: 100%;
         height: 15vh;
@@ -1157,8 +1246,13 @@ const changePassFu = () => {
       }
 
       &-left {
-        height: 80%;
+        height: 100%;
         background: #BC121A;
+        border-radius: 0 0 0 0;
+
+        display: flex;
+        flex-direction: column;
+        justify-content: space-around;
 
 
 
@@ -1167,9 +1261,10 @@ const changePassFu = () => {
         }
 
         .left-item {
-          height: 15%;
+          // height: 15%;
           font-size: 1em;
 
+
           &:hover {
             background: #66141885;
           }
@@ -1178,14 +1273,15 @@ const changePassFu = () => {
         }
 
         .left-item:first-child {
-          border-radius: 15px 0 0 0;
+          border-radius: 0 0 0 0;
+
         }
       }
 
       &-right {
-        width: 65%;
-        height: 80%;
-        padding: 0 20px;
+        width: 70%;
+        height: 100%;
+        padding: 0 10px;
         box-sizing: border-box;
 
         // .close-icon {}
@@ -1199,28 +1295,42 @@ const changePassFu = () => {
           display: flex;
           justify-content: left;
           align-items: center;
-          white-space: nowrap;
+          white-space: inherit;
           overflow: hidden;
           text-overflow: ellipsis;
-          font-size: 1em;
+          font-size: 0.9em;
           cursor: pointer;
           font-family: 'Courier New';
 
-          .gundong {
+          .mobileMo {
             width: 100%;
-            animation: identifier 8s linear infinite;
+            display: -webkit-box;
+            -webkit-box-orient: vertical;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            -webkit-line-clamp: 2;
+            /* 显示两行 */
+            line-height: 1.2;
+            /* 设置行高,根据需要调整 */
+            max-height: 2.4em;
+            /* 设置最大高度,根据需要调整 */
           }
 
-          @keyframes identifier {
+          // .gundong {
+          //   width: 100%;
+          //   animation: identifier 8s linear infinite;
+          // }
 
-            0% {
-              transform: translateX(100%);
-            }
+          // @keyframes identifier {
 
-            100% {
-              transform: translateX(-100%);
-            }
-          }
+          //   0% {
+          //     transform: translateX(100%);
+          //   }
+
+          //   100% {
+          //     transform: translateX(-100%);
+          //   }
+          // }
 
           &:hover {
             color: #C5A16C;
@@ -1320,7 +1430,59 @@ const changePassFu = () => {
       }
 
       .xulielistBox {
-        display: none;
+        width: 100%;
+        height: 100%;
+        position: fixed;
+        top: 0;
+        left: 0;
+        background: rgba(0, 0, 0, 0.692);
+        backdrop-filter: blur(10px);
+
+        .content-box {
+          position: absolute;
+          top: 40%;
+          left: 50%;
+          transform: translate(-50%, -50%);
+          background: #bc121ba9;
+          border-radius: 10px;
+          padding: 20px 0;
+          box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.6);
+          // opacity: 0.7;
+
+          .item {
+            height: 8vh;
+            font-size: 1em;
+            padding: 0 40px;
+          }
+        }
+
+
+        .changing {
+          position: absolute;
+          right: -10px;
+          bottom: 100px;
+          width: 200px;
+          height: 200px;
+          background-position-x: 0;
+          background-repeat: no-repeat;
+          // animation-name: xuliezhen-animation;
+          animation-name: xuliezhen-animation-mo;
+          animation-timing-function: v-bind('animalZhenShu');
+          animation-duration: v-bind('duration');
+          animation-iteration-count: infinite;
+          transition-property: bottom;
+          cursor: pointer;
+        }
+
+        @keyframes xuliezhen-animation-mo {
+          50% {
+            background-position-x: 0;
+          }
+
+          100% {
+            background-position-x: v-bind('translateXNumberChange');
+          }
+        }
       }
 
       .score-box {
@@ -1352,5 +1514,4 @@ const changePassFu = () => {
     }
   }
 
-}
-</style>
+}</style>

+ 1 - 6
zhengquan/src/views/WelcomePage/WelcomePage.vue

@@ -10,11 +10,6 @@ import sponsorImgMo from '../../assets/images/welcome/sponsorMo.png'
 
 
 const router = useRouter()
-const goExport = () => {
-  router.push({
-    path: '/home'
-  })
-}
 
 const countDownNumber = ref(5)
 
@@ -33,7 +28,7 @@ onMounted(() => {
 </script>
 
 <template>
-  <div class='welcome-page' @click="goExport()"
+  <div class='welcome-page'
     :style="{ background: `url(${browser.mobile ? bgImgMo : bgImg})`, backgroundSize: `${browser.mobile ? 'cover' : '100% 100%'}`, backgroundPosition: browser.mobile ? 'center' : '' }">
     <img class="logo" src="@/assets/images/logo.png" alt="">
     <div class="center-box"