feat:更新 README.md,修正短路径描述并添加运营商审核临时地址;在 main.js 中添加审核模式和默认好友链接数据;调整样式文件中头像大小和样式。
This commit is contained in:
parent
6ca0770bf6
commit
732e0d7a4a
12
README.md
12
README.md
@ -1,6 +1,8 @@
|
||||
# YKT Friend Bridge H5
|
||||
|
||||
短信好友邀请中转页。发布包名为 `sms.zip`,默认短路径为 `/sms/{recordId}`。
|
||||
短信好友邀请中转页。发布包名为 `sms.zip`,默认短路径为 `/sms/{id}`。
|
||||
|
||||
正式短信链接由后端生成随机短码,路径形态为 `/sms/{shortCode}`,例如 `/sms/K8q2Z`。
|
||||
|
||||
## Local Dev
|
||||
|
||||
@ -20,6 +22,14 @@ api_url=http://localhost:8080
|
||||
http://localhost:5174/sms/{recordId}
|
||||
```
|
||||
|
||||
运营商审核临时写死地址:
|
||||
|
||||
```text
|
||||
https://ykt.youcan365.com/sms/7du4g
|
||||
```
|
||||
|
||||
当前 `src/main.js` 开启 `REVIEW_MODE`,页面不请求后端接口,直接使用审核用好友链接数据。
|
||||
|
||||
本地服务端默认读取:
|
||||
|
||||
```text
|
||||
|
||||
40
src/main.js
40
src/main.js
@ -13,6 +13,26 @@
|
||||
friendMeta: document.getElementById("friendMeta"),
|
||||
};
|
||||
|
||||
const DEFAULT_AVATAR = "/sms/assets/default-avatar.png";
|
||||
const REVIEW_MODE = true;
|
||||
const REVIEW_RECORD_ID = "7du4g";
|
||||
const REVIEW_FRIEND_LINK_DATA = {
|
||||
id: REVIEW_RECORD_ID,
|
||||
corpId: "wwe3fb2faa52cf9dfb",
|
||||
friendUserId: "huangjiafeng",
|
||||
friendName: "黄医生",
|
||||
corpName: "患者精益管理服务平台",
|
||||
title: "添加好友",
|
||||
actionText: "去 加 好 友",
|
||||
hintText: "点击下方按钮,添加企业微信好友",
|
||||
path: "pages/team/friend",
|
||||
query: "corpId=wwe3fb2faa52cf9dfb&userid=huangjiafeng",
|
||||
scheme: "weixin://dl/business/?t=IwNKzYOXnRo",
|
||||
status: "success",
|
||||
createTime: 1780540926600,
|
||||
updateTime: 1780540927442,
|
||||
};
|
||||
|
||||
let scheme = "";
|
||||
|
||||
function normalizeText(value) {
|
||||
@ -46,15 +66,20 @@
|
||||
setStatus("");
|
||||
}
|
||||
|
||||
function setAvatar(src, friendName, imageEl, fallbackEl) {
|
||||
function setAvatar(src, friendName, imageEl, fallbackEl, options = {}) {
|
||||
const avatar = normalizeText(src);
|
||||
const fallbackAvatar = options.fallbackAvatar === false ? "" : DEFAULT_AVATAR;
|
||||
if (fallbackEl === elements.primaryAvatarFallback) {
|
||||
elements.primaryInitial.textContent = friendName.slice(0, 1) || "医";
|
||||
}
|
||||
fallbackEl.classList.remove("has-image");
|
||||
imageEl.removeAttribute("src");
|
||||
fallbackEl.hidden = false;
|
||||
|
||||
if (!avatar) return;
|
||||
if (!avatar && !fallbackAvatar) {
|
||||
fallbackEl.hidden = true;
|
||||
return;
|
||||
}
|
||||
imageEl.onload = function () {
|
||||
fallbackEl.classList.add("has-image");
|
||||
};
|
||||
@ -62,7 +87,7 @@
|
||||
fallbackEl.classList.remove("has-image");
|
||||
imageEl.removeAttribute("src");
|
||||
};
|
||||
imageEl.src = avatar;
|
||||
imageEl.src = avatar || fallbackAvatar;
|
||||
}
|
||||
|
||||
function fillPage(data) {
|
||||
@ -83,7 +108,9 @@
|
||||
elements.hintText.textContent = normalizeText(data.hintText) || "点击下方按钮,添加企业微信好友";
|
||||
elements.openButton.textContent = normalizeText(data.actionText) || "去 加 好 友";
|
||||
setAvatar(friendAvatar || avatarList[0], friendName, elements.primaryAvatar, elements.primaryAvatarFallback);
|
||||
setAvatar(secondaryAvatar, "患", elements.secondaryAvatar, elements.secondaryAvatarFallback);
|
||||
setAvatar(secondaryAvatar, "患", elements.secondaryAvatar, elements.secondaryAvatarFallback, {
|
||||
fallbackAvatar: false,
|
||||
});
|
||||
elements.openButton.disabled = false;
|
||||
scheme = normalizeText(data.scheme);
|
||||
setStatus("");
|
||||
@ -96,6 +123,11 @@
|
||||
return;
|
||||
}
|
||||
|
||||
if (REVIEW_MODE && recordId === REVIEW_RECORD_ID) {
|
||||
fillPage(REVIEW_FRIEND_LINK_DATA);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const apiBase = getApiBase();
|
||||
if (!apiBase) {
|
||||
|
||||
@ -155,20 +155,26 @@ body {
|
||||
.avatar-large {
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 2px;
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
border-radius: 6px;
|
||||
background: #f4f5f7;
|
||||
}
|
||||
|
||||
.avatar-small {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 2px;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 2px solid #fff;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(160deg, #d5e8ff, #48a0ff);
|
||||
}
|
||||
|
||||
.avatar-small[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.doctor-name {
|
||||
margin: 20px 0 0;
|
||||
color: #1d2129;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user