2026年5月29日 02:28

This commit is contained in:
hajimi
2026-05-28 18:28:09 +00:00
parent f85828ee14
commit 64f09e2e53
12 changed files with 375 additions and 279 deletions
+1
View File
@@ -24,5 +24,6 @@ bin-release/
/python/workspace/ /python/workspace/
/release-*.zip /release-*.zip
/tmp_* /tmp_*
/.code-graph/
**/.hbuilderx/ **/.hbuilderx/
**/unpackage/ **/unpackage/
+8
View File
@@ -0,0 +1,8 @@
{
"mcpServers": {
"codebase-memory": {
"command": "codebase-memory-mcp",
"args": []
}
}
}
+43
View File
@@ -0,0 +1,43 @@
INSERT INTO `la_community_tag` (`name`, `icon`, `sort`, `post_count`, `is_hot`, `status`, `create_time`)
SELECT '世界杯', '', 90, 0, 1, 1, UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_tag` WHERE `name` = '世界杯'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
);
INSERT INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, t.id
FROM `la_community_post` p
JOIN `la_community_tag` t ON t.`name` = '世界杯'
WHERE p.`content` IN (
'世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?',
'我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。',
'这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
)
ON DUPLICATE KEY UPDATE `post_id` = `post_id`;
UPDATE `la_community_tag` t
SET `post_count` = (
SELECT COUNT(*)
FROM `la_community_post_tag` pt
JOIN `la_community_post` p ON p.id = pt.post_id AND p.delete_time IS NULL
WHERE pt.tag_id = t.id
)
WHERE t.`name` = '世界杯';
+29
View File
@@ -0,0 +1,29 @@
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
);
INSERT INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, 17
FROM `la_community_post` p
WHERE p.`content` IN (
'世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?',
'我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。',
'这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
)
ON DUPLICATE KEY UPDATE `post_id` = `post_id`;
UPDATE `la_community_tag` SET `post_count` = (SELECT COUNT(*) FROM `la_community_post_tag` WHERE tag_id = 17) WHERE id = 17;
+27
View File
@@ -0,0 +1,27 @@
UPDATE `la_community_post`
SET `images` = REPLACE(`images`, 'https://tk2cdn-ali.tprswe.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `origin_id` LIKE '49baodian:%'
AND `images` LIKE '%https://tk2cdn-ali.tprswe.com/%';
UPDATE `la_community_post`
SET `images` = REPLACE(`images`, 'https://tk2cdn-hw.thc517.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `origin_id` LIKE '49baodian:%'
AND `images` LIKE '%https://tk2cdn-hw.thc517.com/%';
UPDATE `la_community_post`
SET `ext` = REPLACE(`ext`, 'https://tk2cdn-ali.tprswe.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `origin_id` LIKE '49baodian:%'
AND `ext` LIKE '%https://tk2cdn-ali.tprswe.com/%';
UPDATE `la_community_post`
SET `ext` = REPLACE(`ext`, 'https://tk2cdn-hw.thc517.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `origin_id` LIKE '49baodian:%'
AND `ext` LIKE '%https://tk2cdn-hw.thc517.com/%';
UPDATE `la_community_post_image`
SET `image_url` = REPLACE(`image_url`, 'https://tk2cdn-ali.tprswe.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `image_url` LIKE 'https://tk2cdn-ali.tprswe.com/%';
UPDATE `la_community_post_image`
SET `image_url` = REPLACE(`image_url`, 'https://tk2cdn-hw.thc517.com/', 'https://tk2cdn.ai4funs.com/')
WHERE `image_url` LIKE 'https://tk2cdn-hw.thc517.com/%';
+55
View File
@@ -0,0 +1,55 @@
START TRANSACTION;
INSERT INTO `la_community_tag` (`name`, `icon`, `sort`, `post_count`, `is_hot`, `status`, `create_time`)
SELECT '旧澳六合', '', 11, 0, 0, 1, UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_tag` WHERE `name` = '旧澳六合'
);
INSERT INTO `la_community_tag` (`name`, `icon`, `sort`, `post_count`, `is_hot`, `status`, `create_time`)
SELECT '新澳六合', '', 12, 0, 0, 1, UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_tag` WHERE `name` = '新澳六合'
);
INSERT IGNORE INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, t.id
FROM `la_community_post` p
INNER JOIN `la_community_tag` t ON t.`name` = '旧澳六合'
WHERE p.`origin_id` LIKE '49baodian:draw:a6:%'
OR p.`origin_id` LIKE '49baodian:gallery:a6:%'
OR (
p.`origin_id` LIKE '49baodian:gallery:%'
AND p.`origin_id` NOT LIKE '49baodian:gallery:xa6:%'
AND p.`origin_id` NOT LIKE '49baodian:gallery:a6:%'
)
OR (
p.`origin_id` LIKE '49baodian:draw:%'
AND p.`origin_id` NOT LIKE '49baodian:draw:xa6:%'
);
INSERT IGNORE INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, t.id
FROM `la_community_post` p
INNER JOIN `la_community_tag` t ON t.`name` = '新澳六合'
WHERE p.`origin_id` LIKE '49baodian:draw:xa6:%'
OR p.`origin_id` LIKE '49baodian:gallery:xa6:%';
INSERT IGNORE INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, t.id
FROM `la_community_post` p
INNER JOIN `la_community_tag` t ON t.`name` = '彩票'
WHERE p.`origin_id` LIKE '49baodian:%';
UPDATE `la_community_tag` t
SET `post_count` = (
SELECT COUNT(*)
FROM `la_community_post_tag` pt
INNER JOIN `la_community_post` p ON p.`id` = pt.`post_id`
WHERE pt.`tag_id` = t.`id`
AND p.`status` = 1
AND p.`delete_time` IS NULL
)
WHERE t.`name` IN ('彩票', '旧澳六合', '新澳六合');
COMMIT;
@@ -0,0 +1,7 @@
INSERT INTO `la_dev_crontab` (`name`, `type`, `system`, `remark`, `command`, `params`, `status`, `expression`, `create_time`, `update_time`)
SELECT '世界杯英文文章翻译预热', 1, 0, '仅翻译世界杯分类中疑似英文文章,预热翻译缓存', 'worldcup_article_translate', '', 1, '*/10 * * * *', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_dev_crontab`
WHERE `command` = 'worldcup_article_translate'
AND `delete_time` IS NULL
);
@@ -0,0 +1,43 @@
INSERT INTO `la_community_tag` (`name`, `icon`, `sort`, `post_count`, `is_hot`, `status`, `create_time`)
SELECT '世界杯', '', 90, 0, 1, 1, UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_tag` WHERE `name` = '世界杯'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。'
);
INSERT INTO `la_community_post` (`user_id`, `content`, `images`, `post_type`, `match_id`, `is_paid`, `price_points`, `free_content_len`, `status`, `create_time`, `update_time`)
SELECT 1, '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。', '[]', 0, 0, 0, 0, 100, 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
WHERE NOT EXISTS (
SELECT 1 FROM `la_community_post` WHERE `content` = '这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
);
INSERT INTO `la_community_post_tag` (`post_id`, `tag_id`)
SELECT p.id, t.id
FROM `la_community_post` p
JOIN `la_community_tag` t ON t.`name` = '世界杯'
WHERE p.`content` IN (
'世界杯开赛氛围越来越浓了,大家觉得本届最大的黑马会是谁?',
'我更看好防守稳一点的球队,世界杯这种大赛还是先稳住再说。',
'这届世界杯的球员状态起伏很大,关键还是看临场调整和替补深度。'
)
ON DUPLICATE KEY UPDATE `post_id` = `post_id`;
UPDATE `la_community_tag` t
SET `post_count` = (
SELECT COUNT(*)
FROM `la_community_post_tag` pt
JOIN `la_community_post` p ON p.id = pt.post_id AND p.delete_time IS NULL
WHERE pt.tag_id = t.id
)
WHERE t.`name` = '世界杯';
+1 -1
Submodule server updated: c636d10643...d9193b7e2d
+1 -1
Submodule uniapp updated: d197d3e6d8...c2c0c0c04f
+159 -277
View File
@@ -1,150 +1,94 @@
# 涓氬姟杩涘害绠$悊 # 涓氬姟杩涘害绠$悊
> 枃浠剁敤浜庤窡韪 Sport Era 椤圭洰鎵€鏈夊姛鑳芥ā鍧楃殑寮€鍙戠姸鎬併€佸緟鍔炰簨椤逛笌閬垮潙璁板綍銆傛瘡瀹屾垚涓€涓姛鑳芥垨鍙戠幇涓€涓潙锛屽強鏃跺湪瀵瑰簲绔犺妭杩藉姞銆 > 枃浠剁敤浜庤窡韪?Sport Era 椤圭洰鎵€鏈夊姛鑳芥ā鍧楃殑寮€鍙戠姸鎬併€佸緟鍔炰簨椤逛笌閬垮潙璁板綍銆傛瘡瀹屾垚涓€涓姛鑳芥垨鍙戠幇涓€涓潙锛屽強鏃跺湪瀵瑰簲绔犺妭杩藉姞銆?
## 鐩綍
## 鐩 - [涓€銆佸凡瀹屾垚浜嬮」](#涓€宸插畬鎴愪簨椤?
- [浜屻€佽繘琛屼腑浜嬮」](#浜岃繘琛屼腑浜嬮」)
- [涓€銆佸凡瀹屾垚浜嬮」](#涓€宸插畬鎴愪簨椤) - [涓夈€佸緟鍔炰簨椤筣(#涓夊緟鍔炰簨椤?
- [浜屻€佽繘琛屼腑浜嬮」](#浜岃繘琛屼腑浜嬮」) - [鍥涖€侀伩鍧戣褰昡(#鍥涢伩鍧戣褰?
- [涓夈€佸緟鍔炰簨椤筣(#涓夊緟鍔炰簨椤)
- [鍥涖€侀伩鍧戣褰昡(#鍥涢伩鍧戣)
--- ---
## 涓€銆佸凡瀹屾垚浜嬮」 ## 涓€銆佸凡瀹屾垚浜嬮」
### 1. 椤圭洰鍩虹鏂囨。涓庡崗浣滃崗璁 ### 1. 椤圭洰鍩虹鏂囨。涓庡崗浣滃崗璁?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-07
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-07
瀹屾垚鍐呭
- 鍒涘缓鏍圭洰褰 `AGENTS.md`锛岃褰曢」鐩妧鏈爤銆佸瓙妯″潡鍒嗗伐銆佹暟鎹簱鍩哄噯涓庡崗浣滆鑼冦€
- 鍒涘缓 `server/AGENTS.md`銆乣admin/AGENTS.md`銆乣uniapp/AGENTS.md`銆乣pc/AGENTS.md`銆乣qa/AGENTS.md`
- 鍒涘缓 `涓氬姟杩涘害绠$悊.md` `璁捐绋挎槧灏.md`锛屼綔涓哄悗缁繘搴︿笌璁捐绋挎槧灏勭淮鎶ゅ叆鍙c€
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鍒涘缓鏍圭洰褰?`AGENTS.md`锛岃褰曢」鐩妧鏈爤銆佸瓙妯″潡鍒嗗伐銆佹暟鎹簱鍩哄噯涓庡崗浣滆鑼冦€?- 鍒涘缓 `server/AGENTS.md`銆乣admin/AGENTS.md`銆乣uniapp/AGENTS.md`銆乣pc/AGENTS.md`銆乣qa/AGENTS.md`銆?- 鍒涘缓 `涓氬姟杩涘害绠$悊.md` 鍜?`璁捐绋挎槧灏?md`锛屼綔涓哄悗缁繘搴︿笌璁捐绋挎槧灏勭淮鎶ゅ叆鍙c€?
娑夊強妯″潡锛?
- `AGENTS.md` - `AGENTS.md`
- `server/AGENTS.md` - `server/AGENTS.md`
- `admin/AGENTS.md` - `admin/AGENTS.md`
- `uniapp/AGENTS.md` - `uniapp/AGENTS.md`
- `pc/AGENTS.md` - `pc/AGENTS.md`
- `qa/AGENTS.md` - `qa/AGENTS.md`
- `涓氬姟杩涘害绠$悊.md` - `涓氬姟杩涘害绠$悊.md`
- `璁捐绋挎槧灏.md` - `璁捐绋挎槧灏?md`
### 2. 鏂伴椈鐖櫕鏂囩珷鍏ュ簱鍘婚噸 ### 2. 鏂伴椈鐖櫕鏂囩珷鍏ュ簱鍘婚噸
- 鐘舵€侊細宸插畬鎴 - 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-09
- 鏃堕棿锛2026-05-09
瀹屾垚鍐呭
- 鍦ㄦ噦鐞冨笣鐖櫕鍏叡鍏ュ簱鏂规硶 `upsert_articles`鍔犲悓鍒嗙被鏍囬鍘婚噸锛岄樆姝笉鍚 `article_id` 鐨勫悓鏍囬鏂囩珷閲嶅鍐欏叆銆
- 鏂伴椈鍜岃棰戦噰闆嗕换鍔℃寜宸茬煡棰戦亾浼犲叆瀵瑰簲鏂囩珷鍒嗙被 `cid`锛屽噺灏戞柊澧 `cid=0` 鏁版嵁銆
- 瀵瑰凡瀛樺湪 `article_id` 涓旀棫鍒嗙被涓 `cid=0` 鐨勬暟鎹紝鍚庣画甯︽垎绫诲啀娆″叆搴撴椂鍙縼绉诲埌姝g‘鍒嗙被銆
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鍦ㄦ噦鐞冨笣鐖櫕鍏叡鍏ュ簱鏂规硶 `upsert_articles` 涓鍔犲悓鍒嗙被鏍囬鍘婚噸锛岄樆姝笉鍚?`article_id` 鐨勫悓鏍囬鏂囩珷閲嶅鍐欏叆銆?- 鏂伴椈鍜岃棰戦噰闆嗕换鍔℃寜宸茬煡棰戦亾浼犲叆瀵瑰簲鏂囩珷鍒嗙被 `cid`锛屽噺灏戞柊澧?`cid=0` 鏁版嵁銆?- 瀵瑰凡瀛樺湪 `article_id` 涓旀棫鍒嗙被涓?`cid=0` 鐨勬暟鎹紝鍚庣画甯︽纭垎绫诲啀娆″叆搴撴椂鍙縼绉诲埌姝g‘鍒嗙被銆?
娑夊強妯″潡锛?
- `server/public/dongqiudi-crawler/src/storage/database.py` - `server/public/dongqiudi-crawler/src/storage/database.py`
- `server/public/dongqiudi-crawler/src/scheduler/task_runner.py` - `server/public/dongqiudi-crawler/src/scheduler/task_runner.py`
### 3. Truth Social 瀹氭椂浠诲姟鍏ュ彛鏁寸悊 ### 3. Truth Social 瀹氭椂浠诲姟鍏ュ彛鏁寸悊
- 鐘舵€侊細宸插畬鎴 - 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-09
- 鏃堕棿锛2026-05-09
瀹屾垚鍐呭
- 鍚庡彴瀹氭椂浠诲姟 `truth_social` 鏀逛负鎵ц `public/dongqiudi-crawler/main.py truth_social`
- 绉婚櫎鏃х殑 `server/public/truth-social`珛閲囬泦鐩綍锛岄伩鍏嶇户缁淮鎶や袱濂楃壒鏈楁櫘娑堟伅閲囬泦浠g爜銆
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鍚庡彴瀹氭椂浠诲姟 `truth_social` 鏀逛负鎵ц `public/dongqiudi-crawler/main.py truth_social`銆?- 绉婚櫎鏃х殑 `server/public/truth-social` 鐙珛閲囬泦鐩綍锛岄伩鍏嶇户缁淮鎶や袱濂楃壒鏈楁櫘娑堟伅閲囬泦浠g爜銆?
娑夊強妯″潡锛?
- `server/app/adminapi/logic/crontab/CrontabLogic.php` - `server/app/adminapi/logic/crontab/CrontabLogic.php`
- `server/public/dongqiudi-crawler/truth_social.py` - `server/public/dongqiudi-crawler/truth_social.py`
### 4. 49瀹濆吀褰╃エ绀惧尯鐖櫕鎺ュ叆 ### 4. 49瀹濆吀褰╃エ绀惧尯鐖櫕鎺ュ叆
- 鐘舵€侊細宸插畬鎴 - 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-11
- 鏃堕棿锛2026-05-11
瀹屾垚鍐呭
- 鏂板 `lottery_community`櫕鍏ュ彛锛屾媺鍙 49瀹濆吀棣栭〉 Astro props 鏁版嵁骞惰В鏋愬紑濂栦笌鍥惧簱璧勬枡銆
-姩鍒涘缓鎴栧鐢ㄧぞ鍖烘爣绛 `褰╃エ`锛岃嚜鍔ㄥ垱寤烘垨澶嶇敤鍙戝竷鐢ㄦ埛 `lottery_publisher`
- `origin_id` 瀵瑰僵绁ㄧぞ鍖哄笘瀛愬仛骞傜瓑鏂板/鏇存柊锛屽苟鍚屾甯栧瓙鍥剧墖鍜屾爣绛惧叧鑱斻€
- 鎺ュ叆 ThinkPHP `crawler` 鍛戒护鐧藉悕鍗曞拰 Python 涓诲叆鍙e懡浠ゆ槧灏勩€
- 鎻愪緵骞傜瓑 SQL 娉ㄥ唽瀹氭椂浠诲姟 `crawler lottery_community`
- 49瀹濆吀鍝嶅簲涓枃瑙g爜鍜屽浘搴撳浘鐗囧煙鍚嶈鍒欙紝`prod/` 鍥剧墖璧勬簮鏀圭敤鍙洿鎺ヨ`tk2cdn-ali.tprswe.com`
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鏂板 `lottery_community` 鐖櫕鍏ュ彛锛屾媺鍙?49瀹濆吀棣栭〉 Astro props 鏁版嵁骞惰В鏋愬紑濂栦笌鍥惧簱璧勬枡銆?- 鑷姩鍒涘缓鎴栧鐢ㄧぞ鍖烘爣绛?`褰╃エ`锛岃嚜鍔ㄥ垱寤烘垨澶嶇敤鍙戝竷鐢ㄦ埛 `lottery_publisher`銆?- 鎸?`origin_id` 瀵瑰僵绁ㄧぞ鍖哄笘瀛愬仛骞傜瓑鏂板/鏇存柊锛屽苟鍚屾甯栧瓙鍥剧墖鍜屾爣绛惧叧鑱斻€?- 鎺ュ叆 ThinkPHP `crawler` 鍛戒护鐧藉悕鍗曞拰 Python 涓诲叆鍙e懡浠ゆ槧灏勩€?- 鎻愪緵骞傜瓑 SQL 娉ㄥ唽瀹氭椂浠诲姟 `crawler lottery_community`銆?- 淇 49瀹濆吀鍝嶅簲涓枃瑙g爜鍜屽浘搴撳浘鐗囧煙鍚嶈鍒欙紝`prod/` 鍥剧墖璧勬簮鏀圭敤鍙洿鎺ヨ闂殑 `tk2cdn-ali.tprswe.com`銆?
娑夊強妯″潡锛?
- `server/public/dongqiudi-crawler/lottery_community.py` - `server/public/dongqiudi-crawler/lottery_community.py`
- `server/public/dongqiudi-crawler/main.py` - `server/public/dongqiudi-crawler/main.py`
- `server/app/common/command/CrawlerCommand.php` - `server/app/common/command/CrawlerCommand.php`
- `server/public/dongqiudi-crawler/insert_crontab_lottery_community.sql` - `server/public/dongqiudi-crawler/insert_crontab_lottery_community.sql`
### 5. 椤圭洰绾ф枃妗e綊妗e埌鏍圭洰褰 ### 5. 椤圭洰绾ф枃妗e綊妗e埌鏍圭洰褰?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-14
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-14
瀹屾垚鍐呭
- 灏嗛」鐩骇鏂囨。 `01-浜у搧鏂规鏂囨。.md`銆乣02-瀹炵幇娴佺▼鏂囨。.md`銆乣鐖櫕浠诲姟鑴氭湰鏂囨。.md` `docs/`綍绉诲姩鍒伴」鐩牴鐩綍缁熶竴缁存姢銆
- 鍦ㄦ牴鐩`AGENTS.md`ˉ鍏呴」鐩骇鏂囨。瀛樻斁瑙勫垯锛屾槑纭崗浣滅被涓庝笟鍔$被鎬绘枃妗i粯璁ゆ斁鏍圭洰褰曘€
- 鍚屾鏂囨。寮曠敤璺緞锛岄伩鍏嶅悗缁户缁紩鐢ㄦ棫鐨 `docs/`緞銆
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 灏嗛」鐩骇鏂囨。 `01-浜у搧鏂规鏂囨。.md`銆乣02-瀹炵幇娴佺▼鏂囨。.md`銆乣鐖櫕浠诲姟鑴氭湰鏂囨。.md` 浠?`docs/` 鐩綍绉诲姩鍒伴」鐩牴鐩綍缁熶竴缁存姢銆?- 鍦ㄦ牴鐩綍 `AGENTS.md` 涓ˉ鍏呴」鐩骇鏂囨。瀛樻斁瑙勫垯锛屾槑纭崗浣滅被涓庝笟鍔$被鎬绘枃妗i粯璁ゆ斁鏍圭洰褰曘€?- 鍚屾淇鏂囨。寮曠敤璺緞锛岄伩鍏嶅悗缁户缁紩鐢ㄦ棫鐨?`docs/` 璺緞銆?
娑夊強妯″潡锛?
- `AGENTS.md` - `AGENTS.md`
- `涓氬姟杩涘害绠$悊.md` - `涓氬姟杩涘害绠$悊.md`
- `01-浜у搧鏂规鏂囨。.md` - `01-浜у搧鏂规鏂囨。.md`
- `02-瀹炵幇娴佺▼鏂囨。.md` - `02-瀹炵幇娴佺▼鏂囨。.md`
- `鐖櫕浠诲姟鑴氭湰鏂囨。.md` - `鐖櫕浠诲姟鑴氭湰鏂囨。.md`
### 6. FIFA 涓栫晫鏉祫璁畾鏃堕噰闆嗘帴鍏 ### 6. FIFA 涓栫晫鏉祫璁畾鏃堕噰闆嗘帴鍏?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-15
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-15
瀹屾垚鍐呭
- 鏂板 FIFA 涓栫晫鏉祫璁埇铏叆鍙 `fifa_worldcup_news`锛岄€氳繃 FIFA CXM API 鎷夊彇涓栫晫鏉〉闈㈡柊闂诲尯鍧楁暟鎹
- 澧炲姞涓栫晫鏉枃绔犲垎绫诲箓绛夊垱寤/澶嶇敤閫昏緫锛岄粯璁ゅ垎绫诲悕涓 `涓栫晫鏉痐锛屽苟鑷姩鍚敤鏄剧ず銆
- 鏂板瀹氭椂浠诲姟娉ㄥ唽 SQL `insert_crontab_fifa_worldcup_news.sql`锛岄噰鐢 `crawler fifa_worldcup_news` 鍔ㄤ綔骞舵寜 10 鍒嗛挓鎵ц
- 灏嗗悗绔畾鏃朵换鍔¤皟搴﹂摼璺墿灞曞埌 `fifa_worldcup_news`锛屾部鐢ㄧ幇鏈 crawler 寮傛鎵ц妯″紡銆
- 宸查獙璇 FIFA API 鍙繑鍥 20 鏉′笘鐣屾澂璧勮锛涙湰鍦板畬鏁村啓搴撻獙璇佸洜 crawler 褰撳墠鏁版嵁搴撻厤缃寚鍚 `127.0.0.1` MySQL 鎷掔粷杩炴帴锛岄渶鍦ㄦ湇鍔″櫒/鍙敤鏁版嵁搴撶幆澧冩墽琛屻€
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鏂板 FIFA 涓栫晫鏉祫璁埇铏叆鍙?`fifa_worldcup_news`锛岄€氳繃 FIFA CXM API 鎷夊彇涓栫晫鏉〉闈㈡柊闂诲尯鍧楁暟鎹€?- 澧炲姞涓栫晫鏉枃绔犲垎绫诲箓绛夊垱寤?澶嶇敤閫昏緫锛岄粯璁ゅ垎绫诲悕涓?`涓栫晫鏉痐锛屽苟鑷姩鍚敤鏄剧ず銆?- 鏂板瀹氭椂浠诲姟娉ㄥ唽 SQL `insert_crontab_fifa_worldcup_news.sql`锛岄噰鐢?`crawler fifa_worldcup_news` 鍔ㄤ綔骞舵寜 10 鍒嗛挓鎵ц銆?- 灏嗗悗绔畾鏃朵换鍔¤皟搴﹂摼璺墿灞曞埌 `fifa_worldcup_news`锛屾部鐢ㄧ幇鏈?crawler 寮傛鎵ц妯″紡銆?- 宸查獙璇?FIFA API 鍙繑鍥?20 鏉′笘鐣屾澂璧勮锛涙湰鍦板畬鏁村啓搴撻獙璇佸洜 crawler 褰撳墠鏁版嵁搴撻厤缃寚鍚?`127.0.0.1` 涓?MySQL 鎷掔粷杩炴帴锛岄渶鍦ㄦ湇鍔″櫒/鍙敤鏁版嵁搴撶幆澧冩墽琛屻€?
娑夊強妯″潡锛?
- `server/public/dongqiudi-crawler/fifa_worldcup_news.py` - `server/public/dongqiudi-crawler/fifa_worldcup_news.py`
- `server/public/dongqiudi-crawler/main.py` - `server/public/dongqiudi-crawler/main.py`
- `server/public/dongqiudi-crawler/insert_crontab_fifa_worldcup_news.sql` - `server/public/dongqiudi-crawler/insert_crontab_fifa_worldcup_news.sql`
- `server/app/common/command/CrawlerCommand.php` - `server/app/common/command/CrawlerCommand.php`
- `server/app/adminapi/logic/crontab/CrontabLogic.php` - `server/app/adminapi/logic/crontab/CrontabLogic.php`
### 7. 鎳傜悆甯濅笘鐣屾澂涓撳睘閲囬泦涓庣敤鎴风涓栫晫鏉腑蹇 ### 7. 鎳傜悆甯濅笘鐣屾澂涓撳睘閲囬泦涓庣敤鎴风涓栫晫鏉腑蹇?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-15
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-15
瀹屾垚鍐呭
- 鏂板 `dqd_worldcup` 涓撳睘閲囬泦浠诲姟锛屽浐瀹氭姄鍙栨噦鐞冨笣 2026 涓栫晫鏉 `standing / schedule / person_ranking(goals|assists)`
- 涓栫晫鏉禌绋嬪啓鍏 `la_match`锛岀粺涓€浣跨敤 `league_name=涓栫晫鏉痐銆乣competition_id=61`銆乣sport_type=1`锛屽苟淇濈暀 `round_name` 涓 `stage`銆
- 鏂板涓栫晫鏉紦瀛樿〃 `la_worldcup_standing`銆乣la_worldcup_person_ranking`锛屼繚鐣欏皬缁勭Н鍒嗘鍜岀悆鍛樻缁撴瀯銆
- 鏂板骞傜瓑 SQL `insert_crontab_dqd_worldcup.sql`锛岃嚜鍔ㄥ垱寤哄苟鍚敤瓒崇悆浜岀骇鍒嗙被鈥滀笘鐣屾澂鈥濓紝鍚屾椂娉ㄥ唽 `crawler dqd_worldcup` 瀹氭椂浠诲姟銆
- `MatchController` 鏂板 `worldCupStandings`銆乣worldCupRankings`銆乣worldCupSchedule` 3 涓墠鍙版帴鍙o紝渚涚敤鎴风涓栫晫鏉腑蹇冧娇鐢ㄣ€
- 鐢ㄦ埛绔 `pages/match/match` 鍦ㄢ€滆冻鐞 > 涓栫晫鏉€濆垎绫讳笅鏂板鈥滆禌绋嬪闃靛浘鈥濋《閮ㄥ叆鍙e崱锛屽苟鏂板 `packages_match/pages/worldcup` 涓栫晫鏉笓灞為〉锛屾彁渚涒€滃闃靛浘 / 绉垎姒 / 灏勬墜姒 / 鍔╂敾姒 / 璧涚▼鈥5 涓 tab銆
- 宸插湪娴嬭瘯搴撴墽琛 SQL 骞舵墜鍔ㄨ窇閫氫竴娆¢噰闆嗭紝褰撳墠鍐欏叆缁撴灉涓猴細`la_match` 104 鍦恒€乣la_worldcup_standing` 48 鏉°€乣la_worldcup_person_ranking` `goals/assists` 鏆備负绌恒€
- 宸查獙璇佹祴璇曟湇 `/api/match/leagues` `/api/match/lists?league_name=涓栫晫鏉痐 鍙繑鍥炰笘鐣屾澂鍒嗙被涓庤禌绋嬶紱`worldCupStandings / worldCupRankings / worldCupSchedule` 浠嶉渶绛夊緟鍚庣姩鍚屾鍒版祴璇曟湇鍚庡啀鍋氭渶缁堣仈璋冦€
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鏂板 `dqd_worldcup` 涓撳睘閲囬泦浠诲姟锛屽浐瀹氭姄鍙栨噦鐞冨笣 2026 涓栫晫鏉?`standing / schedule / person_ranking(goals|assists)`銆?- 涓栫晫鏉禌绋嬪啓鍏?`la_match`锛岀粺涓€浣跨敤 `league_name=涓栫晫鏉痐銆乣competition_id=61`銆乣sport_type=1`锛屽苟淇濈暀 `round_name` 涓?`stage`銆?- 鏂板涓栫晫鏉紦瀛樿〃 `la_worldcup_standing`銆乣la_worldcup_person_ranking`锛屼繚鐣欏皬缁勭Н鍒嗘鍜岀悆鍛樻缁撴瀯銆?- 鏂板骞傜瓑 SQL `insert_crontab_dqd_worldcup.sql`锛岃嚜鍔ㄥ垱寤哄苟鍚敤瓒崇悆浜岀骇鍒嗙被鈥滀笘鐣屾澂鈥濓紝鍚屾椂娉ㄥ唽 `crawler dqd_worldcup` 瀹氭椂浠诲姟銆?- `MatchController` 鏂板 `worldCupStandings`銆乣worldCupRankings`銆乣worldCupSchedule` 3 涓墠鍙版帴鍙o紝渚涚敤鎴风涓栫晫鏉腑蹇冧娇鐢ㄣ€?- 鐢ㄦ埛绔?`pages/match/match` 鍦ㄢ€滆冻鐞?> 涓栫晫鏉€濆垎绫讳笅鏂板鈥滆禌绋嬪闃靛浘鈥濋《閮ㄥ叆鍙e崱锛屽苟鏂板 `packages_match/pages/worldcup` 涓栫晫鏉笓灞為〉锛屾彁渚涒€滃闃靛浘 / 绉垎姒?/ 灏勬墜姒?/ 鍔╂敾姒?/ 璧涚▼鈥? 涓?tab銆?- 宸插湪娴嬭瘯搴撴墽琛?SQL 骞舵墜鍔ㄨ窇閫氫竴娆¢噰闆嗭紝褰撳墠鍐欏叆缁撴灉涓猴細`la_match` 104 鍦恒€乣la_worldcup_standing` 48 鏉°€乣la_worldcup_person_ranking` 鐨?`goals/assists` 鏆備负绌恒€?- 宸查獙璇佹祴璇曟湇 `/api/match/leagues` 鍜?`/api/match/lists?league_name=涓栫晫鏉痐 鍙繑鍥炰笘鐣屾澂鍒嗙被涓庤禌绋嬶紱`worldCupStandings / worldCupRankings / worldCupSchedule` 浠嶉渶绛夊緟鍚庣鑷姩鍚屾鍒版祴璇曟湇鍚庡啀鍋氭渶缁堣仈璋冦€?
娑夊強妯″潡锛?
- `server/public/dongqiudi-crawler/dqd_worldcup.py` - `server/public/dongqiudi-crawler/dqd_worldcup.py`
- `server/public/dongqiudi-crawler/main.py` - `server/public/dongqiudi-crawler/main.py`
- `server/public/dongqiudi-crawler/insert_crontab_dqd_worldcup.sql` - `server/public/dongqiudi-crawler/insert_crontab_dqd_worldcup.sql`
@@ -157,84 +101,45 @@
- `uniapp/src/packages_match/pages/worldcup.vue` - `uniapp/src/packages_match/pages/worldcup.vue`
- `uniapp/src/pages.json` - `uniapp/src/pages.json`
### 8. 璧涗簨涓績椤堕儴涓栫晫鏉笓棰樺叆鍙d紭鍖 ### 8. 璧涗簨涓績椤堕儴涓栫晫鏉笓棰樺叆鍙d紭鍖?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-20
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-20
瀹屾垚鍐呭
- 鍙傝€冧笘鐣屾澂涓撻璁捐绋匡紝灏嗙敤鎴风 `pages/match/match` 鐨勪笘鐣屾澂鍏ュ彛浠庤禌浜嬪垪琛ㄥ尯涓婄Щ鍒伴〉闈㈠ご閮紝鏀惧湪鏍囬涓庤繍鍔ㄥ垎绫讳箣闂淬€
- 鏂板叆鍙f敼涓鸿摑鑹蹭笓棰樺崱鏍峰紡锛屽睍绀 `2026骞村浗闄呰冻鑱斾笘鐣屾澂` 涓庤禌浜嬫椂闂村尯闂达紝鐐瑰嚮缁х画璺宠浆鐜版湁涓栫晫鏉笓灞為〉銆
- 绉婚櫎鍘熷厛浠呭湪鈥滆冻鐞 > 涓栫晫鏉€濆垎绫讳笅鏄剧ず鐨勫垪琛ㄥ唴鍏ュ彛锛岄伩鍏嶅悓椤甸噸澶嶅嚭鐜颁袱涓笘鐣屾澂鍏ュ彛銆
- 璋冩暣璧涗簨椤靛垪琛ㄩ珮搴﹁绠楅€昏緫锛屾敼涓烘寜瀹為檯澶撮儴楂樺害鍥炵畻锛岄伩鍏嶆柊澧炰笓棰樺崱鍚庨伄鎸″垎绫绘潯鎴栧帇缂╁垪琛ㄥ尯鍩熴€
- 宸插畬鎴 `npm run build:h5` 鏋勫缓锛屽苟閫氳繃娴忚鍣ㄥ湪鏈湴 H5 楠岃瘉涓撻鍏ュ彛宸插嚭鐜板湪璧涗簨椤甸《閮ㄣ€
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鍙傝€冧笘鐣屾澂涓撻璁捐绋匡紝灏嗙敤鎴风 `pages/match/match` 鐨勪笘鐣屾澂鍏ュ彛浠庤禌浜嬪垪琛ㄥ尯涓婄Щ鍒伴〉闈㈠ご閮紝鏀惧湪鏍囬涓庤繍鍔ㄥ垎绫讳箣闂淬€?- 鏂板叆鍙f敼涓鸿摑鑹蹭笓棰樺崱鏍峰紡锛屽睍绀?`2026骞村浗闄呰冻鑱斾笘鐣屾澂` 涓庤禌浜嬫椂闂村尯闂达紝鐐瑰嚮缁х画璺宠浆鐜版湁涓栫晫鏉笓灞為〉銆?- 绉婚櫎鍘熷厛浠呭湪鈥滆冻鐞?> 涓栫晫鏉€濆垎绫讳笅鏄剧ず鐨勫垪琛ㄥ唴鍏ュ彛锛岄伩鍏嶅悓椤甸噸澶嶅嚭鐜颁袱涓笘鐣屾澂鍏ュ彛銆?- 璋冩暣璧涗簨椤靛垪琛ㄩ珮搴﹁绠楅€昏緫锛屾敼涓烘寜瀹為檯澶撮儴楂樺害鍥炵畻锛岄伩鍏嶆柊澧炰笓棰樺崱鍚庨伄鎸″垎绫绘潯鎴栧帇缂╁垪琛ㄥ尯鍩熴€?- 宸插畬鎴?`npm run build:h5` 鏋勫缓锛屽苟閫氳繃娴忚鍣ㄥ湪鏈湴 H5 楠岃瘉涓撻鍏ュ彛宸插嚭鐜板湪璧涗簨椤甸《閮ㄣ€?
娑夊強妯″潡锛?
- `uniapp/src/pages/match/match.vue` - `uniapp/src/pages/match/match.vue`
- `涓氬姟杩涘害绠$悊.md` - `涓氬姟杩涘害绠$悊.md`
- `璁捐绋挎槧灏.md` - `璁捐绋挎槧灏?md`
### 9. 涓栫晫鏉笓棰橀〉鎺掑悕瀵艰埅缁勪欢鍖 ### 9. 涓栫晫鏉笓棰橀〉鎺掑悕瀵艰埅缁勪欢鍖?
- 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-20
- 鐘舵€侊細宸插畬鎴
- 鏃堕棿锛2026-05-20
瀹屾垚鍐呭
- 鍙傝€冧笘鐣屾澂涓撻椤碘€滄帓鍚嶁€濊璁$ǹ锛屽皢鎺掑悕鍖轰粠 `worldcup.vue` 椤甸潰鍐呰仈缁撴瀯鎷嗗垎涓虹嫭绔嬬粍浠躲€
- 鏂板鎺掑悕瀵艰埅缁勪欢 `RankingNav.vue`锛岀粺涓€鎵胯浇 `绉垎姒 / 灏勬墜姒 / 鍔╂敾姒渀 鍒囨崲銆
- 鏂板垎姒滅粍浠 `StandingsPanel.vue`锛屽崟鐙礋璐e垎缁勬爣棰樸€佽〃澶翠笌鐞冮槦绉垎琛ㄦ牸娓叉煋銆
- 鏂板鐞冨憳姒滅粍浠 `PlayerRankingPanel.vue`锛屽崟鐙礋璐e皠鎵嬫涓庡姪鏀绘鍒楄〃娓叉煋銆
-垎姒滃竷灞€鎸変笓棰樿璁$ǹ缁嗗寲涓衡€滅悆闃熷浐瀹氬湪宸︺€佸満娆/鑳滃钩璐/杩涘け/绉垎闆嗕腑鍦ㄥ彸鈥濈殑鍙屽尯鍧楄〃鏍肩粨鏋勶紝绉诲姩绔〃澶翠笌鏁版嵁鍒椾繚鎸佸榻愩€
- `worldcup.vue`繚鐣欎笓棰樹富瀵艰埅銆佹暟鎹姞杞戒笌 ranking 缁勪欢璋冨害锛岄檷浣庨〉闈㈣€﹀悎锛屼究浜庡悗缁户缁寜璁捐绋跨粏鍖栨鍗曟牱寮忋€
- 宸叉墽琛 `npm run build:h5` 骞堕€氳繃鏈湴 H5 鏍¢獙鈥滄帓鍚嶁€濋〉鍙甯稿睍绀虹粍浠跺寲鍚庣殑瀵艰埅涓庣Н鍒嗘鍐呭
娑夊強妯″潡锛
瀹屾垚鍐呭锛?
- 鍙傝€冧笘鐣屾澂涓撻椤碘€滄帓鍚嶁€濊璁$锛屽皢鎺掑悕鍖轰粠 `worldcup.vue` 椤甸潰鍐呰仈缁撴瀯鎷嗗垎涓虹嫭绔嬬粍浠躲€?- 鏂板鎺掑悕瀵艰埅缁勪欢 `RankingNav.vue`锛岀粺涓€鎵胯浇 `绉垎姒?/ 灏勬墜姒?/ 鍔╂敾姒渀 鍒囨崲銆?- 鏂板绉垎姒滅粍浠?`StandingsPanel.vue`锛屽崟鐙礋璐e垎缁勬爣棰樸€佽〃澶翠笌鐞冮槦绉垎琛ㄦ牸娓叉煋銆?- 鏂板鐞冨憳姒滅粍浠?`PlayerRankingPanel.vue`锛屽崟鐙礋璐e皠鎵嬫涓庡姪鏀绘鍒楄〃娓叉煋銆?- 绉垎姒滃竷灞€鎸変笓棰樿璁$缁嗗寲涓衡€滅悆闃熷浐瀹氬湪宸︺€佸満娆?鑳滃钩璐?杩涘け/绉垎闆嗕腑鍦ㄥ彸鈥濈殑鍙屽尯鍧楄〃鏍肩粨鏋勶紝绉诲姩绔〃澶翠笌鏁版嵁鍒椾繚鎸佸榻愩€?- `worldcup.vue` 鍙繚鐣欎笓棰樹富瀵艰埅銆佹暟鎹姞杞戒笌 ranking 缁勪欢璋冨害锛岄檷浣庨〉闈㈣€﹀悎锛屼究浜庡悗缁户缁寜璁捐绋跨粏鍖栨鍗曟牱寮忋€?- 宸叉墽琛?`npm run build:h5` 骞堕€氳繃鏈湴 H5 鏍¢獙鈥滄帓鍚嶁€濋〉鍙甯稿睍绀虹粍浠跺寲鍚庣殑瀵艰埅涓庣Н鍒嗘鍐呭銆?
娑夊強妯″潡锛?
- `uniapp/src/packages_match/pages/worldcup.vue` - `uniapp/src/packages_match/pages/worldcup.vue`
- `uniapp/src/packages_match/pages/worldcup/components/ranking/RankingNav.vue` - `uniapp/src/packages_match/pages/worldcup/components/ranking/RankingNav.vue`
- `uniapp/src/packages_match/pages/worldcup/components/ranking/StandingsPanel.vue` - `uniapp/src/packages_match/pages/worldcup/components/ranking/StandingsPanel.vue`
- `uniapp/src/packages_match/pages/worldcup/components/ranking/PlayerRankingPanel.vue` - `uniapp/src/packages_match/pages/worldcup/components/ranking/PlayerRankingPanel.vue`
- `涓氬姟杩涘害绠$悊.md` - `涓氬姟杩涘害绠$悊.md`
### 10. 涓栫晫鏉笓棰橀〉瀵归樀鍥炬寜鐪熷疄鐞冮槦鏄犲皠 ### 10. 涓栫晫鏉笓棰橀〉瀵归樀鍥炬寜鐪熷疄鐞冮槦鏄犲皠
- 鐘舵€侊細宸插畬鎴 - 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-20
- 鏃堕棿锛2026-05-20
瀹屾垚鍐呭 瀹屾垚鍐呭锛?- 鐢ㄦ埛绔?`packages_match/pages/worldcup` 瀵归樀鍥鹃〉鏂板鍩轰簬 `worldCupStandings` 鐨勫垎缁勫悕娆$储寮曪紝灏?`A1/A2/.../L4` 鐩存帴鏄犲皠涓哄綋鍓嶇Н鍒嗘涓殑鐪熷疄鐞冮槦鍚嶇О涓庨槦寰姐€?- `1/16鍐宠禌` 涓殑绗笁鍚嶇粍鍚堝崰浣嶇锛堝 `A3/B3/C3/D3/F3`锛夋敼涓洪€愰」鏇挎崲鍚庡啀鎷兼帴灞曠ず锛岄伩鍏嶇户缁樉绀哄瓧姣嶅崰浣嶇銆?- 瀵逛粛鐒舵槸鈥滅X鍦鸿儨鑰?璐ヨ€呪€濈殑鍚庣画杞鍗犱綅淇濇寔鍘熸牱锛屼笉浼€犳湭浜х敓鐨勬檵绾х粨鏋滐紱瀵规棤娉曠‘瀹氱湡瀹為槦寰界殑缁勫悎鍗犱綅涓嶅啀鏄剧ず榛樿鍗犱綅鍥俱€?- 涓哄鐞冮槦缁勫悎鍚嶇О澧炲姞涓よ灞曠ず鏍峰紡锛岄伩鍏嶉暱鏂囨湰鍦ㄤ笓棰樺闃靛崱鐗囦腑琚崟琛屾埅鏂€?- 宸叉墽琛?`uniapp` 鏋勫缓楠岃瘉锛歚npm run build:h5` 閫氳繃銆?
- 鐢ㄦ埛绔 `packages_match/pages/worldcup` 瀵归樀鍥鹃〉鏂板鍩轰簬 `worldCupStandings` 鐨勫垎缁勫悕娆$储寮曪紝灏 `A1/A2/.../L4` 鐩存帴鏄犲皠涓哄綋鍓嶇Н鍒嗘殑鐪熷疄鐞冮槦鍚嶇О涓庨槦寰姐€ 娑夊強妯″潡锛?- `uniapp/src/packages_match/pages/worldcup.vue`
- `1/16鍐宠禌`殑绗笁鍚嶇粍鍚堝崰浣嶇锛堝 `A3/B3/C3/D3/F3`锛夋敼涓洪€愰」鏇挎崲鍚庡啀鎷兼帴灞曠ず锛岄伩鍏嶇户缁樉绀哄瓧姣嶅崰浣嶇 - `涓氬姟杩涘害绠$悊.md`
- 瀵逛粛鐒舵槸鈥滅X鍦鸿儨鑰/璐ヨ€呪€濈殑鍚庣画杞鍗犱綅淇濇寔鍘熸牱锛屼笉浼€犳湭浜х敓鐨勬檵绾х粨鏋滐紱瀵规棤娉曠‘瀹氱湡瀹為槦寰界殑缁勫悎鍗犱綅涓嶅啀鏄剧ず榛樿鍗犱綅鍥俱€
- 涓哄鐞冮槦缁勫悎鍚嶇О澧炲姞涓よ灞曠ず鏍峰紡锛岄伩鍏嶉暱鏂囨湰鍦ㄤ笓棰樺闃靛崱鐗囦腑琚崟琛屾埅鏂
- 宸叉墽琛 `uniapp` 鏋勫缓楠岃瘉锛歚npm run build:h5` 閫氳繃銆
娑夊強妯″潡锛 ### 11. 鐭俊鍔╂墜鍚屾鐭俊涓庢潵鐢佃褰曞叆搴?
- `uniapp/src/packages_match/pages/worldcup.vue` - 鐘舵€侊細宸插畬鎴?- 鏃堕棿锛?026-05-22
- `涓氬姟杩涘害绠$悊.md`
### 11. 鐭俊鍔╂墜鍚屾俊涓庢潵鐢佃褰曞叆搴 瀹屾垚鍐呭锛?
- 鎵╁睍 `/api/sms/uploadSms`锛屽悓鏃舵帴鏀舵墜鏈虹涓婁紶鐨?`smsList` 涓?`callList`锛岀粺涓€鍐欏叆 `la_sms_upload`銆?- 淇濇寔鐭俊楠岃瘉鐮侀摼璺吋瀹癸細鐭俊璁板綍浠嶆部鐢?`type=1/2`銆乣status=0/1`锛涙潵鐢佃褰曚娇鐢?`type=11/13/15` 鍖哄垎鈥滃凡鎺?鏈帴/鎷掓帴鈥濓紝骞朵娇鐢?`status=2` 琛ㄧず鈥滀笉閫傜敤鈥濄€?- 鐧诲綍/缁戞墜鏈哄彿鐨勭煭淇¢獙璇佺爜鏍¢獙瑙勫垯璋冩暣涓猴細鍙 `la_sms_upload` 涓瓨鍦ㄨ鎵嬫満鍙风殑浠绘剰涓婁紶璁板綍锛屽嵆瑙嗕负楠岃瘉閫氳繃锛屼笉鍐嶈姹傜煭淇″唴瀹逛笌杈撳叆楠岃瘉鐮佸畬鍏ㄥ尮閰嶏紝涔熶笉鍐嶉檺鍒?7 澶╁唴鎴栫煭淇$被鍨嬨€?- 鍔╂墜绔噰闆嗚寖鍥存敹绱т负锛氱煭淇″彧涓婁紶鏀跺埌鐨勭煭淇★紝鏉ョ數鍙笂浼犳墦杩涙潵鐨勫彿鐮侊紝杩囨护鑷繁鍙戝嚭鍘荤殑鐭俊鍜屼富鍔ㄦ嫧鍑虹殑閫氳瘽璁板綍銆?- 鍔╂墜绔仮澶嶆潵鐢电湡瀹炰笂浼狅紝涓嶅啀灏嗘潵鐢佃姹傛寜鈥滅煭淇″垪琛ㄤ负绌衡€濊浣滆烦杩囷紝骞跺鍔犲姪鎵嬬璇锋眰/鍝嶅簲鎵撳嵃锛屼究浜庢帓鏌ュ疄闄呬笂浼犲唴瀹广€?- 绠$悊绔€滅郴缁熻缃?-> 绯荤粺缁存姢 -> 楠岃瘉鐮佲€濆垪琛ㄥ悓姝ユ敮鎸佸睍绀烘潵鐢佃褰曪紝鏂板鈥滆褰曠被鍨嬧€濆垪锛屽苟琛ュ厖鈥滀笉閫傜敤鈥濈姸鎬佸睍绀恒€?- 鏂板 SQL 鑴氭湰 `docs/sql/alter_la_sms_upload_for_call_records.sql`锛岀敤浜庡皢 `la_sms_upload.status` 娉ㄩ噴鎵╁睍涓?`0=寰呴獙璇?1=宸蹭娇鐢?2=涓嶉€傜敤`銆?
- 鐘舵€侊細宸插畬鎴 娑夊強鏁版嵁搴撳彉鏇达細
- 鏃堕棿锛2026-05-22
瀹屾垚鍐呭
- 鎵╁睍 `/api/sms/uploadSms`锛屽悓鏃舵帴鏀舵墜鏈虹涓婁紶鐨 `smsList` `callList`锛岀粺涓€鍐欏叆 `la_sms_upload`
- 淇濇寔鐭俊楠岃瘉鐮侀摼璺吋瀹癸細鐭俊璁板綍浠嶆部鐢 `type=1/2`銆乣status=0/1`锛涙潵鐢佃褰曚娇鐢 `type=11/13/15` 鍖哄垎鈥滃凡鎺/鏈帴/鎷掓帴鈥濓紝骞朵娇鐢 `status=2` 琛ㄧず鈥滀笉閫傜敤鈥濄€
- 鐧诲綍/缁戞墜鏈哄彿鐨勭煭淇¢獙璇佺爜鏍¢獙瑙勫垯璋冩暣涓猴細鍙 `la_sms_upload`瓨鍦ㄨ鎵嬫満鍙风殑浠绘剰涓婁紶璁板綍锛屽嵆瑙嗕负楠岃瘉閫氳繃锛屼笉鍐嶈姹傜煭淇″唴瀹逛笌杈撳叆楠岃瘉鐮佸畬鍏ㄥ尮閰嶏紝涔熶笉鍐嶉檺鍒 7 澶╁唴鎴栫煭淇$被鍨嬨€
- 鍔╂墜绔噰闆嗚寖鍥存敹绱т负锛氱煭淇″彧涓婁紶鏀跺埌鐨勭煭淇★紝鏉ョ數鍙笂浼犳墦杩涙潵鐨勫彿鐮侊紝杩囨护鑷繁鍙戝嚭鍘荤殑鐭俊鍜屼富鍔ㄦ嫧鍑虹殑閫氳瘽璁板綍銆
- 鍔╂墜绔仮澶嶆潵鐢电湡瀹炰笂浼狅紝涓嶅啀灏嗘潵鐢佃姹傛寜鈥滅煭淇″垪琛ㄤ负绌衡€濊浣滆烦杩囷紝骞跺鍔犲姪鎵嬬璇锋眰/鍝嶅簲鎵撳嵃锛屼究浜庢帓鏌ュ疄闄呬笂浼犲唴瀹广€
- 绠$悊绔€滅郴缁熻 -> 绯荤粺缁存姢 -> 楠岃瘉鐮佲€濆垪琛ㄥ悓姝ユ敮鎸佸睍绀烘潵鐢佃褰曪紝鏂板鈥滆褰曠被鍨嬧€濆垪锛屽苟琛ュ厖鈥滀笉閫傜敤鈥濈姸鎬佸睍绀恒€
- 鏂板 SQL 鑴氭湰 `docs/sql/alter_la_sms_upload_for_call_records.sql`锛岀敤浜庡皢 `la_sms_upload.status` 娉ㄩ噴鎵╁睍涓 `0=寰呴獙璇 1=宸蹭娇鐢 2=涓嶉€傜敤`
娑夊強鏁版嵁搴撳彉鏇达細
- `la_sms_upload.status` - `la_sms_upload.status`
娑夊強妯″潡锛 娑夊強妯″潡锛?
- `server/app/api/controller/SmsController.php` - `server/app/api/controller/SmsController.php`
- `server/app/api/logic/LoginLogic.php` - `server/app/api/logic/LoginLogic.php`
- `server/app/api/logic/UserLogic.php` - `server/app/api/logic/UserLogic.php`
@@ -243,134 +148,111 @@
- `sport-era-msg/pages/index/index.vue` - `sport-era-msg/pages/index/index.vue`
- `sport-era-msg/pages/logs/logs.vue` - `sport-era-msg/pages/logs/logs.vue`
- `docs/sql/alter_la_sms_upload_for_call_records.sql` - `docs/sql/alter_la_sms_upload_for_call_records.sql`
- `涓氬姟杩涘害绠$悊.md` - `涓氬姟杩涘害绠$悊.md`
--- ---
### 12. 鐢ㄦ埛椤垫湭璁惧瘑鐮佹彁绀 ### 12. 鐢ㄦ埛椤垫湭璁惧瘑鐮佹彁绀?- 2026-05-23锛歚uniapp/src/pages/user/user.vue` 鍦ㄨ繘鍏モ€滄垜鐨勨€濋〉闈㈡椂琛ュ厖鏈缃瘑鐮佹彁绀哄脊绐楋紱褰?`has_password` 涓?`0` 鏃讹紝鎻愮ず鐢ㄦ埛灏藉揩淇敼鐧诲綍瀵嗙爜锛屽苟灞曠ず鎵嬫満鍙峰悗 6 浣嶄綔涓哄垵濮嬪瘑鐮佽鏄庛€?- 2026-05-23锛歚server/app/api/validate/LoginAccountValidate.php` 鏀寔绌哄瘑鐮佺敤鎴蜂娇鐢ㄦ墜鏈哄彿鍚?6 浣嶇洿鎺ョ櫥褰曪紝閬垮厤鍒濆鍖栬处鍙疯璇垽涓衡€滅敤鎴蜂笉瀛樺湪鈥濄€?
- 2026-05-23锛歚uniapp/src/pages/user/user.vue` 鍦ㄨ繘鍏モ€滄垜鐨勨€濋〉闈㈡椂琛ュ厖鏈瘑鐮佹彁绀哄脊绐楋紱褰 `has_password` 涓 `0` 鏃讹紝鎻愮ず鐢ㄦ埛灏藉揩淇敼鐧诲綍瀵嗙爜锛屽苟灞曠ず鎵嬫満鍙峰悗 6 浣嶄綔涓哄垵濮嬪瘑鐮佽鏄庛€ ### 13. 涓栫晫鏉〉闈富瀵艰埅榛樿绱㈠紩
- 2026-05-23锛歚server/app/api/validate/LoginAccountValidate.php` 鏀寔绌哄瘑鐮佺敤鎴蜂娇鐢ㄦ墜鏈哄彿鍚 6 浣嶇洿鎺ョ櫥褰曪紝閬垮厤鍒濆鍖栬处鍙疯垽涓衡€滅敤鎴蜂笉瀛樺湪鈥濄€ - 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勪富瀵艰埅榛樿绱㈠紩璋冩暣涓虹 0 椤癸紝椤甸潰杩涘叆鏃堕粯璁ゅ仠鐣欏湪棣栦釜 tab銆?
### 14. 涓栫晫鏉笓棰樻柊闂绘潵婧愬悓姝ラ椤靛垎绫?- 2026-05-23锛歚uniapp/src/pages/match/match.vue` 璺宠浆涓栫晫鏉笓棰橀〉鏃舵惡甯﹂椤佃В鏋愬埌鐨?`涓栫晫鏉痐 鍒嗙被 `cid`锛宍uniapp/src/packages_match/pages/worldcup.vue` 浼樺厛浣跨敤璇?`cid` 鎷夊彇鏂伴椈锛屼繚璇佷笓棰樻柊闂绘潵婧愪笌棣栭〉涓栫晫鏉垎绫讳竴鑷淬€?
### 13. 涓栫晫鏉〉闈富瀵艰埅榛樿绱㈠紩 ### 15. 鏂伴椈璧勮 AI 缈昏瘧
- 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勪富瀵艰埅榛樿绱㈠紩璋冩暣涓虹 0 椤癸紝椤甸潰杩涘叆鏃堕粯璁ゅ仠鐣欏湪棣栦釜 tab銆 - 2026-05-23锛歚server/app/api/controller/ArticleController.php` 鏂板 `/article/translate` 缈昏瘧鎺ュ彛锛宍server/app/api/logic/ArticleLogic.php` 澶嶇敤 `AiService` 鐢熸垚骞剁紦瀛樻枃绔犵炕璇戠粨鏋滃埌 `ext`銆?- 2026-05-23锛歚uniapp/src/pages/news_detail/news_detail.vue` 鍦ㄦ柊闂昏鎯呴〉鏂板 AI 缈昏瘧鍏ュ彛銆佸姞杞芥€佷笌缈昏瘧缁撴灉灞曠ず鍖猴紝`uniapp/src/api/news.ts` 琛ュ厖瀵瑰簲璇锋眰灏佽銆?
### 16. 涓栫晫鏉笓棰樻柊闂诲垪琛?AI 缈昏瘧
### 14. 涓栫晫鏉笓棰樻柊闂绘潵婧愬悓姝ラ椤靛垎绫 - 2026-05-23锛歚uniapp/src/components/news-card/news-card.vue` 澧炲姞鍙€?AI 缈昏瘧瑙﹀彂鍏ュ彛锛屼笘鐣屾澂涓撻鏂伴椈鍒楄〃鍙湪鍗$墖鍐呯偣鎸夌炕璇戞寜閽€?- 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鎺ユ敹缈昏瘧浜嬩欢骞朵互寮圭獥灞曠ず缈昏瘧缁撴灉锛屼繚鎸佸叾浠栨柊闂诲垪琛ㄩ粯璁や笉鍙樸€?### 17. 绀惧尯棣栭〉鐗规湕鏅垎绫?AI 缈昏瘧澶嶇敤
- 2026-05-23锛歚uniapp/src/pages/match/match.vue` 璺宠浆涓栫晫鏉笓棰橀〉鏃舵惡甯﹂椤佃В鏋愬埌鐨 `涓栫晫鏉痐 鍒嗙被 `cid`锛宍uniapp/src/packages_match/pages/worldcup.vue` 浼樺厛浣跨敤璇 `cid` 鎷夊彇鏂伴椈锛屼繚璇佷笓棰樻柊闂绘潵婧愪笌棣栭〉涓栫晫鏉垎绫讳竴鑷淬€ - 2026-05-23锛歚uniapp/src/packages_community/pages/index.vue` 缁х画澶嶇敤 `post-card` 鍗$墖娓叉煋锛岀ぞ鍖洪椤垫棤闇€鍗曠嫭鎷嗗垎 AI 鍏ュ彛閫昏緫銆?- 2026-05-23锛歚uniapp/src/packages_community/components/post-card.vue` 灏?`鐗规湕鏅甡 鏍囩绾冲叆 AI 缈昏瘧鍏ュ彛鍒ゆ柇锛屾部鐢ㄥ笘瀛愮炕璇戝脊绐楀睍绀烘柟寮忋€?### 18. 璧勮 AI 缈昏瘧鏀逛负绉垎纭娴佺▼
- 2026-05-23锛歚server/app/api/controller/ArticleController.php` 鐨?`/article/translate` 鏀逛负鐧诲綍鍚庡彲鐢紝骞舵敮鎸?`article_id/id + confirm` 鐨勭Н鍒嗙‘璁ゅ弬鏁般€?- 2026-05-23锛歚server/app/api/logic/ArticleLogic.php` 涓鸿祫璁炕璇戣ˉ榻?`needs_payment` 鎺㈡祴銆佺Н鍒嗘墸鍑忋€佺炕璇戠紦瀛樺鐢ㄤ笌宸蹭粯璐圭敤鎴风紦瀛樿鍙栥€?- 2026-05-23锛歚uniapp/src/api/news.ts`銆乣uniapp/src/pages/news_detail/news_detail.vue`銆乣uniapp/src/packages_match/pages/worldcup.vue` 鏀逛负涓庣ぞ鍖虹炕璇戜竴鑷寸殑 `POST + confirm` 璋冪敤鏂瑰紡锛岀炕璇戝墠鍏堟彁绀虹櫥褰曞苟鍦ㄧ‘璁ゅ悗鎵gН鍒嗐€?### 19. 璧涗簨璇︽儏鏂板绗笁鏂圭洿鎾叆鍙?- 2026-05-23锛歚server/app/api/controller/MatchController.php` 澶嶇敤 `la_match_data.raw_data` 涓殑鐩存挱婧愭枃鏈紝鍚戣鎯呮帴鍙hˉ鍏?`living_tv` 瀛楁锛屼究浜庡墠绔睍绀虹洿鎾潵婧愯鏄庛€?- 2026-05-23锛歚uniapp/src/pages/match_detail/match_detail.vue` 鏂板鈥滅洿鎾€濆叆鍙e崱鐗囷紝鐐瑰嚮鍚庨€氳繃鐜版湁 `webview` 椤甸潰璺宠浆鍒版噦鐞冨笣绗笁鏂圭洿鎾鎯呴〉銆?
### 15. 鏂伴椈璧勮 AI 缈昏瘧 ### 20. 绠$悊绔禌浜嬬洿鎾摼鎺ョ紪杈?- 2026-05-23锛歚admin/src/views/match/lists/index.vue` 鍦ㄨ禌浜嬬紪杈戝脊绐椾腑鏂板 `live_url` 杈撳叆椤癸紝鐢ㄤ簬缁存姢绗笁鏂圭洿鎾摼鎺ャ€?- 2026-05-23锛歚server/app/adminapi/logic/match/MatchLogic.php` 鍏佽璧涗簨缂栬緫鍐欏叆 `live_url`锛宍uniapp/src/pages/match_detail/match_detail.vue` 浼樺厛璇诲彇璇ュ瓧娈典綔涓虹洿鎾叆鍙h烦杞湴鍧€銆?- 2026-05-23锛氭柊澧?`docs/sql/alter_la_match_add_live_url.sql`锛岀敤浜庣粰 `la_match` 琛ュ厖 `live_url` 瀛楁銆?- 2026-05-23锛氬凡鍚屾娴嬭瘯搴?`sbnews.la_match.live_url` 瀛楁锛岀‘璁?`/adminapi/match.match/edit` 鍙甯歌惤搴撱€?
- 2026-05-23锛歚server/app/api/controller/ArticleController.php` 鏂板 `/article/translate` 缈昏瘧鎺ュ彛锛宍server/app/api/logic/ArticleLogic.php` 澶嶇敤 `AiService` 鐢熸垚骞剁紦瀛樻枃绔犵炕璇戠粨鏋滃埌 `ext` ### 21. 璧涗簨璇︽儏鐩存挱鍏ュ彛浠呭湪鏈夐摼鎺ユ椂灞曠ず
- 2026-05-23锛歚uniapp/src/pages/news_detail/news_detail.vue` 鍦ㄦ柊闂昏鎯呴〉鏂板 AI 缈昏瘧鍏ュ彛銆佸姞杞芥€佷笌缈昏瘧缁撴灉灞曠ず鍖猴紝`uniapp/src/api/news.ts` 琛ュ厖瀵瑰簲璇锋眰灏佽 - 2026-05-23锛歚uniapp/src/pages/match_detail/match_detail.vue` 灏嗙洿鎾叆鍙f敹鏁涗负浠呭湪 `match.live_url` 瀛樺湪鏃跺睍绀猴紝涓嶅啀涓烘棤閾炬帴璧涗簨鑷姩鍏滃簳绗笁鏂圭洿鎾湴鍧€銆?
### 22. 涓栫晫鏉笓棰樻瘮璧涘崱鐗囪烦杞鎯?- 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勮禌绋嬪崱鐗囧拰瀵归樀鍥惧崱鐗囩粺涓€鏀寔鐐瑰嚮璺宠浆 `pages/match_detail/match_detail`锛屾柟渚夸粠涓栫晫鏉笓棰樼洿鎺ヨ繘鍏ユ瘮璧涜鎯呴〉銆?
### 16. 涓栫晫鏉笓棰樻柊闂诲垪琛 AI 缈昏瘧 ### 23. 杩戞湡韪╁潙涓庢枃妗e悓姝?- 2026-05-24锛氬皢鏈璋冭瘯杩囩▼涓‘璁ょ殑鍧戠偣鍚屾鍒?`sport-era-project-dev` 鎶€鑳芥枃妗e拰鍚勭骇 `AGENTS.md`锛岃ˉ鍏?`Validate::only()` 涓嶈繃婊よ姹傚弬鏁般€乣la_match.live_url` 蹇呴』鍏堣ˉ搴撱€佷笘鐣屾澂涓撻椤靛叆鍙d竴鑷存€т互鍙婃瀯寤轰骇鐗╀笉瑕佹贩鍏ユ彁浜ょ瓑娉ㄦ剰浜嬮」銆?
- 2026-05-23锛歚uniapp/src/components/news-card/news-card.vue` 澧炲姞鍙 AI 缈昏瘧瑙﹀彂鍏ュ彛锛屼笘鐣屾澂涓撻鏂伴椈鍒楄〃鍙湪鍗$墖鍐呯偣鎸夌炕璇戞寜閽 ## 浜屻€佽繘琛屼腑浜嬮」
- 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鎺ユ敹缈昏瘧浜嬩欢骞朵互寮圭獥灞曠ず缈昏瘧缁撴灉锛屼繚鎸佸叾浠栨柊闂诲垪琛ㄩ粯璁や笉鍙樸€
### 17. 绀惧尯棣栭〉鐗规湕鏅垎绫 AI 缈昏瘧澶嶇敤
- 2026-05-23锛歚uniapp/src/packages_community/pages/index.vue` 缁х画澶嶇敤 `post-card` 鍗$墖娓叉煋锛岀ぞ鍖洪椤垫棤闇€鍗曠嫭鎷嗗垎 AI 鍏ュ彛閫昏緫銆
- 2026-05-23锛歚uniapp/src/packages_community/components/post-card.vue` 灏 `鐗规湕鏅甡 鏍囩绾冲叆 AI 缈昏瘧鍏ュ彛鍒ゆ柇锛屾部鐢ㄥ笘瀛愮炕璇戝脊绐楀睍绀烘柟寮忋€
### 18. 璧勮 AI 缈昏瘧鏀逛负绉垎纭娴佺▼
- 2026-05-23锛歚server/app/api/controller/ArticleController.php` 鐨 `/article/translate` 鏀逛负鐧诲綍鍚庡彲鐢紝骞舵敮鎸 `article_id/id + confirm` 鐨勭Н鍒嗙‘璁ゅ弬鏁般€
- 2026-05-23锛歚server/app/api/logic/ArticleLogic.php` 涓鸿祫璁炕璇戣ˉ榻 `needs_payment` 鎺㈡祴銆佺Н鍒嗘墸鍑忋€佺炕璇戠紦瀛樺鐢ㄤ笌宸蹭粯璐圭敤鎴风紦瀛樿鍙栥€
- 2026-05-23锛歚uniapp/src/api/news.ts`銆乣uniapp/src/pages/news_detail/news_detail.vue`銆乣uniapp/src/packages_match/pages/worldcup.vue` 鏀逛负涓庣ぞ鍖虹炕璇戜竴鑷寸殑 `POST + confirm` 璋冪敤鏂瑰紡锛岀炕璇戝墠鍏堟彁绀虹櫥褰曞苟鍦ㄧ‘璁ゅ悗鎵gН鍒嗐€
### 19. 璧涗簨璇︽儏鏂板笁鏂圭洿鎾叆鍙
- 2026-05-23锛歚server/app/api/controller/MatchController.php` 澶嶇敤 `la_match_data.raw_data` 涓殑鐩存挱婧愭枃鏈紝鍚戣鎯呮帴鍙hˉ鍏 `living_tv` 瀛楁锛屼究浜庡墠绔睍绀虹洿鎾潵婧愯鏄庛€
- 2026-05-23锛歚uniapp/src/pages/match_detail/match_detail.vue` 鏂板鈥滅洿鎾€濆叆鍙e崱鐗囷紝鐐瑰嚮鍚庨€氳繃鐜版湁 `webview` 椤甸潰璺宠浆鍒版噦鐞冨笣绗笁鏂圭洿鎾鎯呴〉銆
### 20. 绠$悊绔禌浜嬬洿鎾摼鎺ョ紪杈
- 2026-05-23锛歚admin/src/views/match/lists/index.vue` 鍦ㄨ禌浜嬬紪杈戝脊绐椾腑鏂板 `live_url` 杈撳叆椤癸紝鐢ㄤ簬缁存姢绗笁鏂圭洿鎾摼鎺ャ€
- 2026-05-23锛歚server/app/adminapi/logic/match/MatchLogic.php` 鍏佽璧涗簨缂栬緫鍐欏叆 `live_url`锛宍uniapp/src/pages/match_detail/match_detail.vue` 浼樺厛璇诲彇璇ュ瓧娈典綔涓虹洿鎾叆鍙h烦杞湴鍧€銆
- 2026-05-23锛氭柊澧 `docs/sql/alter_la_match_add_live_url.sql`锛岀敤浜庣粰 `la_match` 琛ュ厖 `live_url` 瀛楁
- 2026-05-23锛氬凡鍚屾娴嬭瘯搴 `sbnews.la_match.live_url` 瀛楁锛岀‘璁 `/adminapi/match.match/edit`甯歌惤搴撱€
### 21. 璧涗簨璇︽儏鐩存挱鍏ュ彛浠呭湪鏈夐摼鎺ユ椂灞曠ず
- 2026-05-23锛歚uniapp/src/pages/match_detail/match_detail.vue` 灏嗙洿鎾叆鍙f敹鏁涗负浠呭湪 `match.live_url` 瀛樺湪鏃跺睍绀猴紝涓嶅啀涓烘棤閾炬帴璧涗簨鑷姩鍏滃簳绗笁鏂圭洿鎾湴鍧€銆
### 22. 涓栫晫鏉笓棰樻瘮璧涘崱鐗囪烦杞
- 2026-05-23锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勮禌绋嬪崱鐗囧拰瀵归樀鍥惧崱鐗囩粺涓€鏀寔鐐瑰嚮璺宠浆 `pages/match_detail/match_detail`锛屾柟渚夸粠涓栫晫鏉笓棰樼洿鎺ヨ繘鍏ユ瘮璧涜鎯呴〉銆
### 23. 杩戞湡韪╁潙涓庢枃妗e悓姝
- 2026-05-24锛氬皢鏈璋冭瘯杩囩▼涓‘璁ょ殑鍧戠偣鍚屾 `sport-era-project-dev` 鎶€鑳芥枃妗e拰鍚勭骇 `AGENTS.md`锛岃ˉ鍏 `Validate::only()` 涓嶈繃婊よ姹傚弬鏁般€乣la_match.live_url` 蹇呴』鍏堣ˉ搴撱€佷笘鐣屾澂涓撻椤靛叆鍙d竴鑷存€т互鍙婃瀯寤轰骇鐗╀笉瑕佹贩鍏ユ彁浜ょ瓑娉ㄦ剰浜嬮」銆
## 浜屻€佽繘琛屼腑浜嬮」
鏆傛棤銆
鏆傛棤銆?
--- ---
## 涓夈€佸緟鍔炰簨椤 ## 涓夈€佸緟鍔炰簨椤?
### 1. 涓氬姟妯″潡杩涘害琛ュ綍
### 1. 涓氬姟妯″潡杩涘害琛ュ綍 - 浼樺厛绾э細涓?- 鍒涘缓鏃堕棿锛?026-05-07
- 浼樺厛绾э細涓 寰呯‘璁わ細
- 鍒涘缓鏃堕棿锛2026-05-07
寰呯‘璁わ細 - 鏍规嵁鐜版湁 `01-浜у搧鏂规鏂囨。.md`銆乣02-瀹炵幇娴佺▼鏂囨。.md` 鍜屽綋鍓嶄唬鐮佺姸鎬侊紝琛ュ綍宸插畬鎴愪笟鍔℃ā鍧椼€?- 鎸夋ā鍧楁⒊鐞嗗悗绔帴鍙c€佺鐞嗗悗鍙伴〉闈€乽niapp 椤甸潰銆丳C 椤甸潰褰撳墠瀹屾垚搴︺€?
### 2. 璁捐绋挎槧灏勮ˉ褰?
- 浼樺厛绾э細涓?- 鍒涘缓鏃堕棿锛?026-05-07
- 鏍规嵁鐜版湁 `01-浜у搧鏂规鏂囨。.md`銆乣02-瀹炵幇娴佺▼鏂囨。.md` 鍜屽綋鍓嶄唬鐮佺姸鎬侊紝琛ュ綍宸插畬鎴愪笟鍔℃ā鍧椼€ 寰呯‘璁わ細
- 鎸夋ā鍧楁⒊鐞嗗悗绔帴鍙c€佺鐞嗗悗鍙伴〉闈€€乽niapp 椤甸潰銆丳C 椤甸潰褰撳墠瀹屾垚搴︺€
### 2. 璁捐绋挎槧灏勮ˉ褰
- 浼樺厛绾э細涓
- 鍒涘缓鏃堕棿锛2026-05-07
寰呯‘璁わ細
-褰撳墠璁捐绋垮钩鍙般€侀」鐩摼鎺ュ拰椤甸潰鑺傜偣鍚嶇О銆
- 灏嗛椤点€佹柊闂诲垪琛ㄣ€佹柊闂昏鎯呫€佷釜浜轰腑蹇冦€丄I 鍒嗘瀽绛夐〉闈笌瀹炵幇璺緞寤虹珛鏄犲皠銆
- 纭褰撳墠璁捐绋垮钩鍙般€侀」鐩摼鎺ュ拰椤甸潰鑺傜偣鍚嶇О銆?- 灏嗛椤点€佹柊闂诲垪琛ㄣ€佹柊闂昏鎯呫€佷釜浜轰腑蹇冦€丄I 鍒嗘瀽绛夐〉闈笌瀹炵幇璺緞寤虹珛鏄犲皠銆?
--- ---
## 鍥涖€侀伩鍧戣 ## 鍥涖€侀伩鍧戣褰?
### 1. ThinkPHP 鏃堕棿瀛楁鑷姩杞崲
### 1. ThinkPHP 鏃堕棿瀛楁姩杞 - BaseModel 瀛愮被鏌ヨ鍚?`create_time` / `update_time` 宸叉寜閰嶇疆杞负鏃ユ湡瀛楃涓层€?- 涓嶈瀵硅繖浜涘瓧娈靛啀娆℃墜鍔?`date()` 杞崲锛岄伩鍏嶅瓧绗︿覆寮鸿浆鏁存暟瀵艰嚧鏄剧ず涓?1970-01-01銆?
### 2. MySQL 淇濈暀瀛?
- BaseModel 瀛愮被鏌ヨ `create_time` / `update_time` 宸叉寜閰嶇疆杞负鏃ユ湡瀛楃涓层€ - 鍘熺敓 SQL 涓?`system`銆乣order`銆乣group`銆乣key` 绛夊瓧娈靛繀椤讳娇鐢ㄥ弽寮曞彿鍖呰9銆?
- 涓嶈瀵硅繖浜涘瓧娈靛啀娆℃墜鍔 `date()`崲锛岄伩鍏嶅瓧绗︿覆寮鸿浆鏁存暟瀵艰嚧鏄剧ず涓 1970-01-01銆 ### 3. 閫楀彿鍒嗛殧杈撳叆娓呯悊
### 2. MySQL 淇濈暀瀛
- 鍘熺敓 SQL 涓 `system`銆乣order`銆乣group`銆乣key` 绛夊瓧娈靛繀椤讳娇鐢ㄥ弽寮曞彿鍖呰9銆
### 3. 閫楀彿鍒嗛殧杈撳叆娓呯悊
- 鎵嬫満鍙枫€佸叧閿瘝绛夐€楀彿鍒嗛殧杈撳叆锛屾彁浜ゅ墠蹇呴』鎵ц `split 鈫 trim 鈫 filter(Boolean) 鈫 join`
### 4. 澶栫珯鍥剧墖闃茬洍閾
- 鏂伴椈璇︽儏绛夊瘜鏂囨湰涓殑澶栫珯鍥剧墖濡傚嚭鐜 403锛屼紭鍏堝湪鍓嶇娓叉煋灞傝 `referrerpolicy="no-referrer"`
- 涓嶆搮鑷竻娲楀浘鐗 URL 鍙傛暟鎴栨敼鍐欏師濮嬭矾寰勩€
### 5. 娴嬭瘯鏈嶅姟鍣ㄤ唬鐮佸悓姝
- 涓嶉€氳繃 WSL `sshpass` / `scp` 涓婁紶涓氬姟浠g爜銆
- 椤圭洰浠g爜鏇存柊鐢辩敤鎴烽€氳繃 SFTP 绛夋柟寮忓鐞嗐€
### 6. 鏂板瀛楁涓庤仈鍔ㄥ叆鍙f帓鏌
- `Validate::only()`檺鍒舵牎楠屽瓧娈碉紝涓嶄細杩囨护璇锋眰鍙傛暟锛涙柊澧炲瓧娈靛繀椤诲悓鏃舵牳瀵 validate銆乴ogic銆乵odel銆佷繚瀛樼櫧鍚嶅崟鍜屾暟鎹簱鍒椼€
- `adminapi/match.match/edit` 鍐欏叆澶辫触鍏堢湅琛ㄧ粨鏋勶紝涓嶈鎶婃祴璇曞簱缂哄垪璇垽鎴愪笟鍔¢€昏緫閿欒
- 涓栫晫鏉笓棰橀〉銆佹瘮璧涜鎯呴〉鐨勫叆鍙e拰鏄剧ず瑙勫垯瑕佷竴璧锋敼锛岀洿鎾叆鍙e彧鍦 `match.live_url` 鏈夊€兼椂灞曠ず銆
- 鏋勫缓浜х墿濡 `server/public/admin`銆乣server/public/mobile` 涓嶈娣疯繘鎻愪氦锛屾彁浜ゅ墠鍏堟竻鐞嗕复鏃舵埅鍥惧拰鐢熸垚鏂囦欢銆
- 鎵嬫満鍙枫€佸叧閿瘝绛夐€楀彿鍒嗛殧杈撳叆锛屾彁浜ゅ墠蹇呴』鎵ц `split 鈫?trim 鈫?filter(Boolean) 鈫?join`銆?
### 4. 澶栫珯鍥剧墖闃茬洍閾?
- 鏂伴椈璇︽儏绛夊瘜鏂囨湰涓殑澶栫珯鍥剧墖濡傚嚭鐜?403锛屼紭鍏堝湪鍓嶇娓叉煋灞傝缃?`referrerpolicy="no-referrer"`銆?- 涓嶆搮鑷竻娲楀浘鐗?URL 鍙傛暟鎴栨敼鍐欏師濮嬭矾寰勩€?
### 5. 娴嬭瘯鏈嶅姟鍣ㄤ唬鐮佸悓姝?
- 涓嶉€氳繃 WSL `sshpass` / `scp` 涓婁紶涓氬姟浠g爜銆?- 椤圭洰浠g爜鏇存柊鐢辩敤鎴烽€氳繃 SFTP 绛夋柟寮忓鐞嗐€?
### 6. 鏂板瀛楁涓庤仈鍔ㄥ叆鍙f帓鏌?
- `Validate::only()` 鍙檺鍒舵牎楠屽瓧娈碉紝涓嶄細杩囨护璇锋眰鍙傛暟锛涙柊澧炲瓧娈靛繀椤诲悓鏃舵牳瀵?validate銆乴ogic銆乵odel銆佷繚瀛樼櫧鍚嶅崟鍜屾暟鎹簱鍒椼€?- `adminapi/match.match/edit` 鍐欏叆澶辫触鍏堢湅琛ㄧ粨鏋勶紝涓嶈鎶婃祴璇曞簱缂哄垪璇垽鎴愪笟鍔¢€昏緫閿欒銆?- 涓栫晫鏉笓棰橀〉銆佹瘮璧涜鎯呴〉鐨勫叆鍙e拰鏄剧ず瑙勫垯瑕佷竴璧锋敼锛岀洿鎾叆鍙e彧鍦?`match.live_url` 鏈夊€兼椂灞曠ず銆?- 鏋勫缓浜х墿濡?`server/public/admin`銆乣server/public/mobile` 涓嶈娣疯繘鎻愪氦锛屾彁浜ゅ墠鍏堟竻鐞嗕复鏃舵埅鍥惧拰鐢熸垚鏂囦欢銆?
--- ---
## 鏂囨。缁存姢瑙勮寖 ## 鏂囨。缁存姢瑙勮寖
1. **姣忓畬鎴愪竴涓 issue / 鍔熻兘鐐 绔嬪嵆杩藉姞鍒般€屽凡瀹屾垚浜嬮」銆**銆 1. **姣忓畬鎴愪竴涓?issue / 鍔熻兘鐐?鈫?绔嬪嵆杩藉姞鍒般€屽凡瀹屾垚浜嬮」銆?*銆?2. **姣忓彂鐜颁竴涓潙 鈫?绔嬪嵆杩藉姞鍒般€岄伩鍧戣褰曘€?*銆?3. **姣忓懆娓呯悊涓€娆°€岃繘琛屼腑銆嶄笌銆屽緟鍔炪€嶇姸鎬?*銆?4. **绔犺妭搴忓彿杩炵画閫掑锛屼笉閲嶆帓**锛屼繚鐣欏巻鍙插彲杩芥函銆?5. **娑夊強鏁版嵁搴撳彉鏇村繀椤诲垪鍑鸿〃鍚嶅拰瀛楁**銆?
2. **姣忓彂鐜颁竴涓潙 鈫 绔嬪嵆杩藉姞鍒般€岄伩鍧戣褰曘€**銆 ### 24. 涓栫晫鏉笓棰樻柊闂昏嚜鍔ㄧ炕璇戝睍绀?- 2026-05-28锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勬柊闂诲尯鏀逛负鑷姩璇锋眰 `/article/translate` 骞剁洿鎺ュ睍绀轰腑鏂囩炕璇戯紝涓撻椤典笉鍐嶅睍绀烘樉寮?AI 缈昏瘧鍏ュ彛锛屼粎淇濈暀缈昏瘧缁撴灉灞曠ず銆?
3. **姣忓懆娓呯悊涓€娆°€岃繘琛屼腑銆嶄笌銆屽緟鍔炪€嶇姸鎬**銆
4. **绔犺妭搴忓彿杩炵画閫掑锛屼笉閲嶆帓**锛屼繚鐣欏巻鍙插彲杩芥函銆
5. **娑夊強鏁版嵁搴撳彉鏇村繀椤诲垪鍑鸿〃鍚嶅拰瀛楁**銆
### 24. 涓栫晫鏉笓棰樻柊闂昏嚜鍔ㄧ炕璇戝睍绀 ### 25. 鏂囩珷鍒楄〃鎺ュ彛鑷姩缈昏瘧鍥炰紶
- 2026-05-28锛歚uniapp/src/packages_match/pages/worldcup.vue` 鐨勬柊闂诲尯鏀逛负鑷姩璇锋眰 `/article/translate` 骞剁洿鎺ュ睍绀轰腑鏂囩炕璇戯紝涓撻椤典笉鍐嶅睍绀烘樉寮 AI 缈昏瘧鍏ュ彛锛屼粎淇濈暀缈昏瘧缁撴灉灞曠ず銆 - 2026-05-28锛歚/api/article/lists` 鍦?`cid=22` 鏃朵細鑷姩璇诲彇鎴栫敓鎴愭枃绔犺瘧鏂囧苟鍐欏叆 `ext.translated_content`锛屾帴鍙g洿鎺ュ洖浼犱腑鏂囩炕璇戯紱`packages_match/pages/worldcup` 鍙栨秷鍓嶇浜屾缈昏瘧璇锋眰锛屽彧娑堣垂鍚庣杩斿洖缁撴灉銆?
### 25. 鏂囩珷鍒楄〃鎺ュ彛鑷姩缈昏瘧鍥炰紶 ### 26. 棣栭〉涓庢枃绔犺鎯呯洿鎺ュ睍绀轰腑鏂囩炕璇?
- 2026-05-28锛歚/api/article/lists` 鍦 `cid=22` 鏃朵細鑷姩璇诲彇鎴栫敓鎴愭枃绔犺瘧鏂囧苟鍐欏叆 `ext.translated_content`锛屾帴鍙g洿鎺ュ洖浼犱腑鏂囩炕璇戯紱`packages_match/pages/worldcup` 鍙栨秷鍓嶇浜屾缈昏瘧璇锋眰锛屽彧娑堣垂鍚庣杩斿洖缁撴灉銆 - 2026-05-28锛歚server/app/api/logic/ArticleLogic.php 琛ュ厖璇︽儏鎺ュ彛鐨? ranslated_content 鏈敤鎴风墝鏈熷叆鍙岀洿鎺ュ洖浼犵紦瀛樼粨鏋滐紝棣栭〉鍒楄〃鍗$墖缁х画澶嶇敤 ranslated_content 鏄剧ず涓枃缈昏瘧銆?
- 2026-05-28锛歚uniapp/src/pages/news_detail/news_detail.vue 鍘绘帀鎵嬪姩缈昏瘧鎸夐挳鍜屽弽澶嶈姹傛祦绋嬶紝鏀逛负鐩存帴灞曠ず鎺ュ彛杩斿洖鐨勪腑鏂囩炕璇戝唴瀹癸紝涓栫晫鏉垪琛ㄥ崱鐗囧悓姝ョ粦瀹? ranslated_content銆?
### 26. 棣栭〉涓庢枃绔犺鎯呯洿鎺ュ睍绀轰腑鏂囩炕璇? ### 27. 首页资讯卡片翻译块独立成行
- 2026-05-28锛歚server/app/api/logic/ArticleLogic.php 琛ュ厖璇︽儏鎺ュ彛鐨? ranslated_content 鏈敤鎴风墝鏈熷叆鍙岀洿鎺ュ洖浼犵紦瀛樼粨鏋滐紝棣栭〉鍒楄〃鍗$墖缁х画澶嶇敤 ranslated_content 鏄剧ず涓枃缈昏瘧銆? - 2026-05-28锛歚uniapp/src/components/feed-card/feed-card.vue鍜?uniapp/src/components/feed-video-card/feed-video-card.vue 灏? ranslated_content 绉诲埌鍥剧墖/瑙嗛鍖哄潡涔嬩笅鐨勭嫭绔嬪叏瀹藉埗琛岋紝閬垮厤缈昏瘧鍐呭鍗犳帀宸﹀彸鍒楀鑷村浘鐗囪鍘嬬缉鍒颁竴渚э紝鍚屾椂淇濇寔鍗$墖绮惧捐灞曠ず銆?
- 2026-05-28锛歚uniapp/src/pages/news_detail/news_detail.vue 鍘绘帀鎵嬪姩缈昏瘧鎸夐挳鍜屽弽澶嶈姹傛祦绋嬶紝鏀逛负鐩存帴灞曠ず鎺ュ彛杩斿洖鐨勪腑鏂囩炕璇戝唴瀹癸紝涓栫晫鏉垪琛ㄥ崱鐗囧悓姝ョ粦瀹? ranslated_content銆?
### 27. 首页资讯卡片翻译块独立成行 ### 28. 世界杯英文资讯定时翻译预热
- 2026-05-28锛歚uniapp/src/components/feed-card/feed-card.vue鍜?uniapp/src/components/feed-video-card/feed-video-card.vue 灏? ranslated_content 绉诲埌鍥剧墖/瑙嗛鍖哄潡涔嬩笅鐨勭嫭绔嬪叏瀹藉埗琛岋紝閬垮厤缈昏瘧鍐呭鍗犳帀宸﹀彸鍒楀鑷村浘鐗囪鍘嬬缉鍒颁竴渚э紝鍚屾椂淇濇寔鍗$墖绮惧捐灞曠ず銆? - 2026-05-28:新增 server/app/common/command/WorldcupArticleTranslate.php,用于定时扫描世界杯分类文章并仅在疑似英文且未缓存翻译时调用 ArticleLogic::autoTranslateArticle() 落库。
- 2026-05-28:将命令注册到 server/config/console.php,并新增 docs/sql/insert_crontab_worldcup_article_translate.sql,可将任务加入 la_dev_crontab 统一调度。
- 2026-05-28:翻译判定会先排除包含中文字符的内容,避免非英文资讯误入 AI 翻译流程。
### 29. 世界杯社区内容精选区
- 2026-05-28:曾在 uniapp/src/packages_community/pages/index.vue 顶部新增世界杯精选社区区块,用于预热世界杯社区内容。
- 2026-05-28:已根据最新需求撤回顶部精选区,首页恢复为原先的分类流展示。
- 2026-05-28:新增 docs/sql/seed_worldcup_community_posts.sql,可快速插入 3 条世界杯社区种子帖子并关联 世界杯 标签。
### 30. 世界杯英文文章翻译定时任务入库
- 2026-05-28:已将 `worldcup_article_translate` 预热命令写入远端 `la_dev_crontab`,表达式为 `*/10 * * * *`,用于定时补齐世界杯英文文章的翻译缓存。
- 2026-05-28:已移除命令内的 50 条限制,避免只覆盖最新内容导致旧文章长期未翻译。
### 31. 赛事详情页头部优化
- 2026-05-29:将 `uniapp/src/pages/match_detail/match_detail.vue` 顶部导航抽离为 `uniapp/src/components/match-detail-header/match-detail-header.vue`,页面只保留返回、标题、副标题和分享入口。
- 2026-05-29:移除了赛事详情页顶部的 hero 摘要区,保留比赛信息卡、直播、阵容和 AI 分析主体内容不变。
### 32. 非 TabBar 页自定义底栏白屏修复
- 2026-05-29:修正 `uniapp/src/components/tabbar/tabbar.vue``hide-tab-bar` 的使用,仅在原生 TabBar 页启用,避免在 `packages_match/pages/index` 这类普通页面触发 `hideTabBar:fail not TabBar page`
- 2026-05-29:该问题会在赛事入口页产生未处理 rejection,表现为点击赛事后页面白屏或异常闪烁,现已收敛。
### 33. iOS 赛事入口兼容修复
- 2026-05-29:将 `uniapp/src/packages_match/components/MatchCenterPanel.vue``Object.values(...).flat()` 改为手动合并数组,避免老版本 iOS WebView 不支持 `flat()` 时在赛事入口直接白屏。
- 2026-05-29:同步将 `uniapp/src/packages_match/pages/index.vue``uniapp/src/packages_match/pages/worldcup.vue` 的壳组件导入统一为绝对路径,减少子包页面在 App/iOS 端的解析歧义。
### 34. 赛事详情页返回赛事中心浮动入口
- 2026-05-29:在 `uniapp/src/pages/match_detail/match_detail.vue` 右下角新增“赛事中心”浮动圆圈,点击后优先 `switchTab` 返回 `pages/match/match`,失败时回退 `reLaunch`
### 35. 世界杯英文翻译预热容错调整
- 2026-05-29:将 `server/app/common/command/WorldcupArticleTranslate.php` 的英文判定阈值放宽,并改为按文章 `id` 升序处理,减少正常英文世界杯稿件被误判为“非英文”而跳过的情况。
- 2026-05-29:世界杯文章列表页本身只读取 `ext.translated_content`,如果宿主机没有持续运行 `php think crontab``/crontab` 调度入口,未触发预热的文章就会一直保持空翻译状态。
### 36. 世界杯专题新闻翻译摘要预览
- 2026-05-29`uniapp/src/components/feed-card/feed-card.vue``uniapp/src/components/feed-video-card/feed-video-card.vue` 的首页世界杯翻译区改为摘要预览,不再全量展开正文。
- 2026-05-29`uniapp/src/packages_match/components/WorldCupPanel.vue` 的世界杯专题新闻列表翻译块同步改为摘要预览,保持卡片高度稳定,避免整段译文撑开列表。
+1
View File
@@ -23,6 +23,7 @@
| 设计稿名称 | uniapp 页面路径 | 状态 | 备注 | | 设计稿名称 | uniapp 页面路径 | 状态 | 备注 |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| 赛事中心(含世界杯专题入口) | `uniapp/src/pages/match/match.vue` | ✅ 已完成 | 2026-05-20 按世界杯专题稿补充顶部蓝色专题入口,入口位于标题与运动分类之间 | | 赛事中心(含世界杯专题入口) | `uniapp/src/pages/match/match.vue` | ✅ 已完成 | 2026-05-20 按世界杯专题稿补充顶部蓝色专题入口,入口位于标题与运动分类之间 |
| 赛事详情页 | `uniapp/src/pages/match_detail/match_detail.vue` | 🚧 部分完成 | 2026-05-29 优化顶部赛事摘要头部,补充联赛、对阵、状态与直播入口信息 |
| 世界杯专题页(排名导航) | `uniapp/src/packages_match/pages/worldcup.vue` | 🚧 部分完成 | 2026-05-20 已按设计稿拆分排名导航、积分榜、球员榜组件,后续可继续细化表格视觉与新闻页样式 | | 世界杯专题页(排名导航) | `uniapp/src/packages_match/pages/worldcup.vue` | 🚧 部分完成 | 2026-05-20 已按设计稿拆分排名导航、积分榜、球员榜组件,后续可继续细化表格视觉与新闻页样式 |
| 首页 | `uniapp/src/pages/index/index.vue` | 待核对 | 需结合实际设计稿补充 | | 首页 | `uniapp/src/pages/index/index.vue` | 待核对 | 需结合实际设计稿补充 |
| 新闻详情 | `uniapp/src/pages/news_detail/news_detail.vue` | 待核对 | 富文本与图片渲染已存在相关实现 | | 新闻详情 | `uniapp/src/pages/news_detail/news_detail.vue` | 待核对 | 富文本与图片渲染已存在相关实现 |