feat(api): 重构图片地址管理与上传机制

- 替换开发环境API基础URL为本地服务地址
- 实现签名URL本地缓存机制,解决微信按URL缓存图片导致重复下载问题
- 添加缓存清理功能,包括过期清理和按需删除特定缓存项
- 集成阿里云OSS上传功能,支持直传减少服务器带宽占用
- 优化头像地址处理逻辑,统一使用签名缓存避免地址频繁变化
- 移除过时的OSS上传示例文件oss-upload.js
- 更新课程页面实现跳转第三方小程序功能
- 调整打卡记录图片地址获取方式,统一使用新的签名缓存逻辑
- 优化图片上传流程,增加压缩处理和批量上传支持
- 完善认证模块中的缓存清理逻辑,切换账号时清除相关图片缓存
- 添加后端环境变量配置模板和代理文档说明
This commit is contained in:
王宏豪
2026-09-23 17:46:40 +08:00
parent ca21b1b9dc
commit ba2d9245ef
11 changed files with 448 additions and 290 deletions

View File

@@ -1,5 +1,23 @@
<view class="page">
<web-view src="{{webviewUrl}}" wx:if="{{webviewUrl && !webviewError}}" key="{{webviewKey}}" binderror="onWebviewError"></web-view>
<!-- 去上课浮窗:web-view 会自动铺满页面并覆盖其他组件(普通 view 加多大 z-index 都盖不住),
所以只能用 cover-view —— 它是原生组件,靠「后插入的原生组件覆盖先插入的」生效。
⚠️ 因此这个 wx:if 绑定的是 showFloat 而不是 webviewUrl:浮窗**必须比 web-view 晚一步挂载**
(见 course.js 的 _scheduleFloat)。web-view 上挂着 key,每次 onShow 都会销毁重建,
同帧渲染时重建后的 web-view 反压在浮窗上 —— 真机上表现为「浮窗不见了」。
开发者工具里则完全看不到覆盖效果,**只能真机验证**,别在工具里判断它是否生效。
⚠️ cover-view 不支持 box-shadow / background-image / 单边 border,样式只能写简单属性,
改样式时别加阴影,否则真机上静默不生效。只嵌套 cover-view / cover-image。 -->
<cover-view
class="class-float"
wx:if="{{showFloat}}"
hover-class="class-float-hover"
bindtap="onGoClass"
>
<cover-view class="class-float-text">去上课</cover-view>
</cover-view>
<view class="error-page" wx:if="{{webviewError}}">
<view class="error-icon">!</view>
<view class="error-title">页面加载失败</view>