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
|
# YKT Friend Bridge H5
|
||||||
|
|
||||||
短信好友邀请中转页。发布包名为 `sms.zip`,默认短路径为 `/sms/{recordId}`。
|
短信好友邀请中转页。发布包名为 `sms.zip`,默认短路径为 `/sms/{id}`。
|
||||||
|
|
||||||
|
正式短信链接由后端生成随机短码,路径形态为 `/sms/{shortCode}`,例如 `/sms/K8q2Z`。
|
||||||
|
|
||||||
## Local Dev
|
## Local Dev
|
||||||
|
|
||||||
@ -20,6 +22,14 @@ api_url=http://localhost:8080
|
|||||||
http://localhost:5174/sms/{recordId}
|
http://localhost:5174/sms/{recordId}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
运营商审核临时写死地址:
|
||||||
|
|
||||||
|
```text
|
||||||
|
https://ykt.youcan365.com/sms/7du4g
|
||||||
|
```
|
||||||
|
|
||||||
|
当前 `src/main.js` 开启 `REVIEW_MODE`,页面不请求后端接口,直接使用审核用好友链接数据。
|
||||||
|
|
||||||
本地服务端默认读取:
|
本地服务端默认读取:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
|
|||||||
40
src/main.js
40
src/main.js
@ -13,6 +13,26 @@
|
|||||||
friendMeta: document.getElementById("friendMeta"),
|
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 = "";
|
let scheme = "";
|
||||||
|
|
||||||
function normalizeText(value) {
|
function normalizeText(value) {
|
||||||
@ -46,15 +66,20 @@
|
|||||||
setStatus("");
|
setStatus("");
|
||||||
}
|
}
|
||||||
|
|
||||||
function setAvatar(src, friendName, imageEl, fallbackEl) {
|
function setAvatar(src, friendName, imageEl, fallbackEl, options = {}) {
|
||||||
const avatar = normalizeText(src);
|
const avatar = normalizeText(src);
|
||||||
|
const fallbackAvatar = options.fallbackAvatar === false ? "" : DEFAULT_AVATAR;
|
||||||
if (fallbackEl === elements.primaryAvatarFallback) {
|
if (fallbackEl === elements.primaryAvatarFallback) {
|
||||||
elements.primaryInitial.textContent = friendName.slice(0, 1) || "医";
|
elements.primaryInitial.textContent = friendName.slice(0, 1) || "医";
|
||||||
}
|
}
|
||||||
fallbackEl.classList.remove("has-image");
|
fallbackEl.classList.remove("has-image");
|
||||||
imageEl.removeAttribute("src");
|
imageEl.removeAttribute("src");
|
||||||
|
fallbackEl.hidden = false;
|
||||||
|
|
||||||
if (!avatar) return;
|
if (!avatar && !fallbackAvatar) {
|
||||||
|
fallbackEl.hidden = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
imageEl.onload = function () {
|
imageEl.onload = function () {
|
||||||
fallbackEl.classList.add("has-image");
|
fallbackEl.classList.add("has-image");
|
||||||
};
|
};
|
||||||
@ -62,7 +87,7 @@
|
|||||||
fallbackEl.classList.remove("has-image");
|
fallbackEl.classList.remove("has-image");
|
||||||
imageEl.removeAttribute("src");
|
imageEl.removeAttribute("src");
|
||||||
};
|
};
|
||||||
imageEl.src = avatar;
|
imageEl.src = avatar || fallbackAvatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fillPage(data) {
|
function fillPage(data) {
|
||||||
@ -83,7 +108,9 @@
|
|||||||
elements.hintText.textContent = normalizeText(data.hintText) || "点击下方按钮,添加企业微信好友";
|
elements.hintText.textContent = normalizeText(data.hintText) || "点击下方按钮,添加企业微信好友";
|
||||||
elements.openButton.textContent = normalizeText(data.actionText) || "去 加 好 友";
|
elements.openButton.textContent = normalizeText(data.actionText) || "去 加 好 友";
|
||||||
setAvatar(friendAvatar || avatarList[0], friendName, elements.primaryAvatar, elements.primaryAvatarFallback);
|
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;
|
elements.openButton.disabled = false;
|
||||||
scheme = normalizeText(data.scheme);
|
scheme = normalizeText(data.scheme);
|
||||||
setStatus("");
|
setStatus("");
|
||||||
@ -96,6 +123,11 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (REVIEW_MODE && recordId === REVIEW_RECORD_ID) {
|
||||||
|
fillPage(REVIEW_FRIEND_LINK_DATA);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const apiBase = getApiBase();
|
const apiBase = getApiBase();
|
||||||
if (!apiBase) {
|
if (!apiBase) {
|
||||||
|
|||||||
@ -155,20 +155,26 @@ body {
|
|||||||
.avatar-large {
|
.avatar-large {
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
width: 36px;
|
width: 72px;
|
||||||
height: 36px;
|
height: 72px;
|
||||||
border-radius: 2px;
|
border-radius: 6px;
|
||||||
|
background: #f4f5f7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.avatar-small {
|
.avatar-small {
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 36px;
|
width: 28px;
|
||||||
height: 36px;
|
height: 28px;
|
||||||
border-radius: 2px;
|
border: 2px solid #fff;
|
||||||
|
border-radius: 50%;
|
||||||
background: linear-gradient(160deg, #d5e8ff, #48a0ff);
|
background: linear-gradient(160deg, #d5e8ff, #48a0ff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.avatar-small[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.doctor-name {
|
.doctor-name {
|
||||||
margin: 20px 0 0;
|
margin: 20px 0 0;
|
||||||
color: #1d2129;
|
color: #1d2129;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user