From 8f15bab3e227ffbabde93133f45a65479f2aeade Mon Sep 17 00:00:00 2001 From: kola-web Date: Wed, 22 Jul 2026 09:35:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api-doc/charlie.md | 46 +++ api-doc/psvt-patient-api-doc.md | 647 +++++++++++++++++++-------------- src/app.json | 12 +- src/app.ts | 16 +- src/components/pickerArea/index.scss | 10 +- src/components/pickerArea/index.wxml | 2 - src/components/popup/index.ts | 1 - src/components/popup/index.wxml | 4 +- src/components/uploadFile/index.wxml | 4 +- src/custom-tab-bar/index.wxml | 2 +- src/doc/pages/doc/index.ts | 120 ++---- src/doc/pages/doc/index.wxml | 26 +- src/doc/pages/doc1/index.scss | 21 +- src/doc/pages/doc1/index.ts | 31 +- src/doc/pages/doc2/index.json | 6 - src/doc/pages/doc2/index.scss | 3 - src/doc/pages/doc2/index.ts | 10 - src/doc/pages/doc2/index.wxml | 3 - src/doc/pages/doc3/index.json | 6 - src/doc/pages/doc3/index.scss | 3 - src/doc/pages/doc3/index.ts | 10 - src/doc/pages/doc3/index.wxml | 3 - src/doc/pages/doc4/index.json | 6 - src/doc/pages/doc4/index.scss | 3 - src/doc/pages/doc4/index.ts | 10 - src/doc/pages/doc4/index.wxml | 3 - src/doc/pages/doc5/index.json | 6 - src/doc/pages/doc5/index.scss | 3 - src/doc/pages/doc5/index.ts | 10 - src/doc/pages/doc5/index.wxml | 3 - src/images/tabbar/tabbar1-1-active.png | Bin 0 -> 2390 bytes src/images/tabbar/tabbar1-1.png | Bin 0 -> 1120 bytes src/images/tabbar/tabbar1-2-active.png | Bin 0 -> 2628 bytes src/images/tabbar/tabbar1-2.png | Bin 0 -> 1692 bytes src/images/tabbar/tabbar1-3-active.png | Bin 0 -> 2667 bytes src/images/tabbar/tabbar1-3.png | Bin 0 -> 1396 bytes src/images/tabbar/tabbar1-4-active.png | Bin 0 -> 2024 bytes src/images/tabbar/tabbar1-4.png | Bin 0 -> 791 bytes src/pages/articleDetail/index.wxml | 16 +- src/pages/changeTel/index.json | 4 + src/pages/changeTel/index.scss | 51 +++ src/pages/changeTel/index.ts | 91 +++++ src/pages/changeTel/index.wxml | 32 ++ src/pages/confirmInfo/index.json | 4 +- src/pages/confirmInfo/index.scss | 1 + src/pages/confirmInfo/index.ts | 72 +++- src/pages/confirmInfo/index.wxml | 127 ++----- src/pages/drugMap/index.wxml | 6 +- src/pages/followDetail/index.ts | 1 - src/pages/followDetail/index.wxml | 4 +- src/pages/followForm/index.ts | 1 - src/pages/followForm/index.wxml | 2 +- src/pages/health/index.ts | 1 - src/pages/health/index.wxml | 14 +- src/pages/heartDetail/index.ts | 1 - src/pages/heartDetail/index.wxml | 2 +- src/pages/heartForm/index.ts | 1 - src/pages/heartForm/index.wxml | 2 +- src/pages/hotTopic/index.ts | 1 - src/pages/hotTopic/index.wxml | 2 +- src/pages/hotTopicDetail/index.ts | 1 - src/pages/hotTopicDetail/index.wxml | 20 +- src/pages/index/index.ts | 1 - src/pages/index/index.wxml | 24 +- src/pages/login/index.scss | 47 ++- src/pages/login/index.ts | 113 +++++- src/pages/login/index.wxml | 36 +- src/pages/my/index.json | 3 +- src/pages/my/index.scss | 6 +- src/pages/my/index.ts | 126 +------ src/pages/my/index.wxml | 32 +- src/pages/myCollection/index.ts | 1 - src/pages/myCollection/index.wxml | 16 +- src/pages/myComment/index.ts | 1 - src/pages/myComment/index.wxml | 6 +- src/pages/myWall/index.ts | 1 - src/pages/myWall/index.wxml | 10 +- src/pages/userInfo/index.json | 7 +- src/pages/userInfo/index.scss | 18 +- src/pages/userInfo/index.ts | 261 +++++++++---- src/pages/userInfo/index.wxml | 76 ++-- src/pages/videoDetail/index.wxml | 8 +- src/pages/videoList/index.ts | 1 - src/pages/videoList/index.wxml | 12 +- src/pages/wall/index.ts | 1 - src/pages/wall/index.wxml | 22 +- src/pages/wallDetail/index.ts | 1 - src/pages/wallDetail/index.wxml | 34 +- src/pages/wallForm/index.ts | 1 - src/pages/wallForm/index.wxml | 18 +- src/pages/wechatWork/index.wxml | 16 +- 91 files changed, 1370 insertions(+), 1016 deletions(-) create mode 100644 api-doc/charlie.md delete mode 100644 src/doc/pages/doc2/index.json delete mode 100644 src/doc/pages/doc2/index.scss delete mode 100644 src/doc/pages/doc2/index.ts delete mode 100644 src/doc/pages/doc2/index.wxml delete mode 100644 src/doc/pages/doc3/index.json delete mode 100644 src/doc/pages/doc3/index.scss delete mode 100644 src/doc/pages/doc3/index.ts delete mode 100644 src/doc/pages/doc3/index.wxml delete mode 100644 src/doc/pages/doc4/index.json delete mode 100644 src/doc/pages/doc4/index.scss delete mode 100644 src/doc/pages/doc4/index.ts delete mode 100644 src/doc/pages/doc4/index.wxml delete mode 100644 src/doc/pages/doc5/index.json delete mode 100644 src/doc/pages/doc5/index.scss delete mode 100644 src/doc/pages/doc5/index.ts delete mode 100644 src/doc/pages/doc5/index.wxml create mode 100644 src/images/tabbar/tabbar1-1-active.png create mode 100644 src/images/tabbar/tabbar1-1.png create mode 100644 src/images/tabbar/tabbar1-2-active.png create mode 100644 src/images/tabbar/tabbar1-2.png create mode 100644 src/images/tabbar/tabbar1-3-active.png create mode 100644 src/images/tabbar/tabbar1-3.png create mode 100644 src/images/tabbar/tabbar1-4-active.png create mode 100644 src/images/tabbar/tabbar1-4.png create mode 100644 src/pages/changeTel/index.json create mode 100644 src/pages/changeTel/index.scss create mode 100644 src/pages/changeTel/index.ts create mode 100644 src/pages/changeTel/index.wxml diff --git a/api-doc/charlie.md b/api-doc/charlie.md new file mode 100644 index 0000000..d4f712d --- /dev/null +++ b/api-doc/charlie.md @@ -0,0 +1,46 @@ +# 管理端 +## 大咖说 + +### 列表 +{"target_id":"13828efd30b058","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"视频列表","version":127,"sort":6000,"method":"GET","url":"{{home}}?r=video/list&count=10&page=1&Search=&PublishAtBegin=&PublishAtEnd=&Status=&Sort=","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"none","parameter":[],"raw":"","raw_parameter":[],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801001","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/list","schema":{"type":"string"}},{"param_id":"392f2fb0d801002","description":"每页条数","field_type":"string","is_checked":1,"key":"count","not_null":1,"value":"10","schema":{"type":"string"}},{"param_id":"392f2fb0d801003","description":"页码","field_type":"string","is_checked":1,"key":"page","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"392f2fb0d801004","description":"标题","field_type":"string","is_checked":1,"key":"Search","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"392f2fb0d801005","description":"发布时间开始","field_type":"string","is_checked":1,"key":"PublishAtBegin","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"392f2fb0d801006","description":"发布时间结束","field_type":"string","is_checked":1,"key":"PublishAtEnd","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1400149c70b92f","description":"状态,1-待发布,2-已发布","field_type":"string","is_checked":1,"key":"Status","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1400149c70b930","description":"排序 默认为-sort,time - 更改时间键升序,-time -更改时间降序,sort - 权重升序 ,-sort -权重降序","field_type":"string","is_checked":1,"key":"Sort","not_null":1,"value":"","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": {\n\t\t\"list\": [\n\t\t\t{\n\t\t\t\t\"Id\": \"2\",\n\t\t\t\t\"Title\": \"测试课程2\",\n\t\t\t\t\"Introduction\": \"\",\n\t\t\t\t\"SrcUrl\": \"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4\",\n\t\t\t\t\"CatId\": \"0\",\n\t\t\t\t\"Labels\": [\n\t\t\t\t\t\"头\",\n\t\t\t\t\t\"肩\"\n\t\t\t\t],\n\t\t\t\t\"ImageUrl\": \"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg\",\n\t\t\t\t\"Sort\": \"300\",\n\t\t\t\t\"Status\": \"1\",\n\t\t\t\t\"IsDeleted\": \"0\",\n\t\t\t\t\"PublishAt\": null,\n\t\t\t\t\"CreatorId\": \"50121\",\n\t\t\t\t\"CreatedAt\": \"2026-07-20 19:47:35\",\n\t\t\t\t\"UpdaterId\": \"50121\",\n\t\t\t\t\"UpdatedAt\": \"2026-07-21 14:35:26\",\n\t\t\t\t\"EditorId\": \"\",\n\t\t\t\t\"EditedAt\": null,\n\t\t\t\t\"DeleterId\": \"\",\n\t\t\t\t\"DeletedAt\": null,\n\t\t\t\t\"BasicNum\": \"99\",\n\t\t\t\t\"OpenPeopleNum\": \"0\",\n\t\t\t\t\"OpenNum\": \"0\",\n\t\t\t\t\"CollectionPeopleNum\": \"0\",\n\t\t\t\t\"ComplimentPeopleNum\": \"0\",\n\t\t\t\t\"SharePeopleNum\": \"0\",\n\t\t\t\t\"ShareNum\": \"0\",\n\t\t\t\t\"ComplimentNum\": \"0\",\n\t\t\t\t\"ExpertName\": null,\n\t\t\t\t\"Duration\": \"3.0\",\n\t\t\t\t\"IsBannerRecommend\": \"1\",\n\t\t\t\t\"BannerImageUrl\": \"https://example.com/banner.jpg\",\n\t\t\t\t\"BannerSort\": \"100\",\n\t\t\t\t\"IsRecommend\": \"0\",\n\t\t\t\t\"CategoryIds\": [\n\t\t\t\t\t\"1\",\n\t\t\t\t\t\"3\"\n\t\t\t\t],\n\t\t\t\t\"CateList\": {\n\t\t\t\t\t\"1\": {\n\t\t\t\t\t\t\"Id\": \"1\",\n\t\t\t\t\t\t\"Name\": \"分类1\"\n\t\t\t\t\t},\n\t\t\t\t\t\"3\": {\n\t\t\t\t\t\t\"Id\": \"3\",\n\t\t\t\t\t\t\"Name\": \"分类2\"\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"CateNames\": [\n\t\t\t\t\t\"分类1\",\n\t\t\t\t\t\"分类2\"\n\t\t\t\t],\n\t\t\t\t\"CateName\": \"分类1、分类2\"\n\t\t\t}\n\t\t],\n\t\t\"page\": 1,\n\t\t\"pages\": 1,\n\t\t\"count\": \"1\",\n\t\t\"MaxSort\": \"300\",\n\t\t\"OpenStatus\": \"1\"\n\t}\n}","raw_parameter":[{"param_id":"1500937cb0b0b5","description":"状态码 0-成功,非0-失败","field_type":"integer","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"1500937cb0b0b6","description":"返回数据","field_type":"object","is_checked":1,"key":"data","not_null":1,"value":"","schema":{"type":"object"}},{"param_id":"1500937cb0b0b7","description":"列表","field_type":"array","is_checked":1,"key":"data.list","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"1500937cb0b0b8","description":"记录Id","field_type":"string","is_checked":1,"key":"data.list.Id","not_null":1,"value":"2","schema":{"type":"string"}},{"param_id":"1500937cb0b0b9","description":"标题","field_type":"string","is_checked":1,"key":"data.list.Title","not_null":1,"value":"测试课程2","schema":{"type":"string"}},{"param_id":"1500937cb0b0ba","description":"简介","field_type":"string","is_checked":1,"key":"data.list.Introduction","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1500937cb0b0bb","description":"视频地址","field_type":"string","is_checked":1,"key":"data.list.SrcUrl","not_null":1,"value":"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4","schema":{"type":"string"}},{"param_id":"1500937cf0b0bc","description":"","field_type":"string","is_checked":1,"key":"data.list.CatId","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937cf0b0bd","description":"标签,字符串数组","field_type":"string","is_checked":1,"key":"data.list.Labels","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1500937cf0b0be","description":"封面图地址","field_type":"string","is_checked":1,"key":"data.list.ImageUrl","not_null":1,"value":"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg","schema":{"type":"string"}},{"param_id":"1500937cf0b0bf","description":"排序权重","field_type":"string","is_checked":1,"key":"data.list.Sort","not_null":1,"value":"300","schema":{"type":"string"}},{"param_id":"1500937cf0b0c0","description":"状态,1-待发布,2-已发布","field_type":"string","is_checked":1,"key":"data.list.Status","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"1500937cf0b0c1","description":"","field_type":"string","is_checked":1,"key":"data.list.IsDeleted","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937cf0b0c2","description":"发布时间","field_type":"string","is_checked":1,"key":"data.list.PublishAt","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1500937cf0b0c3","description":"","field_type":"string","is_checked":1,"key":"data.list.CreatorId","not_null":1,"value":"50121","schema":{"type":"string"}},{"param_id":"1500937cf0b0c4","description":"","field_type":"string","is_checked":1,"key":"data.list.CreatedAt","not_null":1,"value":"2026-07-20 19:47:35","schema":{"type":"string"}},{"param_id":"1500937cf0b0c5","description":"","field_type":"string","is_checked":1,"key":"data.list.UpdaterId","not_null":1,"value":"50121","schema":{"type":"string"}},{"param_id":"1500937cf0b0c6","description":"最后更新时间","field_type":"string","is_checked":1,"key":"data.list.UpdatedAt","not_null":1,"value":"2026-07-21 14:35:26","schema":{"type":"string"}},{"param_id":"1500937cf0b0c7","description":"","field_type":"string","is_checked":1,"key":"data.list.EditorId","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1500937cf0b0c8","description":"","field_type":"null","is_checked":1,"key":"data.list.EditedAt","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"1500937cf0b0c9","description":"","field_type":"string","is_checked":1,"key":"data.list.DeleterId","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"1500937cf0b0ca","description":"","field_type":"null","is_checked":1,"key":"data.list.DeletedAt","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"1500937d30b0cb","description":"运营基础数","field_type":"string","is_checked":1,"key":"data.list.BasicNum","not_null":1,"value":"99","schema":{"type":"string"}},{"param_id":"1500937d30b0cc","description":"打开人数","field_type":"string","is_checked":1,"key":"data.list.OpenPeopleNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0cd","description":"打开次数","field_type":"string","is_checked":1,"key":"data.list.OpenNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0ce","description":"收藏人数","field_type":"string","is_checked":1,"key":"data.list.CollectionPeopleNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0cf","description":"点赞人数","field_type":"string","is_checked":1,"key":"data.list.ComplimentPeopleNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0d0","description":"分享人数","field_type":"string","is_checked":1,"key":"data.list.SharePeopleNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0d1","description":"分享次数","field_type":"string","is_checked":1,"key":"data.list.ShareNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0d2","description":"","field_type":"string","is_checked":1,"key":"data.list.ComplimentNum","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0d3","description":"","field_type":"null","is_checked":1,"key":"data.list.ExpertName","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"1500937d30b0d4","description":"时长(分钟)","field_type":"string","is_checked":1,"key":"data.list.Duration","not_null":1,"value":"3.0","schema":{"type":"string"}},{"param_id":"1500937d30b0d5","description":"是否banner推荐 0-否,1-","field_type":"string","is_checked":1,"key":"data.list.IsBannerRecommend","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"1500937d30b0d6","description":"banner图 rul","field_type":"null","is_checked":1,"key":"data.list.BannerImageUrl","not_null":1,"value":"https://example.com/banner.jpg","schema":{"type":"null"}},{"param_id":"1500937d30b0d7","description":"banner排序权重","field_type":"string","is_checked":1,"key":"data.list.BannerSort","not_null":1,"value":"100","schema":{"type":"string"}},{"param_id":"1500937d30b0d8","description":"是否推荐 0-否,1-是","field_type":"string","is_checked":1,"key":"data.list.IsRecommend","not_null":1,"value":"0","schema":{"type":"string"}},{"param_id":"1500937d30b0d9","description":"","field_type":"array","is_checked":1,"key":"data.list.CategoryIds","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"1500937d30b0da","description":"","field_type":"object","is_checked":1,"key":"data.list.CateList","not_null":1,"value":"","schema":{"type":"object"}},{"param_id":"1500937d30b0db","description":"","field_type":"object","is_checked":1,"key":"data.list.CateList.1","not_null":1,"value":"","schema":{"type":"object"}},{"param_id":"1500937d30b0dc","description":"","field_type":"string","is_checked":1,"key":"data.list.CateList.1.Id","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"1500937d30b0dd","description":"","field_type":"string","is_checked":1,"key":"data.list.CateList.1.Name","not_null":1,"value":"分类1","schema":{"type":"string"}},{"param_id":"1500937d30b0de","description":"","field_type":"object","is_checked":1,"key":"data.list.CateList.3","not_null":1,"value":"","schema":{"type":"object"}},{"param_id":"1500937d30b0df","description":"","field_type":"string","is_checked":1,"key":"data.list.CateList.3.Id","not_null":1,"value":"3","schema":{"type":"string"}},{"param_id":"1500937d30b0e0","description":"","field_type":"string","is_checked":1,"key":"data.list.CateList.3.Name","not_null":1,"value":"分类2","schema":{"type":"string"}},{"param_id":"1500937d70b0e1","description":"","field_type":"array","is_checked":1,"key":"data.list.CateNames","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"1500937d70b0e2","description":"","field_type":"string","is_checked":1,"key":"data.list.CateName","not_null":1,"value":"分类1、分类2","schema":{"type":"string"}},{"param_id":"1500937d70b0e3","description":"页码","field_type":"integer","is_checked":1,"key":"data.page","not_null":1,"value":"1","schema":{"type":"integer"}},{"param_id":"1500937d70b0e4","description":"总页数","field_type":"integer","is_checked":1,"key":"data.pages","not_null":1,"value":"1","schema":{"type":"integer"}},{"param_id":"1500937d70b0e5","description":"总条数","field_type":"string","is_checked":1,"key":"data.count","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"1500937d70b0e6","description":"最大排序权重","field_type":"string","is_checked":1,"key":"data.MaxSort","not_null":1,"value":"300","schema":{"type":"string"}},{"param_id":"1500937d70b0e7","description":"视频模块状态 1-开启,0-关闭","field_type":"string","is_checked":1,"key":"data.OpenStatus","not_null":1,"value":"1","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T14:36:43+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 创建 +{"target_id":"13828efd30b057","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"创建视频","version":65,"sort":5000,"method":"POST","url":"{{home}}?r=video/create","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Title\": \"测试课程2\",\n \"SrcUrl\": \"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4\",\n \"ImageUrl\": \"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg\",\n \"CateIds\":[1,3],\n \"ExpertName\":\"\",\n \"Duration\":3,\n \"Labels\":[\"头\",\"肩\"],\n \"Sort\":\"10\",\n \"BasicNum\":99,\n \"Status\":2\n}","raw_parameter":[{"param_id":"13fe1337f0b0c1","description":"标题","field_type":"string","is_checked":1,"key":"Title","not_null":1,"value":"测试课程","schema":{"type":"string"}},{"param_id":"13fe1337f0b0c2","description":"视频地址","field_type":"string","is_checked":1,"key":"SrcUrl","not_null":1,"value":"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4","schema":{"type":"string"}},{"param_id":"13fe1337f0b0c3","description":"图片地址","field_type":"string","is_checked":1,"key":"ImageUrl","not_null":1,"value":"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg","schema":{"type":"string"}},{"param_id":"13fe133830b0c4","description":"分类Id","field_type":"array","is_checked":1,"key":"CateIds","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"13fe133830b0c5","description":"专家名字","field_type":"string","is_checked":1,"key":"ExpertName","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"13fe133830b0c6","description":"时长(分钟)","field_type":"number","is_checked":1,"key":"Duration","not_null":1,"value":"3","schema":{"type":"number"}},{"param_id":"13fe133830b0c7","description":"标签,字符串数组","field_type":"array","is_checked":1,"key":"Labels","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"13fe133830b0c8","description":"排序 默认为-sort,time - 更改时间键升序,-time -更改时间降序,sort - 权重升序 ,-sort -权重降序, ptime -发布时间升序,-ptime - 发布时间降序","field_type":"string","is_checked":1,"key":"Sort","not_null":1,"value":"10","schema":{"type":"string"}},{"param_id":"13fe133830b0c9","description":"运营基础数","field_type":"integer","is_checked":1,"key":"BasicNum","not_null":1,"value":"99","schema":{"type":"integer"}},{"param_id":"13fe133830b0ca","description":"状态,保存时传1,保存并发布传2","field_type":"integer","is_checked":1,"key":"Status","not_null":1,"value":"2","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801000","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/create","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\"code\":0,\"data\":1}","raw_parameter":[],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-20T19:50:04+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + + +### 详情 +{"target_id":"13828efd30b059","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"视频详情","version":71,"sort":7000,"method":"GET","url":"{{home}}?r=video/view&Id=2","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"none","parameter":[],"raw":"","raw_parameter":[],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801007","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/view","schema":{"type":"string"}},{"param_id":"392f2fb0d801008","description":"记录Id","field_type":"string","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": {\n\t\t\"Id\": 2,\n\t\t\"Title\": \"测试课程2\",\n\t\t\"Introduction\": \"\",\n\t\t\"SrcUrl\": \"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4\",\n\t\t\"CatId\": 0,\n\t\t\"Labels\": [\n\t\t\t\"头\",\n\t\t\t\"肩\"\n\t\t],\n\t\t\"ImageUrl\": \"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg\",\n\t\t\"Sort\": 10,\n\t\t\"Status\": 2,\n\t\t\"IsDeleted\": 0,\n\t\t\"PublishAt\": \"2026-07-20 19:47:35\",\n\t\t\"CreatorId\": \"50121\",\n\t\t\"CreatedAt\": \"2026-07-20 19:47:35\",\n\t\t\"UpdaterId\": \"\",\n\t\t\"UpdatedAt\": \"2026-07-20 19:47:35\",\n\t\t\"EditorId\": \"\",\n\t\t\"EditedAt\": null,\n\t\t\"DeleterId\": \"\",\n\t\t\"DeletedAt\": null,\n\t\t\"BasicNum\": 99,\n\t\t\"OpenPeopleNum\": 0,\n\t\t\"OpenNum\": 0,\n\t\t\"CollectionPeopleNum\": 0,\n\t\t\"ComplimentPeopleNum\": 0,\n\t\t\"SharePeopleNum\": 0,\n\t\t\"ShareNum\": 0,\n\t\t\"ComplimentNum\": 0,\n\t\t\"ExpertName\": null,\n\t\t\"Duration\": \"3.0\",\n\t\t\"IsBannerRecommend\": 0,\n\t\t\"BannerImageUrl\": null,\n\t\t\"BannerSort\": 0,\n\t\t\"CategoryIds\": [\n\t\t\t\"1\",\n\t\t\t\"3\"\n\t\t],\n\t\t\"CateList\": [\n\t\t\t{\n\t\t\t\t\"Id\": \"1\",\n\t\t\t\t\"Name\": \"分类1\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Id\": \"3\",\n\t\t\t\t\"Name\": \"分类2\"\n\t\t\t}\n\t\t],\n\t\t\"CateNames\": [\n\t\t\t\"分类1\",\n\t\t\t\"分类2\"\n\t\t],\n\t\t\"CateName\": \"分类1、分类2\"\n\t}\n}","raw_parameter":[{"param_id":"14b8b35730b032","description":"状态码 0-成功,非0-失败","field_type":"integer","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35730b033","description":"返回数据","field_type":"object","is_checked":1,"key":"data","not_null":1,"value":"","schema":{"type":"object"}},{"param_id":"14b8b35730b034","description":"记录Id","field_type":"integer","is_checked":1,"key":"data.Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14b8b35730b035","description":"标题","field_type":"string","is_checked":1,"key":"data.Title","not_null":1,"value":"测试课程2","schema":{"type":"string"}},{"param_id":"14b8b35730b036","description":"简介","field_type":"string","is_checked":1,"key":"data.Introduction","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"14b8b35770b037","description":"视频地址","field_type":"string","is_checked":1,"key":"data.SrcUrl","not_null":1,"value":"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4","schema":{"type":"string"}},{"param_id":"14b8b35770b039","description":"标签,字符串数组","field_type":"array","is_checked":1,"key":"data.Labels","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"14b8b35770b03a","description":"封面图地址","field_type":"string","is_checked":1,"key":"data.ImageUrl","not_null":1,"value":"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg","schema":{"type":"string"}},{"param_id":"14b8b35770b03b","description":"排序","field_type":"integer","is_checked":1,"key":"data.Sort","not_null":1,"value":"10","schema":{"type":"integer"}},{"param_id":"14b8b35770b03c","description":"状态,1-待发布,2-已发布","field_type":"integer","is_checked":1,"key":"data.Status","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14b8b35770b03d","description":"","field_type":"integer","is_checked":1,"key":"data.IsDeleted","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b03e","description":"发布时间","field_type":"string","is_checked":1,"key":"data.PublishAt","not_null":1,"value":"2026-07-20 19:47:35","schema":{"type":"string"}},{"param_id":"14b8b35770b03f","description":"","field_type":"string","is_checked":1,"key":"data.CreatorId","not_null":1,"value":"50121","schema":{"type":"string"}},{"param_id":"14b8b35770b040","description":"","field_type":"string","is_checked":1,"key":"data.CreatedAt","not_null":1,"value":"2026-07-20 19:47:35","schema":{"type":"string"}},{"param_id":"14b8b35770b041","description":"","field_type":"string","is_checked":1,"key":"data.UpdaterId","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"14b8b35770b042","description":"最后更新时间","field_type":"string","is_checked":1,"key":"data.UpdatedAt","not_null":1,"value":"2026-07-20 19:47:35","schema":{"type":"string"}},{"param_id":"14b8b35770b043","description":"","field_type":"string","is_checked":1,"key":"data.EditorId","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"14b8b35770b044","description":"","field_type":"null","is_checked":1,"key":"data.EditedAt","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"14b8b35770b045","description":"","field_type":"string","is_checked":1,"key":"data.DeleterId","not_null":1,"value":"","schema":{"type":"string"}},{"param_id":"14b8b35770b046","description":"","field_type":"null","is_checked":1,"key":"data.DeletedAt","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"14b8b35770b047","description":"运营基础数","field_type":"integer","is_checked":1,"key":"data.BasicNum","not_null":1,"value":"99","schema":{"type":"integer"}},{"param_id":"14b8b35770b048","description":"打开人数","field_type":"integer","is_checked":1,"key":"data.OpenPeopleNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b049","description":"打开次数","field_type":"integer","is_checked":1,"key":"data.OpenNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b04a","description":"收藏人数","field_type":"integer","is_checked":1,"key":"data.CollectionPeopleNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b04b","description":"点赞人数","field_type":"integer","is_checked":1,"key":"data.ComplimentPeopleNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b04c","description":"分享人数","field_type":"integer","is_checked":1,"key":"data.SharePeopleNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b04d","description":"分享次数","field_type":"integer","is_checked":1,"key":"data.ShareNum","not_null":1,"value":"0","schema":{"type":"integer"}},{"param_id":"14b8b35770b04e","description":"","field_type":"number","is_checked":1,"key":"data.ComplimentNum","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b8b35770b04f","description":"","field_type":"null","is_checked":1,"key":"data.ExpertName","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"14b8b35770b050","description":"","field_type":"string","is_checked":1,"key":"data.Duration","not_null":1,"value":"3.0","schema":{"type":"string"}},{"param_id":"14b8b35770b051","description":"","field_type":"number","is_checked":1,"key":"data.IsBannerRecommend","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b8b357b0b052","description":"","field_type":"null","is_checked":1,"key":"data.BannerImageUrl","not_null":1,"value":"","schema":{"type":"null"}},{"param_id":"14b8b357b0b053","description":"","field_type":"number","is_checked":1,"key":"data.BannerSort","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b8b357b0b054","description":"","field_type":"array","is_checked":1,"key":"data.CategoryIds","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"14b8b357b0b055","description":"","field_type":"array","is_checked":1,"key":"data.CateList","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"14b8b357b0b056","description":"","field_type":"string","is_checked":1,"key":"data.CateList.Id","not_null":1,"value":"1","schema":{"type":"string"}},{"param_id":"14b8b357b0b057","description":"","field_type":"string","is_checked":1,"key":"data.CateList.Name","not_null":1,"value":"分类1","schema":{"type":"string"}},{"param_id":"14b8b357b0b058","description":"","field_type":"array","is_checked":1,"key":"data.CateNames","not_null":1,"value":"","schema":{"type":"array"}},{"param_id":"14b8b357b0b059","description":"分类名","field_type":"string","is_checked":1,"key":"data.CateName","not_null":1,"value":"分类1、分类2","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:23:41+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 编辑 +{"target_id":"13828efd30b05a","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"编辑视频","version":72,"sort":8000,"method":"POST","url":"{{home}}?r=video/update","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":1,\n \"Title\": \"测试课程2\",\n \"SrcUrl\": \"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4\",\n \"ImageUrl\": \"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg\",\n \"CateIds\":[1,3,4],\n \"ExpertName\":\"\",\n \"Duration\":3,\n \"Labels\":[\"头\",\"肩\"],\n \"Sort\":\"10\",\n \"BasicNum\":99,\n \"Status\":2\n}\n","raw_parameter":[{"param_id":"392f2fb0d801009","description":"记录Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"1","schema":{"type":"integer"}},{"param_id":"392f2fb0d80100a","description":"标题","field_type":"string","is_checked":1,"key":"Title","not_null":1,"value":"测试视频","schema":{"type":"string"}},{"param_id":"392f2fb0d80100b","description":"视频地址","field_type":"string","is_checked":1,"key":"SrcUrl","not_null":1,"value":"https://circlehbsaas.oss-cn-beijing.aliyuncs.com/video/20211118912_1635738115605487.mp4","schema":{"type":"string"}},{"param_id":"392f2fb0d80100c","description":"封面图地址","field_type":"string","is_checked":1,"key":"ImageUrl","not_null":1,"value":"https://picsissiok-10049618.cos.ap-shanghai.myqcloud.com/29e29a3e9b96c20a90eab757b2c3b158_16372159846708.jpg","schema":{"type":"string"}},{"param_id":"392f2fb0d80100d","description":"分类Id","field_type":"integer","is_checked":1,"key":"CatId","not_null":1,"value":"4","schema":{"type":"integer"}},{"param_id":"392f2fb0d80100e","description":"标签,字符串数组","field_type":"array","is_checked":1,"key":"Labels","not_null":1,"value":"头","schema":{"type":"array"}},{"param_id":"392f2fb0d80100f","description":"排序 默认为-sort,time - 更改时间键升序,-time -更改时间降序,sort - 权重升序 ,-sort -权重降序","field_type":"string","is_checked":1,"key":"Sort","not_null":1,"value":"10","schema":{"type":"string"}},{"param_id":"392f2fb0d801010","description":"运营基础数","field_type":"integer","is_checked":1,"key":"BasicNum","not_null":1,"value":"99","schema":{"type":"integer"}},{"param_id":"392f2fb0d801011","description":"状态,保存时传1,保存并发布传2","field_type":"integer","is_checked":1,"key":"Status","not_null":1,"value":"2","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801012","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/update","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\"code\":0,\"data\":\"编辑成功\"}","raw_parameter":[{"param_id":"14b9110230b05a","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b9110230b05b","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"编辑成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:23:52+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 删除 +{"target_id":"13828efd30b05b","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"删除视频","version":73,"sort":9000,"method":"POST","url":"{{home}}?r=video/delete","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":1\n}","raw_parameter":[{"param_id":"392f2fb0d801013","description":"记录Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801014","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/delete","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\"code\":0,\"data\":\"删除成功\"}","raw_parameter":[],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:24:03+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 上架 +{"target_id":"13828efd30b05c","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"上架视频","version":74,"sort":10000,"method":"POST","url":"{{home}}?r=video/shelve","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2\n}","raw_parameter":[{"param_id":"392f2fb0d801015","description":"记录Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801016","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/shelve","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b9411730b05c","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b9411730b05d","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:24:46+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 下架 +{"target_id":"13828efd30b05d","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"下架视频","version":75,"sort":11000,"method":"POST","url":"{{home}}?r=video/off-shelve","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2\n}","raw_parameter":[{"param_id":"392f2fb0d801017","description":"记录Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d801018","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/off-shelve","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b9533530b05e","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b9533530b05f","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:47:11+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:25:01+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + + +### 编辑是否banner推荐 +{"target_id":"14c021c5b0b220","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"编辑是否banner推荐","version":81,"sort":17000,"method":"POST","url":"{{home}}?r=video/edit-is-banner-recommend","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2,\n \"IsBannerRecommend\": 1\n}","raw_parameter":[{"param_id":"14c06591f0b064","description":"分类Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14c06591f0b065","description":"是否banner推荐 0-否,1-是","field_type":"number","is_checked":1,"key":"IsBannerRecommend","not_null":1,"value":"1","schema":{"type":"number"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d80101b","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/edit-is-banner-recommend","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b964e470b060","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b964e470b061","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-21T09:56:10+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:56:10+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 编辑banner图 +{"target_id":"14c0833070b251","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"编辑banner图","version":82,"sort":18000,"method":"POST","url":"{{home}}?r=video/edit-banner-image-url","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2,\n \"BannerImageUrl\": \"https://example.com/banner.jpg\"\n}","raw_parameter":[{"param_id":"14c0ad03f0b066","description":"分类Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14c0ad03f0b067","description":"banner图 url","field_type":"string","is_checked":1,"key":"BannerImageUrl","not_null":1,"value":"https://example.com/banner.jpg","schema":{"type":"string"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d80101b","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/edit-banner-image-url","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b964e470b060","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b964e470b061","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-21T09:57:12+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:57:12+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} +0 + +### 编辑Banner权重 +{"target_id":"14c0c81ab0b282","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"编辑Banner权重","version":83,"sort":19000,"method":"POST","url":"{{home}}?r=video/edit-banner-sort","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2,\n \"BannerSort\": 100\n}","raw_parameter":[{"param_id":"14c0ad03f0b066","description":"分类Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14c0ad03f0b067","description":"banner图 url","field_type":"string","is_checked":1,"key":"BannerImageUrl","not_null":1,"value":"https://example.com/banner.jpg","schema":{"type":"string"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d80101b","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/edit-banner-sort","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b964e470b060","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b964e470b061","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-21T09:57:58+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T09:57:58+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + +### 编辑是否推荐 +{"target_id":"15006d4ef0b474","project_id":"69378806e466000","parent_id":"13828efcf0b052","target_type":"api","name":"编辑是否推荐","version":126,"sort":20000,"method":"POST","url":"{{home}}?r=video/edit-is-recommend","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2,\n \"IsRecommend\": 1\n}","raw_parameter":[{"param_id":"14c06591f0b064","description":"分类Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"14c06591f0b065","description":"是否banner推荐 0-否,1-是","field_type":"number","is_checked":1,"key":"IsBannerRecommend","not_null":1,"value":"1","schema":{"type":"number"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d80101b","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"video/edit-is-recommend","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[{"param_id":"14b964e470b060","description":"状态码 0-成功,非0-失败","field_type":"number","is_checked":1,"key":"code","not_null":1,"value":"0","schema":{"type":"number"}},{"param_id":"14b964e470b061","description":"返回数据","field_type":"string","is_checked":1,"key":"data","not_null":1,"value":"操作成功","schema":{"type":"string"}}],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-21T14:35:40+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-21T14:35:40+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + + +## 图文 +### 编辑权重 +{"target_id":"1382675ff0b036","project_id":"69378806e466000","parent_id":"1382675ff0b029","target_type":"api","name":"编辑权重","version":47,"sort":13000,"method":"POST","url":"{{home}}?r=pic-text/edit-sort-weight","protocol":"http/1.1","mark_id":"1","description":"","request":{"auth":{"type":"inherit","kv":{"key":"","value":"","in":"header"},"bearer":{"key":""},"basic":{"username":"","password":""},"digest":{"username":"","password":"","realm":"","nonce":"","algorithm":"","qop":"","nc":"","cnonce":"","opaque":""},"hawk":{"authId":"","authKey":"","algorithm":"","user":"","nonce":"","extraData":"","default":"","delegation":"","timestamp":"","includePayloadHash":false},"awsv4":{"accessKey":"","secretKey":"","region":"","service":"","sessionToken":"","addAuthDataToQuery":false},"ntlm":{"username":"","password":"","entity":"","workstation":"","disableRetryRequest":false},"edgegrid":{"accessToken":"","clientToken":"","clientSecret":"","nonce":"","timestamp":"","baseURi":"","headersToSign":""},"oauth1":{"consumerKey":"","consumerSecret":"","signatureMethod":"HMAC-SHA1","addEmptyParamsToSign":true,"includeBodyHash":true,"addParamsToHeader":false,"disableHeaderEncoding":false,"realm":"","version":"1.0","nonce":"","timestamp":"","verifier":"","callback":"","tokenSecret":"","token":""},"jwt":{"addTokenTo":"header","algorithm":"HS256","secret":"","isSecretBase64Encoded":false,"payload":"","headerPrefix":"Bearer","queryParamKey":"token","header":""},"asap":{"alg":"HS256","iss":"","aud":"","kid":"","privateKey":"","sub":"","claims":"","exp":""}},"body":{"mode":"json","parameter":[],"raw":"{\n \"Id\":2,\n \"Sort\":300\n}","raw_parameter":[{"param_id":"392f2fb0d40102f","description":"记录Id","field_type":"integer","is_checked":1,"key":"Id","not_null":1,"value":"2","schema":{"type":"integer"}},{"param_id":"392f2fb0d401030","description":"权重排序","field_type":"integer","is_checked":1,"key":"Sort","not_null":1,"value":"300","schema":{"type":"integer"}}],"raw_schema":{"type":"object"},"binary":{}},"pre_tasks":[],"post_tasks":[],"header":{"parameter":[]},"query":{"query_add_equal":1,"parameter":[{"param_id":"392f2fb0d401031","description":"","field_type":"string","is_checked":1,"key":"r","not_null":1,"value":"pic-text/edit-sort-weight","schema":{"type":"string"}}]},"cookie":{"cookie_encode":1,"parameter":[]},"restful":{"parameter":[]}},"response":{"example":[{"example_id":"1","raw":"{\n\t\"code\": 0,\n\t\"data\": \"操作成功\"\n}","raw_parameter":[],"headers":[],"expect":{"code":"200","content_type":"json","is_default":1,"mock":"","name":"成功","schema":[],"verify_type":"schema","sleep":0}},{"example_id":"2","raw":"","raw_parameter":[],"headers":[],"expect":{"code":"404","content_type":"json","is_default":-1,"mock":"","name":"失败","schema":[],"verify_type":"schema","sleep":0}}],"is_check_result":1},"mock_server_enable":1,"mock_ip_white_list_enable":-1,"mock_ip_white_list":"","mock_show_target_id":0,"attribute_info":{},"tags":[],"created_at":"2026-07-20T10:46:30+08:00","created_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"updated_at":"2026-07-20T18:29:22+08:00","updated_user":{"uid":"36780","nick_name":"charlie","alias_name":null,"portrait":"https://img.cdn.apipost.cn/user/default_profile_photo/Vector-5.png"},"status":1,"is_locked":-1} + + +# 小程序 diff --git a/api-doc/psvt-patient-api-doc.md b/api-doc/psvt-patient-api-doc.md index 092d118..7d0e86e 100644 --- a/api-doc/psvt-patient-api-doc.md +++ b/api-doc/psvt-patient-api-doc.md @@ -8,12 +8,13 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| code | string | 是 | wx.login获取的登录凭证 | -| channelId | int | 否 | 扫码渠道ID | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | ---------------------- | +| code | string | 是 | wx.login获取的登录凭证 | +| channelId | int | 否 | 扫码渠道ID | **响应示例**: + ```json { "code": 0, @@ -22,23 +23,23 @@ "isLogin": true, "isReg": true, "userId": "xxx", - "openId": "xxx", + "openId": "xxx" } } ``` **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| +| 字段名 | 类型 | 说明 | +| ---------- | ------ | -------------------------- | | loginState | string | 登录态凭证,后续接口需携带 | -| isLogin | bool | 是否已登录 | -| userId | string | 用户ID | -| openId | string | 小程序OpenId | -| isPhoneRegistered | bool | 是否已手机号注册 | -| isInfoSubmitted | bool | 是否已提交信息 | +| isLogin | bool | 是否已登录 | +| userId | string | 用户ID | +| openId | string | 小程序OpenId | +| isReg | bool | 是否已信息提交注册 | **业务逻辑**: + 1. 调用微信接口获取openid和session_key 2. 创建/更新PSVT用户记录(t_psvt_user_info) 3. 若有channelId参数,更新ScanChannelId(最终渠道,每次扫码都更新) @@ -47,38 +48,40 @@ --- -### 1.2 手机号授权注册 `POST ?r=psvt/patient/phone-register` +### 1.2 手机号授权注册 `POST ?r=psvt/login/wx-reg-login` **说明**: 解密微信加密数据获取手机号,完成手机号注册。事务操作。 **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| encryptedData | string | 是 | 微信加密手机号数据 | -| iv | string | 是 | 微信加密iv | -| channelId | int | 否 | 手机号注册时的渠道ID | +| 参数名 | 类型 | 必填 | 说明 | +| ------------- | ------ | ---- | -------------------- | +| encryptedData | string | 是 | 微信加密手机号数据 | +| iv | string | 是 | 微信加密iv | +| channelId | int | 否 | 手机号注册时的渠道ID | **响应示例**: + ```json { "code": 0, "message": "success", "data": { - "telephone": "138xxxx1234", - "isPhoneRegistered": true + "isLogin": true, + "isReg": true } } ``` **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| telephone | string | 注册的手机号 | -| isPhoneRegistered | bool | 是否已手机号注册 | +| 字段名 | 类型 | 说明 | +| ------- | ---- | ------------------ | +| isLogin | bool | 是否已登录 | +| isReg | bool | 是否已信息提交注册 | **业务逻辑**: + 1. 解密微信加密数据获取手机号 2. 更新t_psvt_user_info的Telephone、IsPhoneRegistered=1、PhoneRegisterTime 3. 若有channelId,记录TelChannelId(首次手机号注册渠道,仅记录首次,不更新) @@ -89,26 +92,59 @@ --- +### 1.2.1 手机号验证码注册 `POST ?r=psvt/login/reg-login` + +**说明**: 解密微信加密数据获取手机号,完成手机号注册。事务操作。 + +**请求参数**: + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | -------------------- | +| mobile | string | 是 | 手机号 | +| code | string | 是 | 验证码 | +| channelId | int | 否 | 手机号注册时的渠道ID | + +**响应示例**: + +```json +{ + "code": 0, + "message": "success", + "data": { + "isLogin": true, + "isReg": true + } +} +``` + +**响应字段说明**: + +| 字段名 | 类型 | 说明 | +| ------- | ---- | ------------------ | +| isLogin | bool | 是否已登录 | +| isReg | bool | 是否已信息提交注册 | + ### 1.3 患者信息提交注册 `POST ?r=psvt/patient/register` **说明**: 提交年龄段、性别、确诊状态、手术状态等信息完成注册。事务操作。 **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| ageRange | int | 是 | 年龄段:1-18~28岁,2-29~40岁,3-41~50岁,4-50岁以上 | -| gender | int | 是 | 性别:1-男,2-女 | -| provinceId | int | 否 | 省份ID | -| provinceName | string | 否 | 省份名称 | -| cityId | int | 否 | 市ID | -| cityName | string | 否 | 市名称 | -| diagnosisStatus | int | 是 | 确诊状态:1-疑似PSVT正在了解中,2-已确诊PSVT,3-心悸/心跳过快 尚未就诊,4-亲友相关 想了解更多 | -| diagnosisTime | string | 否 | 确诊时间(YYYY-MM格式) | -| surgeryStatus | int | 是 | 手术状态:1-已接收射频消融/相关手术,2-尚未接收手术,3-正在评估 | -| channelId | int | 否 | 提交信息渠道ID | +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ------ | ---- | --------------------------------------------------------------------------------------------- | +| ageRange | int | 是 | 年龄段:1-18~28岁,2-29~40岁,3-41~50岁,4-50岁以上 | +| gender | int | 是 | 性别:1-男,2-女 | +| provinceId | int | 否 | 省份ID | +| provinceName | string | 否 | 省份名称 | +| cityId | int | 否 | 市ID | +| cityName | string | 否 | 市名称 | +| diagnosisStatus | int | 是 | 确诊状态:1-疑似PSVT正在了解中,2-已确诊PSVT,3-心悸/心跳过快 尚未就诊,4-亲友相关 想了解更多 | +| diagnosisTime | string | 否 | 确诊时间(YYYY-MM格式) | +| surgeryStatus | int | 是 | 手术状态:1-已接收射频消融/相关手术,2-尚未接收手术,3-正在评估 | +| channelId | int | 否 | 提交信息渠道ID | **响应示例**: + ```json { "code": 0, @@ -124,14 +160,15 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| userId | string | 用户ID | -| nickName | string | 随机生成的昵称(4字母+8数字) | -| avatar | string | 随机分配的头像URL | -| isRegistered | bool | 是否已注册 | +| 字段名 | 类型 | 说明 | +| ------------ | ------ | ----------------------------- | +| userId | string | 用户ID | +| nickName | string | 随机生成的昵称(4字母+8数字) | +| avatar | string | 随机分配的头像URL | +| isRegistered | bool | 是否已注册 | **业务逻辑**: + 1. 生成随机昵称(4随机字母+8随机数字) 2. 随机分配头像(10张图片池中随机选1) 3. 创建t_psvt_patient_info记录(患者属性) @@ -150,6 +187,7 @@ **请求参数**: 无(通过loginState获取userId) **响应示例**: + ```json { "code": 0, @@ -179,26 +217,26 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| userId | string | 用户ID | -| openId | string | 小程序OpenId | -| telephone | string | 手机号 | -| isPhoneRegistered | bool | 是否已手机号注册 | -| isInfoSubmitted | bool | 是否已提交信息 | -| isHeartRateTips | bool | 是否开启心率提醒 | -| firstOpenTime | string | 首次打开时间 | -| phoneRegisterTime | string | 手机号注册时间 | -| infoSubmitTime | string | 信息提交时间 | -| nickName | string | 昵称(未提交信息时为null) | -| avatar | string | 头像URL(未提交信息时为null) | -| ageRange | int | 年龄段(未提交信息时为null) | -| gender | int | 性别(未提交信息时为null) | -| provinceName | string | 省份名称(未提交信息时为null) | -| cityName | string | 市名称(未提交信息时为null) | -| diagnosisStatus | int | 确诊状态(未提交信息时为null) | -| diagnosisTime | string | 确诊时间(未提交信息时为null) | -| surgeryStatus | int | 手术状态(未提交信息时为null) | +| 字段名 | 类型 | 说明 | +| ----------------- | ------ | ------------------------------ | +| userId | string | 用户ID | +| openId | string | 小程序OpenId | +| telephone | string | 手机号 | +| isPhoneRegistered | bool | 是否已手机号注册 | +| isInfoSubmitted | bool | 是否已提交信息 | +| isHeartRateTips | bool | 是否开启心率提醒 | +| firstOpenTime | string | 首次打开时间 | +| phoneRegisterTime | string | 手机号注册时间 | +| infoSubmitTime | string | 信息提交时间 | +| nickName | string | 昵称(未提交信息时为null) | +| avatar | string | 头像URL(未提交信息时为null) | +| ageRange | int | 年龄段(未提交信息时为null) | +| gender | int | 性别(未提交信息时为null) | +| provinceName | string | 省份名称(未提交信息时为null) | +| cityName | string | 市名称(未提交信息时为null) | +| diagnosisStatus | int | 确诊状态(未提交信息时为null) | +| diagnosisTime | string | 确诊时间(未提交信息时为null) | +| surgeryStatus | int | 手术状态(未提交信息时为null) | --- @@ -208,22 +246,23 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| avatar | string | 否 | 头像URL | -| nickName | string | 否 | 昵称 | -| telephone | string | 否 | 手机号 | -| ageRange | int | 否 | 年龄段 | -| gender | int | 否 | 性别 | -| provinceId | int | 否 | 省份ID | -| provinceName | string | 否 | 省份名称 | -| cityId | int | 否 | 市ID | -| cityName | string | 否 | 市名称 | -| diagnosisStatus | int | 否 | 确诊状态(已确诊PSVT后不可修改) | -| diagnosisTime | string | 否 | 确诊时间 | -| surgeryStatus | int | 否 | 手术状态(已确诊PSVT后不可修改) | +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ------ | ---- | -------------------------------- | +| avatar | string | 否 | 头像URL | +| nickName | string | 否 | 昵称 | +| telephone | string | 否 | 手机号 | +| ageRange | int | 否 | 年龄段 | +| gender | int | 否 | 性别 | +| provinceId | int | 否 | 省份ID | +| provinceName | string | 否 | 省份名称 | +| cityId | int | 否 | 市ID | +| cityName | string | 否 | 市名称 | +| diagnosisStatus | int | 否 | 确诊状态(已确诊PSVT后不可修改) | +| diagnosisTime | string | 否 | 确诊时间 | +| surgeryStatus | int | 否 | 手术状态(已确诊PSVT后不可修改) | **响应示例**: + ```json { "code": 0, @@ -254,6 +293,7 @@ **响应字段说明**: 同1.4获取我的信息 **业务逻辑**: + 1. 若已确诊PSVT(DiagnosisStatus=2),则diagnosisStatus和surgeryStatus不可修改 2. 更新t_psvt_patient_info患者属性 3. 若更新了手机号,同步更新t_psvt_user_info的Telephone @@ -267,11 +307,12 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| channelId | int | 是 | 渠道码ID | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ---- | ---- | -------- | +| channelId | int | 是 | 渠道码ID | **响应示例**: + ```json { "code": 0, @@ -284,11 +325,12 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| +| 字段名 | 类型 | 说明 | +| -------- | ---- | ------------ | | recorded | bool | 是否记录成功 | **业务逻辑**: + 1. 验证渠道码存在 2. 更新用户ScanChannelId(最终渠道,每次扫码都更新) 3. 记录邀约记录(InviteType=1用户打开) @@ -304,60 +346,66 @@ **请求参数**: 无 **响应示例**: + ```json { "code": 0, "message": "success", "data": { - "genderList": [{"1": "男"}, {"2": "女"}], - "ageRangeList": [{"1": "18~28岁"}, {"2": "29~40岁"}, {"3": "41~50岁"}, {"4": "50岁以上"}], - "diagnosisStatusList": [{"1": "疑似PSVT正在了解中"}, {"2": "已确诊PSVT"}, {"3": "心悸/心跳过快 尚未就诊"}, {"4": "亲友相关 想了解更多"}], - "surgeryStatusList": [{"1": "已接收射频消融/相关手术"}, {"2": "尚未接收手术"}, {"3": "正在评估"}] + "genderList": [{ "1": "男" }, { "2": "女" }], + "ageRangeList": [{ "1": "18~28岁" }, { "2": "29~40岁" }, { "3": "41~50岁" }, { "4": "50岁以上" }], + "diagnosisStatusList": [ + { "1": "疑似PSVT正在了解中" }, + { "2": "已确诊PSVT" }, + { "3": "心悸/心跳过快 尚未就诊" }, + { "4": "亲友相关 想了解更多" } + ], + "surgeryStatusList": [{ "1": "已接收射频消融/相关手术" }, { "2": "尚未接收手术" }, { "3": "正在评估" }] } } ``` **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| genderList | array | 性别列表,每项为 {value: "label"} | -| ageRangeList | array | 年龄段列表,每项为 {value: "label"} | +| 字段名 | 类型 | 说明 | +| ------------------- | ----- | ------------------------------------- | +| genderList | array | 性别列表,每项为 {value: "label"} | +| ageRangeList | array | 年龄段列表,每项为 {value: "label"} | | diagnosisStatusList | array | 确诊状态列表,每项为 {value: "label"} | -| surgeryStatusList | array | 手术状态列表,每项为 {value: "label"} | +| surgeryStatusList | array | 手术状态列表,每项为 {value: "label"} | **genderList值说明**: -| 值 | 说明 | -|---|---| -| 1 | 男 | -| 2 | 女 | +| 值 | 说明 | +| --- | ---- | +| 1 | 男 | +| 2 | 女 | **ageRangeList值说明**: -| 值 | 说明 | -|---|---| -| 1 | 18~28岁 | -| 2 | 29~40岁 | -| 3 | 41~50岁 | -| 4 | 50岁以上 | +| 值 | 说明 | +| --- | -------- | +| 1 | 18~28岁 | +| 2 | 29~40岁 | +| 3 | 41~50岁 | +| 4 | 50岁以上 | **diagnosisStatusList值说明**: -| 值 | 说明 | -|---|---| -| 1 | 疑似PSVT正在了解中 | -| 2 | 已确诊PSVT | -| 3 | 心悸/心跳过快 尚未就诊 | -| 4 | 亲友相关 想了解更多 | +| 值 | 说明 | +| --- | ---------------------- | +| 1 | 疑似PSVT正在了解中 | +| 2 | 已确诊PSVT | +| 3 | 心悸/心跳过快 尚未就诊 | +| 4 | 亲友相关 想了解更多 | **surgeryStatusList值说明**: -| 值 | 说明 | -|---|---| -| 1 | 已接收射频消融/相关手术 | -| 2 | 尚未接收手术 | -| 3 | 正在评估 | +| 值 | 说明 | +| --- | ----------------------- | +| 1 | 已接收射频消融/相关手术 | +| 2 | 尚未接收手术 | +| 3 | 正在评估 | --- @@ -369,14 +417,15 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| search | string | 否 | 搜索关键字(手机号/UserId/省市) | -| channelId | int | 否 | 渠道ID筛选 | -| page | int | 否 | 页码,默认1 | -| count | int | 否 | 每页数量,默认10 | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | -------------------------------- | +| search | string | 否 | 搜索关键字(手机号/UserId/省市) | +| channelId | int | 否 | 渠道ID筛选 | +| page | int | 否 | 页码,默认1 | +| count | int | 否 | 每页数量,默认10 | **响应示例**: + ```json { "code": 0, @@ -430,56 +479,56 @@ **响应字段说明(data层级)**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| page | int | 当前页码 | -| pages | int | 总页数 | -| count | int | 总记录数 | +| 字段名 | 类型 | 说明 | +| ------- | ------ | ------------ | +| page | int | 当前页码 | +| pages | int | 总页数 | +| count | int | 总记录数 | | summary | object | 汇合统计数据 | -| list | array | 患者列表 | +| list | array | 患者列表 | **summary字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| totalOpenCount | int | 总打开数 | -| phoneRegisteredCount | int | 手机号注册数 | -| phoneRegisteredRate | string | 手机号注册率(百分比) | -| infoSubmittedCount | int | 信息提交数 | -| infoSubmittedRate | string | 信息提交率(百分比) | -| diagnosedPsvtCount | int | 确诊PSVT数 | -| diagnosedPsvtRate | string | 确诊PSVT率(百分比) | -| firstOpenPhoneRegisteredCount | int | 首次打开完成手机号注册数 | -| firstOpenInfoSubmittedCount | int | 首次打开完成信息填写数 | -| phoneRegisteredNotLostCount | int | 手机号注册后未流失数 | +| 字段名 | 类型 | 说明 | +| ----------------------------- | ------ | ------------------------ | +| totalOpenCount | int | 总打开数 | +| phoneRegisteredCount | int | 手机号注册数 | +| phoneRegisteredRate | string | 手机号注册率(百分比) | +| infoSubmittedCount | int | 信息提交数 | +| infoSubmittedRate | string | 信息提交率(百分比) | +| diagnosedPsvtCount | int | 确诊PSVT数 | +| diagnosedPsvtRate | string | 确诊PSVT率(百分比) | +| firstOpenPhoneRegisteredCount | int | 首次打开完成手机号注册数 | +| firstOpenInfoSubmittedCount | int | 首次打开完成信息填写数 | +| phoneRegisteredNotLostCount | int | 手机号注册后未流失数 | **list行字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| userId | string | 用户ID | -| telephone | string | 手机号 | -| nickName | string | 昵称 | -| avatar | string | 头像URL | -| ageRange | int | 年龄段 | -| gender | int | 性别 | -| provinceName | string | 省份名称 | -| cityName | string | 市名称 | -| diagnosisStatus | int | 确诊状态 | -| diagnosisTime | string | 确诊时间 | -| surgeryStatus | int | 手术状态 | -| firstOpenTime | string | 首次打开时间 | -| phoneRegisterTime | string | 手机号注册时间 | -| infoSubmitTime | string | 信息提交时间 | -| isFirstOpenPhoneRegistered | bool | 首次打开完成手机号注册 | -| isFirstOpenInfoSubmitted | bool | 首次打开完成信息填写 | -| isPhoneRegisteredNotLost | bool | 手机号注册后未流失 | -| scanChannelId | int | 扫码渠道ID | -| scanChannelName | string | 扫码渠道名称 | -| telChannelId | int | 手机号注册渠道ID | -| telChannelName | string | 手机号注册渠道名称 | -| submitChannelId | int | 提交信息渠道ID | -| submitChannelName | string | 提交信息渠道名称 | +| 字段名 | 类型 | 说明 | +| -------------------------- | ------ | ---------------------- | +| userId | string | 用户ID | +| telephone | string | 手机号 | +| nickName | string | 昵称 | +| avatar | string | 头像URL | +| ageRange | int | 年龄段 | +| gender | int | 性别 | +| provinceName | string | 省份名称 | +| cityName | string | 市名称 | +| diagnosisStatus | int | 确诊状态 | +| diagnosisTime | string | 确诊时间 | +| surgeryStatus | int | 手术状态 | +| firstOpenTime | string | 首次打开时间 | +| phoneRegisterTime | string | 手机号注册时间 | +| infoSubmitTime | string | 信息提交时间 | +| isFirstOpenPhoneRegistered | bool | 首次打开完成手机号注册 | +| isFirstOpenInfoSubmitted | bool | 首次打开完成信息填写 | +| isPhoneRegisteredNotLost | bool | 手机号注册后未流失 | +| scanChannelId | int | 扫码渠道ID | +| scanChannelName | string | 扫码渠道名称 | +| telChannelId | int | 手机号注册渠道ID | +| telChannelName | string | 手机号注册渠道名称 | +| submitChannelId | int | 提交信息渠道ID | +| submitChannelName | string | 提交信息渠道名称 | --- @@ -489,11 +538,12 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| id | int | 是 | 用户信息表ID | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---- | ---- | ------------ | +| id | int | 是 | 用户信息表ID | **响应示例**: + ```json { "code": 0, @@ -533,36 +583,58 @@ ### 2.3 渠道码列表 `GET ?r=channel/list` -**说明**: 获取所有有效渠道码列表。 +**说明**: 获取有效渠道码列表,支持分页。 -**请求参数**: 无 +**请求参数**: + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---- | ---- | ---------------- | +| page | int | 否 | 页码,默认1 | +| count | int | 否 | 每页数量,默认10 | **响应示例**: + ```json { "code": 0, "message": "success", - "data": [ - { - "channelId": 1, - "channelName": "渠道A", - "channelDesc": "渠道A说明", - "miniCodeUrl": "https://xxx/minicode_1.png", - "createDate": "2023-01-01", - "updateDate": "2023-01-01" - } - ] + "data": { + "page": 1, + "pages": 5, + "count": 50, + "list": [ + { + "channelId": 1, + "channelName": "渠道A", + "channelDesc": "渠道A说明", + "miniCodeUrl": "https://xxx/minicode_1.png", + "createDate": "2023-01-01", + "updateDate": "2023-01-01" + } + ] + } } ``` -**响应字段说明(每行)**: +**响应字段说明(data层级)**: + +| 字段名 | 类型 | 说明 | +| ------ | ----- | -------- | +| page | int | 当前页码 | +| pages | int | 总页数 | +| count | int | 总记录数 | +| list | array | 渠道列表 | -| 字段名 | 类型 | 说明 | -|---|---|---| -| channelId | int | 渠道ID | -| channelName | string | 渠道名称 | -| channelDesc | string | 渠道码说明 | +**list行字段说明**: + +| 字段名 | 类型 | 说明 | +| ----------- | ------ | --------------- | +| channelId | int | 渠道ID | +| channelName | string | 渠道名称 | +| channelDesc | string | 渠道码说明 | | miniCodeUrl | string | 小程序码图片URL | +| createDate | string | 创建日期 | +| updateDate | string | 更新日期 | --- @@ -572,12 +644,13 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| channelName | string | 是 | 渠道名称 | -| channelDesc | string | 否 | 渠道码说明 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------ | ---- | ---------- | +| channelName | string | 是 | 渠道名称 | +| channelDesc | string | 否 | 渠道码说明 | **响应示例**: + ```json { "code": 0, @@ -591,10 +664,10 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| channelId | int | 新创建的渠道ID | -| channelName | string | 渠道名称 | +| 字段名 | 类型 | 说明 | +| ----------- | ------ | -------------- | +| channelId | int | 新创建的渠道ID | +| channelName | string | 渠道名称 | --- @@ -604,13 +677,14 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| channelId | int | 是 | 渠道ID | -| channelName | string | 否 | 渠道名称 | -| channelDesc | string | 否 | 渠道码说明 | +| 参数名 | 类型 | 必填 | 说明 | +| ----------- | ------ | ---- | ---------- | +| channelId | int | 是 | 渠道ID | +| channelName | string | 否 | 渠道名称 | +| channelDesc | string | 否 | 渠道码说明 | **响应示例**: + ```json { "code": 0, @@ -624,9 +698,9 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| channelId | int | 渠道ID | +| 字段名 | 类型 | 说明 | +| ----------- | ------ | ---------------- | +| channelId | int | 渠道ID | | channelName | string | 更新后的渠道名称 | --- @@ -637,11 +711,12 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| channelId | int | 是 | 渠道ID | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ---- | ---- | ------ | +| channelId | int | 是 | 渠道ID | **响应示例**: + ```json { "code": 0, @@ -654,11 +729,12 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| channelId | int | 已删除的渠道ID | +| 字段名 | 类型 | 说明 | +| --------- | ---- | -------------- | +| channelId | int | 已删除的渠道ID | **业务逻辑**: + 1. 校验渠道存在 2. 将渠道的Status置为100(删除状态),逻辑删除 3. 更新UpdateBy和UpdateTime @@ -672,11 +748,12 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| channelId | int | 是 | 渠道ID | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ---- | ---- | ------ | +| channelId | int | 是 | 渠道ID | **响应示例**: + ```json { "code": 0, @@ -691,13 +768,14 @@ **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| channelId | int | 渠道ID | -| channelName | string | 渠道名称 | +| 字段名 | 类型 | 说明 | +| ----------- | ------ | --------------- | +| channelId | int | 渠道ID | +| channelName | string | 渠道名称 | | miniCodeUrl | string | 小程序码图片URL | **业务逻辑**: + 1. 若渠道已有小程序码URL(MiniCodeUrl),直接返回 2. 若没有,调用微信接口生成小程序码(scene参数包含渠道ID) 3. 保存生成的MiniCodeUrl到渠道记录 @@ -710,13 +788,14 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| inviteDateBegin | string | 否 | 邀约日期开始(YYYY-MM-DD) | -| inviteDateEnd | string | 否 | 邀约日期结束(YYYY-MM-DD) | -| channelIds | string | 否 | 渠道ID筛选,逗号分隔(如"1,2,3") | +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ------ | ---- | --------------------------------- | +| inviteDateBegin | string | 否 | 邀约日期开始(YYYY-MM-DD) | +| inviteDateEnd | string | 否 | 邀约日期结束(YYYY-MM-DD) | +| channelIds | string | 否 | 渠道ID筛选,逗号分隔(如"1,2,3") | **响应示例**: + ```json { "code": 0, @@ -738,16 +817,16 @@ **响应字段说明(每行)**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| statDate | string | 统计日期 | -| channelId | int | 渠道ID | -| channelName | string | 渠道名称 | -| channelDesc | string | 渠道码说明 | -| openPatientCount | int | 邀约打开患者数 | -| phoneRegisteredCount | int | 邀约注册手机号患者数 | -| infoSubmittedCount | int | 邀约提交信息患者数 | -| diagnosedPsvtCount | int | 确诊PSVT患者数 | +| 字段名 | 类型 | 说明 | +| -------------------- | ------ | -------------------- | +| statDate | string | 统计日期 | +| channelId | int | 渠道ID | +| channelName | string | 渠道名称 | +| channelDesc | string | 渠道码说明 | +| openPatientCount | int | 邀约打开患者数 | +| phoneRegisteredCount | int | 邀约注册手机号患者数 | +| infoSubmittedCount | int | 邀约提交信息患者数 | +| diagnosedPsvtCount | int | 确诊PSVT患者数 | --- @@ -757,16 +836,17 @@ **请求参数**: -| 参数名 | 类型 | 必填 | 说明 | -|---|---|---|---| -| inviteDateBegin | string | 否 | 邀约日期开始(YYYY-MM-DD) | -| inviteDateEnd | string | 否 | 邀约日期结束(YYYY-MM-DD) | -| channelId | int | 否 | 渠道ID筛选 | -| inviteType | int | 否 | 邀约类型筛选:1-用户打开,2-手机号注册,3-信息提交 | -| page | int | 否 | 页码,默认1 | -| count | int | 否 | 每页数量,默认10 | +| 参数名 | 类型 | 必填 | 说明 | +| --------------- | ------ | ---- | -------------------------------------------------- | +| inviteDateBegin | string | 否 | 邀约日期开始(YYYY-MM-DD) | +| inviteDateEnd | string | 否 | 邀约日期结束(YYYY-MM-DD) | +| channelId | int | 否 | 渠道ID筛选 | +| inviteType | int | 否 | 邀约类型筛选:1-用户打开,2-手机号注册,3-信息提交 | +| page | int | 否 | 页码,默认1 | +| count | int | 否 | 每页数量,默认10 | **响应示例**: + ```json { "code": 0, @@ -799,7 +879,7 @@ "diagnosisTime": "2023-06", "surgeryStatus": 1, "surgeryStatusName": "已手术", - "telephone": "138xxxx1234", + "telephone": "138xxxx1234" } ] } @@ -808,45 +888,45 @@ **响应字段说明(data层级)**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| page | int | 当前页码 | -| pages | int | 总页数 | -| count | int | 总记录数 | -| list | array | 原始数据列表 | +| 字段名 | 类型 | 说明 | +| ------ | ----- | ------------ | +| page | int | 当前页码 | +| pages | int | 总页数 | +| count | int | 总记录数 | +| list | array | 原始数据列表 | **list行字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| id | int | 记录ID | -| inviteTime | string | 邀约时间 | -| channelId | int | 渠道ID | -| channelName | string | 渠道名称 | -| inviteType | int | 邀约类型 | -| userId | string | 用户ID | -| patientId | int | 患者ID | -| nickName | string | 昵称 | -| gender | int | 性别 | -| ageRange | int | 年龄段 | -| provinceName | string | 省份名称 | -| cityName | string | 市名称 | -| diagnosisStatus | int | 确诊状态 | -| diagnosisTime | string | 确诊时间 | -| surgeryStatus | int | 手术状态 | -| telephone | string | 手机号 | -| firstOpenTime | string | 首次打开时间 | -| phoneRegisterTime | string | 手机号注册时间 | -| infoSubmitTime | string | 信息提交时间 | -| isFirstOpenPhoneRegistered | bool | 首次打开完成手机号注册 | -| isFirstOpenInfoSubmitted | bool | 首次打开完成信息填写 | -| isPhoneRegisteredNotLost | bool | 手机号注册后未流失 | -| scanChannelId | int | 扫码渠道ID | -| scanChannelName | string | 扫码渠道名称 | -| telChannelId | int | 手机号注册渠道ID | -| telChannelName | string | 手机号注册渠道名称 | -| submitChannelId | int | 提交信息渠道ID | -| submitChannelName | string | 提交信息渠道名称 | +| 字段名 | 类型 | 说明 | +| -------------------------- | ------ | ---------------------- | +| id | int | 记录ID | +| inviteTime | string | 邀约时间 | +| channelId | int | 渠道ID | +| channelName | string | 渠道名称 | +| inviteType | int | 邀约类型 | +| userId | string | 用户ID | +| patientId | int | 患者ID | +| nickName | string | 昵称 | +| gender | int | 性别 | +| ageRange | int | 年龄段 | +| provinceName | string | 省份名称 | +| cityName | string | 市名称 | +| diagnosisStatus | int | 确诊状态 | +| diagnosisTime | string | 确诊时间 | +| surgeryStatus | int | 手术状态 | +| telephone | string | 手机号 | +| firstOpenTime | string | 首次打开时间 | +| phoneRegisterTime | string | 手机号注册时间 | +| infoSubmitTime | string | 信息提交时间 | +| isFirstOpenPhoneRegistered | bool | 首次打开完成手机号注册 | +| isFirstOpenInfoSubmitted | bool | 首次打开完成信息填写 | +| isPhoneRegisteredNotLost | bool | 手机号注册后未流失 | +| scanChannelId | int | 扫码渠道ID | +| scanChannelName | string | 扫码渠道名称 | +| telChannelId | int | 手机号注册渠道ID | +| telChannelName | string | 手机号注册渠道名称 | +| submitChannelId | int | 提交信息渠道ID | +| submitChannelName | string | 提交信息渠道名称 | --- @@ -857,26 +937,33 @@ **请求参数**: 无 **响应示例**: + ```json { "code": 0, "message": "success", "data": { - "genderList": [{"1": "男"}, {"2": "女"}], - "ageRangeList": [{"1": "18~28岁"}, {"2": "29~40岁"}, {"3": "41~50岁"}, {"4": "50岁以上"}], - "diagnosisStatusList": [{"1": "疑似PSVT正在了解中"}, {"2": "已确诊PSVT"}, {"3": "心悸/心跳过快 尚未就诊"}, {"4": "亲友相关 想了解更多"}], - "surgeryStatusList": [{"1": "已接收射频消融/相关手术"}, {"2": "尚未接收手术"}, {"3": "正在评估"}] + "genderList": [{ "1": "男" }, { "2": "女" }], + "ageRangeList": [{ "1": "18~28岁" }, { "2": "29~40岁" }, { "3": "41~50岁" }, { "4": "50岁以上" }], + "diagnosisStatusList": [ + { "1": "疑似PSVT正在了解中" }, + { "2": "已确诊PSVT" }, + { "3": "心悸/心跳过快 尚未就诊" }, + { "4": "亲友相关 想了解更多" } + ], + "surgeryStatusList": [{ "1": "已接收射频消融/相关手术" }, { "2": "尚未接收手术" }, { "3": "正在评估" }] } } ``` **响应字段说明**: -| 字段名 | 类型 | 说明 | -|---|---|---| -| genderList | array | 性别列表,每项为 {value: "label"} | -| ageRangeList | array | 年龄段列表,每项为 {value: "label"} | +| 字段名 | 类型 | 说明 | +| ------------------- | ----- | ------------------------------------- | +| genderList | array | 性别列表,每项为 {value: "label"} | +| ageRangeList | array | 年龄段列表,每项为 {value: "label"} | | diagnosisStatusList | array | 确诊状态列表,每项为 {value: "label"} | -| surgeryStatusList | array | 手术状态列表,每项为 {value: "label"} | +| surgeryStatusList | array | 手术状态列表,每项为 {value: "label"} | + +--- ---- \ No newline at end of file diff --git a/src/app.json b/src/app.json index a6c1fbd..de9eb45 100644 --- a/src/app.json +++ b/src/app.json @@ -24,19 +24,13 @@ "pages/myWall/index", "pages/myComment/index", "pages/myCollection/index", - "pages/userInfo/index" + "pages/userInfo/index", + "pages/changeTel/index" ], "subPackages": [ { "root": "doc", - "pages": [ - "pages/doc/index", - "pages/doc1/index", - "pages/doc2/index", - "pages/doc3/index", - "pages/doc4/index", - "pages/doc5/index" - ] + "pages": ["pages/doc/index", "pages/doc1/index"] } ], "tabBar": { diff --git a/src/app.ts b/src/app.ts index 3584d0e..75d3709 100644 --- a/src/app.ts +++ b/src/app.ts @@ -87,7 +87,7 @@ App({ }, }) }, - waitLogin({ type = 0 } = { type: 'any' }) { + waitLogin({ type = 1 } = { type: 1 }) { return new Promise((resolve) => { const checkLogin = () => { if (this.globalData.loginState) { @@ -104,20 +104,20 @@ App({ }) }, checkLoginType(type = 'any') { - const { isPhoneRegistered, isInfoSubmitted } = this.globalData.initLoginInfo + const { isLogin, isReg } = this.globalData.initLoginInfo if (type === 'any') { return true } - if (!isPhoneRegistered) { + if (!isLogin) { wx.reLaunch({ url: '/pages/login/index', }) return false } - if (!isInfoSubmitted) { + if (!isReg) { wx.reLaunch({ url: '/pages/confirmInfo/index', }) @@ -139,12 +139,8 @@ App({ }) }, - getUserInfo(type: 0 | 1 | 2 = 0) { - const url = { - 0: '?r=wtx/user/userinfo', - 1: '?r=wtx/account/info', - 2: '?r=wtx/doctor/account/info', - }[type] + getUserInfo() { + const url = '?r=psvt/patient/my-info' return wx.ajax({ method: 'GET', url: url, diff --git a/src/components/pickerArea/index.scss b/src/components/pickerArea/index.scss index cbd27b5..1350402 100644 --- a/src/components/pickerArea/index.scss +++ b/src/components/pickerArea/index.scss @@ -41,7 +41,7 @@ padding: 18rpx 30rpx; box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 0, 0, 0.11); border-radius: 12rpx 12rpx 12rpx 12rpx; - border: 2rpx solid #f23a2f; + border: 2rpx solid rgba(47, 130, 169, 1); display: flex; align-items: center; justify-content: space-between; @@ -69,7 +69,7 @@ display: flex; align-items: center; justify-content: center; - background: #f23a2f; + background: rgba(47, 130, 169, 1); border-radius: 12rpx 12rpx 12rpx 12rpx; } } @@ -91,7 +91,7 @@ background: #f7f8f9; &.active { color: #fff; - background-color: #f23a2f; + background-color: rgba(47, 130, 169, 1); } } } @@ -118,9 +118,9 @@ height: 36rpx; } &.active { - color: #f23a2f; + color: rgba(47, 130, 169, 1); .word { - color: #f23a2f; + color: rgba(47, 130, 169, 1); } } } diff --git a/src/components/pickerArea/index.wxml b/src/components/pickerArea/index.wxml index f4b30a8..2f6b840 100644 --- a/src/components/pickerArea/index.wxml +++ b/src/components/pickerArea/index.wxml @@ -9,11 +9,9 @@ {{ProvinceName || '请选择省份'}} - {{CityName || '请选择城市'}} - 确定 diff --git a/src/components/popup/index.ts b/src/components/popup/index.ts index 1e69b34..3f8032f 100644 --- a/src/components/popup/index.ts +++ b/src/components/popup/index.ts @@ -122,7 +122,6 @@ Component({ }, handlePopup1Check1() { if (this.data.popup1Check1) { - app.mpBehavior({ PageName: 'BTN_PATIENTPRIVACY' }) } }, handleSelectStatus(e) { diff --git a/src/components/popup/index.wxml b/src/components/popup/index.wxml index 2f6ff03..88360ea 100644 --- a/src/components/popup/index.wxml +++ b/src/components/popup/index.wxml @@ -14,7 +14,7 @@ 欢迎加入“愈见守护” 亲爱的用户,为了更好地向您提供平台服务保护您的权益,我们完善了 - 《个人信息及隐私政策》 + 《个人信息及隐私政策》 ,请您仔细阅读。一旦您开始使用,即表示您已充分理解并同意协议内容。 @@ -26,7 +26,7 @@ > 我特此同意 - 《个人信息及隐私政策》 + 《个人信息及隐私政策》 规定收集我的相关敏感个人信息 diff --git a/src/components/uploadFile/index.wxml b/src/components/uploadFile/index.wxml index ef31db0..8e2949c 100644 --- a/src/components/uploadFile/index.wxml +++ b/src/components/uploadFile/index.wxml @@ -10,7 +10,7 @@ > - + @@ -21,7 +21,7 @@ - + diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml index bf9cfe4..199643a 100644 --- a/src/custom-tab-bar/index.wxml +++ b/src/custom-tab-bar/index.wxml @@ -13,7 +13,7 @@ wx:else bind:tap="handleNav" data-index="{{index}}" - icon="{{imageUrl}}/tabbar/{{active==index ? item.iconActive : item.icon}}.png?r={{Timestamp}}" + icon="{{imageUrl}}tabbar/{{active==index ? item.iconActive : item.icon}}.png?r={{Timestamp}}" > {{item.text}} diff --git a/src/doc/pages/doc/index.ts b/src/doc/pages/doc/index.ts index 154aa29..abd4dbb 100644 --- a/src/doc/pages/doc/index.ts +++ b/src/doc/pages/doc/index.ts @@ -1,102 +1,48 @@ -const app = getApp() - Page({ data: { - popupShow: false, - popupType: '', - popupParams: { - position: 'bottom', - } as any, - - topicShow: false, - replayShow: true, - - fileList: [] as any[], - }, - onLoad() { - app.waitLogin({ type: 0 }).then(() => {}) - }, - handlePopupOk() { - const { popupType } = this.data - if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/user/agree-guest-privacy', - data: { - WorkerId: app.globalData.scene?.workerId || '', - }, - }).then(() => { - this.setData({ - popupShow: false, - popupType: '', - popupParams: {}, - }) - const waitBindDoctorId = app.globalData.waitBindDoctorId - if (waitBindDoctorId) { - this.handleBindDoctor(waitBindDoctorId) - } - }) - } - if (popupType === 'conformBindDoctorConform') { - this.setData({ - popupShow: false, - }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/account/wait-bind-doctor', - data: { - doctorId: app.globalData.waitBindDoctorId, - }, - }).then(() => { - wx.navigateTo({ - url: `/patient/pages/login/index`, + list: [] as Array<{ + id: number + type: number + title: string + content: string + version: string + updateTime: string + }>, + }, + onLoad(options) { + // 如果带了 active 参数,直接跳转到对应协议详情 + if (options.active) { + this.getList().then(() => { + const type = Number(options.active) + wx.redirectTo({ + url: `/doc/pages/doc1/index?type=${type}`, }) }) + return } + + this.getList() }, - handlePopupCancel() { - const { popupType } = this.data - if (popupType === 'argument') { - wx.exitMiniProgram() - } - if (popupType === 'conformBindDoctorConform') { - this.setData({ - popupShow: false, + getList() { + return wx + .ajax({ + method: 'GET', + url: '?r=psvt/agreement/get-list', }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/account/wait-bind-doctor', - data: { - doctorId: app.globalData.waitBindDoctorId, - }, - }).then(() => { - app.globalData.waitBindDoctorId = '' + .then((res) => { + this.setData({ + list: res, + }) }) - } }, - handleWechatWork() { + handleToDetail(e: WechatMiniprogram.TouchEvent) { + const { type } = e.currentTarget.dataset wx.navigateTo({ - url: '/pages/wechatWork/index', + url: `/doc/pages/doc1/index?type=${type}`, }) }, - handleSetData(e) { - const { fileList } = this.data - this.setData({ - fileList: [...fileList, ...e.detail], - }) - }, - handleDeleteFile(e) { - const { index } = e.detail - const { fileList } = this.data - this.setData({ - fileList: fileList.filter((_, i) => i !== index), - }) - }, - topicClose() { - this.setData({ - topicShow: false, - }) + handleBack() { + wx.navigateBack() }, }) diff --git a/src/doc/pages/doc/index.wxml b/src/doc/pages/doc/index.wxml index a8ba1cd..f7e3310 100644 --- a/src/doc/pages/doc/index.wxml +++ b/src/doc/pages/doc/index.wxml @@ -1,5 +1,5 @@ - + 个人信息 @@ -7,24 +7,18 @@ - - 《隐私政策》 - - - - 《用户协议》 - - - - 《法律声明》 - - - - 《健康敏感信息处理与AI服务授权告知书》 + + 《{{item.title}}》 diff --git a/src/doc/pages/doc1/index.scss b/src/doc/pages/doc1/index.scss index 0b69ddc..f8840ff 100644 --- a/src/doc/pages/doc1/index.scss +++ b/src/doc/pages/doc1/index.scss @@ -1,3 +1,22 @@ -.page{ +.page { padding: 0 40rpx; + + .header { + padding: 40rpx 0 24rpx; + border-bottom: 1rpx solid #f1f5f9; + margin-bottom: 24rpx; + + .title { + font-size: 36rpx; + font-weight: bold; + color: #1e293b; + line-height: 50rpx; + } + + .meta { + margin-top: 12rpx; + font-size: 24rpx; + color: #94a3b8; + } + } } diff --git a/src/doc/pages/doc1/index.ts b/src/doc/pages/doc1/index.ts index bd632eb..48630e0 100644 --- a/src/doc/pages/doc1/index.ts +++ b/src/doc/pages/doc1/index.ts @@ -1,10 +1,31 @@ -const _app = getApp(); - Page({ data: { - doc:`


