\r\n+
\r\n \r\n+ \r\n
\r\n );\r\n };\r\n \r\n"
+ },
+ {
+ "date": 1689779563481,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,17 +1,19 @@\n import React from \"react\";\r\n import { EmptyPage } from \"../../../../components\";\r\n import style from \"./style.module.scss\";\r\n+import { useNavigate } from \"react-router-dom\";\r\n \r\n const Index: React.FC = () => {\r\n+ const navigate = useNavigate()\r\n return (\r\n
\r\n \r\n- \r\n+ \r\n
\r\n );\r\n };\r\n \r\n"
+ }
+ ],
+ "date": 1689779124590,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\nimport { EmptyPage } from \"../../../../components\";\r\n\r\nconst Index: React.FC = () => {\r\n return
\r\n\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/myPatientCircle/index/style.module.scss.json b/.lh/src/views/my/myPatientCircle/index/style.module.scss.json
new file mode 100644
index 0000000..c342a2c
--- /dev/null
+++ b/.lh/src/views/my/myPatientCircle/index/style.module.scss.json
@@ -0,0 +1,30 @@
+{
+ "sourceFile": "src/views/my/myPatientCircle/index/style.module.scss",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 3,
+ "patches": [
+ {
+ "date": 1689779281662,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689779411911,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -0,0 +1,12 @@\n+.myPatientCircle{\r\n+ position: relative;\r\n+\r\n+ .btn_publish{\r\n+ width: 300px;\r\n+ height: 36px;\r\n+ font-size: 14px;\r\n+ color: #fff;\r\n+ border-radius: 4px;\r\n+ background-color: var(--primary--color);\r\n+ }\r\n+}\n\\ No newline at end of file\n"
+ },
+ {
+ "date": 1689779431978,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -7,6 +7,8 @@\n font-size: 14px;\r\n color: #fff;\r\n border-radius: 4px;\r\n background-color: var(--primary--color);\r\n+ text-align: center;\r\n+ line-height: 36px;\r\n }\r\n }\r\n"
+ },
+ {
+ "date": 1689779480547,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -6,9 +6,9 @@\n height: 36px;\r\n font-size: 14px;\r\n color: #fff;\r\n border-radius: 4px;\r\n- background-color: var(--primary--color);\r\n+ background-color: var(--primary-color);\r\n text-align: center;\r\n line-height: 36px;\r\n }\r\n }\r\n"
+ }
+ ],
+ "date": 1689779281662,
+ "name": "Commit-0",
+ "content": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/payVideo/index.tsx.json b/.lh/src/views/my/payVideo/index.tsx.json
new file mode 100644
index 0000000..b2ebc63
--- /dev/null
+++ b/.lh/src/views/my/payVideo/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/payVideo/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689778951449,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689925370989,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,15 +1,25 @@\n import React from \"react\";\r\n import { EmptyPage } from \"../../../components\";\r\n+import style from './style.module.scss'\r\n+import { useRequest } from \"ahooks\";\r\n+import { getUserVideoBuyList } from \"../../../api/my\";\r\n+import { useAppSelector } from \"../../../store/hooks\";\r\n \r\n const Index: React.FC = () => {\r\n+ const userId = useAppSelector(state => state.user.userInfo.userId)\r\n+ const sessionId = useAppSelector(state => state.user.userInfo.sessionId)\r\n+ const {data:userVideoBuyList = []} = useRequest(async () => {\r\n+let resp = await getUserVideoBuyList(1,3,userId,sessionId)\r\n+ })\r\n return (\r\n
\r\n \r\n+\r\n
\r\n );\r\n };\r\n \r\n"
+ },
+ {
+ "date": 1689925388258,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -9,8 +9,9 @@\n const userId = useAppSelector((state) => state.user.userInfo.userId);\r\n const sessionId = useAppSelector((state) => state.user.userInfo.sessionId);\r\n const { data: userVideoBuyList = [] } = useRequest(async () => {\r\n let resp = await getUserVideoBuyList(1, 3, userId, sessionId);\r\n+ console.log('resp',resp)\r\n });\r\n return (\r\n
\r\n
{\r\n return \r\n \r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/proFile/addModifyProfile/index.tsx.json b/.lh/src/views/my/proFile/addModifyProfile/index.tsx.json
new file mode 100644
index 0000000..24ae78e
--- /dev/null
+++ b/.lh/src/views/my/proFile/addModifyProfile/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/proFile/addModifyProfile/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689390660383,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689390703915,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -4,9 +4,9 @@\n const Index: React.FC = () => {\r\n return (\r\n \r\n
\r\n- \r\n+ \r\n
\r\n
\r\n );\r\n };\r\n"
+ },
+ {
+ "date": 1689390742426,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -4,9 +4,9 @@\n const Index: React.FC = () => {\r\n return (\r\n \r\n
\r\n- \r\n+ \r\n
\r\n
\r\n );\r\n };\r\n"
+ }
+ ],
+ "date": 1689390660383,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\nimport { MyNavBar } from \"../../../../components\";\r\n\r\nconst Index: React.FC = () => {\r\n return ;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/proFile/addModifyProfile/style.module.scss.json b/.lh/src/views/my/proFile/addModifyProfile/style.module.scss.json
new file mode 100644
index 0000000..9a78296
--- /dev/null
+++ b/.lh/src/views/my/proFile/addModifyProfile/style.module.scss.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/proFile/addModifyProfile/style.module.scss",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689391110981,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689391130134,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,4 +1,8 @@\n .operateProFile {\r\n width: 100vw;\r\n height: 100vh;\r\n+\r\n+ .content {\r\n+ margin-top: 10px;\r\n+ }\r\n }\r\n"
+ },
+ {
+ "date": 1689391135720,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -3,6 +3,7 @@\n height: 100vh;\r\n \r\n .content {\r\n margin-top: 10px;\r\n+ background-color: #fff;\r\n }\r\n }\r\n"
+ }
+ ],
+ "date": 1689391110981,
+ "name": "Commit-0",
+ "content": ".operateProFile{\r\n width: 100vw;\r\n height: 100vh;\r\n}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/proFile/index/index.tsx.json b/.lh/src/views/my/proFile/index/index.tsx.json
new file mode 100644
index 0000000..80986fa
--- /dev/null
+++ b/.lh/src/views/my/proFile/index/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/proFile/index/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689298735701,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689298825620,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,8 +1,26 @@\n import React from \"react\";\r\n import { NavBar } from \"react-vant\";\r\n \r\n const Index: React.FC = () => {\r\n- return ;\r\n+ return \r\n+ \r\n+ export default () => {\r\n+ return (\r\n+
\r\n+ Toast('返回')}\r\n+ rightText={}\r\n+ onClickRight={() => Toast('按钮')}\r\n+ />\r\n+
\r\n+ \r\n+ )\r\n+ }\r\n+ \r\n+\r\n+
;\r\n };\r\n \r\n export default Index;\r\n"
+ },
+ {
+ "date": 1689298985039,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -2,25 +2,13 @@\n import { NavBar } from \"react-vant\";\r\n \r\n const Index: React.FC = () => {\r\n return \r\n- \r\n- export default () => {\r\n- return (\r\n-
\r\n- Toast('返回')}\r\n- rightText={}\r\n- onClickRight={() => Toast('按钮')}\r\n- />\r\n-
\r\n- \r\n- )\r\n- }\r\n- \r\n-\r\n+
{}}\r\n+ onClickRight={() => {}}\r\n+ />\r\n ;\r\n };\r\n \r\n export default Index;\r\n"
+ }
+ ],
+ "date": 1689298735701,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\nimport { NavBar } from \"react-vant\";\r\n\r\nconst Index: React.FC = () => {\r\n return \r\n \r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/proFile/index/style.module.scss.json b/.lh/src/views/my/proFile/index/style.module.scss.json
new file mode 100644
index 0000000..0e8f86f
--- /dev/null
+++ b/.lh/src/views/my/proFile/index/style.module.scss.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/proFile/index/style.module.scss",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689302394405,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689302401436,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,2 +1,2 @@\n-.btn-add {\r\n+.btn_add {\r\n }\r\n"
+ },
+ {
+ "date": 1689302477927,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,2 +1,8 @@\n .btn_add {\r\n+ width: 300px;\r\n+ height: 35px;\r\n+ text-align: center;\r\n+ line-height: 35px;\r\n+ background-color: #3087ea;\r\n+ border-radius: 8px;\r\n }\r\n"
+ }
+ ],
+ "date": 1689302394405,
+ "name": "Commit-0",
+ "content": ".btn-add{\r\n \r\n}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/register/index.tsx.json b/.lh/src/views/my/register/index.tsx.json
new file mode 100644
index 0000000..91c6d14
--- /dev/null
+++ b/.lh/src/views/my/register/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/register/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689316163366,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689316269087,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,5 @@\n-import React from \"react\";\r\n+import React ,{useState}from \"react\";\r\n \r\n const Index: React.FC = () => {\r\n const [email, setEmail] = useState(\"\");\r\n const [code, setCode] = useState(\"\");\r\n@@ -8,9 +8,9 @@\n console.log(e);\r\n };\r\n return (\r\n \r\n );\r\n };\r\n \r\n"
+ },
+ {
+ "date": 1689318191190,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -8,41 +8,9 @@\n console.log(e);\r\n };\r\n return (\r\n \r\n );\r\n };\r\n \r\n"
+ }
+ ],
+ "date": 1689316163366,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\n\r\nconst Index: React.FC = () => {\r\n const [email, setEmail] = useState(\"\");\r\n const [code, setCode] = useState(\"\");\r\n const [pwd, setPwd] = useState(\"\");\r\n const onSubmit = (e) => {\r\n console.log(e)\r\n }\r\n return ;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/my/register/style.module.scss.json b/.lh/src/views/my/register/style.module.scss.json
new file mode 100644
index 0000000..c4ca288
--- /dev/null
+++ b/.lh/src/views/my/register/style.module.scss.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/my/register/style.module.scss",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689344567215,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689344658551,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -106,32 +106,9 @@\n position: absolute;\r\n top: 182px;\r\n }\r\n \r\n- .btn_link {\r\n- width: 240px;\r\n- display: flex;\r\n- justify-content: space-between;\r\n- align-items: center;\r\n \r\n- .forgetPwd {\r\n- color: #fff;\r\n- font-size: 12px;\r\n- transform: scale(0.83);\r\n- }\r\n-\r\n- .registerNow_wrapper {\r\n- color: #fff;\r\n- font-size: 12px;\r\n- transform: scale(0.83);\r\n-\r\n- &.registerNow {\r\n- color: #fff;\r\n- font-size: 12px;\r\n- }\r\n- }\r\n- }\r\n-\r\n .bottom {\r\n position: absolute;\r\n bottom: 30px;\r\n \r\n"
+ },
+ {
+ "date": 1689344683441,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -106,43 +106,5 @@\n position: absolute;\r\n top: 182px;\r\n }\r\n \r\n- .bottom {\r\n- position: absolute;\r\n- bottom: 30px;\r\n-\r\n- .otherLogin {\r\n- display: flex;\r\n- align-items: center;\r\n-\r\n- .stroke_left {\r\n- display: inline-block;\r\n- width: 54px;\r\n- height: 1px;\r\n- background-color: #fff;\r\n- margin-left: 86px;\r\n- margin-right: 6px;\r\n- }\r\n-\r\n- .stroke_right {\r\n- display: inline-block;\r\n- width: 54px;\r\n- height: 1px;\r\n- background-color: #fff;\r\n- margin-right: 86px;\r\n- margin-left: 6px;\r\n- }\r\n-\r\n- .text {\r\n- color: #fff;\r\n- font-size: 12px;\r\n- }\r\n- }\r\n-\r\n- .weixinIcon {\r\n- margin-top: 10px;\r\n- width: 24px;\r\n- height: 24px;\r\n- }\r\n- }\r\n }\r\n"
+ }
+ ],
+ "date": 1689344567215,
+ "name": "Commit-0",
+ "content": ".login {\r\n width: 100vw;\r\n height: 100vh;\r\n background: url(../../../assets/images/image/hdpi/login_bg.png) no-repeat;\r\n background-size: 100%;\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n position: relative;\r\n \r\n .hand {\r\n margin-top: 46px;\r\n width: 64px;\r\n height: 64px;\r\n margin-bottom: 60px;\r\n }\r\n \r\n .content {\r\n width: 280px;\r\n height: 218px;\r\n background-color: #fff;\r\n border-radius: 3px;\r\n margin-bottom: 22px;\r\n position: relative;\r\n z-index: 1;\r\n \r\n .formItem_email {\r\n width: 220px;\r\n height: 35px;\r\n margin: 30px 0 10px 30px;\r\n display: flex;\r\n align-items: center;\r\n border-bottom: 1px solid #f2f2f2;\r\n \r\n .emailIcon {\r\n width: 24px;\r\n height: 24px;\r\n margin-right: 14px;\r\n }\r\n \r\n .emailInp {\r\n border: 0;\r\n height: 24px;\r\n &::-webkit-input-placeholder {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n }\r\n }\r\n \r\n .formItem_password {\r\n width: 220px;\r\n height: 35px;\r\n margin: 25px 0 36px 30px;\r\n display: flex;\r\n align-items: center;\r\n border-bottom: 1px solid #f2f2f2;\r\n \r\n .lockIcon {\r\n width: 24px;\r\n height: 24px;\r\n margin-right: 14px;\r\n }\r\n \r\n .pwdInp {\r\n border: 0;\r\n height: 24px;\r\n &::-webkit-input-placeholder {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n }\r\n \r\n .hideIcon {\r\n width: 16px;\r\n height: 16px;\r\n }\r\n }\r\n \r\n .btn_login {\r\n width: 230px;\r\n height: 36px;\r\n border-radius: 4px;\r\n background-color: #3087ea;\r\n font-size: 14px;\r\n color: #fff;\r\n border: 0;\r\n }\r\n }\r\n \r\n .shadow_one {\r\n width: 260px;\r\n height: 218px;\r\n border-radius: 3px;\r\n background-color: rgba($color: #fff, $alpha: 0.6);\r\n position: absolute;\r\n top: 176px;\r\n }\r\n \r\n .shadow_two {\r\n width: 240px;\r\n height: 218px;\r\n border-radius: 3px;\r\n background-color: rgba($color: #fff, $alpha: 0.3);\r\n position: absolute;\r\n top: 182px;\r\n }\r\n \r\n .btn_link {\r\n width: 240px;\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n \r\n .forgetPwd {\r\n color: #fff;\r\n font-size: 12px;\r\n transform: scale(0.83);\r\n }\r\n \r\n .registerNow_wrapper {\r\n color: #fff;\r\n font-size: 12px;\r\n transform: scale(0.83);\r\n \r\n &.registerNow {\r\n color: #fff;\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n \r\n .bottom {\r\n position: absolute;\r\n bottom: 30px;\r\n \r\n .otherLogin {\r\n display: flex;\r\n align-items: center;\r\n \r\n .stroke_left {\r\n display: inline-block;\r\n width: 54px;\r\n height: 1px;\r\n background-color: #fff;\r\n margin-left: 86px;\r\n margin-right: 6px;\r\n }\r\n \r\n .stroke_right {\r\n display: inline-block;\r\n width: 54px;\r\n height: 1px;\r\n background-color: #fff;\r\n margin-right: 86px;\r\n margin-left: 6px;\r\n }\r\n \r\n .text {\r\n color: #fff;\r\n font-size: 12px;\r\n }\r\n }\r\n \r\n .weixinIcon {\r\n margin-top: 10px;\r\n width: 24px;\r\n height: 24px;\r\n }\r\n }\r\n }\r\n "
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/bindBankCard/index.tsx.json b/.lh/src/views/set/bindBankCard/index.tsx.json
new file mode 100644
index 0000000..1a42e36
--- /dev/null
+++ b/.lh/src/views/set/bindBankCard/index.tsx.json
@@ -0,0 +1,18 @@
+{
+ "sourceFile": "src/views/set/bindBankCard/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 0,
+ "patches": [
+ {
+ "date": 1690275573158,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ }
+ ],
+ "date": 1690275573158,
+ "name": "Commit-0",
+ "content": "import React, { useState } from \"react\";\r\nimport { MyMack, MyNavBar } from \"../../../components\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport style from './style.module.scss'\r\nimport myIconCamera from \"../../../assets/images/icon/common resource/hdpi/my_icon_camera_n.png\"\r\nimport commonIconClose from \"../../../assets/images/icon/common resource/hdpi/common_icon_close_n.png\"\r\nimport bankCardFront from \"../../../assets/images/image/hdpi/bank_card_front.png\"\r\n\r\nconst Index: React.FC = () => {\r\n\r\n const navigate = useNavigate()\r\n\r\n const [isFlag, setIsFlag] = useState(false)\r\n\r\n return \r\n
navigate('/set/person/infomation')} style={{ backgroundColor: \"#fff\" }}>\r\n
\r\n
\r\n

\r\n
\r\n

setIsFlag(true)} />\r\n
点击拍摄/上传银行卡正面
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n {/* 蒙层 */}\r\n {\r\n isFlag &&
setIsFlag(false)} onConfirm={() => setIsFlag(false)}>\r\n }\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/changePassword/index.tsx.json b/.lh/src/views/set/changePassword/index.tsx.json
new file mode 100644
index 0000000..0cb112d
--- /dev/null
+++ b/.lh/src/views/set/changePassword/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/changePassword/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1690424913167,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1690424921342,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,5 @@\n-import React, { useState } from \"react\";\r\n+import React from \"react\";\r\n import style from \"./style.module.scss\";\r\n import { Button, Input, Form } from \"react-vant\";\r\n import { MyNavBar } from \"../../../components\";\r\n import { useNavigate } from \"react-router-dom\";\r\n"
+ },
+ {
+ "date": 1690425035997,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -12,9 +12,9 @@\n const navigate = useNavigate();\r\n const userId = useAppSelector((state) => state.user.userInfo.userId);\r\n const sessionId = useAppSelector((state) => state.user.userInfo.sessionId);\r\n const [form] = Form.useForm();\r\n- const state = useAppSelector((state) => console.log(\"state\", state));\r\n+ const state = useAppSelector((state) => state.user as any);\r\n \r\n const onFinish = async ({\r\n myPassword,\r\n setNewPassword,\r\n"
+ }
+ ],
+ "date": 1690424913167,
+ "name": "Commit-0",
+ "content": "import React, { useState } from \"react\";\r\nimport style from \"./style.module.scss\"\r\nimport { Button, Input, Form } from 'react-vant';\r\nimport { MyNavBar } from \"../../../components\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { encryptedData, publicKey } from \"../../../store/user/userSlice\";\r\nimport { Notify } from \"react-vant\";\r\nimport { putChangePassword } from \"../../../api/my\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/hooks\";\r\nimport { userQuit } from \"../../../store/user/userSlice\";\r\nconst Index: React.FC = () => {\r\n\r\n const navigate = useNavigate()\r\n const userId = useAppSelector((state) => state.user.userInfo.userId);\r\n const sessionId = useAppSelector((state) => state.user.userInfo.sessionId);\r\n const [form] = Form.useForm()\r\n const state=useAppSelector(state=>console.log('state',state)) \r\n \r\n \r\n const onFinish = async ({ myPassword, setNewPassword, verifyNewPassword }) => {\r\n const dispatch = useAppDispatch()\r\n if (myPassword && setNewPassword && verifyNewPassword) {\r\n if (setNewPassword === verifyNewPassword) {\r\n const encryptPwd = encryptedData(publicKey, setNewPassword) as string\r\n const oldPwd = encryptedData(publicKey, myPassword) as string\r\n const {message} = await putChangePassword(userId, sessionId, oldPwd, encryptPwd)\r\n \r\n if(message===\"修改成功\"){\r\n dispatch(userQuit(state))\r\n navigate(\"/login\")\r\n }\r\n } else {\r\n Notify.show({ type: \"danger\", message: \"两次密码不一致\" });\r\n }\r\n } else {\r\n Notify.show({ type: \"danger\", message: \"输入框不能为空\" });\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n navigate(\"/set\")} style={{ backgroundColor: \"#fff\" }}>\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/chooseGender/index.tsx.json b/.lh/src/views/set/chooseGender/index.tsx.json
new file mode 100644
index 0000000..8a4b4e5
--- /dev/null
+++ b/.lh/src/views/set/chooseGender/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/chooseGender/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1690976743783,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1690976857077,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -4,16 +4,16 @@\n import { useNavigate } from \"react-router-dom\";\r\n import boy from \"../../../assets/images/image/hdpi/boy.png\";\r\n import girl from \"../../../assets/images/image/hdpi/girl.png\";\r\n import selected from \"../../../assets/images/image/hdpi/selected.png\";\r\n-import { useAppSelector } from \"../../../store/hooks\";\r\n+import { useAppDispatch, useAppSelector } from \"../../../store/hooks\";\r\n import { updateUserSex } from \"../../../api/my\";\r\n import { Toast } from \"react-vant\";\r\n import { getUserInfo } from \"../../../store/user/userSlice\";\r\n \r\n const Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n-\r\n+ const dispatch = useAppDispatch()\r\n const sex = useAppSelector((state) => state.user.userInfo.sex);\r\n const userId = useAppSelector((state) => state.user.userInfo.userId);\r\n const sessionId = useAppSelector((state) => state.user.userInfo.sessionId);\r\n \r\n@@ -21,11 +21,11 @@\n \r\n const onUpdate = async () => {\r\n const resp = await updateUserSex(sexInd, userId, sessionId);\r\n const { message, status } = resp;\r\n- const res = await getUserInfo();\r\n- console.log(\"res\", res);\r\n+ \r\n if (status === \"0000\") {\r\n+ dispatch(getUserInfo({ userId: userId.toString(), sessionId }))\r\n Toast.success(message);\r\n navigate(\"/set/person/infomation\");\r\n }\r\n };\r\n"
+ },
+ {
+ "date": 1690977015906,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,5 @@\n-import React, { useEffect, useState } from \"react\";\r\n+import React, { useState } from \"react\";\r\n import style from \"./style.module.scss\";\r\n import { MyNavBar } from \"../../../components\";\r\n import { useNavigate } from \"react-router-dom\";\r\n import boy from \"../../../assets/images/image/hdpi/boy.png\";\r\n"
+ }
+ ],
+ "date": 1690976743783,
+ "name": "Commit-0",
+ "content": "import React, { useEffect, useState } from \"react\";\r\nimport style from './style.module.scss'\r\nimport { MyNavBar } from \"../../../components\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport boy from '../../../assets/images/image/hdpi/boy.png'\r\nimport girl from '../../../assets/images/image/hdpi/girl.png'\r\nimport selected from '../../../assets/images/image/hdpi/selected.png'\r\nimport { useAppSelector } from \"../../../store/hooks\";\r\nimport { updateUserSex } from \"../../../api/my\";\r\nimport { Toast } from \"react-vant\";\r\nimport { getUserInfo } from \"../../../store/user/userSlice\";\r\n\r\nconst Index: React.FC = () => {\r\n\r\n const navigate = useNavigate()\r\n \r\n const sex = useAppSelector((state) => state.user.userInfo.sex)\r\n const userId = useAppSelector((state) => state.user.userInfo.userId)\r\n const sessionId = useAppSelector((state) => state.user.userInfo.sessionId)\r\n\r\n const [sexInd, setSexInd] = useState(sex)\r\n\r\n const onUpdate = async () => {\r\n const resp = await updateUserSex(sexInd, userId, sessionId)\r\n const { message, status } = resp\r\n const res = await getUserInfo()\r\n console.log('res',res)\r\n if (status === '0000') {\r\n Toast.success(message)\r\n navigate('/set/person/infomation')\r\n }\r\n }\r\n\r\n return \r\n
onUpdate()}\r\n >完成}\r\n style={{ backgroundColor: \"#fff\" }}\r\n onClickLeft={() => navigate('/set/person/infomation')}\r\n >\r\n
\r\n
\r\n
setSexInd(1)}>\r\n

\r\n {\r\n sexInd === 1 &&

\r\n }\r\n
\r\n
男
\r\n
\r\n
\r\n
setSexInd(2)}>\r\n

