新增 有家相册 uni-app 前端(uniapp/youjiala,H5 / 微信小程序 / App 三端)

从旧 WebVue 移植的地基部分:
- 登录页(RSA+MD5 密码加密、redirect 回跳、中英文切换)与登录后落地页
- 401 / 403 / 404 错误页 + error-panel 通用外壳(文案走 ErrorPage 语言包)
- 登录守卫双链路:uni.addInterceptor 拦站内跳转,页面级 onShow 复核冷启动深链
- 单一请求链路 common/http.interceptor:JWT 唯一来源、401 并发刷新单例、
  业务异常识别、HTTP 403 跳无权限页
- H5 干净短地址:initRouter 前向 __uniRoutes 追加克隆记录(router/h5-clean-url)
- 路由登记表 router/routes.ts(PAGE_PATHS / pageUrl / PAGE_PERMISSIONS)
  与新增页面四步登记约定(src/md/page-routing.md)
- i18n:uView Pro 语言包 + 后端词条合并,双取值(后端 zh-cn/en,包名 zh-CN/en-US)
- 后端接口层 service/ 与数据模型 data/auto/ 为生成器产物,不手改

不入库的内容:
- 摘除脚手架残留的 Harmony 签名密码(manifest.json signingConfigs 与
  harmony-configs/build-profile.json5 的 keyPassword / storePassword 已置空)
- 忽略 node_modules、dist、unpackage、.hbuilderx、.agents、pnpm-lock.yaml
  及根目录临时截图
This commit is contained in:
owenchen committed 2026-10-13 08:27:34 +08:00
1 parent 74757f9eb4
commit 6a8258ac4b
274 files changed
+30291

No files matched your search

@@ -0,0 +1,149 @@
import type { SecurityFunctionDisplayData } from "@/data/auto/securityFunctionDisplayData";
import type { SecurityHelpFeatureData } from "@/data/auto/securityHelpFeatureData";
import type { SecurityHelpFunctionData } from "@/data/auto/securityHelpFunctionData";
import type { SecurityHelpFunctionResultData } from "@/data/auto/securityHelpFunctionResultData";
import type { SecurityHelpFunctionSearchCriteria } from "@/data/auto/securityHelpFunctionSearchCriteria";
import { request } from "@/utils/request";
class SecurityHelpFunctionService {
async FindByKey(data: string) {
return request<SecurityHelpFunctionData>(
{
url: `/SecurityHelpFunction/FindByKey?key=${data}`,
method: "post",
data,
},
);
};
async FindAll() {
return request<SecurityHelpFunctionData>(
{
url: "/SecurityHelpFunction/FindAll",
method: "post",
},
);
};
async FindBySearchCriteria(data: SecurityHelpFunctionSearchCriteria) {
return request<SecurityHelpFunctionResultData>(
{
url: "/SecurityHelpFunction/FindBySearchCriteria",
method: "post",
data,
},
);
};
async FindFeatureBySearchCriteria(data: SecurityHelpFunctionSearchCriteria) {
return request<SecurityHelpFunctionResultData>(
{
url: "/SecurityHelpFunction/FindFeatureBySearchCriteria",
method: "post",
data,
},
);
};
async Insert(data: SecurityHelpFunctionData) {
return request<SecurityHelpFunctionData>(
{
url: "/SecurityHelpFunction/Insert",
method: "post",
data,
},
);
};
async Update(data: SecurityHelpFunctionData) {
return request<SecurityHelpFunctionData>(
{
url: "/SecurityHelpFunction/Update",
method: "post",
data,
},
);
};
async Delete(data: string) {
return request<any>(
{
url: `/SecurityHelpFunction/Delete?key=${data}`,
method: "post",
data,
},
);
};
async FindByFunctionName(data: string) {
return request<SecurityHelpFunctionData>(
{
url: `/SecurityHelpFunction/FindByFunctionName?functionName=${data}`,
method: "post",
data,
},
);
};
async SaveFunction(data: SecurityHelpFunctionData) {
return request<SecurityHelpFunctionData>(
{
url: "/SecurityHelpFunction/SaveFunction",
method: "post",
data,
},
);
};
async DeleteByFunctionName(data: string) {
return request<any>(
{
url: `/SecurityHelpFunction/DeleteByFunctionName?functionName=${data}`,
method: "post",
data,
},
);
};
async FindByGroupCode(data: string) {
return request<SecurityHelpFeatureData>(
{
url: `/SecurityHelpFunction/FindByGroupCode?groupCode=${data}`,
method: "post",
data,
},
);
};
async SaveFeatureGroup(data: SecurityHelpFeatureData) {
return request<SecurityHelpFeatureData>(
{
url: "/SecurityHelpFunction/SaveFeatureGroup",
method: "post",
data,
},
);
};
async DeleteByGroupCode(data: string) {
return request<any>(
{
url: `/SecurityHelpFunction/DeleteByGroupCode?groupCode=${data}`,
method: "post",
data,
},
);
};
async FindFunctionNameOptions() {
return request<SecurityFunctionDisplayData[]>(
{
url: "/SecurityHelpFunction/FindFunctionNameOptions",
method: "post",
},
);
};
}
const securityHelpFunctionService = new SecurityHelpFunctionService();
export default securityHelpFunctionService;