生效日期:2025年6月

【血友病B患者支持项目“愈见守护”】(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

1. 注册成为用户:

为完成创建账号,您需提供您的姓名、手机号码,年龄,所在地,完成账号注册,您后续可以自主在【我的】-【个人信息】中填写或更正您的信息;

2. 常见问题解答

平台提供您的常见问题解答功能,当您点击特定问题后,系统会通过已有问答库自动回答,帮助您提供知识内容;

3. 基因全知道:教育服务:

我们为您提供疾病知识服务,我们将记录您在使用本服务期间的内容浏览状态;

4. 预报名

平台为您提供患者教育活动的的报名服务,您需提供您的姓名、年龄、所在地、

5. 医患互动

您在绑定专属医生后,您可使用医患互动服务。您可以从统提供的标准问答库内选择问题发送给医生,并接收医生从标准问答库内选择的问答回复;

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` + title: '', + doc: '', + version: '', + updateTime: '', + }, + onLoad(options) { + const type = options.type || 1 + this.getDetail(Number(type)) + }, + getDetail(type: number) { + wx.ajax({ + method: 'GET', + url: '?r=psvt/agreement/get-by-type', + data: { type }, + }).then((res) => { + this.setData({ + title: res.title, + doc: res.content, + version: res.version, + updateTime: res.updateTime, + }) + wx.setNavigationBarTitle({ + title: res.title || '协议详情', + }) + }) }, - onLoad() {}, -}); +}) export {} diff --git a/src/doc/pages/doc2/index.json b/src/doc/pages/doc2/index.json deleted file mode 100644 index 41ae86a..0000000 --- a/src/doc/pages/doc2/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "navigationBarTitleText": "个人信息共享知情同意书", - "usingComponents": { - "mp-html": "mp-html" - } -} diff --git a/src/doc/pages/doc2/index.scss b/src/doc/pages/doc2/index.scss deleted file mode 100644 index 0b69ddc..0000000 --- a/src/doc/pages/doc2/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -.page{ - padding: 0 40rpx; -} diff --git a/src/doc/pages/doc2/index.ts b/src/doc/pages/doc2/index.ts deleted file mode 100644 index 3937c2b..0000000 --- a/src/doc/pages/doc2/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -const _app = getApp(); - -Page({ - data: { - doc:`
个人信息共享知情同意书

【血友病B患者支持项目“愈见守护”】(以下简称“本平台”)非常注重保护用户(“您”)的个人信息及隐私。为保障您的合法权益,请您在使用本平台过程中,仔细阅读并确认您已充分理解并同意本知情同意书的所有内容。

一、信息共享目的

本平台旨在为血友病 B 患者提供便捷、高效的健康管理服务。将您的个人信息共享给您主动绑定的专属医生,是为了使医生能够更全面、及时地了解您的健康状况,包括但不限于病史、诊断进展、检查项目等。

二、共享信息范围

1. 基本个人信息:您注册本平台时填写的姓名、年龄、入组日期。

2. 健康档案信息:您在平台上录入或系统自动记录的疾病诊断信息、检查检验项目、治疗过程进展、就诊记录等。

三、信息共享主体

仅当您在本平台主动完成专属医生绑定操作后,您的上述个人信息将被共享给您绑定的专属医生。本平台承诺不会将您的个人信息共享给未经您主动绑定的任何第三方。

四、信息接收方的责任与义务

您绑定的专属医生需严格遵守国家相关法律法规及医疗行业规范,对获取的您的个人信息予以保密。在使用您的个人信息时,仅可将其用于为您提供医疗服务相关目的,不得用于任何其他商业或非医疗用途,不得泄露、篡改、损毁您的个人信息。如因专属医生违反相关规定导致您的个人信息泄露或遭受其他损害,其将承担相应的法律责任。

五、您的权利

1. 自主选择权:您有权自主决定是否在本平台绑定专属医生,从而决定是否将个人信息进行共享。若您选择不绑定专属医生,您仍可正常使用本平台除与医生信息交互相关的其他功能。

2. 信息查询与更正权:您可随时登录本平台,查询已共享给专属医生的个人信息,并对其中存在错误或需要更新的信息进行更正。

3. 撤回同意权:您可以通过本平台提供的“解绑”功能,随时撤回您对专属医生共享个人信息的同意。撤回同意后,专属医生将无法再查看您的信息。

六、信息安全保障

本平台高度重视您的个人信息安全,采取了一系列合理且必要的技术与管理措施,包括但不限于数据加密、访问控制等,以防止您的个人信息被泄露、篡改或丢失。

七、其他条款

1. 本知情同意书的签订、生效、履行、解释及争议解决均适用中华人民共和国法律。

2. 如您在使用本平台过程中与我们就本知情同意书或个人信息共享事宜发生任何争议,双方应首先友好协商解决;协商不成的,任何一方均有权向本平台运营方所在地有管辖权的人民法院提起诉讼。

3. 本平台有权根据法律法规的变化、业务发展需求等情况对本知情同意书进行修订。修订后的内容将通过在本平台显著位置发布公告等方式通知您。若您继续使用本平台及相关服务,即视为您已充分阅读、理解并接受修订后的内容。

` - }, - onLoad() {}, -}); - -export {} diff --git a/src/doc/pages/doc2/index.wxml b/src/doc/pages/doc2/index.wxml deleted file mode 100644 index 68e15cb..0000000 --- a/src/doc/pages/doc2/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/doc/pages/doc3/index.json b/src/doc/pages/doc3/index.json deleted file mode 100644 index 0af6714..0000000 --- a/src/doc/pages/doc3/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "navigationBarTitleText": "个人信息及隐私保护政策", - "usingComponents": { - "mp-html": "mp-html" - } -} diff --git a/src/doc/pages/doc3/index.scss b/src/doc/pages/doc3/index.scss deleted file mode 100644 index 0b69ddc..0000000 --- a/src/doc/pages/doc3/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -.page{ - padding: 0 40rpx; -} diff --git a/src/doc/pages/doc3/index.ts b/src/doc/pages/doc3/index.ts deleted file mode 100644 index 5f3a94f..0000000 --- a/src/doc/pages/doc3/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -const _app = getApp(); - -Page({ - data: { - doc:`

个人信息及隐私保护政策

生效日期:2025年6月

【血友病B患者支持项目“愈见守护”】(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

1. 注册成为用户:

为完成创建账号,您需提供您的姓名、手机号码,年龄,所在地,完成账号注册,您后续可以自主在【我的】-【个人信息】中填写或更正您的信息;

2. 常见问题解答

平台提供您的常见问题解答功能,当您点击特定问题后,系统会通过已有问答库自动回答,帮助您提供知识内容;

3. 基因全知道:教育服务:

我们为您提供疾病知识服务,我们将记录您在使用本服务期间的内容浏览状态;

4. 预报名

平台为您提供咨询基因诊疗服务的报名服务,您需提供您的姓名、年龄、所在地、

5. 医患互动

您在绑定专属医生后,您可使用医患互动服务。您可以从统提供的标准问答库内选择问题发送给医生,并接收医生从标准问答库内选择的问答回复;

6. 健康档案

我们为您提供专属的健康诊疗计划旅程,您可以了解健康诊疗过程中需要完成的检查内容及健康档案记录功能。您可以提交本人的病史信息包括确诊时间、体重、病情情况、既往病史信息、出血情况记录等信息;您还可以提交本人的检查项目及检查报告,我们将为您生成完整的健康档案;

7. 随访计划

基于您主动录入的注射日期,平台会自动帮您生成随访计划日历,您可以了解后续定期完成复诊的日期信息及需完成的检查项目并上传本人的检查报告;

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` - }, - onLoad() {}, -}); - -export {} diff --git a/src/doc/pages/doc3/index.wxml b/src/doc/pages/doc3/index.wxml deleted file mode 100644 index 68e15cb..0000000 --- a/src/doc/pages/doc3/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/doc/pages/doc4/index.json b/src/doc/pages/doc4/index.json deleted file mode 100644 index a1ad376..0000000 --- a/src/doc/pages/doc4/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "navigationBarTitleText": "用户协议", - "usingComponents": { - "mp-html": "mp-html" - } -} diff --git a/src/doc/pages/doc4/index.scss b/src/doc/pages/doc4/index.scss deleted file mode 100644 index 0b69ddc..0000000 --- a/src/doc/pages/doc4/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -.page{ - padding: 0 40rpx; -} diff --git a/src/doc/pages/doc4/index.ts b/src/doc/pages/doc4/index.ts deleted file mode 100644 index fd5a8f5..0000000 --- a/src/doc/pages/doc4/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -const _app = getApp(); - -Page({ - data: { - doc:`

用户协议

欢迎您使用愈见守护平台(以下简称 “本平台” 或 “平台”)为保障您在使用平台服务过程中的合法权益,规范双方权利与义务,请您在注册、使用本平台服务前,仔细阅读本用户协议(以下简称 “本协议”)全部内容。一旦您注册、登录或使用本平台,即视为您已阅读、理解并同意本协议的所有内容。

一、定义与适用范围

1. 本平台:指为血友病 B 患者提供健康管理、医疗信息服务等功能的数字化服务平台,包括但不限于对应的小程序、公众号等。

2. 用户:指注册、登录并使用本平台服务的自然人,即血友病 B 患者或经患者授权使用平台服务的相关人员。

3. 平台服务:指我们通过本平台向用户提供的所有功能与服务,包括但不限于健康档案管理、专属医生绑定与信息交互、医疗知识科普等服务。

本协议适用于用户对本平台所有服务的使用行为,用户在使用平台不同服务时,除需遵守本协议外,还应遵守我们针对具体服务制定的相关规则与指引。

二、用户注册与账号管理

1. 注册要求:用户在注册平台账号时,应提供真实、准确、完整的个人信息,包括但不限于姓名、出生日期、联系方式、疾病诊断信息等。若用户提供的信息发生变更,应及时更新,确保信息的有效性与准确性。

2. 账号安全:您的账户为您自行设置并由您保管,建议您务必保管好您的账户。 账户因您主动泄露或因您遭受他人攻击、诈骗等行为导致的损失及后果,本公司不承担责任,您应通过司法、行政等救济途径向侵权行为人追偿。

3. 如发现账号存在异常登录或使用情况,应立即通知我们,并配合采取必要的措施保障账号安全。因用户自身原因导致账号信息泄露或账号被盗用产生的后果,由用户自行承担。

4. 账号注销:用户有权根据自身需求申请注销账号。账号注销后,除法律法规另有规定或为履行相关义务外,我们将对用户的个人信息进行删除或匿名化处理,且无法恢复。

三、平台服务内容与使用规则

1. 服务内容

健康档案管理:用户可在平台录入、查看和管理个人健康档案信息,包括但不限于病史、诊断结果、治疗记录、健康数据等。平台将为用户提供便捷的档案管理功能,帮助用户系统地记录和跟踪健康状况。

专属医生绑定与信息交互:用户可自主选择绑定专属医生,绑定后,平台将按照《个人信息共享知情同意书》的约定,将用户相关信息共享给绑定医生。

医疗知识科普:平台将定期发布与血友病 B 相关的医疗知识、治疗进展、护理方法等科普内容,帮助用户更好地了解疾病,提升自我管理能力。

2. 使用规则

◦ 用户应在法律法规允许的范围内使用平台服务,不得利用平台从事任何违法违规活动,包括但不限于传播虚假信息、进行诈骗、侵犯他人知识产权等。

◦ 用户在使用平台服务过程中,不得干扰、破坏平台的正常运行,不得实施任何可能影响平台服务质量、安全或稳定性的行为,如恶意攻击、数据篡改、滥用接口等。

◦ 用户不得将平台服务用于商业目的或未经我们书面许可的其他用途。若用户违反上述使用规则,我们有权立即停止向其提供服务,并保留追究其法律责任的权利。

四、双方权利与义务

1. 用户权利

◦ 用户有权自主选择使用平台提供的各项服务,有权对平台服务提出意见和建议。

◦ 用户有权按照本协议约定,查询、更正个人在平台的相关信息,有权撤回对个人信息共享的同意(具体规则详见《个人信息共享知情同意书》)。

◦ 用户在使用平台服务过程中,若合法权益受到侵害,有权要求我们采取合理措施予以解决。

2. 用户义务

◦ 用户应遵守本协议及平台相关规则,按照平台指引正确使用服务,不得违反法律法规及社会公序良俗。

◦ 用户应妥善保管个人账号及信息,对使用该账号进行的所有活动和行为负责。

◦ 用户应积极配合我们开展的服务优化、安全保障等工作,如实提供相关信息和反馈。

3. 我们的权利

◦ 我们有权根据法律法规变化、业务发展需求等情况,对平台服务内容、功能、本协议及相关规则进行调整、修改或更新。

◦ 若用户违反本协议或平台相关规则,我们有权采取包括但不限于限制账号功能、暂停或终止服务、删除违规内容等措施,并保留追究其法律责任的权利。

4. 我们的义务

◦ 我们将按照法律法规要求,采取合理的技术和管理措施,保障平台服务的正常运行,确保用户信息安全。

◦ 我们将持续优化平台服务,为用户提供准确、有用的医疗信息和服务,及时处理用户的咨询、投诉和建议。

五、隐私保护

我们非常重视用户的个人信息保护,将严格按照《中华人民共和国个人信息保护法》及其他相关法律法规的规定,处理用户的个人信息。具体信息收集、使用、共享、存储、保护等规则详见《隐私政策》,请您在使用平台服务前仔细阅读。

六、免责声明

1. 由于不可抗力(包括但不限于自然灾害、政府行为、网络攻击、病毒侵袭等)或其他不可预见、不可避免的原因,导致平台服务中断、数据丢失或其他异常情况,我们不承担责任,但将尽力减少损失并及时通知用户。

2. 对于用户通过平台获取的任何信息内容,仅供参考,不构成具体的医疗诊断或治疗方案。用户应根据自身实际情况,结合专业医生的诊断进行治疗,因用户依据平台信息进行自我诊断或治疗产生的一切后果,由用户自行承担。

3. 我们对平台上第三方提供的链接、内容或服务不承担任何责任。用户通过平台访问第三方内容或服务时,应自行注意相关风险,并遵守第三方的相关规定。

` - }, - onLoad() {}, -}); - -export {} diff --git a/src/doc/pages/doc4/index.wxml b/src/doc/pages/doc4/index.wxml deleted file mode 100644 index 68e15cb..0000000 --- a/src/doc/pages/doc4/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/doc/pages/doc5/index.json b/src/doc/pages/doc5/index.json deleted file mode 100644 index 0af6714..0000000 --- a/src/doc/pages/doc5/index.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "navigationBarTitleText": "个人信息及隐私保护政策", - "usingComponents": { - "mp-html": "mp-html" - } -} diff --git a/src/doc/pages/doc5/index.scss b/src/doc/pages/doc5/index.scss deleted file mode 100644 index 0b69ddc..0000000 --- a/src/doc/pages/doc5/index.scss +++ /dev/null @@ -1,3 +0,0 @@ -.page{ - padding: 0 40rpx; -} diff --git a/src/doc/pages/doc5/index.ts b/src/doc/pages/doc5/index.ts deleted file mode 100644 index 416c62d..0000000 --- a/src/doc/pages/doc5/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -const _app = getApp(); - -Page({ - data: { - doc:`


个人信息及隐私保护政策

生效日期:2025年6月

愈见守护(以下简称“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息的方式。

我们提供的服务包括愈见守护医生端小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。

本隐私政策将帮您了解以下信息:

1. 我们如何收集和使用您的个人信息

2. 我们基于何种目的或场景,收集和使用您的个人信息

3. 我们如何使用Cookie等同类技术

4. 我们如何委托处理、共享、转让、公开披露您的个人信息

5. 我们如何保存、保护您的个人信息

6. 您查阅、更正、删除、注销个人信息的权利

7. 未成年人保护

8. 本隐私政策变更及通知

9. 如何联系我们

10. 名词定义和解释

一、 我们如何收集和使用您的个人信息

(一) 我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺采取必要的措施保障您的个人信息的安全。

二、 我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一) 注册登录账号

1. 当您关注愈见守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2. 当您登录使用愈见守护小程序时,您需要输入您的手机号码,通过手机号码加短信验证码的方式进行登录;或通过您的微信openID获取手机号进行手机号快捷登录。

(二) 向您提供本平台服务

您仅能查看本人管理患者的信息和数据。

1. 患者看板

当您在愈见守护平台登录后,您可以查看您本人管理的患者看板,可查看您本人管理的患者信息;

2. 患者诊疗进度及检查项目完成情况

您可以查看本人管理的患者目前的诊疗进度及各个阶段完成的检查项目完成情况;

3. 医患互动

您可以查看用户通过系统标准问答库内选择点击后发送给您的问题,您可以从标准问答库内选择合适文本内容进行应答;

4. 随访计划查看

您可以查看您管理的患者在其主动录入注射日后系统自动生成的标准随访计划

(三) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(四) 本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

三、 我们如何使用小程序原生能力技术

(一) 依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的账号体系能力来避免您重复登录。所有的信息获取都会经过您的授权同意才会使用。

四、 我们如何委托处理、共享、转让、公开披露您的个人信息

(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托的公司、组织和个人,我们会要求他们按照本个人信息保护政策来处理您的个人信息。

(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向愈见守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、 我们如何保存、保护您的个人信息

(一) 保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区。

(二) 保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。 愈见守护小程序、微信公众号中个人信息储存必要期限是愈见守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。我们会部署访问控制机制,确保只有授权人员才可访问个人信息。

(四) 安全事件处理

在发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您。

六、 您查阅、更正、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一) 查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括手机号、姓名、头像、个人简介等信息。

(二) 删除权

1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。

4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(三) 注销权

如您希望注销本平台及服务,您可以通过发送邮件到supportpr@hbraas.com进行账号的注销。

一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息。

七、 未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、 本隐私政策变更及通知

(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。

九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:supportpr@hbraas.com

一般情况下,我们将在7天内回复。

十、 名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于 愈见守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名等;

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。

` - }, - onLoad() {}, -}); - -export {} diff --git a/src/doc/pages/doc5/index.wxml b/src/doc/pages/doc5/index.wxml deleted file mode 100644 index 68e15cb..0000000 --- a/src/doc/pages/doc5/index.wxml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/tabbar/tabbar1-1-active.png b/src/images/tabbar/tabbar1-1-active.png new file mode 100644 index 0000000000000000000000000000000000000000..65b6233a0821153b3864b9168ea629f7d9de8275 GIT binary patch literal 2390 zcmV-c390spP)I}rAG9Nc(eN(m1j&5{oFAe<8dTdse(cfSf3#%lH@u6 zp_Jwe#6vggjRfCw{Q9BUCLnD5y+l>yIy&%0MNr1InG5y1M^_wdGbdEm~Iv+0$DZ{~QP zkO^-xW$}wJ#lrbYBoV~kDB2MM#r6CWmB%9;;@RK*|J-4?&T-8i$ilC62>(n9Ednqg z)^@`d%d%ZK=8?n&p2Rghs(^BP2F1^(Y+b_ zDmxZjvh}L!ll;SyK}yk(bxtJI1aeOiny=1V;3qY@gdC z0BT5-_)e%MFNvBXB1yt>HglL%v*)$^K<=OvLa&4qdM+^?d*)?nPFK>Qt)q9%m&v)* z1Cs}zT!Yk|$_aK`v59!PBwVo$)+9wq)H2=G^wf9(mX~c$#ipdugp%Xp34Wi-O?|N@ zba_(e)b*=rADx{({OSa*#RHQQXN~}lPJy)pysTIsu?nsksR98G^1;?nQ;n%+EjaYD zM{7@xbKdnbn*?$NTCTOlAvJ>qs83-H}L36p6eXF%-dy zy?`xYlHUtm{l#h_qp)#8{CV0>Gw6**0lI=k_|;Z^ud0GRMPiOsV&>+ja*?oN^@u}= zB_(Mwh!Y1mRFo17bmNyuLYRF&`Qz!=5AUi#eqm|?6EN=*^8_RaK^mX+!2rZ~^#*!! zSDnBVtf7-6ooo)=H0%{hA)yO{j=BeyDlmEQ%ryUgJEDOEij>6!Xn-gPQ$t0q-3lE9 zCyZ%U6(*AgO<_eL3I8B*4OyvhVk(^c;nZu>fdU<+dsrrQfCV<=2}$GxYf*GP)k+~T zL0W0+N)mP008w!gmXVCLgrXaIeUK2%6b}p($h=pz4K@w@H)ODII{;XkYTB`Ypz&*O z8${}~Djo{EPz#sRmNQ8tT@_1tD||wSvTGazteYI8Y!9 z3sPZq1~D49L`Yqt+Y&Hukg7#d3MlkH7IDYU>=gn$hR= zya=RRSB2OsrZ)_|&~~HRzJWDU!&h)n7OaBCNd3jFH~al9H!G!36m*Xk3uFWk@5b#k z!;0*ZI#80h5+w4yN-rk_p%6kYClF{w1AJJPN8B7(^P^mSS4SisP=k15<)}6!+!Qjt zR%!xp)WB-(O+Ys?1YpSx+;TAEem|z7B5y~v*x2T%u1(VM1{|hfxptqtdm+Of#9O8H z$=ZWbvAWCX#x98K4^wwOvue!ICkk#6345G#F11cT@~QS_c&B5SF^Y zpim6}ZnQRyQIA>-*@ytB*OM(%Aech?f?mRchB#|M3iGi)TpFrQ(z{#f_vG-xIhYI- zd_JVpQy>$$*lNgo0O-M}qpTlLRYnPA$H>#4e(|+YdhfGKvQ*$uo4`Ta;$4zF$>~wQ zkf9wrhC+sO-wU970|R5=u2FYJzKKVO`-n0gJ^wy@a_Q>|r%!HQfV%$`2?4Bo3suVd z3v?*6YTc%AHyY|_6_KsY;n@k(tH$Sc}g zRWpUt3gKi}5TP*txV?41A8s{CyyzC|O&;h8ntIxs3#N%npe>vWHKDg;sZb6vP7Dan z9b?{As7tsRX*3GFvwq)J&c;pEKNt;74%A(nZ{mGt#-KtFp2@|PQwyXepP;meQ3I>x zv?S7?|Gs$muG70JP$w4S;)QJp_9IYvnS!e%5;3HXYTT#N5huEk@8=1|TQB|n?hEkK_>qrq0k0u(%h~WrJpcdz07*qo IM6N<$f{xi>X8-^I literal 0 HcmV?d00001 diff --git a/src/images/tabbar/tabbar1-1.png b/src/images/tabbar/tabbar1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..569c3aa02883b2167dff1e83f82a293038affa91 GIT binary patch literal 1120 zcmV-m1fTnfP)xhTKP^ho1W}^Ghg@4 zbOVeKE)W97{%J8GK$!%fC=x{pv0{M!O;u6bcsXB&fDs6RLg766Qyotsh+R4Hc6Nwx zEELKHNu+NAhi9MSU>N5F5c4~R49f1T&1WD0^hMy{co)L1^6Y!O0?0ORPf z;TM;MO4I%B#=QybpI+v9@UH72LB6K{%I+l>D_;9IC&hIHOtXw)jsX=Q%5JYd%fmg< zGl8QI#h6h?DVex64Zw#j-k;Tt^>kP(I*_1q~LA}H5& zn%+zLfBC`5N0y%AlAe?lB4)ZRf)~CC@Z>X60?uc=@)z}bHQ7os-5_^ERq)y^DLEs| z*J{&#=o5!$S80w)8P9+FcJPh_?(}}`43SbY3W)X1 z)tN645M(GebmQE+8-BuVTLOn1H3&t{6C$-*ofdo1yITMCfDTPU3Q}-fmV8# zA#!_lZVv{GR^e8X0HH5#Ej`z~_DuvDD~|=UFGHjN$^@ZzzmN_dQAN(}cT`bSnDXv~ zi-1@2w;@syi+f8m8iarr4z6vl%uP9MgtKGln07ksZF~=D@)BE1vsw0Jr)=YI-(Rgc zZCnIcF9}Ecco5FoEAEaNC9`jE_;&to5s+V5=jzvV%EFL>OtF(ME){vQHl zV6br-v23@Y|9droosR{u<|^#>*)Jq?rxEW1c_BB5lAPlSDkWoGVmN11w%TUnh;uQz zir>vX)oFSsIbVVyKqD)T*JhuygOANCueAdkjRz&O&-czkj*kNnGUSm&fSqWQ)gR}5 z-Q~p2+rP|EMAQeNlDIoh0000SgH>?3X^nvKp8qoN2yjFk`!Bzu{RKqP~b53 zE`v#vN}9{RU3>4f_TK+VdUBHJ=!`7*`|tB#_Wr)L)?SxC0Po9xR}lUKlH1ds85}9E zf%5V!{j3JWEGU37z+R22w+xa~qYCp!w|(X$OjG`C1ai&onJcr)H$wuO5HW{lYDDut zot3sj_m5lFje9jfheCDW*{|1kz!YTK1Pt(jnXnVe)eeG`F;k*4@M&u0z@o()z#}pN zivU3>1w9R9Mywnt&IAjKDjv(X|vYiSxJ zS1A~#L}2ar+q1&}tr~RB0$`1crp09-bqzg8D7Z$NcVJind~bKxmOEP}!ZK+BH3S}Y z(n*G=%}F?kfYq`h(2UrDP#O?C3vU5Kj!foA+6T3DBb29+J$YVW%~dSH|vit#QS?8(_u!j8}U9)nPb)`90`) zr$2g=0ocu~qWMBp5;wEE3Q_X8k3c@q@;wEqfSoOg00GFDNmplYhI?0Kp?<|esG3nR z?xREmyH8($r~h&Wj-Pqg6f|6GxL||GnnqvJ8I77++E@;QuQL_T2*Xu&(L_V0Bm#?X zs)Fy{vj)~w&xMJ^5ZkzNkv*P%`3yYv{Ofq(@}T%PdKMr_iyIu?ul6~kZLM890TMTK z$}ZNeN+CcmHuet=XRBt8)wpq)fvY2MWoSg-I;RS&W~8UNXXP!he%U;D_|S`R_{~cg z#ee6Ag&OzuU3A^oDhvlCPg{5HElR+Er&DVT{@CB%fx~ZHgo7`ig@K__*8`Yhnriv^ zvpxW|x7-L#pI8bDs%CnNJaX@9c=&fO!NFJ03RF;TXNJwKU71~2{77gP(2*;dTb=-p z1Kz~`6Y|?^(w`oA4Ssq2EoVLgtk6O?B($=A;A(pVLjlg{YQaAA_EY zeNrKYjmALY6dx8uc;nqG@SWek;^$pJE_Po{wXH#hj|fAZeDtuU>o`x_ZtFF&8nS&dCEux#}TV>zq8_2fyvPn4oG0%xCBU6$>6mMy>PzoJ%BhX$~p zVc@ENcR7Vz)|Nxd6`_PsH-{)Ds?Rl79EfeP`xFw$%HUkzKN)qQe{!kGM&JS^@`?Ci zdY7WqDRL!|1+!*4H?dur>(tN}S;E857FCgUiF`6RxEl&2Cg8K%z|b&f7d_UP80M8= z4r6wPg<{&b)Z3NURd{gX{=O7POt&%V#6Sfww$R6}JQN||lY{UU^-}m82McUS19@sr0~{+CWNgM@;YS`f6Ru_s1iUm%*CFbGSeWwTN3!LYcJ0 z!9BS%&|&PT+9_ifVn7o;id}ry#wr>;84S;2IJW=$65UGS@?G^&Gbh zYsdE`R#B10#a8Y))}d4MG6Fxpa)w{PWMkWhaW6C0dcZ^Zwv_C9=Kgg}P((ZdauxHf z-hZ#(y6z(YKH7PR(c(U0OAj1ZVV3k4Z(ryavOUA!`?*7o_67&xI4Rn>6X@uAV0}^W zDFQ5eWnfC^jjO74yop280Y2EF*LV=~!+^i*wwwL6$NzL%Zfd{DF{A{9sY!|eS)mOg zE9}0z7B}9$C{zj%laV?_K3ef_8s4>h9&D>y>Yp{*Klti7zm)`hc1o`jf%$r4~O zX7drL?Nr{b?UN= z&5X051R2v0n7u$+G$edg`sLM2;b%vCcw_l0-Z!$#=gxvVm(I1NbY;4^>HR_XUmv|l z*_a+~q=&NrQ5@!!VQVd0Vr&0b1iG^XN|0;1o-{RPY|83}A05)J51_xyESdvb>TZMi zvp?t?m~kXe#}_y_SgHHrGaD$oHIvEerA@RGy5>lFc>1Z_<}M$(vDn`Rj1=pMy$N5x zblEC>0Ri5XTL~MeU7SGL=-7o(>u2P-?G4>@YFNAHH`%g^ie>`Y7}w=4I-q?0Mm0Ly zU?@tU*mt3<3@#52d7g;A44y*XQy_zVWH1@}Z$6v^Cla z{QxD-slhBvAjMp$lTJCfw&dy9Nypn}Tnz9;lKXLImio8N%2WmZ|StOo9pmDBt;V- mgO$(O9i;K1=6qlNALU;o7LpBmn3jeB000091pz+(yv zq{kQ$qZ1%b05&LjNtFb$E05rZ7)Vvh_ymR%SUEwIs$eJ5?o7H@tKHev{z`(p@KsUl zYUihWrlZYyjeBl;Dbl5`gDqLS6SagaVru(tijSs3T2PS+6XdK?;nez)!y%7c3K-5HJuU$~>5`JoawW+nx~geRQ!Y0GPsg$_)J-S%;jY^)hDuk&hY z{(e-S)CzK-X?hmwACkDY)!-4 zWI?ZY`>D4J0Jn2@p6K6W6==Npb;fsaE$b;>`??lNnrP-$Y zofNT5c)QzvwFp-Ln%|u>)P(Hdg*M;ULBfh7)4bdd(%T`oCyKG@F-auz!^0n+pO&*` zS)oE}c2Aj`JO2n9ZM^txMoIbB?Pzm-McijTRSd967m97)a>Q; zrI9qyBWN53Wy(+d1q6Zh+RA(<*w)(tiB}>tEk@pZOkNl^8%OvVZH%32L@@Mr0I{PS zwj@&*XH!9AuHJbFLulQJODd)LT2vp;jf%c6X&A?21QE>WD4~86*PfI15#b~1K|{C- z4EVfP#voR?36mlafRZvg-Hf@cm?S*I7s#kiuTzF15wTSm6I{7wR_abfd_IX{vl$Pc z2gy`2dKxB3L8JU4_S5kGW zrG+nt-@1OzXq_AQfL*p4+0kgs*g#>L_ccpmgxJAtNGpVDI2`o9Y)E zPNO3U>LTtU&$$n4FNsHBM`vYh mx5!tgk5?YNfg9YwhyMV3L-A6%bsm-g0000Md=S6ut|Q@4w0I6YzLIP_?6_8UgA7u$nic1C^4c%A836tq~O-j)87G^3!iL-HgxTU4O5ph4qX< z86GS-GEc2o7SH=I=n1QbDKCqUWMEEf<;qY*)F&M4Kr z%vogNQ~Q%D9&4a^OO(SbGeuws-}5yRFS!PF7H{aKts56*J~M#Sw&!ahhQA>u3B${5 zrme>99}8|3XN3_!n!sWwJ*gv92_1_)MZ<|eV7qNd35Gvd5Go9?6ER!Yy5as81`Hsz zeQynb{tH-jDJ!Iy+h|;QAezUNRb+3CT9gznD%g(P&0!8(!aNFuca!*E4s~tohDA;N z0!Zz6E(tyH4!Rt}>QRBJk==)fNMh8^-l{JE;6NG>ZoXS;g2x&lhzaExI;-#;>?~Be z;%{|PchdO)$mb5xZvs>loYP+pjbhM@(w&QEK>3pk^BA3W(X2(V2BbA+lDDWs%sd=& zGoNQ5|ER<@#D;u%BLGs{nrn$!GC+e?3=4sUr47v9MtGT)GXjC1iQaHlXsdDgLGO-c zJ)+sj^5>IX1A%K{eWglBzxULvD%m)G)_<0tFk8Q21=!{w*u2W(Eb9}tJ+f5{hjbDg8 zjM;rvi)fe+GZl?rS=T{RMvSXCPI)Rtx5)5C_lWn1VfP9zwqJ<4oI*6Pp%s#iz;bZ? z5~gTDN-8n|ZT3z^QZe+tIMZC!y9K* z!yB2vjUZ0}VnM@6hjdD8OWhQmx3zK^z#85JuLPxvgp|1onO-#J^PY0`f$u9y#sUl9 zb?pZ1{>KT}bL1pl_ds3MG$5-WVwjCf##Scl_tqU`pB!dYF94+6jP+6Q2s|(pSMn`@ z&*$M7QN}_LDhOsA*DshMS5Ejn|2zrJ9cN^0T~$)K*zlF!<}<0rh!H?GiDY^K(A+pV z6&Nn;FX#mf61qR5axnm*eCA4knO0dcRmZqxQ3jih9bkv*KWpc{IRfJU}%S5)Y`bP}P>iUI&_B}izcBkf!j9jmtJ2@() z+aVZIp=~gya%sqaz*N4y`6HTwNExOIu?B+3BA05L33o%g4{d^4TTu;LIXu zJa$%Eq`JzfYVEvI=!0tQc~b-cWV1~e)3tfY+$I>XJ%kAY7p;6zIb}R7nNcJfbxTJM zD}aj0<3#%}y?xGGbNQSSxcJ|0=s5q8%-jDj1K{DgC9v=9^Q?6dp5tTRTkn%qx5!s;XKJMSzyM5Jp&)40m3L9Tj^}SkuMS%&q8qI4 zE$VO*(mwOdBh9n$UEMd}*`p`mLg!WciV*ZjFTHclXO!i0raCfc?pUV7Fm< zw*3VBq3yVBz#tN+q0kmMx|x5%USl|@{mFJdh>yq zH{+@L+K^xHRj#mu_$5Laz`V$~%tTZ}h`w8rn~r__6J1@tDuS?^aYe*V#h6w%$s{J^=`bU$sy$;~@qS`Rbrl zUZvKqOhmF!09@NzV!rCJ3+-A_p}3em+|))Ovwq#rm(7NUW)<`5G~HM9C78Oe z(^Q!^n>*8F`(Dd-k>=|H`u4-V7=wQ|FkcqzbCfoatV`C>2tx^%EPUHrf!XKDKyb{pk;6Z6T=hIyz4SSYUd@ejjwL@CZTEbPn)qba~+ zVwLY#CMh9^UN^}%(tfC47Yft7U$@kdBwXYY{w>O7CiY?Tek@rf$W|Hy4B;3upw>~Q zsjEunZ`G&Y-!=dy`QWP+XQyN@KZkG?4lE$!TDbs`dmSozqMR? z8-N2*5Z5i_&M8r)6UGSLOXJG=8Gv^wVFH zk=5c+$#Q&v4U-_z)ia##j20%9r%YD++x_RZG++~P{Xoz~# Z{{WPKrXN)saUcKy002ovPDHLkV1g;K_~rlr literal 0 HcmV?d00001 diff --git a/src/images/tabbar/tabbar1-3.png b/src/images/tabbar/tabbar1-3.png new file mode 100644 index 0000000000000000000000000000000000000000..80b0d4606ba385d6b5421a31cc52fea596673236 GIT binary patch literal 1396 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 VC}3~ju1Np@002ovPDHLkV1k`!U~vEd literal 0 HcmV?d00001 diff --git a/src/pages/articleDetail/index.wxml b/src/pages/articleDetail/index.wxml index 8245bba..75167b5 100644 --- a/src/pages/articleDetail/index.wxml +++ b/src/pages/articleDetail/index.wxml @@ -9,7 +9,7 @@ 1209人阅读
@@ -21,10 +21,10 @@ - + - + 视频 @@ -34,11 +34,11 @@ 认识PSVT - + 2.1万 - + 2.1万 @@ -50,15 +50,15 @@ - + 126 - + 126 - + 126 diff --git a/src/pages/changeTel/index.json b/src/pages/changeTel/index.json new file mode 100644 index 0000000..4d65365 --- /dev/null +++ b/src/pages/changeTel/index.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "修改手机号", + "usingComponents": {} +} diff --git a/src/pages/changeTel/index.scss b/src/pages/changeTel/index.scss new file mode 100644 index 0000000..eb048cb --- /dev/null +++ b/src/pages/changeTel/index.scss @@ -0,0 +1,51 @@ +page { + background-color: rgba(247, 247, 250, 1); +} + +.page { + padding: 48rpx 40rpx; + .form { + padding: 0 32rpx; + background-color: #fff; + border-radius: 24rpx; + .row { + display: flex; + align-items: center; + .label { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + width: 5em; + } + .container { + flex: 1; + display: flex; + align-items: center; + justify-content: space-between; + gap: 10rpx; + .input { + padding: 32rpx 0; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + .place-input { + color: rgba(161, 164, 172, 0.4); + } + .btn { + flex-shrink: 0; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + } + } + } + } + .login-out { + margin-top: 48rpx; + padding: 20rpx; + font-size: 32rpx; + line-height: 48rpx; + color: #fff; + text-align: center; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 96rpx; + } +} diff --git a/src/pages/changeTel/index.ts b/src/pages/changeTel/index.ts new file mode 100644 index 0000000..20c3b43 --- /dev/null +++ b/src/pages/changeTel/index.ts @@ -0,0 +1,91 @@ +const app = getApp() +let timer = null as null | number + +Page({ + data: { + mobile: '', + code: '', + + codeText: '发送验证码', + }, + onLoad() {}, + onUnload() { + if (timer) { + clearInterval(timer as number) + timer = null + } + }, + getCode() { + if (timer) return + const mobile = this.data.mobile + if (!mobile) { + wx.showToast({ + title: '手机号不能为空', + icon: 'none', + }) + return + } + // 验证手机号 + if (!/^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/.test(mobile)) { + wx.showToast({ + title: '手机号格式不正确', + icon: 'none', + }) + return + } + wx.ajax({ + method: 'POST', + url: '?r=wtx/login/send-verify-code', + data: { + mobile, + }, + }).then((res) => { + console.log(res) + wx.showToast({ + icon: 'none', + title: '验证码已发送~', + }) + let time = 60 + timer = setInterval(() => { + time-- + this.setData({ + codeText: time + 's后重新发送', + }) + if (time <= 0) { + clearInterval(timer as number) + timer = null + this.setData({ + codeText: '发送验证码', + }) + } + }, 1000) + }) + }, + handleSubmit() { + wx.showModal({ + title: '确定修改此手机号?', + confirmColor: '#F64A3A', + success: (res) => { + if (!res.confirm) return + const { mobile, code } = this.data + const { registrationSource, registChannel, regBusinessId } = app.globalData + wx.ajax({ + method: 'POST', + url: '?r=wtx/account/update-telephone', + data: { + mobile, + code, + registrationSource, + registChannel, + regBusinessId, + }, + }).then((_res) => { + wx.navigateBack() + }) + }, + }) + }, + handleBack() { + wx.navigateBack() + }, +}) diff --git a/src/pages/changeTel/index.wxml b/src/pages/changeTel/index.wxml new file mode 100644 index 0000000..8db7ed2 --- /dev/null +++ b/src/pages/changeTel/index.wxml @@ -0,0 +1,32 @@ + + + + 新手机号 + + + + + + 验证码 + + + {{codeText}} + + + + + diff --git a/src/pages/confirmInfo/index.json b/src/pages/confirmInfo/index.json index b16ef3e..5b4cde7 100644 --- a/src/pages/confirmInfo/index.json +++ b/src/pages/confirmInfo/index.json @@ -1,4 +1,6 @@ { "navigationStyle": "custom", - "usingComponents": {} + "usingComponents": { + "picker-area": "/components/pickerArea/index" + } } diff --git a/src/pages/confirmInfo/index.scss b/src/pages/confirmInfo/index.scss index 73ef7b4..f5ede81 100644 --- a/src/pages/confirmInfo/index.scss +++ b/src/pages/confirmInfo/index.scss @@ -142,6 +142,7 @@ page { } .select3 { margin-top: 24rpx; + margin-bottom: 56rpx; .picker-content { padding: 0 34rpx; height: 88rpx; diff --git a/src/pages/confirmInfo/index.ts b/src/pages/confirmInfo/index.ts index c56ba14..6f44dce 100644 --- a/src/pages/confirmInfo/index.ts +++ b/src/pages/confirmInfo/index.ts @@ -1,16 +1,27 @@ const app = getApp() +interface OptionItem { + value: number + label: string +} + Page({ data: { menuTop: 0, step: 1, + // 基础数据列表 (from API 1.7) + ageRangeList: [] as OptionItem[], + genderList: [] as OptionItem[], + diagnosisStatusList: [] as OptionItem[], + surgeryStatusList: [] as OptionItem[], + // Step 1: 基础信息 ageRange: 0 as number, gender: 0 as number, - provinceId: '' as string | number, + provinceId: '', provinceName: '', - cityId: '' as string | number, + cityId: '', cityName: '', regionText: '', @@ -28,6 +39,35 @@ Page({ menuTop: menuRes.top, currentMonth, }) + this.getBaseData() + }, + getBaseData() { + wx.ajax({ + method: 'GET', + url: '?r=psvt/patient/base-data', + }).then((res) => { + const parseList = (list: any): OptionItem[] => { + if (Array.isArray(list)) { + return list.map((item) => { + const key = Object.keys(item)[0] + return { value: Number(key), label: item[key] } + }) + } + if (list && typeof list === 'object') { + return Object.keys(list).map((key) => ({ + value: Number(key), + label: list[key], + })) + } + return [] + } + this.setData({ + ageRangeList: parseList(res.ageRangeList), + genderList: parseList(res.genderList), + diagnosisStatusList: parseList(res.diagnosisStatusList), + surgeryStatusList: parseList(res.surgeryStatusList), + }) + }) }, handleSelect(e: WechatMiniprogram.TouchEvent) { const { key, value } = e.currentTarget.dataset @@ -35,12 +75,14 @@ Page({ [key]: Number(value), }) }, - handleRegionChange(e: WechatMiniprogram.PickerChange) { - const region = e.detail.value as string[] + handleAreaChange(e: any) { + const [province, city] = e.detail this.setData({ - provinceName: region[0], - cityName: region[2] || region[1], - regionText: region.filter((r) => r && r !== '全部').join(' '), + provinceId: province.value, + provinceName: province.label, + cityId: city.value, + cityName: city.label, + regionText: [province.label, city.label].filter(Boolean).join(' '), }) }, handleDiagnosisTimeChange(e: WechatMiniprogram.PickerChange) { @@ -106,16 +148,12 @@ Page({ data, loading: true, loadingText: '提交中...', - }).then((res) => { - const { isRegistered } = res - if (isRegistered) { - if (app.globalData.initLoginInfo) { - app.globalData.initLoginInfo.isInfoSubmitted = true - } - wx.reLaunch({ - url: '/pages/index/index', - }) - } + }).then(() => { + app.globalData.initLoginInfo.isReg = 1 + app.globalData.initLoginInfo.isLogin = 1 + wx.reLaunch({ + url: '/pages/index/index', + }) }) }, }) diff --git a/src/pages/confirmInfo/index.wxml b/src/pages/confirmInfo/index.wxml index 05d61e0..b7ac778 100644 --- a/src/pages/confirmInfo/index.wxml +++ b/src/pages/confirmInfo/index.wxml @@ -1,12 +1,12 @@ - + 1 - + 基础信息 @@ -16,7 +16,7 @@ - + 这些信息将用于优化内容推荐与服务提醒,不作为诊断或 治疗建议依据。 @@ -26,63 +26,47 @@ 我的年龄段 18-28岁 - 29-40岁 - 41-50岁 - 50岁以上 + data-value="{{item.value}}" + >{{item.label}} 我的性别 - - 男 - - - - 女 + + + {{item.label}} 所在地区 - + {{regionText || ''}} - + - + @@ -93,39 +77,14 @@ 确诊状态 - 疑似PSVT - 正在了解中 - - - 已确诊PSVT - - - 心悸/心跳过快 - 尚未就诊 - - - 亲友相关 - 想了解更多 + {{item.label}} @@ -135,7 +94,7 @@ {{diagnosisTime || ''}} - +
@@ -144,28 +103,14 @@ 是否接受过相关手术治疗 - 已接受射频消融 /相关手术 - - - 尚未接受手术 - - - 正在评估 + {{item.label}}
diff --git a/src/pages/drugMap/index.wxml b/src/pages/drugMap/index.wxml index 9e60bf6..964c76a 100644 --- a/src/pages/drugMap/index.wxml +++ b/src/pages/drugMap/index.wxml @@ -1,9 +1,9 @@ - + - - + + 我们正在全力打造购药地图服务 diff --git a/src/pages/followDetail/index.ts b/src/pages/followDetail/index.ts index 154aa29..0e0b7dc 100644 --- a/src/pages/followDetail/index.ts +++ b/src/pages/followDetail/index.ts @@ -19,7 +19,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/followDetail/index.wxml b/src/pages/followDetail/index.wxml index 8f0a6bc..93762e8 100644 --- a/src/pages/followDetail/index.wxml +++ b/src/pages/followDetail/index.wxml @@ -7,7 +7,7 @@ @@ -23,7 +23,7 @@ - + diff --git a/src/pages/followForm/index.ts b/src/pages/followForm/index.ts index 1692397..04c510a 100644 --- a/src/pages/followForm/index.ts +++ b/src/pages/followForm/index.ts @@ -16,7 +16,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/followForm/index.wxml b/src/pages/followForm/index.wxml index 6569992..765d32c 100644 --- a/src/pages/followForm/index.wxml +++ b/src/pages/followForm/index.wxml @@ -7,7 +7,7 @@ diff --git a/src/pages/health/index.ts b/src/pages/health/index.ts index 3447043..e31172d 100644 --- a/src/pages/health/index.ts +++ b/src/pages/health/index.ts @@ -160,7 +160,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/health/index.wxml b/src/pages/health/index.wxml index dd6314d..e9884f2 100644 --- a/src/pages/health/index.wxml +++ b/src/pages/health/index.wxml @@ -1,14 +1,14 @@ - + - + 2026.01 - + @@ -90,7 +90,7 @@ 2026.01 - + 共复诊 @@ -108,7 +108,7 @@ - + 未更新处方 @@ -121,5 +121,5 @@ - + diff --git a/src/pages/heartDetail/index.ts b/src/pages/heartDetail/index.ts index 1692397..04c510a 100644 --- a/src/pages/heartDetail/index.ts +++ b/src/pages/heartDetail/index.ts @@ -16,7 +16,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/heartDetail/index.wxml b/src/pages/heartDetail/index.wxml index 0a20d7b..83b2661 100644 --- a/src/pages/heartDetail/index.wxml +++ b/src/pages/heartDetail/index.wxml @@ -7,7 +7,7 @@ diff --git a/src/pages/heartForm/index.ts b/src/pages/heartForm/index.ts index 1692397..04c510a 100644 --- a/src/pages/heartForm/index.ts +++ b/src/pages/heartForm/index.ts @@ -16,7 +16,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/heartForm/index.wxml b/src/pages/heartForm/index.wxml index cfd7e54..fc7a363 100644 --- a/src/pages/heartForm/index.wxml +++ b/src/pages/heartForm/index.wxml @@ -7,7 +7,7 @@ diff --git a/src/pages/hotTopic/index.ts b/src/pages/hotTopic/index.ts index f19864b..3ea8363 100644 --- a/src/pages/hotTopic/index.ts +++ b/src/pages/hotTopic/index.ts @@ -14,7 +14,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/hotTopic/index.wxml b/src/pages/hotTopic/index.wxml index f00d360..82d25c0 100644 --- a/src/pages/hotTopic/index.wxml +++ b/src/pages/hotTopic/index.wxml @@ -6,7 +6,7 @@ diff --git a/src/pages/hotTopicDetail/index.ts b/src/pages/hotTopicDetail/index.ts index f19864b..3ea8363 100644 --- a/src/pages/hotTopicDetail/index.ts +++ b/src/pages/hotTopicDetail/index.ts @@ -14,7 +14,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/hotTopicDetail/index.wxml b/src/pages/hotTopicDetail/index.wxml index 548b458..09df5de 100644 --- a/src/pages/hotTopicDetail/index.wxml +++ b/src/pages/hotTopicDetail/index.wxml @@ -6,11 +6,11 @@ - + 我的心悸经历 1200人浏览 | 300篇帖子 @@ -23,13 +23,13 @@ - + @林间心跳 2026年7月1日 13:09 - 热门推荐 + 热门推荐 #我的心悸经历 #PSVT急救常识 @@ -39,11 +39,11 @@ 患者故事 - + - + @@ -52,15 +52,15 @@ - + 126 - + 126 - + 126 @@ -70,5 +70,5 @@ - + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index f19864b..3ea8363 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -14,7 +14,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/index/index.wxml b/src/pages/index/index.wxml index 21fe8c8..59de7dd 100644 --- a/src/pages/index/index.wxml +++ b/src/pages/index/index.wxml @@ -1,18 +1,18 @@ - + - + - + Hi, 伍六七 星动守护您的第 15 天~ - - + + @@ -25,7 +25,7 @@ - + 心脏突然狂飙跳 @@ -46,10 +46,10 @@ - + - + 视频 @@ -59,11 +59,11 @@ 认识PSVT - + 2.1万 - + 2.1万 @@ -75,10 +75,10 @@ - + - + 健康助理 diff --git a/src/pages/login/index.scss b/src/pages/login/index.scss index 40bcc74..15217db 100644 --- a/src/pages/login/index.scss +++ b/src/pages/login/index.scss @@ -42,12 +42,57 @@ height: 40rpx; } } - .switch{ + .switch { margin-top: 56rpx; font-size: 32rpx; color: rgba(47, 130, 169, 1); text-align: center; } + .form { + margin-top: 32rpx; + .row { + margin-bottom: 40rpx; + padding: 0 10rpx 0 32rpx; + display: flex; + align-items: center; + background: #f9fafb; + border: 1px solid #f1f5f9; + border-radius: 24rpx; + .input { + flex: 1; + padding: 20rpx 0; + height: 40rpx; + font-size: 28rpx; + color: rgba(30, 41, 59, 1); + } + .input-place { + color: rgba(148, 163, 184, 1); + } + .code { + margin-left: 24rpx; + flex-shrink: 0; + width: 212rpx; + height: 68rpx; + border-radius: 24rpx; + font-size: 28rpx; + color: #fff; + background: var(--, linear-gradient(270deg, #439fc7 0%, #2f82a9 100%)); + display: flex; + align-items: center; + justify-content: center; + } + } + .submit { + height: 96rpx; + background: var(--, linear-gradient(270deg, #439fc7 0%, #2f82a9 100%)); + border-radius: 24rpx; + font-size: 34rpx; + color: #ffffff; + font-weight: bold; + text-align: center; + line-height: 96rpx; + } + } .argument { margin-top: 120rpx; line-height: 48rpx; diff --git a/src/pages/login/index.ts b/src/pages/login/index.ts index 4b813de..cdc61ff 100644 --- a/src/pages/login/index.ts +++ b/src/pages/login/index.ts @@ -1,9 +1,16 @@ const app = getApp() +let timer = null as null | number Page({ data: { menuTop: 0, checked: false, + + codeText: '发送验证码', + + showTel: false, + mobile: '', + code: '', }, onLoad(_options) { const menuRes = wx.getMenuButtonBoundingClientRect() @@ -12,6 +19,51 @@ Page({ }) app.waitLogin({ type: 'any' }).then(() => {}) }, + getCode() { + if (timer) return + const mobile = this.data.mobile + if (!mobile) { + wx.showToast({ + title: '手机号不能为空', + icon: 'none', + }) + return + } + // 验证手机号 + if (!/^1[3-9,]\d{9}$/.test(mobile)) { + wx.showToast({ + title: '手机号格式不正确', + icon: 'none', + }) + return + } + wx.ajax({ + method: 'POST', + url: '?r=psvt/login/send-verify-code', + data: { + mobile, + }, + }).then((_res) => { + wx.showToast({ + icon: 'none', + title: '验证码已发送~', + }) + let time = 60 + timer = setInterval(() => { + time-- + this.setData({ + codeText: `${time}s后重新发送`, + }) + if (time <= 0) { + clearInterval(timer as number) + timer = null + this.setData({ + codeText: '发送验证码', + }) + } + }, 1000) + }) + }, handleCheck() { this.setData({ checked: !this.data.checked, @@ -23,14 +75,14 @@ Page({ const channelId = app.globalData.scene?.channelId || '' wx.ajax({ method: 'POST', - url: '?r=psvt/patient/phone-register', + url: '?r=psvt/login/wx-reg-login', data: { iv: encodeURIComponent(iv), encryptedData: encodeURIComponent(encryptedData), channelId, }, - }).then(() => { - this.submitCallback() + }).then((res) => { + this.submitCallback(res) }) } }, @@ -40,12 +92,59 @@ Page({ icon: 'none', }) }, - submitCallback() { - app.globalData.initLoginInfo.isReg = 1 - wx.redirectTo({ - url: '/pages/confirmInfo/index', + async handleSubmit() { + const { mobile, code } = this.data + if (!mobile) { + wx.showToast({ + title: '请输入手机号', + icon: 'none', + }) + return + } + if (!code) { + wx.showToast({ + title: '请输入验证码', + icon: 'none', + }) + return + } + wx.ajax({ + method: 'POST', + url: '?r=psvt/login/reg-login', + data: { + mobile, + code, + }, + showMsg: false, + }) + .then((res) => { + this.submitCallback(res) + }) + .catch((err) => { + wx.showToast({ + title: err.data.msg, + icon: 'none', + }) + }) + }, + handleShowTel() { + this.setData({ + showTel: !this.data.showTel, }) }, + submitCallback(res) { + app.globalData.initLoginInfo.isReg = res.isReg + app.globalData.initLoginInfo.isLogin = res.isLogin + if (res.isReg === 0) { + wx.redirectTo({ + url: '/pages/confirmInfo/index', + }) + } else { + wx.redirectTo({ + url: '/pages/index/index', + }) + } + }, handleVisitors() { app.globalData.anyWhere = true wx.reLaunch({ diff --git a/src/pages/login/index.wxml b/src/pages/login/index.wxml index 0d89053..574483d 100644 --- a/src/pages/login/index.wxml +++ b/src/pages/login/index.wxml @@ -1,35 +1,41 @@ - - + + 请先阅读并同意相关协议。立即加入后,我们将为您提供更匹配的科普内容与服务支持。 - - 或输入手机号 + 或输入手机号 + + + + + + + {{codeText}} + + 立即加入 + 立即加入 + 我已阅读并同意 - + 《用户协议》 以及 - + 《隐私政策》 、 - + 《法律声明》 并同意平台基于服务需要收集和使用我的必要个人信息。 @@ -39,7 +45,7 @@ 随便看看 - + diff --git a/src/pages/my/index.json b/src/pages/my/index.json index e3ceeb9..125f095 100644 --- a/src/pages/my/index.json +++ b/src/pages/my/index.json @@ -2,6 +2,7 @@ "navigationStyle": "custom", "usingComponents": { "popup": "/components/popup/index", - "navbar": "/components/navbar/index" + "navbar": "/components/navbar/index", + "van-icon": "@vant/weapp/icon/index" } } diff --git a/src/pages/my/index.scss b/src/pages/my/index.scss index 378bdc9..ebd146d 100644 --- a/src/pages/my/index.scss +++ b/src/pages/my/index.scss @@ -83,6 +83,8 @@ page { height: 48rpx; } .content { + flex: 1; + padding: 0 32rpx; font-size: 32rpx; color: rgba(30, 41, 59, 1); } @@ -96,7 +98,7 @@ page { margin: 30rpx 40rpx; padding: 32rpx; border-radius: 32rpx; - border: 1px solid #fff; + border: 1rpx solid #fff; background: rgba(255, 255, 255, 0.7); box-sizing: border-box; display: flex; @@ -108,7 +110,7 @@ page { font-size: 32rpx; color: rgba(30, 41, 59, 1); line-height: 48rpx; - border-bottom: 1px dashed rgba(47, 130, 169, 0.35); + border-bottom: 1rpx dashed rgba(47, 130, 169, 0.35); .high { display: inline; color: #2f82a9; diff --git a/src/pages/my/index.ts b/src/pages/my/index.ts index df737e8..90f65d6 100644 --- a/src/pages/my/index.ts +++ b/src/pages/my/index.ts @@ -1,129 +1,35 @@ -const app = getApp() +const app = getApp() Page({ data: { - popupShow: false, - // popupType: 'stayTuned', - popupType: 'touristsInviteCode', - popupParams: {}, - userInfo: {} as any, - - showPatient: false, - applyWord: { - ApplyButtonWordOne: '', - ApplyButtonWordTwo: '', - }, + days: 0, }, onShow() { - app.waitLogin({ type: 0 }).then(() => { - app.mpBehavior({ PageName: 'BTN_MY_NAV' }) - app.getUserInfo().then((userInfo) => { - this.setData({ - userInfo, - Days: userInfo.Days.replace(/(\d+)/g, '$1'), - }) - }) - this.getGeneConfig() - this.getApplyWord() + app.waitLogin().then(() => { + this.getMyInfo() }) }, - getGeneConfig() { + getMyInfo() { wx.ajax({ method: 'GET', - url: '?r=wtx/common/get-gene-config', - data: {}, + url: '?r=psvt/patient/my-info', }).then((res) => { + let days = 0 + if (res.firstOpenTime) { + const first = new Date(res.firstOpenTime.replace(/-/g, '/')) + const now = new Date() + days = Math.max(1, Math.ceil((now.getTime() - first.getTime()) / (1000 * 60 * 60 * 24))) + } this.setData({ - showPatient: res === '1', - }) - }) - }, - getApplyWord() { - wx.ajax({ - method: 'GET', - url: '?r=wtx/common/get-apply-word', - data: {}, - }).then((res) => { - this.setData({ - applyWord: res, - }) - }) - }, - onChooseAvatar(e) { - const { avatarUrl } = e.detail - const url = `${app.globalData.upFileUrl}?r=file-service/upload-img` - wx.showLoading({ - title: '上传中', - }) - wx.uploadFile({ - url, - filePath: avatarUrl, - name: 'file', - success: (res) => { - const data = JSON.parse(res.data) - const avatarUrl = data.data.Url - wx.ajax({ - method: 'POST', - url: '?r=wtx/user/update-avatar', - data: { - Avatar: avatarUrl, - }, - }) - .then(() => { - wx.hideLoading() - wx.showToast({ - title: '头像更新成功!', - icon: 'none', - }) - this.setData({ - 'userInfo.Avatar': avatarUrl, - }) - }) - .catch(() => { - wx.hideLoading() - }) - }, - fail() { - wx.hideLoading() - }, - }) - }, - handlePopupCancel() { - this.setData({ - popupShow: false, - }) - }, - handlePopupOk() { - this.setData({ - popupShow: false, - }) - }, - handlePatient(e) { - const { url, pname } = e.currentTarget.dataset - const { userInfo } = this.data - if (pname) { - app.mpBehavior({ PageName: pname }) - } - if (userInfo.PatientId <= 0) { - this.setData({ - popupShow: true, - popupType: 'touristsInviteCode', + userInfo: res, + days, }) - return - } - wx.navigateTo({ - url, }) }, routerTo(e: any) { - const { url, pname } = e.currentTarget.dataset - if (pname) { - app.mpBehavior({ PageName: pname }) - } - wx.navigateTo({ - url, - }) + const { url } = e.currentTarget.dataset + wx.navigateTo({ url }) }, }) diff --git a/src/pages/my/index.wxml b/src/pages/my/index.wxml index 67a3dba..80ea3db 100644 --- a/src/pages/my/index.wxml +++ b/src/pages/my/index.wxml @@ -1,18 +1,18 @@ - + - + - 张小山 - + {{userInfo.nickName || '用户'}} + 星动守护您的第 - 15 + {{days}} 天~ @@ -20,31 +20,31 @@ 我的帖子 - + 健康档案 - + - + 我的评论 - + 我的收藏 - - + + 个人信息 - - + + 隐私协议 @@ -60,9 +60,9 @@ 长按识别二维码 - + - + diff --git a/src/pages/myCollection/index.ts b/src/pages/myCollection/index.ts index 2e5e500..cbea1ca 100644 --- a/src/pages/myCollection/index.ts +++ b/src/pages/myCollection/index.ts @@ -27,7 +27,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/myCollection/index.wxml b/src/pages/myCollection/index.wxml index 3569dd5..084a0d5 100644 --- a/src/pages/myCollection/index.wxml +++ b/src/pages/myCollection/index.wxml @@ -5,10 +5,10 @@
- + - + @@ -31,14 +31,14 @@ - + - + 12 - + 12 @@ -51,10 +51,10 @@ - + - + 视频 @@ -62,7 +62,7 @@ 什么是 PSVT?3 分钟带您了 解阵发性室上性心动过速 - + 取消收藏 diff --git a/src/pages/myComment/index.ts b/src/pages/myComment/index.ts index 154aa29..0e0b7dc 100644 --- a/src/pages/myComment/index.ts +++ b/src/pages/myComment/index.ts @@ -19,7 +19,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/myComment/index.wxml b/src/pages/myComment/index.wxml index 7fd0133..3da3579 100644 --- a/src/pages/myComment/index.wxml +++ b/src/pages/myComment/index.wxml @@ -7,7 +7,7 @@ @@ -28,11 +28,11 @@ - + 评论正在审核中,预计1-2个工作日内完成审核。 - + 驳回原因: 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 diff --git a/src/pages/myWall/index.ts b/src/pages/myWall/index.ts index 154aa29..0e0b7dc 100644 --- a/src/pages/myWall/index.ts +++ b/src/pages/myWall/index.ts @@ -19,7 +19,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/myWall/index.wxml b/src/pages/myWall/index.wxml index 61426bd..13ad77b 100644 --- a/src/pages/myWall/index.wxml +++ b/src/pages/myWall/index.wxml @@ -7,7 +7,7 @@ @@ -22,23 +22,23 @@ 患者故事 - + - + 2026年7月1日 13:09 - + 驳回原因: 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 语言不当 - + 公开可见 diff --git a/src/pages/userInfo/index.json b/src/pages/userInfo/index.json index d3c67a1..17c878b 100644 --- a/src/pages/userInfo/index.json +++ b/src/pages/userInfo/index.json @@ -1,10 +1,9 @@ { "navigationStyle": "custom", - "navigationBarTitleText": "我的评论", + "navigationBarTitleText": "个人信息", "usingComponents": { - "popup": "/components/popup/index", "navbar": "/components/navbar/index", - "uploadFile": "/components/uploadFile/index", - "van-popup": "@vant/weapp/popup/index" + "picker-area": "/components/pickerArea/index", + "van-icon": "@vant/weapp/icon/index" } } diff --git a/src/pages/userInfo/index.scss b/src/pages/userInfo/index.scss index 822f782..524c903 100644 --- a/src/pages/userInfo/index.scss +++ b/src/pages/userInfo/index.scss @@ -21,7 +21,6 @@ page { .info-row { display: flex; - align-items: center; justify-content: space-between; padding: 24rpx 0; border-bottom: 1rpx solid #f1f5f9; @@ -38,6 +37,16 @@ page { .info-value { flex: 1; + padding-left: 24rpx; + font-size: 32rpx; + line-height: 48rpx; + color: #64748b; + text-align: right; + } + + .info-input { + flex: 1; + padding-left: 24rpx; font-size: 32rpx; line-height: 48rpx; color: #64748b; @@ -46,15 +55,20 @@ page { .info-arrow { color: #64748b; + margin-top: 4rpx; margin-left: 8rpx; } - .avatar-wrap { + .avatar-wrapper { width: 112rpx; height: 112rpx; border-radius: 50%; background: #d9d9d9; overflow: hidden; + padding: 0; + margin: 0; + border: none; + line-height: normal; .avatar { width: 100%; diff --git a/src/pages/userInfo/index.ts b/src/pages/userInfo/index.ts index 154aa29..09c3770 100644 --- a/src/pages/userInfo/index.ts +++ b/src/pages/userInfo/index.ts @@ -1,101 +1,204 @@ const app = getApp() +interface OptionItem { + value: number + label: string +} + +const parseList = (list: any): OptionItem[] => { + if (Array.isArray(list)) { + return list.map((item) => { + const key = Object.keys(item)[0] + return { value: Number(key), label: item[key] } + }) + } + if (list && typeof list === 'object') { + return Object.keys(list).map((key) => ({ + value: Number(key), + label: list[key], + })) + } + return [] +} + Page({ data: { - popupShow: false, - popupType: '', - popupParams: { - position: 'bottom', - } as any, + // 用户信息 (from API 1.4) + userInfo: {} as any, - topicShow: false, - replayShow: true, + // 基础数据列表 (from API 1.7) + ageRangeList: [] as OptionItem[], + genderList: [] as OptionItem[], + diagnosisStatusList: [] as OptionItem[], + surgeryStatusList: [] as OptionItem[], - fileList: [] as any[], + // picker 索引 + ageRangeIndex: 0, + genderIndex: 0, + + // 地区 + provinceId: '' as string | number, + provinceName: '', + cityId: '' as string | number, + cityName: '', + regionText: '', + currentMonth: '', }, onLoad() { - app.waitLogin({ type: 0 }).then(() => {}) - }, - handlePopupOk() { - const { popupType } = this.data - if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/user/agree-guest-privacy', - data: { - WorkerId: app.globalData.scene?.workerId || '', - }, - }).then(() => { - this.setData({ - popupShow: false, - popupType: '', - popupParams: {}, - }) - const waitBindDoctorId = app.globalData.waitBindDoctorId - if (waitBindDoctorId) { - this.handleBindDoctor(waitBindDoctorId) - } - }) - } - if (popupType === 'conformBindDoctorConform') { - this.setData({ - popupShow: false, + const now = new Date() + const currentMonth = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}` + this.setData({ currentMonth }) + this.getBaseData().then(() => { + this.getMyInfo() + }) + }, + getMyInfo() { + wx.ajax({ + method: 'GET', + url: '?r=psvt/patient/my-info', + }).then((res) => { + this.enrichUserInfo(res) + }) + }, + enrichUserInfo(info: any) { + info.ageRangeName = this.getLabel(this.data.ageRangeList, info.ageRange) + info.genderName = this.getLabel(this.data.genderList, info.gender) + info.diagnosisStatusName = this.getLabel(this.data.diagnosisStatusList, info.diagnosisStatus) + info.surgeryStatusName = this.getLabel(this.data.surgeryStatusList, info.surgeryStatus) + const regionText = [info.provinceName, info.cityName].filter(Boolean).join(' ') + const ageRangeIndex = this.getIndex(this.data.ageRangeList, info.ageRange) + const genderIndex = this.getIndex(this.data.genderList, info.gender) + this.setData({ + userInfo: info, + ageRangeIndex, + genderIndex, + provinceId: info.provinceId || '', + provinceName: info.provinceName || '', + cityId: info.cityId || '', + cityName: info.cityName || '', + regionText, + }) + }, + getBaseData() { + return wx + .ajax({ + method: 'GET', + url: '?r=psvt/patient/base-data', }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/account/wait-bind-doctor', - data: { - doctorId: app.globalData.waitBindDoctorId, - }, - }).then(() => { - wx.navigateTo({ - url: `/patient/pages/login/index`, + .then((res) => { + this.setData({ + ageRangeList: parseList(res.ageRangeList), + genderList: parseList(res.genderList), + diagnosisStatusList: parseList(res.diagnosisStatusList), + surgeryStatusList: parseList(res.surgeryStatusList), }) }) - } - }, - handlePopupCancel() { - const { popupType } = this.data - if (popupType === 'argument') { - wx.exitMiniProgram() - } - if (popupType === 'conformBindDoctorConform') { - this.setData({ - popupShow: false, - }) - wx.ajax({ - method: 'POST', - url: '?r=wtx/account/wait-bind-doctor', - data: { - doctorId: app.globalData.waitBindDoctorId, - }, - }).then(() => { - app.globalData.waitBindDoctorId = '' - }) - } }, - handleWechatWork() { - wx.navigateTo({ - url: '/pages/wechatWork/index', + getLabel(list: OptionItem[], value: number): string { + const item = list.find((i) => i.value === value) + return item ? item.label : '' + }, + getIndex(list: OptionItem[], value: number): number { + const index = list.findIndex((i) => i.value === value) + return index >= 0 ? index : 0 + }, + onChooseAvatar(e: WechatMiniprogram.CustomEvent) { + const { avatarUrl } = e.detail + const url = `${app.globalData.upFileUrl}?r=file-service/upload-img` + wx.showLoading({ title: '上传中' }) + wx.uploadFile({ + url, + filePath: avatarUrl, + name: 'file', + success: (res) => { + const data = JSON.parse(res.data) + const uploadedUrl = data.data.Url + wx.ajax({ + method: 'POST', + url: '?r=psvt/patient/update-my-info', + data: { avatar: uploadedUrl }, + }) + .then(() => { + wx.hideLoading() + wx.showToast({ title: '头像更新成功!', icon: 'none' }) + this.setData({ 'userInfo.avatar': uploadedUrl }) + }) + .catch(() => { + wx.hideLoading() + }) + }, + fail() { + wx.hideLoading() + }, }) }, - handleSetData(e) { - const { fileList } = this.data + handleNickNameChange(e: WechatMiniprogram.Input) { + const nickName = e.detail.value.trim() + if (!nickName || nickName === this.data.userInfo.nickName) return + this.submitUpdate({ nickName }) + }, + // picker 选择 + handleAgeChange(e: WechatMiniprogram.PickerChange) { + const index = Number(e.detail.value) + const item = this.data.ageRangeList[index] + if (!item || item.value === this.data.userInfo.ageRange) return + this.submitUpdate({ ageRange: item.value }) + }, + handleGenderChange(e: WechatMiniprogram.PickerChange) { + const index = Number(e.detail.value) + const item = this.data.genderList[index] + if (!item || item.value === this.data.userInfo.gender) return + this.submitUpdate({ gender: item.value }) + }, + handleAreaChange(e: any) { + const [province, city] = e.detail + const provinceId = province.value ? Number(province.value) : '' + const cityId = city.value ? Number(city.value) : '' this.setData({ - fileList: [...fileList, ...e.detail], + provinceId, + provinceName: province.label, + cityId, + cityName: city.label, + regionText: [province.label, city.label].filter(Boolean).join(' '), + }) + this.submitUpdate({ + provinceId, + provinceName: province.label, + cityId, + cityName: city.label, }) }, - handleDeleteFile(e) { - const { index } = e.detail - const { fileList } = this.data - this.setData({ - fileList: fileList.filter((_, i) => i !== index), + submitUpdate(data: Record) { + wx.ajax({ + method: 'POST', + url: '?r=psvt/patient/update-my-info', + data, + loading: true, + loadingText: '保存中...', + }).then((res) => { + this.enrichUserInfo(res) + wx.showToast({ title: '保存成功', icon: 'none' }) }) }, - topicClose() { - this.setData({ - topicShow: false, + handleChangeTel() { + wx.navigateTo({ + url: '/pages/changeTel/index', + }) + }, + handleBack() { + wx.navigateBack() + }, + handleLogout() { + wx.showModal({ + title: '提示', + content: '确定退出登录吗?', + success: (res) => { + if (res.confirm) { + app.globalData.loginState = '' + app.globalData.initLoginInfo = {} + wx.reLaunch({ url: '/pages/login/index' }) + } + }, }) }, }) diff --git a/src/pages/userInfo/index.wxml b/src/pages/userInfo/index.wxml index 1ffc972..15f9a02 100644 --- a/src/pages/userInfo/index.wxml +++ b/src/pages/userInfo/index.wxml @@ -1,5 +1,5 @@ - + 个人信息 @@ -7,54 +7,72 @@ 头像 - - - + 昵称 - ZSX0092 + - + 手机号 - 153****0000 - - - - 年龄段 - 18-35岁 - - - - 性别 - - - - - 所在地区 - 北京/北京市 + {{userInfo.telephone || ''}} - + + + 年龄段 + {{userInfo.ageRangeName || ''}} + + + + + + 性别 + {{userInfo.genderName || ''}} + + + + + + 所在地区 + {{regionText || ''}} + + + + 我的健康状态 - 已确诊 + {{userInfo.diagnosisStatusName || ''}} - + 确诊时间 - 2024-08-01 + {{userInfo.diagnosisTime || ''}} 是否接受过手术治疗 - 正在评估 + {{userInfo.surgeryStatusName || ''}} - 退出登录 + 退出登录 注销 diff --git a/src/pages/videoDetail/index.wxml b/src/pages/videoDetail/index.wxml index ef3b3a2..62f887c 100644 --- a/src/pages/videoDetail/index.wxml +++ b/src/pages/videoDetail/index.wxml @@ -60,19 +60,19 @@ - + 126 - + 126 - + 126 - + 126 diff --git a/src/pages/videoList/index.ts b/src/pages/videoList/index.ts index 4918f7e..40d1fbe 100644 --- a/src/pages/videoList/index.ts +++ b/src/pages/videoList/index.ts @@ -14,7 +14,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/videoList/index.wxml b/src/pages/videoList/index.wxml index 9d0ae5b..bfa2a87 100644 --- a/src/pages/videoList/index.wxml +++ b/src/pages/videoList/index.wxml @@ -1,14 +1,14 @@ - + - + @@ -18,14 +18,14 @@ - + - + 12 - + 12 diff --git a/src/pages/wall/index.ts b/src/pages/wall/index.ts index 4918f7e..40d1fbe 100644 --- a/src/pages/wall/index.ts +++ b/src/pages/wall/index.ts @@ -14,7 +14,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/wall/index.wxml b/src/pages/wall/index.wxml index de4f953..41b82e7 100644 --- a/src/pages/wall/index.wxml +++ b/src/pages/wall/index.wxml @@ -1,14 +1,14 @@ - + - + @@ -33,13 +33,13 @@ - + @林间心跳 2026年7月1日 13:09 - 热门推荐 + 热门推荐 #我的心悸经历 #PSVT急救常识 @@ -49,11 +49,11 @@ 患者故事 - + - + @@ -62,15 +62,15 @@ - + 126 - + 126 - + 126 @@ -79,5 +79,5 @@ - + diff --git a/src/pages/wallDetail/index.ts b/src/pages/wallDetail/index.ts index 2276271..90bcad3 100644 --- a/src/pages/wallDetail/index.ts +++ b/src/pages/wallDetail/index.ts @@ -18,7 +18,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/wallDetail/index.wxml b/src/pages/wallDetail/index.wxml index 68b452e..8df5494 100644 --- a/src/pages/wallDetail/index.wxml +++ b/src/pages/wallDetail/index.wxml @@ -7,11 +7,11 @@ - + @林间心跳 2026年7月1日 13:09 @@ -26,11 +26,11 @@ 患者故事 - + - + @@ -47,7 +47,7 @@ - + 小鹿 @@ -56,11 +56,11 @@ 我也是,复诊前先整理记录,医生会更容易 - + 126 - + 126 @@ -68,7 +68,7 @@ - + 小鹿 @@ -80,11 +80,11 @@ - + 126 - + 126 @@ -102,7 +102,7 @@ - + 公开可见 @@ -112,7 +112,7 @@ - + 仅自己可见 @@ -124,15 +124,15 @@ 我要评论 - + 126 - + 126 - + 126 @@ -180,11 +180,11 @@ - + 编辑 - + 删除 diff --git a/src/pages/wallForm/index.ts b/src/pages/wallForm/index.ts index 6b241aa..3d26b14 100644 --- a/src/pages/wallForm/index.ts +++ b/src/pages/wallForm/index.ts @@ -19,7 +19,6 @@ Page({ handlePopupOk() { const { popupType } = this.data if (popupType === 'argument') { - app.mpBehavior({ PageName: 'BTN_PATIENTLOG' }) wx.ajax({ method: 'POST', url: '?r=wtx/user/agree-guest-privacy', diff --git a/src/pages/wallForm/index.wxml b/src/pages/wallForm/index.wxml index e344799..168f32e 100644 --- a/src/pages/wallForm/index.wxml +++ b/src/pages/wallForm/index.wxml @@ -7,7 +7,7 @@ @@ -22,13 +22,13 @@ > - + 我的心悸经历 - + 话题 0/2000 @@ -36,7 +36,7 @@ - + 内容标签 @@ -45,19 +45,19 @@ - + 谁可以看 - + 公开 所有用户可见 - + 私密 仅自己可见 @@ -67,11 +67,11 @@ - + 存草稿 - + 发布 diff --git a/src/pages/wechatWork/index.wxml b/src/pages/wechatWork/index.wxml index dbc9dba..ea3f17e 100644 --- a/src/pages/wechatWork/index.wxml +++ b/src/pages/wechatWork/index.wxml @@ -1,17 +1,17 @@ - + - - + + - + 添加你的专属客服 - + - - + + - 长按识别二维码 + 长按识别二维码