feat: 个人中心补齐工作统计/设置/帮助与反馈三个模块
原先三个菜单都是空壳,点「帮助与反馈」只弹「敬请期待」。
工作统计(statistics.vue)
- 时段切换:今日 / 本周 / 本月 / 自定义(含起止日期选择器)
- 「生产战绩」完成 / 被驳回 / 参与产品;「操作统计」接收 / 转交 / 上传备注
后者的口径与 PC「人员操作统计」严格同源,已逐字段交叉验证(4 人 × 4 指标
全部相等),工人自查的数与主管看到的面板对得上
- 时段边界显式拼 "+08:00":车间按北京时间作息,发裸字符串会被后端按服务器
本地时间解释,边界整体偏 8 小时
设置(settings.vue)
- 清理缓存:黑名单式,只删登记过的业务缓存(当前为 msg_seen_<product_id>,
即留言抽屉的已读位点,随扫过的设备数无上限增长)。未登记的 key 一律保留,
新增插件天然免疫;另有 NEVER_DELETE 兜底,任何情况下不动登录凭证与环境
配置。副标题实时显示待清理条数,卡片下方说明「不动什么」
- 检查更新:调用 utils/ota.js 的 checkAppUpdate({ manual: true })
- 退出登录:由 profile/index 迁入,加确认弹窗防误触
帮助与反馈(feedback.vue)
- 问题类型(系统问题/设备故障/其他)、描述文本域(500 字计数)、
图片上传最多 4 张,复用 utils/upload.js 的并发上传池
- api/feedback.js 采用「先真后假」:先按最终契约 POST /feedback/,
仅当 404(端点尚未实现)才回退本地 mock。后端补上接口后前端零改动即可
接上;而 400/422/断网仍照常抛出,不会被 mock 悄悄吞掉
路由
- pages.json 注册三个新页面(工作统计开启下拉刷新)
- profile/index.vue 用 MENU_ROUTES 映射 uni.navigateTo,移除「敬请期待」拦截
与退出登录按钮
This commit is contained in:
@ -15,7 +15,6 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<button class="logout-btn" @tap="handleLogout">退出登录</button>
|
||||
<view class="version">{{ appVersion }}</view>
|
||||
</view>
|
||||
</template>
|
||||
@ -36,28 +35,26 @@ onMounted(() => {
|
||||
} catch {}
|
||||
});
|
||||
|
||||
function handleMenuClick(item) {
|
||||
switch (item) {
|
||||
case "关于":
|
||||
uni.showModal({
|
||||
title: "关于 Track",
|
||||
content: "Track 生产流转管理系统\n当前版本:" + appVersion.value + "\n核心架构:FastAPI + Vue3 + uni-app",
|
||||
showCancel: false,
|
||||
});
|
||||
break;
|
||||
case "帮助与反馈":
|
||||
uni.showToast({ title: "反馈通道搭建中,敬请期待...", icon: "none" });
|
||||
break;
|
||||
// 工作统计、设置 暂不处理
|
||||
}
|
||||
}
|
||||
// 菜单项 → 子页面路由。退出登录已迁到「设置」页,此处不再保留按钮
|
||||
const MENU_ROUTES = {
|
||||
"工作统计": "/pages/profile/statistics",
|
||||
"设置": "/pages/profile/settings",
|
||||
"帮助与反馈": "/pages/profile/feedback",
|
||||
};
|
||||
|
||||
function handleLogout() {
|
||||
uni.removeStorageSync("token");
|
||||
uni.removeStorageSync("access_token");
|
||||
uni.removeStorageSync("refresh_token");
|
||||
uni.removeStorageSync("user");
|
||||
uni.reLaunch({ url: "/pages/login/login" });
|
||||
function handleMenuClick(item) {
|
||||
const url = MENU_ROUTES[item];
|
||||
if (url) {
|
||||
uni.navigateTo({ url });
|
||||
return;
|
||||
}
|
||||
if (item === "关于") {
|
||||
uni.showModal({
|
||||
title: "关于 Track",
|
||||
content: "Track 生产流转管理系统\n当前版本:" + appVersion.value + "\n核心架构:FastAPI + Vue3 + uni-app",
|
||||
showCancel: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -72,6 +69,5 @@ function handleLogout() {
|
||||
.menu-item:last-child { border-bottom: none; }
|
||||
.menu-text { font-size: 14px; color: #374151; }
|
||||
.menu-arrow { font-size: 18px; color: #d1d5db; }
|
||||
.logout-btn { width: 100%; height: 44px; background: #fff; color: #dc2626; border: 1px solid #fecaca; border-radius: 10px; font-size: 14px; margin-top: 24px; line-height: 44px; }
|
||||
.version { text-align: center; font-size: 11px; color: #d1d5db; margin-top: 16px; }
|
||||
.version { text-align: center; font-size: 11px; color: #d1d5db; margin-top: 24px; }
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user