From e1a9d97596e33d7b563786a3ea428450229a2b7c Mon Sep 17 00:00:00 2001
From: linyimin <18316471919@139.com>
Date: Tue, 28 Apr 2026 10:31:54 +0800
Subject: [PATCH] =?UTF-8?q?pref:=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E9=9D=99=E9=BB=98=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/apis.js | 603 ++++++++++++++++++++------------------
src/components/Signin.vue | 15 +-
src/pages/index.vue | 152 ++++++----
3 files changed, 416 insertions(+), 354 deletions(-)
diff --git a/src/apis.js b/src/apis.js
index 9389a7f..1907015 100644
--- a/src/apis.js
+++ b/src/apis.js
@@ -1,477 +1,498 @@
let BASE_URL = "https://api.shelingxingqiu.com/api/shoot"; // 默认正式版
try {
- const accountInfo = uni.getAccountInfoSync();
- const envVersion = accountInfo.miniProgram.envVersion;
+ const accountInfo = uni.getAccountInfoSync();
+ const envVersion = accountInfo.miniProgram.envVersion;
- switch (envVersion) {
- case "develop": // 开发版
- BASE_URL = "http://localhost:8000/api/shoot";
- // BASE_URL = "https://apitest.shelingxingqiu.com/api/shoot";
- break;
- case "trial": // 体验版
- BASE_URL = "https://apitest.shelingxingqiu.com/api/shoot";
- break;
- case "release": // 正式版
- BASE_URL = "https://api.shelingxingqiu.com/api/shoot";
- break;
- default:
- // 保持默认值
- break;
- }
+ switch (envVersion) {
+ case "develop": // 开发版
+ BASE_URL = "http://localhost:8000/api/shoot";
+ // BASE_URL = "https://apitest.shelingxingqiu.com/api/shoot";
+ break;
+ case "trial": // 体验版
+ BASE_URL = "https://apitest.shelingxingqiu.com/api/shoot";
+ break;
+ case "release": // 正式版
+ BASE_URL = "https://api.shelingxingqiu.com/api/shoot";
+ break;
+ default:
+ // 保持默认值
+ break;
+ }
} catch (e) {
- console.error("获取环境信息失败,使用默认正式环境", e);
+ console.error("获取环境信息失败,使用默认正式环境", e);
}
function request(method, url, data = {}) {
- const token = uni.getStorageSync(
- `${uni.getAccountInfoSync().miniProgram.envVersion}_token`
- );
- const header = {};
- if (token) header.Authorization = `Bearer ${token || ""}`;
- return new Promise((resolve, reject) => {
- uni.request({
- url: `${BASE_URL}${url}`,
- method,
- header,
- data,
- timeout: 10000,
- success: (res) => {
- if (res.data) {
- const { code, data, message } = res.data;
- if (code === 0) resolve(data);
- else if (message) {
- if (message.indexOf("登录身份已失效") !== -1) {
- uni.removeStorageSync(
- `${uni.getAccountInfoSync().miniProgram.envVersion}_token`
- );
- uni.$emit("update-user");
- }
- if (message === "ROOM_FULL") {
- resolve({ full: true });
- return;
- }
- if (message === "ERROR_ROOM_GAME_START") {
- resolve({ started: true });
- return;
- }
- if (url.indexOf("/user/room") !== -1 && method === "GET") {
- resolve({});
- return;
- }
- if (message === "ERROR_BATTLE_GAMING") {
- resolve({});
- return;
- }
- if (message === "BIND_DEVICE") {
- resolve({ binded: true });
- return;
- }
- if (message === "ERROR_ORDER_UNPAY") {
- uni.showToast({
- title: "当前有未支付订单",
- icon: "none",
- });
- resolve({});
- return;
- }
- if (message === "ROOM_EMPTY") {
- return uni.showToast({
- title: "房间已过期",
- icon: "none",
- });
- }
- uni.showToast({
- title: message,
- icon: "none",
- });
- }
- reject("");
- }
- },
- fail: (err) => {
- handleRequestError(err, url);
- reject(err);
- },
+ const token = uni.getStorageSync(
+ `${uni.getAccountInfoSync().miniProgram.envVersion}_token`
+ );
+ const header = {};
+ if (token) header.Authorization = `Bearer ${token || ""}`;
+ return new Promise((resolve, reject) => {
+ uni.request({
+ url: `${BASE_URL}${url}`,
+ method,
+ header,
+ data,
+ timeout: 10000,
+ success: (res) => {
+ if (res.data) {
+ const {code, data, message} = res.data;
+ if (code === 0) resolve(data);
+ else if (message) {
+ if (message.indexOf("登录身份已失效") !== -1) {
+ uni.removeStorageSync(
+ `${uni.getAccountInfoSync().miniProgram.envVersion}_token`
+ );
+ uni.$emit("update-user");
+ }
+ if (message === "ROOM_FULL") {
+ resolve({full: true});
+ return;
+ }
+ if (message === "ERROR_ROOM_GAME_START") {
+ resolve({started: true});
+ return;
+ }
+ if (url.indexOf("/user/room") !== -1 && method === "GET") {
+ resolve({});
+ return;
+ }
+ if (message === "ERROR_BATTLE_GAMING") {
+ resolve({});
+ return;
+ }
+ if (message === "BIND_DEVICE") {
+ resolve({binded: true});
+ return;
+ }
+ if (message === "ERROR_ORDER_UNPAY") {
+ uni.showToast({
+ title: "当前有未支付订单",
+ icon: "none",
+ });
+ resolve({});
+ return;
+ }
+ if (message === "ROOM_EMPTY") {
+ return uni.showToast({
+ title: "房间已过期",
+ icon: "none",
+ });
+ }
+ uni.showToast({
+ title: message,
+ icon: "none",
+ });
+ }
+ reject("");
+ }
+ },
+ fail: (err) => {
+ handleRequestError(err, url);
+ reject(err);
+ },
+ });
});
- });
}
// 统一的错误处理函数
function handleRequestError(err, url) {
- console.log("请求失败:", { err, url });
+ console.log("请求失败:", {err, url});
- // 根据错误类型显示不同提示
- if (err.errMsg) {
- if (err.errMsg.includes("timeout")) {
- showCustomToast("请求超时,请稍后重试", "timeout");
- } else if (err.errMsg.includes("fail")) {
- // 检查网络状态
- uni.getNetworkType({
- success: (res) => {
- if (res.networkType === "none") {
- showCustomToast("网络连接已断开,请检查网络设置", "network");
- } else {
- showCustomToast("服务器连接失败,请稍后重试", "server");
- }
- },
- fail: () => {
- showCustomToast("网络异常,请检查网络连接", "unknown");
- },
- });
+ // 根据错误类型显示不同提示
+ if (err.errMsg) {
+ if (err.errMsg.includes("timeout")) {
+ showCustomToast("请求超时,请稍后重试", "timeout");
+ } else if (err.errMsg.includes("fail")) {
+ // 检查网络状态
+ uni.getNetworkType({
+ success: (res) => {
+ if (res.networkType === "none") {
+ showCustomToast("网络连接已断开,请检查网络设置", "network");
+ } else {
+ showCustomToast("服务器连接失败,请稍后重试", "server");
+ }
+ },
+ fail: () => {
+ showCustomToast("网络异常,请检查网络连接", "unknown");
+ },
+ });
+ } else {
+ showCustomToast("请求失败,请稍后重试", "general");
+ }
} else {
- showCustomToast("请求失败,请稍后重试", "general");
+ showCustomToast("网络异常,请稍后重试", "unknown");
}
- } else {
- showCustomToast("网络异常,请稍后重试", "unknown");
- }
}
// 自定义提示函数
function showCustomToast(message, type) {
- const config = {
- title: message,
- icon: "none",
- duration: 3000,
- };
+ const config = {
+ title: message,
+ icon: "none",
+ duration: 3000,
+ };
- // 根据错误类型可以添加不同的处理逻辑
- switch (type) {
- case "timeout":
- config.duration = 4000; // 超时提示显示更久
- break;
- case "network":
- config.duration = 5000; // 网络问题提示显示更久
- break;
- default:
- break;
- }
+ // 根据错误类型可以添加不同的处理逻辑
+ switch (type) {
+ case "timeout":
+ config.duration = 4000; // 超时提示显示更久
+ break;
+ case "network":
+ config.duration = 5000; // 网络问题提示显示更久
+ break;
+ default:
+ break;
+ }
- uni.showToast(config);
+ uni.showToast(config);
}
// 获取全局配置
export const getAppConfig = () => {
- return request("GET", "/index/appConfig");
+ return request("GET", "/index/appConfig");
};
export const getHomeData = (seasonId) => {
- return request("GET", `/user/myHome?seasonId=${seasonId}`);
+ return request("GET", `/user/myHome?seasonId=${seasonId}`);
};
export const getProvinceData = () => {
- return request("GET", "/index/provinces/list");
+ return request("GET", "/index/provinces/list");
};
export const loginAPI = async (phone, nickName, avatarData, code) => {
- const result = await request("POST", "/index/code", {
- appName: "shoot",
- appId: "wxa8f5989dcd45cc23",
- nickName,
- avatarData,
- code,
- phone,
- });
- uni.setStorageSync(
- `${uni.getAccountInfoSync().miniProgram.envVersion}_token`,
- result.token
- );
- return result;
+ const result = await request("POST", "/index/code", {
+ appName: "shoot",
+ appId: "wxa8f5989dcd45cc23",
+ nickName,
+ avatarData,
+ code,
+ phone,
+ });
+ uni.setStorageSync(
+ `${uni.getAccountInfoSync().miniProgram.envVersion}_token`,
+ result.token
+ );
+ return result;
+};
+
+export const silentLoginAPI = async (code) => {
+ const result = await request("POST", "/index/code", {
+ appName: "shoot",
+ appId: "wxa8f5989dcd45cc23",
+ code,
+ });
+ uni.setStorageSync(
+ `${uni.getAccountInfoSync().miniProgram.envVersion}_token`,
+ result.token
+ );
+ return result;
+};
+
+export const checkUserBindAPI = async (code) => {
+ return request("POST", "/index/checkBind", {
+ appName: "shoot",
+ appId: "wxa8f5989dcd45cc23",
+ code,
+ });
};
export const bindDeviceAPI = (device) => {
- return request("POST", "/user/device/bindDevice", {
- device,
- });
+ return request("POST", "/user/device/bindDevice", {
+ device,
+ });
};
export const bindDeviceAPIV2 = (token) => {
- return request("POST", "/user/device/bindDevice/v2", {
- token: token,
- });
+ return request("POST", "/user/device/bindDevice/v2", {
+ token: token,
+ });
};
export const unbindDeviceAPI = (deviceId) => {
- return request("POST", "/user/device/unbindDevice", {
- deviceId,
- });
+ return request("POST", "/user/device/unbindDevice", {
+ deviceId,
+ });
};
export const getMyDevicesAPI = () => {
- // "/user/device/getBinding?deviceId=9ZF9oVXs"
- return request("GET", "/user/device/getBindings");
+ // "/user/device/getBinding?deviceId=9ZF9oVXs"
+ return request("GET", "/user/device/getBindings");
};
export const createPractiseAPI = (arrows, time, target) => {
- return request("POST", "/user/practice/create", {
- shootNumber: arrows,
- shootTime: time,
- targetType: target*20,
- });
+ return request("POST", "/user/practice/create", {
+ shootNumber: arrows,
+ shootTime: time,
+ targetType: target * 20,
+ });
};
export const startPractiseAPI = () => {
- return request("POST", "/user/practice/begin");
+ return request("POST", "/user/practice/begin");
};
export const endPractiseAPI = () => {
- return request("POST", "/user/practice/stop");
+ return request("POST", "/user/practice/stop");
};
export const getPractiseAPI = async (id) => {
- return request("GET", `/user/practice/get?id=${id}`);
+ return request("GET", `/user/practice/get?id=${id}`);
};
export const createRoomAPI = (gameType, teamSize, targetType) => {
- return request("POST", "/user/createroom", {
- gameType,
- teamSize,
- targetType,
- });
+ return request("POST", "/user/createroom", {
+ gameType,
+ teamSize,
+ targetType,
+ });
};
export const getRoomAPI = (number) => {
- return request("GET", `/user/room?number=${number}`);
+ return request("GET", `/user/room?number=${number}`);
};
export const joinRoomAPI = (number) => {
- return request("POST", `/user/room/join`, { number });
+ return request("POST", `/user/room/join`, {number});
};
export const destroyRoomAPI = (roomNumber) => {
- return request("POST", "/user/room/destroyRoom", {
- roomNumber,
- });
+ return request("POST", "/user/room/destroyRoom", {
+ roomNumber,
+ });
};
export const exitRoomAPI = (number, userId) => {
- return request("POST", "/user/room/exitRoom", {
- number,
- userId,
- });
+ return request("POST", "/user/room/exitRoom", {
+ number,
+ userId,
+ });
};
export const startRoomAPI = (number) => {
- return request("POST", "/user/room/start", { number });
+ return request("POST", "/user/room/start", {number});
};
export const getPractiseResultListAPI = async (page = 1, page_size = 15) => {
- const reuslt = await request(
- "GET",
- `/user/practice/list?page=${page}&page_size=${page_size}`
- );
- return reuslt.list;
+ const reuslt = await request(
+ "GET",
+ `/user/practice/list?page=${page}&page_size=${page_size}`
+ );
+ return reuslt.list;
};
export const matchGameAPI = (match, gameType, teamSize) => {
- return request("POST", "/user/game/match", {
- match,
- gameType,
- teamSize,
- readyTime: 15,
- targetType: 20,
- });
+ return request("POST", "/user/game/match", {
+ match,
+ gameType,
+ teamSize,
+ readyTime: 15,
+ targetType: 20,
+ });
};
export const readyGameAPI = (battleId) => {
- return request("POST", "/user/game/prepare", {
- battleId,
- });
+ return request("POST", "/user/game/prepare", {
+ battleId,
+ });
};
export const simulShootAPI = (device_id, x, y) => {
- const data = {
- device_id,
- };
- if (x !== undefined && y !== undefined) {
- data.x = x;
- data.y = y;
- }
- return request("POST", "/index/arrow", data);
+ const data = {
+ device_id,
+ };
+ if (x !== undefined && y !== undefined) {
+ data.x = x;
+ data.y = y;
+ }
+ return request("POST", "/index/arrow", data);
};
export const getBattleListAPI = async (page, battleType) => {
- const result = await request("POST", "/user/battle/details/list", {
- page,
- pageSize: 10,
- battleType,
- });
- return result.list;
+ const result = await request("POST", "/user/battle/details/list", {
+ page,
+ pageSize: 10,
+ battleType,
+ });
+ return result.list;
};
export const getRankListAPI = () => {
- return request("GET", "/index/ranklist");
+ return request("GET", "/index/ranklist");
};
export const createOrderAPI = (vipId) => {
- return request("POST", "/user/order/create", {
- vipId,
- quanity: 1,
- tradeType: "mini",
- payType: "wxpay",
- });
+ return request("POST", "/user/order/create", {
+ vipId,
+ quanity: 1,
+ tradeType: "mini",
+ payType: "wxpay",
+ });
};
export const payOrderAPI = (id) => {
- return request("POST", "/user/order/pay", {
- id,
- tradeType: "mini",
- payType: "wxpay",
- });
+ return request("POST", "/user/order/pay", {
+ id,
+ tradeType: "mini",
+ payType: "wxpay",
+ });
};
export const getOrderListAPI = async (page) => {
- const reuslt = await request("GET", `/user/order/list?page=${page}`);
- return reuslt.items || [];
+ const reuslt = await request("GET", `/user/order/list?page=${page}`);
+ return reuslt.items || [];
};
export const cancelOrderListAPI = async (id) => {
- return request("POST", "/user/order/cancelOrder", { id });
+ return request("POST", "/user/order/cancelOrder", {id});
};
export const getUserGameState = () => {
- return request("GET", "/user/state");
+ return request("GET", "/user/state");
};
export const getPointBookConfigAPI = async () => {
- return request("GET", "/user/score/sheet/option");
+ return request("GET", "/user/score/sheet/option");
};
export const savePointBookAPI = async (
- bowType,
- distance,
- targetType,
- groups,
- arrows,
- data = []
-) => {
- return request("POST", "/user/score/sheet/report", {
bowType,
distance,
targetType,
groups,
arrows,
- group_data: data.map((item) =>
- item.map((i) => ({
- ...i,
- ring: i.ring === "M" ? -1 : i.ring === "X" ? 0 : Number(i.ring),
- }))
- ),
- });
+ data = []
+) => {
+ return request("POST", "/user/score/sheet/report", {
+ bowType,
+ distance,
+ targetType,
+ groups,
+ arrows,
+ group_data: data.map((item) =>
+ item.map((i) => ({
+ ...i,
+ ring: i.ring === "M" ? -1 : i.ring === "X" ? 0 : Number(i.ring),
+ }))
+ ),
+ });
};
export const getPointBookListAPI = async (
- page = 1,
- bowType,
- distance,
- targetType
+ page = 1,
+ bowType,
+ distance,
+ targetType
) => {
- let url = `/user/score/sheet/list?pageNum=${page}&pageSize=10`;
- if (bowType) url += `&bowType=${bowType}`;
- if (distance) url += `&distance=${distance}`;
- if (targetType) url += `&targetType=${targetType}`;
- const result = await request("GET", url);
- return result.list || [];
+ let url = `/user/score/sheet/list?pageNum=${page}&pageSize=10`;
+ if (bowType) url += `&bowType=${bowType}`;
+ if (distance) url += `&distance=${distance}`;
+ if (targetType) url += `&targetType=${targetType}`;
+ const result = await request("GET", url);
+ return result.list || [];
};
export const getPointBookDetailAPI = async (id) => {
- return request("GET", `/user/score/sheet/detail?id=${id}`);
+ return request("GET", `/user/score/sheet/detail?id=${id}`);
};
export const getPointBookDataAPI = async () => {
- return request("GET", "/user/score/sheet/statistics");
+ return request("GET", "/user/score/sheet/statistics");
};
export const getPractiseDataAPI = async () => {
- return request("GET", "/user/practice/statistics");
+ return request("GET", "/user/practice/statistics");
};
export const getBattleDataAPI = async () => {
- return request("GET", "/user/fight/statistics");
+ return request("GET", "/user/fight/statistics");
};
export const chooseTeamAPI = async (number, group) => {
- return request("POST", "/user/room/group", { number, group });
+ return request("POST", "/user/room/group", {number, group});
};
export const getVIPDescAPI = async () => {
- return request("GET", "/index/memberVipDescribe");
+ return request("GET", "/index/memberVipDescribe");
};
export const getPointBookStatisticsAPI = async () => {
- return request("GET", `/v2/user/score/sheet/statistics`);
+ return request("GET", `/v2/user/score/sheet/statistics`);
};
export const donateAPI = async (amount, name, phone, organizer, advice) => {
- return request("POST", `/user/donate`, {
- amount,
- name,
- phone,
- organizer,
- advice,
- });
+ return request("POST", `/user/donate`, {
+ amount,
+ name,
+ phone,
+ organizer,
+ advice,
+ });
};
export const laserAimAPI = async () => {
- return request("POST", "/user/device/laserAim");
+ return request("POST", "/user/device/laserAim");
};
export const laserCloseAPI = async () => {
- return request("POST", "/user/device/closeAim");
+ return request("POST", "/user/device/closeAim");
};
export const getDeviceBatteryAPI = async () => {
- return request("GET", "/user/device/battery");
+ return request("GET", "/user/device/battery");
};
export const addNoteAPI = async (id, remark) => {
- return request("POST", "/user/score/sheet/remark", { id, remark });
+ return request("POST", "/user/score/sheet/remark", {id, remark});
};
export const removePointRecord = async (id) => {
- return request("DELETE", `/user/score/sheet/delete?id=${id}`);
+ return request("DELETE", `/user/score/sheet/delete?id=${id}`);
};
export const getPhoneNumberAPI = (data) => {
- return request("POST", "/index/getPhone", data);
+ return request("POST", "/index/getPhone", data);
};
export const getPointBookRankListAPI = (page = 1) => {
- return request(
- "GET",
- `/user/score/sheet/week/shoot/rank/list?pageNum=${page}&pageSize=100`
- );
+ return request(
+ "GET",
+ `/user/score/sheet/week/shoot/rank/list?pageNum=${page}&pageSize=100`
+ );
};
export const clickLikeAPI = (userId, ifLike) => {
- return request("POST", "/user/score/sheet/week/shoot/rank/like", {
- userId,
- ifLike,
- });
+ return request("POST", "/user/score/sheet/week/shoot/rank/like", {
+ userId,
+ ifLike,
+ });
};
export const getMyLikeList = (page = 1, pageSize = 10) => {
- return request(
- "GET",
- `/user/score/sheet/week/shoot/rank/like/list?pageNum=${page}&pageSize=${pageSize}`
- );
+ return request(
+ "GET",
+ `/user/score/sheet/week/shoot/rank/like/list?pageNum=${page}&pageSize=${pageSize}`
+ );
};
export const getReadyAPI = (roomId) => {
- return request("POST", `/user/room/ready`, {
- roomId,
- });
+ return request("POST", `/user/room/ready`, {
+ roomId,
+ });
};
export const getBattleAPI = async (battleId) => {
- return request("POST", "/user/match/info", {
- id: battleId,
- });
+ return request("POST", "/user/match/info", {
+ id: battleId,
+ });
};
export const kickPlayerAPI = (number, userId) => {
- return request("POST", "/user/room/kicking", {
- number,
- userId,
- });
+ return request("POST", "/user/room/kicking", {
+ number,
+ userId,
+ });
};
diff --git a/src/components/Signin.vue b/src/components/Signin.vue
index 0805d16..619d681 100644
--- a/src/components/Signin.vue
+++ b/src/components/Signin.vue
@@ -86,18 +86,17 @@ const handleLogin = async () => {
icon: "none",
});
}
+ await doLogin();
+};
+
+async function doLogin() {
loading.value = true;
try {
const wxResult = await wxLogin();
const fileManager = uni.getFileSystemManager();
const avatarBase64 = fileManager.readFileSync(avatarUrl.value, "base64");
const base64Url = `data:image/png;base64,${avatarBase64}`;
- const result = await loginAPI(
- phone.value,
- nickName.value,
- base64Url,
- wxResult.code
- );
+ await loginAPI(phone.value, nickName.value, base64Url, wxResult.code);
const data = await getHomeData();
if (data.user) updateUser(data.user);
const devices = await getMyDevicesAPI();
@@ -139,6 +138,10 @@ const openPrivacyLink = () => {
onShow(() => {
loading.value = false;
+ agree.value = false;
+ phone.value = "";
+ avatarUrl.value = "";
+ nickName.value = "";
});
diff --git a/src/pages/index.vue b/src/pages/index.vue
index 1f81e39..c670356 100644
--- a/src/pages/index.vue
+++ b/src/pages/index.vue
@@ -1,25 +1,26 @@
@@ -127,25 +152,25 @@ onShareTimeline(() => {
-
+
toPage('/pages/my-device')"
+ v-if="online"
+ src="https://static.shelingxingqiu.com/attachment/2025-08-07/dbvt1o6dvhr2rop3kn.webp"
+ mode="widthFix"
+ @click="() => toPage('/pages/my-device')"
/>
toPage('/pages/my-device')"
+ v-else
+ src="https://static.shelingxingqiu.com/attachment/2026-01-04/dffohwtk1gwh0xfa6h.png"
+ mode="widthFix"
+ @click="() => toPage('/pages/my-device')"
/>
绑定我的智能弓
@@ -153,9 +178,9 @@ onShareTimeline(() => {
设备在线
toPage('/pages/first-try')"
+ src="../static/first-try.png"
+ mode="widthFix"
+ @click="() => toPage('/pages/first-try')"
/>
新人必刷!
@@ -164,49 +189,49 @@ onShareTimeline(() => {
toPage('/pages/practise')">
-
+
toPage('/pages/friend-battle')">
-
+
-
+
-
-
-
+
+
+
{{ i }}
@@ -216,14 +241,15 @@ onShareTimeline(() => {
toPage('/pages/my-growth')">
-
+
toPage('/pages/ranking')">
段位
{{
user.lvlName || "暂无"
- }}
+ }}
+
赛季平均环数
@@ -232,18 +258,19 @@ onShareTimeline(() => {
赛季胜率
{{
- user.avg_win
- ? Number((user.avg_win * 100).toFixed(2)) + "%"
- : "暂无"
- }}
+ user.avg_win
+ ? Number((user.avg_win * 100).toFixed(2)) + "%"
+ : "暂无"
+ }}
+
-
+
-
+
@@ -364,6 +391,7 @@ onShareTimeline(() => {
width: 32rpx;
height: 32rpx;
}
+
.player-avatar > view:first-child {
border-radius: 50%;
background: #777777;
@@ -374,6 +402,7 @@ onShareTimeline(() => {
height: 18px;
color: #fff;
}
+
.player-avatar > image:last-child {
width: 100%;
height: 100%;
@@ -392,18 +421,22 @@ onShareTimeline(() => {
margin-left: 2px;
color: #fff;
}
+
.my-data {
display: flex;
margin-top: 20px;
justify-content: space-between;
}
+
.my-data > view:first-child {
width: 28%;
}
+
.my-data > view:first-child > image {
width: 100%;
transform: translateX(-8px);
}
+
.my-data > view:nth-child(2) {
width: 68%;
font-size: 12px;
@@ -411,9 +444,11 @@ onShareTimeline(() => {
display: flex;
justify-content: space-between;
}
+
.my-data > view:nth-child(2) > view:nth-child(2) {
width: 38%;
}
+
.my-data > view:nth-child(2) > view {
width: 28%;
border-radius: 10px;
@@ -423,11 +458,13 @@ onShareTimeline(() => {
align-items: center;
justify-content: center;
}
+
.my-data > view:nth-child(2) > view > text:last-child {
color: #fff;
line-height: 25px;
font-weight: 500;
}
+
.top-theme {
position: absolute;
display: flex;
@@ -437,6 +474,7 @@ onShareTimeline(() => {
height: 60px;
z-index: -1;
}
+
.top-theme > image {
width: 300rpx;
transform: translate(-4%, -14%);