\r\n {\r\n sexInd === 2 &&

\r\n }\r\n
\r\n
女
\r\n
\r\n
\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/index/index.tsx.json b/.lh/src/views/set/index/index.tsx.json
new file mode 100644
index 0000000..c712bb3
--- /dev/null
+++ b/.lh/src/views/set/index/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/index/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1690337200683,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1690423930855,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,32 +1,17 @@\n import React from \"react\";\r\n import style from \"./style.module.scss\";\r\n import { MyNavBar } from \"../../../components\";\r\n-<<<<<<< HEAD\r\n import myIconNext from \"../../../assets/images/icon/common resource/hdpi/my_icon_next_n.png\";\r\n-=======\r\n-import myIconNext from \"../../../assets/images/icon/common resource/hdpi/my_icon_next_n.png\"\r\n->>>>>>> 8b076d7e38f830a5ac77ca5d6d1bc6bcd2f83048\r\n import { useNavigate } from \"react-router-dom\";\r\n import { useAppSelector } from \"../../../store/hooks\";\r\n import { useRequest } from \"ahooks\";\r\n import { getUserInfoById } from \"../../../api/my\";\r\n \r\n const Index: React.FC = () => {\r\n-<<<<<<< HEAD\r\n const navigate = useNavigate();\r\n const userInfo = useAppSelector((state) => {\r\n return state.user.userInfo;\r\n-=======\r\n-\r\n- const navigate = useNavigate()\r\n- const userId = useAppSelector((state) => state.user.userInfo.userId)\r\n- const sessionId = useAppSelector((state) => state.user.userInfo.sessionId)\r\n-\r\n- const { data: userInfo = [] } = useRequest(async () => {\r\n- const resp = await getUserInfoById(userId, sessionId);\r\n- return resp.result;\r\n->>>>>>> 8b076d7e38f830a5ac77ca5d6d1bc6bcd2f83048\r\n });\r\n \r\n return (\r\n \r\n"
+ },
+ {
+ "date": 1690423953909,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -3,10 +3,8 @@\n import { MyNavBar } from \"../../../components\";\r\n import myIconNext from \"../../../assets/images/icon/common resource/hdpi/my_icon_next_n.png\";\r\n import { useNavigate } from \"react-router-dom\";\r\n import { useAppSelector } from \"../../../store/hooks\";\r\n-import { useRequest } from \"ahooks\";\r\n-import { getUserInfoById } from \"../../../api/my\";\r\n \r\n const Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n const userInfo = useAppSelector((state) => {\r\n"
+ }
+ ],
+ "date": 1690337200683,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\nimport style from './style.module.scss'\r\nimport { MyNavBar } from \"../../../components\";\r\nimport myIconNext from \"../../../assets/images/icon/common resource/hdpi/my_icon_next_n.png\"\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { useAppSelector } from \"../../../store/hooks\";\r\n\r\nconst Index: React.FC = () => {\r\n\r\n const navigate = useNavigate()\r\n const userInfo = useAppSelector((state) => {\r\n return state.user.userInfo;\r\n });\r\n\r\n\r\n return
\r\n
navigate(\"/my\")}\r\n >\r\n {/* 设置内容 */}\r\n
\r\n {/* 个人信息 */}\r\n
navigate(\"/set/person/infomation\")}>\r\n
\r\n {/* 用户头像 */}\r\n

\r\n {/* 用户名称 */}\r\n
{userInfo.nickName}
\r\n
\r\n

\r\n
\r\n {/* 修改密码 */}\r\n
navigate(\"/set/change/password\")}>\r\n
修改密码
\r\n

\r\n
\r\n\r\n
\r\n {/* 清除缓存 */}\r\n
\r\n
清除缓存
\r\n
\r\n
10M
\r\n

\r\n
\r\n
\r\n {/* 屏幕亮度 */}\r\n
navigate(\"/set/screen/brightness\")}>\r\n
屏幕亮度
\r\n

\r\n
\r\n {/* 版本检测 */}\r\n
navigate(\"/set/version/detection\")}>\r\n
版本检测
\r\n

\r\n
\r\n
\r\n\r\n
\r\n {/* 帮助中心 */}\r\n
\r\n
帮助中心
\r\n

\r\n
\r\n {/* 关于我们 */}\r\n
\r\n
关于我们
\r\n

\r\n
\r\n
\r\n\r\n {/* 邀请好友 */}\r\n
navigate(\"/set/invite/friends\")}>\r\n
邀请好友
\r\n

\r\n
\r\n {/* 退出登录 */}\r\n
navigate(\"/home\")}>退出登录
\r\n\r\n {/* 底部空白*/}\r\n
\r\n
\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/inviteFriends/index.tsx.json b/.lh/src/views/set/inviteFriends/index.tsx.json
new file mode 100644
index 0000000..e3959b9
--- /dev/null
+++ b/.lh/src/views/set/inviteFriends/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/inviteFriends/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689853794232,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689853839706,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,7 +1,8 @@\n import React from \"react\";\r\n import { MyNavBar } from \"../../../components\";\r\n import { useNavigate } from \"react-router-dom\";\r\n+import style from './style.module.scss'\r\n \r\n const Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n return (\r\n@@ -12,8 +13,9 @@\n leftArrow\r\n onClickLeft={() => navigate(\"/set\")}\r\n >\r\n
\r\n+ \r\n \r\n );\r\n };\r\n \r\n"
+ },
+ {
+ "date": 1689854030071,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -5,9 +5,9 @@\n \r\n const Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n return (\r\n-
\r\n+
\r\n
\r\n
{\r\n const navigate = useNavigate()\r\n return \r\n
\r\n navigate('/set')}>\r\n
\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/inviteFriends/style.module.scss.json b/.lh/src/views/set/inviteFriends/style.module.scss.json
new file mode 100644
index 0000000..7d97a46
--- /dev/null
+++ b/.lh/src/views/set/inviteFriends/style.module.scss.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/inviteFriends/style.module.scss",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689853933250,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1689853993667,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,9 @@\n-.content {\r\n+.wrapper {\r\n+ .content {\r\n background: url(\"../../../assets/images/image/hdpi/invitation_bg.png\")\r\n no-repeat;\r\n background-size: 100%;\r\n }\r\n+\r\n+}\r\n+\r\n"
+ },
+ {
+ "date": 1689854007842,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -1,5 +1,7 @@\n .wrapper {\r\n+ display: flex;\r\n+ flex-direction: column;\r\n .content {\r\n background: url(\"../../../assets/images/image/hdpi/invitation_bg.png\")\r\n no-repeat;\r\n background-size: 100%;\r\n"
+ }
+ ],
+ "date": 1689853933250,
+ "name": "Commit-0",
+ "content": ".content {\r\n background: url('../../../assets/images/image/hdpi/invitation_bg.png') no-repeat;\r\n background-size: 100%;\r\n}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/personInfomation/index.tsx.json b/.lh/src/views/set/personInfomation/index.tsx.json
new file mode 100644
index 0000000..ec1b0f9
--- /dev/null
+++ b/.lh/src/views/set/personInfomation/index.tsx.json
@@ -0,0 +1,26 @@
+{
+ "sourceFile": "src/views/set/personInfomation/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 2,
+ "patches": [
+ {
+ "date": 1689314238675,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ },
+ {
+ "date": 1690273957810,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -34,10 +34,8 @@\n \r\n
头像
\r\n

{\r\n setIsFlag(true)\r\n- console.log(isFlag)\r\n-\r\n }} />\r\n
\r\n {/* 昵称 */}\r\n navigate('/set/nickname')}>\r\n"
+ },
+ {
+ "date": 1690275484175,
+ "content": "Index: \n===================================================================\n--- \n+++ \n@@ -150,9 +150,9 @@\n {/* 底部空白 */}\r\n
\r\n
\r\n {/* 蒙层 */}\r\n- {isFlag && setIsFlag(false)}>}\r\n+ {isFlag && setIsFlag(false)} onConfirm={() => setIsFlag(false)}>}\r\n \r\n );\r\n };\r\n \r\n"
+ }
+ ],
+ "date": 1689314238675,
+ "name": "Commit-0",
+ "content": "import React from \"react\";\r\n\r\nconst Index: React.FC = () => {\r\n return
个人信息页面
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/set/realNameAuthentication/index.tsx.json b/.lh/src/views/set/realNameAuthentication/index.tsx.json
new file mode 100644
index 0000000..7204901
--- /dev/null
+++ b/.lh/src/views/set/realNameAuthentication/index.tsx.json
@@ -0,0 +1,18 @@
+{
+ "sourceFile": "src/views/set/realNameAuthentication/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 0,
+ "patches": [
+ {
+ "date": 1690275564255,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ }
+ ],
+ "date": 1690275564255,
+ "name": "Commit-0",
+ "content": "import React, { useState } from \"react\";\r\nimport { MyMack, MyNavBar } from \"../../../components\";\r\nimport style from \"./style.module.scss\"\r\nimport idCardFront from \"../../../assets/images/image/hdpi/id_card_front.png\"\r\nimport idCardBack from \"../../../assets/images/image/hdpi/id_card_back.png\"\r\nimport myIconCamera from \"../../../assets/images/icon/common resource/hdpi/my_icon_camera_n.png\"\r\nimport commonIconClose from \"../../../assets/images/icon/common resource/hdpi/common_icon_close_n.png\"\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nconst Index: React.FC = () => {\r\n\r\n const navigate = useNavigate()\r\n\r\n const [isFlag, setIsFlag] = useState(false)\r\n\r\n return
\r\n
navigate(\"/set/person/infomation\")}>\r\n
\r\n
\r\n
\r\n

\r\n
\r\n

setIsFlag(true)} />\r\n
点击拍摄/上传人像面
\r\n
\r\n

\r\n
\r\n
\r\n

\r\n
\r\n

setIsFlag(true)} />\r\n
点击拍摄/上传国徽面
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n {/* 蒙层 */}\r\n {\r\n isFlag &&
setIsFlag(false)} onConfirm={() => setIsFlag(false)}>\r\n }\r\n
\r\n
;\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/vedio/index.tsx.json b/.lh/src/views/vedio/index.tsx.json
new file mode 100644
index 0000000..554d1c2
--- /dev/null
+++ b/.lh/src/views/vedio/index.tsx.json
@@ -0,0 +1,18 @@
+{
+ "sourceFile": "src/views/vedio/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 0,
+ "patches": [
+ {
+ "date": 1690973999783,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ }
+ ],
+ "date": 1690973999783,
+ "name": "Commit-0",
+ "content": "import React, { useState } from \"react\";\r\nimport style from \"./style.module.scss\";\r\nimport { Swiper, Notify, Popup } from \"react-vant\";\r\nimport { useBoolean, useMount, useSetState, useUpdateEffect } from \"ahooks\";\r\nimport {\r\n VideoVoListParams,\r\n addCollectVedio,\r\n buyVedio,\r\n getCommentVedioList,\r\n getVideoCategoryList,\r\n getVideoVoList,\r\n} from \"../../api/vedio\";\r\n// import VideoJS from \"video.js\";\r\nimport playUrl from \"../../assets/images/icon/common resource/hdpi/common_icon_time_out_n.png\";\r\n\r\nimport payUrl from \"../../assets/images/icon/common resource/hdpi/common_icon_toll_n.png\";\r\nimport notCollectUrl from \"../../assets/images/icon/common resource/hdpi/common_button_collection_large_n.png\";\r\nimport collectUrl from \"../../assets/images/icon/common resource/hdpi/common_button_collection_large_s.png\";\r\nimport commentUrl from \"../../assets/images/icon/common resource/hdpi/common_icon_comment_large_n.png\";\r\nimport writeUrl from \"../../assets/images/icon/common resource/hdpi/common_icon_close_live_commenting_n.png\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { Barra, VedioInfo } from \"../../components\";\r\ninterface VedioTtilte {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface VedioList {\r\n // 摘要\r\n abstracts: string;\r\n // 已买数量\r\n buyNum: number;\r\n // 健康视频类目id\r\n categoryId: number;\r\n // 时长\r\n duration: number;\r\n // 健康视频id\r\n id: number;\r\n // 原始视频url\r\n originalUrl: string;\r\n // 单价\r\n price: number;\r\n // 剪切视频url(试看)\r\n shearUrl: string;\r\n // 标题\r\n title: string;\r\n // 购买 1已经收藏 2没收藏\r\n whetherBuy: number;\r\n // 收藏 1已经收藏 2没收藏\r\n whetherCollection: number;\r\n}\r\n\r\nconst vedioEls: HTMLVideoElement[] = [];\r\n\r\nconst Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n // 标题列表\r\n const [vedioListTitle, setVedioListTitle] = useState
([]);\r\n // 视频列表\r\n const [vedioList, setVedioList] = useState([]);\r\n // 当前播放位置\r\n const [currentIndex, setCurrentIndex] = useState(0);\r\n // 当前弹幕\r\n const [barrageList, setBarrageList] = useState([]);\r\n // 当前播放状态\r\n const [autoPlay, { setFalse, setTrue }] = useBoolean(false);\r\n // 请求参数\r\n const [params, setParams] = useSetState({\r\n categoryId: -1,\r\n count: 5,\r\n page: 1,\r\n });\r\n // 当前进度列表\r\n const [width, setWidth] = useState(\"0%\");\r\n // 获取视频列表\r\n const getVedioList = async () => {\r\n const resp = await getVideoVoList(params);\r\n setVedioList(resp.result);\r\n };\r\n // 获取当前位置弹幕视频弹幕\r\n const getVedioComment = async (i: number) => {\r\n const videoId = vedioList[i].id;\r\n const resp = await getCommentVedioList(videoId);\r\n const result = resp.result.map((v) => v.content).slice(0, 100);\r\n setBarrageList(result);\r\n };\r\n // 上下滑动事件\r\n const onChange = (nextIndex) => {\r\n vedioEls[currentIndex] && vedioEls[currentIndex].pause();\r\n setCurrentIndex(() => {\r\n autoPlay && vedioEls[nextIndex] && vedioEls[nextIndex].play();\r\n getVedioComment(nextIndex);\r\n return nextIndex;\r\n });\r\n };\r\n // 第一次开始播放\r\n const play = (i: number) => {\r\n setTrue();\r\n vedioEls[i].play();\r\n getVedioComment(i);\r\n };\r\n // 暂停\r\n const pause = (i: number) => {\r\n setFalse();\r\n vedioEls[i].pause();\r\n };\r\n // 收藏\r\n const oprationCollect = async (v: VedioList) => {\r\n if (v.whetherCollection === 2) {\r\n const { status, message } = await addCollectVedio(v.id);\r\n if (status === \"0000\") {\r\n Notify.show({ type: \"success\", message });\r\n getVedioList();\r\n } else if (status === \"9999\") {\r\n Notify.show({ type: \"danger\", message });\r\n }\r\n } else {\r\n console.log(\"没写取消\");\r\n }\r\n };\r\n // 购买视频\r\n const buy = async (v: VedioList) => {\r\n const { status, message } = await buyVedio(v.id, v.price);\r\n if (status === \"0000\") {\r\n Notify.show({ type: \"success\", message });\r\n } else if (status === \"9999\") {\r\n Notify.show({ type: \"danger\", message });\r\n }\r\n };\r\n // 购买视频底部弹框状态\r\n const [visible, setVisible] = useState(false);\r\n // 管看结束事件\r\n const onEnded = () => {\r\n console.log(\"结束\");\r\n };\r\n // 挂载事件\r\n useMount(async () => {\r\n const resp = await getVideoCategoryList();\r\n setVedioListTitle(resp.result);\r\n setParams({\r\n categoryId: resp.result[0].id,\r\n });\r\n });\r\n // id 更新\r\n useUpdateEffect(() => {\r\n if (params.categoryId) {\r\n getVedioList();\r\n }\r\n }, [params.categoryId]);\r\n\r\n return (\r\n \r\n {vedioList.length > 0 && (\r\n
onChange(i)}\r\n indicator={false}\r\n >\r\n {vedioList.map((v, i) => {\r\n return (\r\n \r\n \r\n {/* 视频 */}\r\n
\r\n {/* 弹幕 */}\r\n {autoPlay && barrageList.length > 0 && i === currentIndex && (\r\n
\r\n \r\n
\r\n )}\r\n {/* 播放按钮 */}\r\n

play(i)}\r\n style={{ display: autoPlay ? \"none\" : \"block\" }}\r\n />\r\n {/* 右侧icon */}\r\n
\r\n {v.whetherBuy === 1 ? (\r\n

\r\n ) : (\r\n

buy(v)} />\r\n )}\r\n

oprationCollect(v)}\r\n />\r\n

\r\n
\r\n {/* 上箭头 */}\r\n
{\r\n const el = vedioEls[currentIndex];\r\n el.currentTime = progerss * el.duration;\r\n }}\r\n >\r\n
\r\n \r\n );\r\n })}\r\n \r\n )}\r\n\r\n
setVisible(false)} position=\"bottom\">\r\n 内容
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.lh/src/views/wallet/myWallet/index.tsx.json b/.lh/src/views/wallet/myWallet/index.tsx.json
new file mode 100644
index 0000000..d5a54c6
--- /dev/null
+++ b/.lh/src/views/wallet/myWallet/index.tsx.json
@@ -0,0 +1,18 @@
+{
+ "sourceFile": "src/views/wallet/myWallet/index.tsx",
+ "activeCommit": 0,
+ "commits": [
+ {
+ "activePatchIndex": 0,
+ "patches": [
+ {
+ "date": 1689780598208,
+ "content": "Index: \n===================================================================\n--- \n+++ \n"
+ }
+ ],
+ "date": 1689780598208,
+ "name": "Commit-0",
+ "content": "import React, { useRef } from \"react\";\r\nimport { useRequest } from \"ahooks\";\r\nimport style from \"./style.module.scss\";\r\nimport { getConsumptionFormatText } from \"../../../utils/formatType\";\r\nimport { MyNavBar } from \"../../../components\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport { dateFormat } from \"../../../utils/formatTime\";\r\nimport { getRecordList, getUserWallet } from \"../../../api/wallet\";\r\n\r\ninterface RecordListState {\r\n direction: number;\r\n type: number;\r\n changeNum: number;\r\n remark: string;\r\n createTime: number;\r\n}\r\n\r\nconst Index: React.FC = () => {\r\n const navigate = useNavigate();\r\n\r\n // 钱包请求hooks\r\n const { data: walletData = 0 } = useRequest(async () => {\r\n const resp = await getUserWallet();\r\n return resp.result;\r\n });\r\n\r\n // 查询用户消费记录接口参数\r\n const recordParams = useRef({\r\n page: 1,\r\n count: 10,\r\n });\r\n // 用户消费记录请求hooks\r\n const { data: RecordData = [] } = useRequest(\r\n async () => {\r\n const resp = await getRecordList(recordParams.current);\r\n return resp.result;\r\n }\r\n );\r\n\r\n return (\r\n \r\n {/* 顶部钱包-余额-操作 */}\r\n
\r\n {/* 导航栏 */}\r\n
{\r\n console.log(1);\r\n }}\r\n >\r\n {/* 钱包 */}\r\n
\r\n
\r\n {/* 余额 H币 */}\r\n
\r\n {walletData}\r\n {/* 1500 */}\r\n \r\n
H币
\r\n
\r\n
\r\n {/* 提现规则 */}\r\n
满2000H币可提现
\r\n\r\n {/* 操作按钮 */}\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n {/* 底部-消费记录 */}\r\n
\r\n
\r\n
\r\n {RecordData.map((item) => {\r\n return (\r\n - \r\n
\r\n {getConsumptionFormatText(item.type)}\r\n {dateFormat(item.createTime, \"yyyy.MM.dd\")}\r\n
\r\n \r\n \r\n {item.direction === 1 ? \"+\" : \"\"}\r\n {item.changeNum}\r\n H币\r\n \r\n
\r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default Index;\r\n"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/README.en.md b/README.en.md
new file mode 100644
index 0000000..c415c5e
--- /dev/null
+++ b/README.en.md
@@ -0,0 +1,36 @@
+# s_wangzhan_project
+
+#### Description
+{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
+
+#### Software Architecture
+Software architecture description
+
+#### Installation
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Instructions
+
+1. xxxx
+2. xxxx
+3. xxxx
+
+#### Contribution
+
+1. Fork the repository
+2. Create Feat_xxx branch
+3. Commit your code
+4. Create Pull Request
+
+
+#### Gitee Feature
+
+1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
+2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
+3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
+4. The most valuable open source project [GVP](https://gitee.com/gvp)
+5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
+6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..553073f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+# 技术栈
+- react
+- react-router-dom
+- redux-toolkit
+- axios + mock
+- react-vant
+- hooks + typescript
diff --git a/commitlint.config.js b/commitlint.config.js
new file mode 100644
index 0000000..a4f4369
--- /dev/null
+++ b/commitlint.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ['@commitlint/config-conventional']
+}
diff --git a/config/env.js b/config/env.js
new file mode 100644
index 0000000..ffa7e49
--- /dev/null
+++ b/config/env.js
@@ -0,0 +1,104 @@
+'use strict';
+
+const fs = require('fs');
+const path = require('path');
+const paths = require('./paths');
+
+// Make sure that including paths.js after env.js will read .env variables.
+delete require.cache[require.resolve('./paths')];
+
+const NODE_ENV = process.env.NODE_ENV;
+if (!NODE_ENV) {
+ throw new Error(
+ 'The NODE_ENV environment variable is required but was not specified.'
+ );
+}
+
+// https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use
+const dotenvFiles = [
+ `${paths.dotenv}.${NODE_ENV}.local`,
+ // Don't include `.env.local` for `test` environment
+ // since normally you expect tests to produce the same
+ // results for everyone
+ NODE_ENV !== 'test' && `${paths.dotenv}.local`,
+ `${paths.dotenv}.${NODE_ENV}`,
+ paths.dotenv,
+].filter(Boolean);
+
+// Load environment variables from .env* files. Suppress warnings using silent
+// if this file is missing. dotenv will never modify any environment variables
+// that have already been set. Variable expansion is supported in .env files.
+// https://github.com/motdotla/dotenv
+// https://github.com/motdotla/dotenv-expand
+dotenvFiles.forEach(dotenvFile => {
+ if (fs.existsSync(dotenvFile)) {
+ require('dotenv-expand')(
+ require('dotenv').config({
+ path: dotenvFile,
+ })
+ );
+ }
+});
+
+// We support resolving modules according to `NODE_PATH`.
+// This lets you use absolute paths in imports inside large monorepos:
+// https://github.com/facebook/create-react-app/issues/253.
+// It works similar to `NODE_PATH` in Node itself:
+// https://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
+// Note that unlike in Node, only *relative* paths from `NODE_PATH` are honored.
+// Otherwise, we risk importing Node.js core modules into an app instead of webpack shims.
+// https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421
+// We also resolve them to make sure all tools using them work consistently.
+const appDirectory = fs.realpathSync(process.cwd());
+process.env.NODE_PATH = (process.env.NODE_PATH || '')
+ .split(path.delimiter)
+ .filter(folder => folder && !path.isAbsolute(folder))
+ .map(folder => path.resolve(appDirectory, folder))
+ .join(path.delimiter);
+
+// Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be
+// injected into the application via DefinePlugin in webpack configuration.
+const REACT_APP = /^REACT_APP_/i;
+
+function getClientEnvironment(publicUrl) {
+ const raw = Object.keys(process.env)
+ .filter(key => REACT_APP.test(key))
+ .reduce(
+ (env, key) => {
+ env[key] = process.env[key];
+ return env;
+ },
+ {
+ // Useful for determining whether we’re running in production mode.
+ // Most importantly, it switches React into the correct mode.
+ NODE_ENV: process.env.NODE_ENV || 'development',
+ // Useful for resolving the correct path to static assets in `public`.
+ // For example,
.
+ // This should only be used as an escape hatch. Normally you would put
+ // images into the `src` and `import` them in code to get their paths.
+ PUBLIC_URL: publicUrl,
+ // We support configuring the sockjs pathname during development.
+ // These settings let a developer run multiple simultaneous projects.
+ // They are used as the connection `hostname`, `pathname` and `port`
+ // in webpackHotDevClient. They are used as the `sockHost`, `sockPath`
+ // and `sockPort` options in webpack-dev-server.
+ WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST,
+ WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH,
+ WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT,
+ // Whether or not react-refresh is enabled.
+ // It is defined here so it is available in the webpackHotDevClient.
+ FAST_REFRESH: process.env.FAST_REFRESH !== 'false',
+ }
+ );
+ // Stringify all values so we can feed into webpack DefinePlugin
+ const stringified = {
+ 'process.env': Object.keys(raw).reduce((env, key) => {
+ env[key] = JSON.stringify(raw[key]);
+ return env;
+ }, {}),
+ };
+
+ return { raw, stringified };
+}
+
+module.exports = getClientEnvironment;
diff --git a/config/getHttpsConfig.js b/config/getHttpsConfig.js
new file mode 100644
index 0000000..013d493
--- /dev/null
+++ b/config/getHttpsConfig.js
@@ -0,0 +1,66 @@
+'use strict';
+
+const fs = require('fs');
+const path = require('path');
+const crypto = require('crypto');
+const chalk = require('react-dev-utils/chalk');
+const paths = require('./paths');
+
+// Ensure the certificate and key provided are valid and if not
+// throw an easy to debug error
+function validateKeyAndCerts({ cert, key, keyFile, crtFile }) {
+ let encrypted;
+ try {
+ // publicEncrypt will throw an error with an invalid cert
+ encrypted = crypto.publicEncrypt(cert, Buffer.from('test'));
+ } catch (err) {
+ throw new Error(
+ `The certificate "${chalk.yellow(crtFile)}" is invalid.\n${err.message}`
+ );
+ }
+
+ try {
+ // privateDecrypt will throw an error with an invalid key
+ crypto.privateDecrypt(key, encrypted);
+ } catch (err) {
+ throw new Error(
+ `The certificate key "${chalk.yellow(keyFile)}" is invalid.\n${
+ err.message
+ }`
+ );
+ }
+}
+
+// Read file and throw an error if it doesn't exist
+function readEnvFile(file, type) {
+ if (!fs.existsSync(file)) {
+ throw new Error(
+ `You specified ${chalk.cyan(
+ type
+ )} in your env, but the file "${chalk.yellow(file)}" can't be found.`
+ );
+ }
+ return fs.readFileSync(file);
+}
+
+// Get the https config
+// Return cert files if provided in env, otherwise just true or false
+function getHttpsConfig() {
+ const { SSL_CRT_FILE, SSL_KEY_FILE, HTTPS } = process.env;
+ const isHttps = HTTPS === 'true';
+
+ if (isHttps && SSL_CRT_FILE && SSL_KEY_FILE) {
+ const crtFile = path.resolve(paths.appPath, SSL_CRT_FILE);
+ const keyFile = path.resolve(paths.appPath, SSL_KEY_FILE);
+ const config = {
+ cert: readEnvFile(crtFile, 'SSL_CRT_FILE'),
+ key: readEnvFile(keyFile, 'SSL_KEY_FILE'),
+ };
+
+ validateKeyAndCerts({ ...config, keyFile, crtFile });
+ return config;
+ }
+ return isHttps;
+}
+
+module.exports = getHttpsConfig;
diff --git a/config/jest/babelTransform.js b/config/jest/babelTransform.js
new file mode 100644
index 0000000..5b391e4
--- /dev/null
+++ b/config/jest/babelTransform.js
@@ -0,0 +1,29 @@
+'use strict';
+
+const babelJest = require('babel-jest').default;
+
+const hasJsxRuntime = (() => {
+ if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') {
+ return false;
+ }
+
+ try {
+ require.resolve('react/jsx-runtime');
+ return true;
+ } catch (e) {
+ return false;
+ }
+})();
+
+module.exports = babelJest.createTransformer({
+ presets: [
+ [
+ require.resolve('babel-preset-react-app'),
+ {
+ runtime: hasJsxRuntime ? 'automatic' : 'classic',
+ },
+ ],
+ ],
+ babelrc: false,
+ configFile: false,
+});
diff --git a/config/jest/cssTransform.js b/config/jest/cssTransform.js
new file mode 100644
index 0000000..8f65114
--- /dev/null
+++ b/config/jest/cssTransform.js
@@ -0,0 +1,14 @@
+'use strict';
+
+// This is a custom Jest transformer turning style imports into empty objects.
+// http://facebook.github.io/jest/docs/en/webpack.html
+
+module.exports = {
+ process() {
+ return 'module.exports = {};';
+ },
+ getCacheKey() {
+ // The output is always the same.
+ return 'cssTransform';
+ },
+};
diff --git a/config/jest/fileTransform.js b/config/jest/fileTransform.js
new file mode 100644
index 0000000..aab6761
--- /dev/null
+++ b/config/jest/fileTransform.js
@@ -0,0 +1,40 @@
+'use strict';
+
+const path = require('path');
+const camelcase = require('camelcase');
+
+// This is a custom Jest transformer turning file imports into filenames.
+// http://facebook.github.io/jest/docs/en/webpack.html
+
+module.exports = {
+ process(src, filename) {
+ const assetFilename = JSON.stringify(path.basename(filename));
+
+ if (filename.match(/\.svg$/)) {
+ // Based on how SVGR generates a component name:
+ // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6
+ const pascalCaseFilename = camelcase(path.parse(filename).name, {
+ pascalCase: true,
+ });
+ const componentName = `Svg${pascalCaseFilename}`;
+ return `const React = require('react');
+ module.exports = {
+ __esModule: true,
+ default: ${assetFilename},
+ ReactComponent: React.forwardRef(function ${componentName}(props, ref) {
+ return {
+ $$typeof: Symbol.for('react.element'),
+ type: 'svg',
+ ref: ref,
+ key: null,
+ props: Object.assign({}, props, {
+ children: ${assetFilename}
+ })
+ };
+ }),
+ };`;
+ }
+
+ return `module.exports = ${assetFilename};`;
+ },
+};
diff --git a/config/modules.js b/config/modules.js
new file mode 100644
index 0000000..d63e41d
--- /dev/null
+++ b/config/modules.js
@@ -0,0 +1,134 @@
+'use strict';
+
+const fs = require('fs');
+const path = require('path');
+const paths = require('./paths');
+const chalk = require('react-dev-utils/chalk');
+const resolve = require('resolve');
+
+/**
+ * Get additional module paths based on the baseUrl of a compilerOptions object.
+ *
+ * @param {Object} options
+ */
+function getAdditionalModulePaths(options = {}) {
+ const baseUrl = options.baseUrl;
+
+ if (!baseUrl) {
+ return '';
+ }
+
+ const baseUrlResolved = path.resolve(paths.appPath, baseUrl);
+
+ // We don't need to do anything if `baseUrl` is set to `node_modules`. This is
+ // the default behavior.
+ if (path.relative(paths.appNodeModules, baseUrlResolved) === '') {
+ return null;
+ }
+
+ // Allow the user set the `baseUrl` to `appSrc`.
+ if (path.relative(paths.appSrc, baseUrlResolved) === '') {
+ return [paths.appSrc];
+ }
+
+ // If the path is equal to the root directory we ignore it here.
+ // We don't want to allow importing from the root directly as source files are
+ // not transpiled outside of `src`. We do allow importing them with the
+ // absolute path (e.g. `src/Components/Button.js`) but we set that up with
+ // an alias.
+ if (path.relative(paths.appPath, baseUrlResolved) === '') {
+ return null;
+ }
+
+ // Otherwise, throw an error.
+ throw new Error(
+ chalk.red.bold(
+ "Your project's `baseUrl` can only be set to `src` or `node_modules`." +
+ ' Create React App does not support other values at this time.'
+ )
+ );
+}
+
+/**
+ * Get webpack aliases based on the baseUrl of a compilerOptions object.
+ *
+ * @param {*} options
+ */
+function getWebpackAliases(options = {}) {
+ const baseUrl = options.baseUrl;
+
+ if (!baseUrl) {
+ return {};
+ }
+
+ const baseUrlResolved = path.resolve(paths.appPath, baseUrl);
+
+ if (path.relative(paths.appPath, baseUrlResolved) === '') {
+ return {
+ src: paths.appSrc,
+ };
+ }
+}
+
+/**
+ * Get jest aliases based on the baseUrl of a compilerOptions object.
+ *
+ * @param {*} options
+ */
+function getJestAliases(options = {}) {
+ const baseUrl = options.baseUrl;
+
+ if (!baseUrl) {
+ return {};
+ }
+
+ const baseUrlResolved = path.resolve(paths.appPath, baseUrl);
+
+ if (path.relative(paths.appPath, baseUrlResolved) === '') {
+ return {
+ '^src/(.*)$': '/src/$1',
+ };
+ }
+}
+
+function getModules() {
+ // Check if TypeScript is setup
+ const hasTsConfig = fs.existsSync(paths.appTsConfig);
+ const hasJsConfig = fs.existsSync(paths.appJsConfig);
+
+ if (hasTsConfig && hasJsConfig) {
+ throw new Error(
+ 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.'
+ );
+ }
+
+ let config;
+
+ // If there's a tsconfig.json we assume it's a
+ // TypeScript project and set up the config
+ // based on tsconfig.json
+ if (hasTsConfig) {
+ const ts = require(resolve.sync('typescript', {
+ basedir: paths.appNodeModules,
+ }));
+ config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config;
+ // Otherwise we'll check if there is jsconfig.json
+ // for non TS projects.
+ } else if (hasJsConfig) {
+ config = require(paths.appJsConfig);
+ }
+
+ config = config || {};
+ const options = config.compilerOptions || {};
+
+ const additionalModulePaths = getAdditionalModulePaths(options);
+
+ return {
+ additionalModulePaths: additionalModulePaths,
+ webpackAliases: getWebpackAliases(options),
+ jestAliases: getJestAliases(options),
+ hasTsConfig,
+ };
+}
+
+module.exports = getModules();
diff --git a/config/paths.js b/config/paths.js
new file mode 100644
index 0000000..f0a6cd9
--- /dev/null
+++ b/config/paths.js
@@ -0,0 +1,77 @@
+'use strict';
+
+const path = require('path');
+const fs = require('fs');
+const getPublicUrlOrPath = require('react-dev-utils/getPublicUrlOrPath');
+
+// Make sure any symlinks in the project folder are resolved:
+// https://github.com/facebook/create-react-app/issues/637
+const appDirectory = fs.realpathSync(process.cwd());
+const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
+
+// We use `PUBLIC_URL` environment variable or "homepage" field to infer
+// "public path" at which the app is served.
+// webpack needs to know it to put the right
+
+
+
+
+
+
+