This commit is contained in:
大哥大哥的大哥哥
2026-09-09 14:47:14 +08:00
parent a5353f7eb5
commit 4d9da40abd
22 changed files with 74 additions and 45 deletions
+3 -2
View File
@@ -1,5 +1,6 @@
import App from './App'
var baseUrl ='https://admin.zhenyangtang.com.cn/';
import { API_BASE_URL } from './config/api.js'
var baseUrl = API_BASE_URL;
function joinApiUrl(base, path) {
const b = String(base || '').replace(/\/+$/, '')
@@ -168,4 +169,4 @@ export function createApp() {
app
}
}
// #endif
// #endif
+3 -1
View File
@@ -9,7 +9,9 @@
"dev:app": "UNI_INPUT_DIR=\"$PWD\" uni -p app",
"build:mp-weixin": "UNI_INPUT_DIR=\"$PWD\" uni build -p mp-weixin",
"build:h5": "UNI_INPUT_DIR=\"$PWD\" uni build",
"build:app": "UNI_INPUT_DIR=\"$PWD\" uni build -p app"
"build:app": "UNI_INPUT_DIR=\"$PWD\" uni build -p app",
"test:tang": "node --test build/tang-detective-native-plugin.test.mjs build/tang-detective-cos-media.test.mjs scripts/tang-cos/upload.test.mjs scripts/test-tang-platform.cjs scripts/test-tang-page-lifecycle.cjs",
"check:tang-output": "node build/validate-tang-detective-output.mjs dist/build/mp-weixin"
},
"keywords": [],
"author": "",
+9 -2
View File
@@ -220,8 +220,15 @@
}
}
},
{
"path": "endless-game/index",
{
"path": "tang-detective/index",
"style": {
"navigationBarTitleText": "唐侦探",
"backgroundColor": "#f4fbf4"
}
},
{
"path": "endless-game/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "识糖小课堂",
+18 -4
View File
@@ -98,7 +98,17 @@
<view v-if="chartUseMockData" class="st-chart-foot">
<text class="st-chart-mock-hint">示例数据累计记录满 7 天后显示您的真实趋势</text>
</view>
<view class="st-game-entry-list">
<view class="st-game-entry-list">
<view class="st-game-entry st-game-entry--in-card" role="button" aria-label="打开唐侦探看连环画找线索" @click="goTangDetectivePage">
<view class="st-game-entry-icon">
<TongjiIcon name="view" size="sm" color="#006c49" />
</view>
<view class="st-game-entry-body">
<text class="st-game-entry-title">唐侦探</text>
<text class="st-game-entry-sub">看连环画找线索听一家人的故事</text>
</view>
<TongjiIcon name="chevron-right" size="sm" color="#64748b" />
</view>
<view class="st-game-entry st-game-entry--in-card" @click="goEndlessGamePage">
<view class="st-game-entry-icon">
<TongjiIcon name="sparkles" size="sm" color="#006c49" />
@@ -1523,9 +1533,13 @@ function openGamePage(url) {
})
}
function goEndlessGamePage() {
openGamePage('/tongji/endless-game/index')
}
function goEndlessGamePage() {
openGamePage('/tongji/endless-game/index')
}
function goTangDetectivePage() {
openGamePage('/tongji/tang-detective/index')
}
function navToUser() {
uni.redirectTo({ url: '/pages/user/user' })
+3
View File
@@ -1,6 +1,8 @@
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import Optimization from '@uni-ku/bundle-optimizer'
import tangDetectiveNativePlugin from './build/tang-detective-native-plugin.mjs'
import { API_BASE_URL } from './config/api.js'
// uni-app 工程根目录就是源码目录(HBuilderX 兼容)
// 编译产物默认输出到 ./dist/<mode>/<platform>
@@ -16,6 +18,7 @@ export default defineConfig({
dts: false,
logger: false,
}),
tangDetectiveNativePlugin({ apiBaseUrl: API_BASE_URL }),
],
css: {
preprocessorOptions: {
+2 -1
View File
@@ -1,6 +1,7 @@
import App from './App'
import { API_BASE_URL } from './config/api.js'
var baseUrl = 'https://xt.zhenyangtang.com.cn/'
var baseUrl = API_BASE_URL
function joinApiUrl(base, path) {
const b = String(base || '').replace(/\/+$/, '')
+3 -1
View File
@@ -9,7 +9,9 @@
"dev:app": "cross-env UNI_INPUT_DIR=. uni -p app",
"build:mp-weixin": "cross-env UNI_INPUT_DIR=. uni build -p mp-weixin",
"build:h5": "cross-env UNI_INPUT_DIR=. uni build",
"build:app": "cross-env UNI_INPUT_DIR=. uni build -p app"
"build:app": "cross-env UNI_INPUT_DIR=. uni build -p app",
"test:tang": "node --test build/tang-detective-native-plugin.test.mjs build/tang-detective-cos-media.test.mjs build/tang-detective-source-validation.test.mjs scripts/tang-cos/upload.test.mjs scripts/test-tang-platform.cjs scripts/test-tang-page-lifecycle.cjs",
"check:tang-output": "node build/validate-tang-detective-output.mjs dist/build/mp-weixin && node build/validate-tang-tongji-host.mjs dist/build/mp-weixin"
},
"keywords": [
"uniapp",
+7
View File
@@ -94,6 +94,13 @@
"enableShareAppMessage": true,
"enableShareTimeline": true
}
},
{
"path": "tongji/tang-detective/index",
"style": {
"navigationBarTitleText": "唐侦探",
"backgroundColor": "#f4fbf4"
}
}
],
"subPackages": [
-19
View File
@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="375px" height="268px" viewBox="0 0 375 268" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 61.2 (89653) - https://sketch.com -->
<title>背景</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="50%" y1="81.9277858%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="#006EFF" offset="0%"></stop>
<stop stop-color="#00C8DC" offset="100%"></stop>
</linearGradient>
</defs>
<g id="浅色版本" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="主页" fill="url(#linearGradient-1)">
<g id="编组-4" transform="translate(-315.000000, -732.000000)">
<circle id="蒙版" cx="500" cy="500" r="500"></circle>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 934 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

+14
View File
@@ -99,6 +99,16 @@
<text class="st-chart-mock-hint">示例数据累计记录满 7 天后显示您的真实趋势</text>
</view>
<view class="st-game-entry-list">
<view class="st-game-entry st-game-entry--in-card" role="button" aria-label="打开唐侦探看连环画找线索" @click="goTangDetectivePage">
<view class="st-game-entry-icon">
<TongjiIcon name="view" size="sm" color="#006c49" />
</view>
<view class="st-game-entry-body">
<text class="st-game-entry-title">唐侦探</text>
<text class="st-game-entry-sub">看连环画找线索听一家人的故事</text>
</view>
<TongjiIcon name="chevron-right" size="sm" color="#64748b" />
</view>
<view class="st-game-entry st-game-entry--in-card" @click="goEndlessGamePage">
<view class="st-game-entry-icon">
<TongjiIcon name="sparkles" size="sm" color="#006c49" />
@@ -1527,6 +1537,10 @@ function goEndlessGamePage() {
openGamePage('/tongji/endless-game/index')
}
function goTangDetectivePage() {
openGamePage('/tongji/tang-detective/index')
}
function navToUser() {
uni.redirectTo({ url: '/pages/user/user' })
}
+4 -3
View File
@@ -10,9 +10,10 @@ training/static/
├── voice/ # (规划中) TTS 语音教练
│ ├── numbers/ 数字报数 1~30
│ └── prompts/ 开始/休息/再来 等口令
── bgm/ # (规划中) 训练/休息背景乐
└── footprint.svg # 脚印图标(早期方案残留,可保留作为备用素材)
```
── bgm/ # (规划中) 训练/休息背景乐
```
早期备用脚印图标 `footprint.svg` 无运行时引用,已于 2026-09-08 随素材清理移出到项目外可恢复备份;记录见 `docs/TANG-COS-MIGRATION-20260908.md`
> 节拍器音频已完全走 CDN`gz-1349751149.cos.ap-guangzhou.myqcloud.com`),减少小程序包体积约 210 KB。`useMetronomeBg.ts` / `useMetronome.ts` 中的 URL 即源信息,更换音色只需改 hook 里的常量。
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 150">
<g fill="#e2e8f0" fill-opacity="0.92">
<path d="M 50,30 C 38,30 28,32 24,40 C 19,50 18,60 22,70 C 26,82 26,92 28,102 C 30,122 40,140 50,140 C 60,140 70,122 72,102 C 74,92 74,82 78,70 C 82,60 81,50 76,40 C 72,32 62,30 50,30 Z"/>
<ellipse cx="30" cy="20" rx="6.5" ry="8" transform="rotate(-18 30 20)"/>
<ellipse cx="43" cy="11" rx="5" ry="6.8" transform="rotate(-6 43 11)"/>
<ellipse cx="55" cy="9" rx="4.5" ry="6.2" transform="rotate(4 55 9)"/>
<ellipse cx="66" cy="13" rx="4" ry="5.5" transform="rotate(13 66 13)"/>
<ellipse cx="76" cy="20" rx="3.5" ry="5" transform="rotate(22 76 20)"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 741 B

+3 -1
View File
@@ -1,8 +1,10 @@
import { defineConfig } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'
import tangDetectiveNativePlugin from './build/tang-detective-native-plugin.mjs'
import { API_BASE_URL } from './config/api.js'
export default defineConfig({
plugins: [uni()],
plugins: [uni(), tangDetectiveNativePlugin({ apiBaseUrl: API_BASE_URL })],
css: {
preprocessorOptions: {
scss: {
+5
View File
@@ -14,3 +14,8 @@ Route::post('ej-pharmacy/webhook', 'EjPharmacyCallback/webhook');
// 企业微信内部应用推广助手:公开 JS 与服务端随机分流。
Route::get('qywx-promotion/js/:key', 'QywxPromotionPublic/script');
Route::get('qywx-promotion/go/:key', 'QywxPromotionPublic/redirect');
// 唐侦探独立章节存档:使用统一 token,与控糖消消乐周榜隔离。
Route::get('tang/catalog', 'TangDetective/catalog');
Route::get('tang/progress', 'TangDetective/progress');
Route::post('tang/saveProgress', 'TangDetective/saveProgress');