新增 有家相册 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:
1 parent
74757f9eb4
commit
6a8258ac4b
274 files changed
+30291
No files matched your search
@@ -0,0 +1,30 @@
|
||||
<!-- eslint-disable no-console -->
|
||||
<script setup lang="ts">
|
||||
import { onLoad } from "@dcloudio/uni-app";
|
||||
import { useLocale, useTheme } from "uview-pro";
|
||||
import { onMounted } from "vue";
|
||||
|
||||
const { darkMode, currentTheme } = useTheme();
|
||||
const { currentLocale, locales } = useLocale();
|
||||
|
||||
onLoad(() => {
|
||||
console.log("App.root.vue onLoad");
|
||||
console.log("darkMode->", darkMode.value);
|
||||
console.log("theme->", currentTheme.value?.name);
|
||||
console.log("locale->", currentLocale.value?.name);
|
||||
console.log("locales->", locales.value);
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
console.log("App.root.vue onMounted");
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<u-config-provider>
|
||||
<slot />
|
||||
<u-toast global />
|
||||
</u-config-provider>
|
||||
</template>
|
||||
|
||||
<style lang="scss"></style>
|
||||
@@ -0,0 +1,14 @@
|
||||
<script setup lang="ts">
|
||||
import { onLaunch } from "@dcloudio/uni-app";
|
||||
import { setupNavGuard } from "@/router/nav-guard";
|
||||
|
||||
// 启动即挂导航拦截器:首次站内跳转就被管住(冷启动深链由页面级 useAuthGuard 复核)
|
||||
onLaunch(() => {
|
||||
setupNavGuard();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import "uview-pro/index.scss";
|
||||
@import "common/style.scss";
|
||||
</style>
|
||||
@@ -0,0 +1,53 @@
|
||||
export const APP_INFO: {
|
||||
name: string;
|
||||
version: string;
|
||||
buildTime: string;
|
||||
platform: string;
|
||||
} = {
|
||||
name: "uViewPro(跨平台UI组件库)",
|
||||
version: "1.0.9",
|
||||
buildTime: "2025-12-23",
|
||||
platform: getPlatform(),
|
||||
};
|
||||
|
||||
export const UVIEW_PRO_INFO = {
|
||||
name: "uview-pro",
|
||||
version: "0.4.7",
|
||||
buildTime: "2025-12-19",
|
||||
};
|
||||
|
||||
function getPlatform() {
|
||||
let platform = uni.getSystemInfoSync().platform;
|
||||
if (platform) {
|
||||
return platform;
|
||||
}
|
||||
// #ifdef H5
|
||||
platform = "H5";
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN
|
||||
platform = "微信小程序";
|
||||
// #endif
|
||||
// #ifdef MP-ALIPAY
|
||||
platform = "支付宝小程序";
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
platform = "App";
|
||||
// #endif
|
||||
// #ifdef APP-HARMONY
|
||||
platform = "HarmonyOS";
|
||||
// #endif
|
||||
platform = "未知平台";
|
||||
return platform;
|
||||
}
|
||||
|
||||
export const ONBOARDING_STORAGE_BASE_KEY = `guide-onboarded-${APP_INFO.version}`;
|
||||
|
||||
export const GUIDE_TABS_KEY = `guide-page-tabs-${APP_INFO.version}`;
|
||||
|
||||
export const GUIDE_FAB_KEY = `guide-page-fab-${APP_INFO.version}`;
|
||||
|
||||
export const GUIDE_TABBAR_KEY = `guide-page-tabbar-${APP_INFO.version}`;
|
||||
|
||||
export const GUIDE_THEME_SWITCHER_KEY = `guide-theme-switcher-${APP_INFO.version}`;
|
||||
|
||||
export const GUIDE_EXPERIENCE_KEY = `guide-experience-entry-${APP_INFO.version}`;
|
||||
@@ -0,0 +1,517 @@
|
||||
import type {
|
||||
RequestConfig,
|
||||
RequestInterceptor,
|
||||
RequestMeta,
|
||||
RequestOptions,
|
||||
} from "uview-pro";
|
||||
import type { JwtInfo } from "@/data/auto/jwtInfo";
|
||||
import { http } from "uview-pro";
|
||||
import { toBackendLocale } from "@/common/locale-const";
|
||||
import { WebSitePolicy } from "@/policy/custom/webSitePolicy";
|
||||
import {
|
||||
currentRealPath,
|
||||
errorPageUrl,
|
||||
pageUrl,
|
||||
resolvePageName,
|
||||
toRealPath,
|
||||
} from "@/router/routes";
|
||||
|
||||
/**
|
||||
* 全项目唯一请求层(基于 uview-pro httpPlugin,main.ts 已注册)
|
||||
* 整合了原 common/request 模块的全部能力:
|
||||
* - JWT 登录态存取 + Authorization 头
|
||||
* - 401 并发刷新令牌单例(refreshPromise)+ _retry 防递归
|
||||
* - 业务异常识别(.NET CloudBuilder 的 ValidatedException / ServiceErrorException)
|
||||
* - meta 驱动的 loading / toast 开关
|
||||
* - uploadFile / downloadFile 文件传输工具
|
||||
*/
|
||||
|
||||
// ==================== 全局配置 ====================
|
||||
|
||||
// 后端地址唯一来源:policy/custom/webSitePolicy(代码生成器维护,改地址只动那里)
|
||||
// 与旧系统 WebVue 同逻辑:开发构建用 WebApiRootDev,发布构建用 WebApiRoot
|
||||
// App 端开发构建(真机/模拟器)连不上宿主机的 localhost,改用 WebApiRootDevApp
|
||||
// 小程序端需在平台配置 https 合法域名;本地 H5 联调如遇 CORS 需后端放行开发端口
|
||||
let devBaseUrl = WebSitePolicy.WebApiRootDev;
|
||||
// #ifdef APP-PLUS
|
||||
devBaseUrl = WebSitePolicy.WebApiRootDevApp;
|
||||
// #endif
|
||||
export const baseUrl = import.meta.env.DEV
|
||||
? devBaseUrl
|
||||
: WebSitePolicy.WebApiRoot;
|
||||
// 登录页真实路径:getCurrentPages() 拿到的 route 永远是 pages.json 里的 path,
|
||||
// 不含 H5 运行时补的短地址别名,故路径比较只能用真实路径,跳转 URL 才走 pageUrl()
|
||||
const loginPage = toRealPath("login");
|
||||
const timeout = 60000;
|
||||
|
||||
// ==================== 登录态(JWT) ====================
|
||||
|
||||
// JwtInfo 使用后端对齐的权威定义(@/data/auto/jwtInfo:AccessToken / RefreshToken / CreatedTime),
|
||||
// 此处再导出,保持 import { JwtInfo } from '@/common/http.interceptor' 的调用方兼容
|
||||
export type { JwtInfo };
|
||||
|
||||
const JWT_STORAGE_KEY = "request-jwt-info";
|
||||
|
||||
/** 读取登录令牌信息 */
|
||||
export function getJwtInfo(): JwtInfo | null {
|
||||
return (uni.getStorageSync(JWT_STORAGE_KEY) as JwtInfo) || null;
|
||||
}
|
||||
|
||||
/** 登录成功后写入令牌(供登录页调用) */
|
||||
export function setLoginJwt(jwt: JwtInfo) {
|
||||
uni.setStorageSync(JWT_STORAGE_KEY, jwt);
|
||||
}
|
||||
|
||||
/** 清除登录态 */
|
||||
export function clearLoginState() {
|
||||
uni.removeStorageSync(JWT_STORAGE_KEY);
|
||||
}
|
||||
|
||||
function getToken(): string {
|
||||
return getJwtInfo()?.AccessToken ?? "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 认证失败统一收尾:必要时清登录态并跳登录页;
|
||||
* 已经在登录页就不再跳,避免死循环
|
||||
*/
|
||||
function goLogin(clearState = true) {
|
||||
if (clearState)
|
||||
clearLoginState();
|
||||
const pages = getCurrentPages();
|
||||
const current = pages[pages.length - 1];
|
||||
const currentPath = current ? `/${current.route}` : "";
|
||||
if (currentPath !== loginPage)
|
||||
uni.reLaunch({ url: pageUrl("login") });
|
||||
}
|
||||
|
||||
/**
|
||||
* 权限不足统一收尾:跳 403 页并把出错地址用 ?from= 带过去。
|
||||
* 这里不复用 router/nav-guard 的 jumpToError:nav-guard 依赖本模块读登录态,
|
||||
* 反向 import 会形成循环依赖;本页已在 403 时不再跳,避免页面自身请求 403 导致来回刷
|
||||
*/
|
||||
function goForbidden() {
|
||||
const real = currentRealPath();
|
||||
const name = resolvePageName(real);
|
||||
if (name === "error403") {
|
||||
return;
|
||||
}
|
||||
// from 是给用户看的地址:H5 用短地址,其它端用真实路径
|
||||
const url = errorPageUrl("error403", name ? pageUrl(name) : real);
|
||||
uni.redirectTo({ url, fail: () => uni.reLaunch({ url }) });
|
||||
}
|
||||
|
||||
// ==================== 401 并发刷新(原 axios 封装的精华设计) ====================
|
||||
|
||||
/**
|
||||
* 正在进行的刷新请求 Promise。
|
||||
* 多个请求同时 401 时共用同一次刷新:后端每次刷新都会换新 RefreshToken,
|
||||
* 各自刷新会让先完成的那个把其它请求携带的旧 RefreshToken 作废,
|
||||
* 结果被判定「无效的令牌,请重新登录」而把人踢下线。
|
||||
*/
|
||||
let refreshPromise: Promise<JwtInfo> | null = null;
|
||||
|
||||
/** 真正发起刷新:直接走 uni.request 绕开 http 单例,防止刷新自身 401 无限递归 */
|
||||
function doRefreshToken(): Promise<JwtInfo> {
|
||||
const data = getJwtInfo();
|
||||
if (!data)
|
||||
return Promise.reject(new Error("无登录态,无法刷新令牌"));
|
||||
|
||||
return new Promise<JwtInfo>((resolve, reject) => {
|
||||
uni.request({
|
||||
url: `${baseUrl}/Auth/RefreshToken`,
|
||||
method: "POST",
|
||||
data,
|
||||
timeout,
|
||||
success: (res) => {
|
||||
if (res.statusCode >= 200 && res.statusCode < 300 && res.data) {
|
||||
const jwt = res.data as JwtInfo;
|
||||
setLoginJwt(jwt);
|
||||
resolve(jwt);
|
||||
}
|
||||
else {
|
||||
// 带上 status:goLogin 据此区分「服务端拒绝」与「网络抖动」
|
||||
const err: any = new Error("刷新令牌失败");
|
||||
err.status = res.statusCode;
|
||||
reject(err);
|
||||
}
|
||||
},
|
||||
fail: (err: any) => reject(err), // 网络类异常无 status,保留登录态
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/** 取得「共用的刷新动作」:并发 401 只刷新一次 */
|
||||
function refreshTokenOnce(): Promise<JwtInfo> {
|
||||
if (!refreshPromise) {
|
||||
refreshPromise = doRefreshToken().finally(() => {
|
||||
refreshPromise = null;
|
||||
});
|
||||
}
|
||||
return refreshPromise;
|
||||
}
|
||||
|
||||
// ==================== 提示与业务异常 ====================
|
||||
|
||||
/** 从后端错误体里提取可读文案(兼容 .NET 序列化与常见 {message,msg} 格式) */
|
||||
function extractErrorMessage(data: any): string {
|
||||
if (data == null)
|
||||
return "";
|
||||
if (typeof data === "string")
|
||||
return data;
|
||||
return data.Message ?? data.message ?? data.msg ?? "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 发给后端的 Culture / locale 头统一取值(与旧系统 CulturePolicy 字面一致:zh-cn / en)。
|
||||
* uni.getLocale() 在 H5 常返回 zh-Hans 等 BCP-47 变体,直传会让服务端
|
||||
* ServiceMessageManager.ComposeMessage 查不到词条,抛空 Message 异常,
|
||||
* 前端只能看到兜底文案,故统一归一化(取值定义见 common/locale-const.ts)。
|
||||
*/
|
||||
export function backendLocale(): string {
|
||||
return toBackendLocale(String(uni.getLocale?.() ?? ""));
|
||||
}
|
||||
|
||||
/** 长错误用 modal 完整展示,短错误用 toast */
|
||||
function notifyError(detail: string, fallback = "请求失败") {
|
||||
const content = detail || fallback;
|
||||
if (content.length > 14) {
|
||||
uni.showModal({
|
||||
title: fallback,
|
||||
content: content.slice(0, 200),
|
||||
showCancel: false,
|
||||
});
|
||||
}
|
||||
else {
|
||||
uni.showToast({ title: content, icon: "none" });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 业务异常识别:HTTP 成功但 body 是 .NET 异常对象时命中
|
||||
* @returns 命中返回异常消息(调用方需抛出),未命中返回空串
|
||||
*/
|
||||
function detectBusinessException(data: any): string {
|
||||
if (!data || typeof data !== "object" || !data.SourceCode)
|
||||
return "";
|
||||
const msg = extractErrorMessage(data) || "业务处理失败";
|
||||
if (data.SourceCode === "CloudBuilder.Core.ValidatedException") {
|
||||
uni.showModal({
|
||||
title: "业务校验失败",
|
||||
content: msg.slice(0, 200),
|
||||
showCancel: false,
|
||||
});
|
||||
return msg;
|
||||
}
|
||||
if (data.SourceCode === "CloudBuilder.Core.ServiceErrorException") {
|
||||
notifyError(msg, "服务异常");
|
||||
return msg;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
// ==================== 全局配置(httpPlugin 注册用) ====================
|
||||
|
||||
const httpRequestConfig: RequestConfig = {
|
||||
baseUrl,
|
||||
header: {
|
||||
"content-type": "application/json",
|
||||
},
|
||||
timeout,
|
||||
meta: {
|
||||
originalData: true, // 拦截器收到完整响应(含 statusCode/header),自行解包
|
||||
toast: true, // 出错默认提示,单次请求可传 meta.toast=false 关闭
|
||||
loading: false, // 默认不显示 loading,单次请求传 meta.loading=true 开启
|
||||
},
|
||||
};
|
||||
|
||||
// ==================== 请求 / 响应拦截器(httpPlugin 注册用) ====================
|
||||
|
||||
const httpInterceptor: RequestInterceptor = {
|
||||
// 请求拦截器:loading + method 归一化 + Authorization + locale
|
||||
request: (config: RequestOptions) => {
|
||||
const meta: RequestMeta = config.meta || {};
|
||||
if (meta.loading) {
|
||||
uni.showLoading({ title: "加载中...", mask: true });
|
||||
}
|
||||
// 归一化 method 大写:兼容代码生成的 service 层(传小写 "post"/"get",uni.request 要求大写)
|
||||
config.method = String(
|
||||
config.method || "GET",
|
||||
).toUpperCase() as RequestOptions["method"];
|
||||
const token = getToken();
|
||||
if (token) {
|
||||
// ASP.NET Core JWT Bearer 认证要求 Authorization 带 "Bearer " 前缀(旧系统同)
|
||||
config.header.Authorization = token.startsWith("Bearer ")
|
||||
? token
|
||||
: `Bearer ${token}`;
|
||||
}
|
||||
config.header.locale = backendLocale();
|
||||
return config;
|
||||
},
|
||||
|
||||
// 响应拦截器(async:支持 401 等待刷新后重试)
|
||||
response: async (response: any) => {
|
||||
const meta: RequestMeta = response.config?.meta || {};
|
||||
if (meta.loading) {
|
||||
uni.hideLoading();
|
||||
}
|
||||
const { statusCode, data: rawData, errMsg } = response;
|
||||
const config = response.config;
|
||||
|
||||
// 网络层错误
|
||||
if (errMsg && errMsg.includes("Failed to connect")) {
|
||||
meta.toast && notifyError("", "网络错误");
|
||||
throw new Error("网络错误");
|
||||
}
|
||||
if (errMsg && errMsg.includes("request:fail")) {
|
||||
meta.toast && notifyError("", "请求错误:未知");
|
||||
throw new Error("请求错误:未知");
|
||||
}
|
||||
|
||||
// 401 且未重试过:共用刷新 + 重试
|
||||
if (statusCode === 401 && !config._retry) {
|
||||
if (!getToken()) {
|
||||
// 本来就没有登录态,直接去登录页
|
||||
goLogin(true);
|
||||
throw new Error("登录已失效,请重新登录");
|
||||
}
|
||||
// _retry 标记:重试请求再 401 时落入下方非 2xx 分支,防止无限递归
|
||||
config._retry = true;
|
||||
// ① 只把「刷新令牌」放进 try:刷新失败(服务端拒绝)才清登录态跳登录页;
|
||||
// 网络抖动(无 status)保留登录态,避免一次断网把用户踢下线
|
||||
try {
|
||||
await refreshTokenOnce();
|
||||
}
|
||||
catch (refreshError: any) {
|
||||
goLogin(!!(refreshError && refreshError.status));
|
||||
throw refreshError;
|
||||
}
|
||||
// ② 重试放在 try 之外:它自身的失败(500/403 等)只算这次业务请求失败,
|
||||
// 不能当成「刷新失败」,否则会误清已成功续期用户的登录态
|
||||
return await http.request(config);
|
||||
}
|
||||
|
||||
// 204:后端约定「无内容但业务自行处理」,静默透传
|
||||
if (statusCode === 204)
|
||||
return rawData;
|
||||
|
||||
// 请求错误(非 2xx)
|
||||
if (!(statusCode >= 200 && statusCode < 300)) {
|
||||
// 403:权限不足,跳 403 页列出原因(401 走上面的续期 / 回登录页链路,不进错误页)
|
||||
if (statusCode === 403) {
|
||||
goForbidden();
|
||||
}
|
||||
// 异常体优先:.NET 后端常以 500 + JSON 异常返回业务错误
|
||||
const bizMsg = detectBusinessException(rawData);
|
||||
if (bizMsg)
|
||||
throw new Error(bizMsg);
|
||||
const errorMessage = `请求错误[${statusCode}]`;
|
||||
meta.toast && notifyError(extractErrorMessage(rawData), errorMessage);
|
||||
const err: any = new Error(`${errorMessage}:${errMsg ?? ""}`);
|
||||
err.status = statusCode; // 结构化状态码,供调用方按 401/403/500 分支处理
|
||||
err.data = rawData;
|
||||
throw err;
|
||||
}
|
||||
|
||||
// 2xx 但 body 是业务异常
|
||||
const bizMsg = detectBusinessException(rawData);
|
||||
if (bizMsg)
|
||||
throw new Error(bizMsg);
|
||||
|
||||
// 成功:剥壳返回 JSON body(service/* 经 utils/request 直接拿到后端实体对象)
|
||||
return rawData;
|
||||
},
|
||||
};
|
||||
|
||||
// ==================== 文件传输工具(不属于主链路,无拦截器逻辑) ====================
|
||||
|
||||
export interface UploadOptions {
|
||||
url: string;
|
||||
/** 本地文件路径(chooseImage/chooseVideo 等获得) */
|
||||
filePath: string;
|
||||
/** 文件对应的 form-key,后端按此名接收(默认 'file') */
|
||||
name?: string;
|
||||
formData?: Record<string, any>;
|
||||
header?: Record<string, any>;
|
||||
}
|
||||
|
||||
/** 上传文件(uni.uploadFile 封装,自动携带 token,失败 reject 可感知) */
|
||||
export function uploadFile(options: UploadOptions): Promise<any> {
|
||||
const { url, filePath, name = "file", formData, header = {} } = options;
|
||||
const fullUrl = url.indexOf("http") === 0 ? url : baseUrl + url;
|
||||
const token = getToken();
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url: fullUrl,
|
||||
filePath,
|
||||
name,
|
||||
formData,
|
||||
timeout,
|
||||
header: token ? { Authorization: token, ...header } : header,
|
||||
success: (res) => {
|
||||
if (res.statusCode < 200 || res.statusCode >= 300) {
|
||||
notifyError("", `上传失败[${res.statusCode}]`);
|
||||
reject(new Error(`上传失败[${res.statusCode}]`));
|
||||
return;
|
||||
}
|
||||
let data: any = res.data;
|
||||
try {
|
||||
data = typeof res.data === "string" ? JSON.parse(res.data) : res.data;
|
||||
}
|
||||
catch {
|
||||
/* 非 JSON 响应保持原样 */
|
||||
}
|
||||
const bizMsg = detectBusinessException(data);
|
||||
if (bizMsg)
|
||||
reject(new Error(bizMsg));
|
||||
else resolve(data);
|
||||
},
|
||||
fail: (err: any) => {
|
||||
notifyError(err.errMsg ?? "", "上传失败");
|
||||
reject(err);
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export interface DownloadOptions {
|
||||
url: string;
|
||||
method?: "GET" | "POST";
|
||||
data?: any;
|
||||
/** 下载文件名前缀(自动追加时间戳与扩展名) */
|
||||
filename: string;
|
||||
extension?: string;
|
||||
}
|
||||
|
||||
/** arraybuffer 按 UTF-8 解码(H5 用 TextDecoder,小程序简化实现) */
|
||||
function abToString(buffer: ArrayBuffer): string {
|
||||
if (typeof TextDecoder !== "undefined")
|
||||
return new TextDecoder("utf-8").decode(new Uint8Array(buffer));
|
||||
const bytes = new Uint8Array(buffer);
|
||||
let result = "";
|
||||
for (let i = 0; i < bytes.length;) {
|
||||
const c = bytes[i];
|
||||
if (c < 0x80) {
|
||||
result += String.fromCharCode(c);
|
||||
i += 1;
|
||||
}
|
||||
else if (c < 0xE0) {
|
||||
result += String.fromCharCode(((c & 0x1F) << 6) | (bytes[i + 1] & 0x3F));
|
||||
i += 2;
|
||||
}
|
||||
else {
|
||||
result += String.fromCharCode(
|
||||
((c & 0x0F) << 12)
|
||||
| ((bytes[i + 1] & 0x3F) << 6)
|
||||
| (bytes[i + 2] & 0x3F),
|
||||
);
|
||||
i += 3;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/** 生成 yyyyMMddHHmmss 时间戳(零依赖,替代 dayjs) */
|
||||
function timestamp(): string {
|
||||
const d = new Date();
|
||||
const p = (n: number) => String(n).padStart(2, "0");
|
||||
return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载并打开文件(默认按 Excel 处理)
|
||||
* 关键防御:先探测 content-type——后端报错时返回的是 JSON 而不是文件
|
||||
*/
|
||||
export async function downloadFile(options: DownloadOptions): Promise<void> {
|
||||
const { url, method = "POST", data, filename, extension = "xlsx" } = options;
|
||||
const fullUrl = url.indexOf("http") === 0 ? url : baseUrl + url;
|
||||
const token = getToken();
|
||||
|
||||
const res = await new Promise<UniApp.RequestSuccessCallbackResult>(
|
||||
(resolve, reject) => {
|
||||
uni.request({
|
||||
url: fullUrl,
|
||||
method,
|
||||
data,
|
||||
timeout,
|
||||
responseType: "arraybuffer",
|
||||
header: token ? { Authorization: token } : {},
|
||||
success: resolve,
|
||||
fail: err => reject(new Error(err.errMsg || "下载失败")),
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
const header = res.header as Record<string, any>;
|
||||
const contentType = String(
|
||||
header["content-type"] || header.Content_Type || header.ContentType || "",
|
||||
);
|
||||
if (contentType.includes("application/json")) {
|
||||
const text
|
||||
= typeof res.data === "string"
|
||||
? res.data
|
||||
: abToString(res.data as ArrayBuffer);
|
||||
let msg = "下载失败";
|
||||
try {
|
||||
msg = extractErrorMessage(JSON.parse(text)) || msg;
|
||||
}
|
||||
catch {
|
||||
/* 解析失败沿用默认文案 */
|
||||
}
|
||||
notifyError(msg, "下载失败");
|
||||
throw new Error(msg);
|
||||
}
|
||||
if (res.statusCode < 200 || res.statusCode >= 300) {
|
||||
notifyError("", `下载失败[${res.statusCode}]`);
|
||||
throw new Error(`下载失败[${res.statusCode}]`);
|
||||
}
|
||||
|
||||
const fileName = `${filename}${timestamp()}.${extension}`;
|
||||
|
||||
// #ifdef H5
|
||||
// H5:blob + 隐藏 <a> 触发浏览器下载
|
||||
const downloadUrl = URL.createObjectURL(new Blob([res.data as ArrayBuffer]));
|
||||
const link = document.createElement("a");
|
||||
link.href = downloadUrl;
|
||||
link.download = fileName;
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
link.remove();
|
||||
URL.revokeObjectURL(downloadUrl);
|
||||
// #endif
|
||||
|
||||
// #ifndef H5
|
||||
// 小程序/App:写入本地用户目录后调起系统文档预览
|
||||
const fs = uni.getFileSystemManager();
|
||||
// 写入目录按平台区分:微信用 uni.env.USER_DATA_PATH(官方类型未声明故转 any);
|
||||
// App 端无 uni.env,写 plus 私有目录 _doc/(openDocument 同样支持该相对路径)
|
||||
let userDataPath = "";
|
||||
// #ifdef MP-WEIXIN
|
||||
userDataPath = (uni as any).env?.USER_DATA_PATH ?? "";
|
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
userDataPath = "_doc";
|
||||
// #endif
|
||||
const filePath = `${userDataPath}/${fileName}`;
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
fs.writeFile({
|
||||
filePath,
|
||||
data: res.data as ArrayBuffer,
|
||||
success: () => resolve(),
|
||||
fail: (err: any) => reject(new Error(err.errMsg || "写入文件失败")),
|
||||
});
|
||||
});
|
||||
await new Promise<void>((resolve, reject) => {
|
||||
uni.openDocument({
|
||||
filePath,
|
||||
showMenu: true,
|
||||
success: () => resolve(),
|
||||
fail: (err: any) => reject(new Error(err.errMsg || "无法打开文件")),
|
||||
});
|
||||
});
|
||||
// #endif
|
||||
}
|
||||
|
||||
// 导出(main.ts httpPlugin 注册用)
|
||||
export { httpInterceptor, httpRequestConfig };
|
||||
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* 语言 / Culture 取值:区分「后端 Culture 线值」与「uView Pro 语言包 name」两套
|
||||
*
|
||||
* - 后端(旧 CulturePolicy)严格字面:中文 "zh-cn"、英文 "en"。
|
||||
* 发给后端的 locale 头 / 登录体 Culture 用这套,防止后端精确匹配失败。
|
||||
* - uView Pro 内置语言包 name 固定为 "zh-CN" / "en-US"(大小写敏感)。
|
||||
* 前端自定义语言包的 name 必须与之完全相同,config-provider 才能把自定义文案
|
||||
* 与内置组件文案(picker / calendar / upload …)按 name 合并;
|
||||
* 若写成 "zh-cn" 会被当成另一种语言,导致内置组件文案丢失 + 语言选择器出现重复项。
|
||||
*/
|
||||
|
||||
/** 发给后端的 Culture 线值 */
|
||||
export const BACKEND_LOCALE_ZH = "zh-cn";
|
||||
export const BACKEND_LOCALE_EN = "en";
|
||||
|
||||
/** uView Pro 语言包 name(必须匹配内置大小写,勿改成 zh-cn / en) */
|
||||
export const UI_LOCALE_ZH = "zh-CN";
|
||||
export const UI_LOCALE_EN = "en-US";
|
||||
|
||||
/** 前端默认选中的语言包 name */
|
||||
export const DEFAULT_LOCALE = UI_LOCALE_ZH;
|
||||
|
||||
/** 归一化任意 locale 变体(zh-Hans / zh-CN / en-US …)到后端 Culture 线值 */
|
||||
export function toBackendLocale(value: string): string {
|
||||
const l = String(value || "").toLowerCase();
|
||||
return l.startsWith("en") ? BACKEND_LOCALE_EN : BACKEND_LOCALE_ZH;
|
||||
}
|
||||
|
||||
/** 归一化任意 locale 变体(含 DB 的 Lang)到 uView 语言包 name */
|
||||
export function toUiLocale(value: string): string {
|
||||
const l = String(value || "").toLowerCase();
|
||||
return l.startsWith("en") ? UI_LOCALE_EN : UI_LOCALE_ZH;
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
// 跨端密码加密工具(H5 / 小程序 / App 均可用)
|
||||
// 说明:原 jsencrypt 依赖浏览器 window.crypto,小程序/App 无 DOM 会失败;
|
||||
// wxmp-rsa 是 jsencrypt 同源 fork(jsbn 纯 JS 实现,随机数走 Math.random 兜底),
|
||||
// 无任何浏览器全局依赖,API 与 jsencrypt 完全一致,一套代码全端运行。
|
||||
import CryptoJS from "crypto-js";
|
||||
import { JSEncrypt } from "wxmp-rsa";
|
||||
|
||||
/** MD5 摘要(小写 hex),与旧系统 WebVue 的 CryptoJS.MD5(...).toString() 输出一致 */
|
||||
export function md5Hex(text: string): string {
|
||||
return CryptoJS.MD5(text).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* RSA 公钥加密(PKCS#1 v1.5),返回 base64 密文
|
||||
* @param plaintext 待加密明文
|
||||
* @param publicKeyPem 后端 /Auth/GetRsaPublicKey 返回的 PEM 公钥(无换行的裸格式也可)
|
||||
* @returns 加密失败返回空串,调用方需判空兜底
|
||||
*/
|
||||
export function rsaEncrypt(plaintext: string, publicKeyPem: string): string {
|
||||
const encryptor = new JSEncrypt();
|
||||
encryptor.setPublicKey(publicKeyPem);
|
||||
// encrypt 失败返回 false(非 nullish),用 || 兜底为空串
|
||||
return encryptor.encrypt(plaintext) || "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录密码密文:RSA( Guid + MD5(密码) ),算法与旧系统 WebVue 登录完全一致
|
||||
* Guid 同时作为请求体 LoginData.Guid 发送,服务端解密后比对前缀防重放
|
||||
*/
|
||||
export function encryptLoginPassword(
|
||||
password: string,
|
||||
guid: string,
|
||||
publicKeyPem: string,
|
||||
): string {
|
||||
return rsaEncrypt(guid + md5Hex(password), publicKeyPem);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
:deep(.code-text) {
|
||||
font-family: 'Monaco', 'Consolas', monospace;
|
||||
white-space: pre-wrap;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.code-block {
|
||||
background: $u-bg-gray-light;
|
||||
padding: 24rpx;
|
||||
border-radius: 8rpx;
|
||||
margin: 16rpx 0;
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
// 此自定义uView Pro主题生成于2025-11-29 13:18
|
||||
// 地址:https://uviewpro.cn/zh/guide/themeGenerate.html
|
||||
|
||||
export default [
|
||||
// 主题 1: 紫色
|
||||
{
|
||||
name: "purple",
|
||||
label: "霞光紫",
|
||||
color: {
|
||||
primary: "#7c3aed",
|
||||
error: "#f43f5e",
|
||||
warning: "#f59e0b",
|
||||
success: "#10b981",
|
||||
info: "#6b7280",
|
||||
primaryLight: "#f3e8ff",
|
||||
errorLight: "#ffe4e6",
|
||||
warningLight: "#fef3c7",
|
||||
successLight: "#d1fae5",
|
||||
infoLight: "#f3f4f6",
|
||||
primaryDark: "#6d28d9",
|
||||
errorDark: "#e11d48",
|
||||
warningDark: "#d97706",
|
||||
successDark: "#059669",
|
||||
infoDark: "#4b5563",
|
||||
primaryDisabled: "#c4b5fd",
|
||||
errorDisabled: "#fbcfe8",
|
||||
warningDisabled: "#fde68a",
|
||||
successDisabled: "#a7f3d0",
|
||||
infoDisabled: "#d1d5db",
|
||||
},
|
||||
},
|
||||
|
||||
// 主题 2: 绿色
|
||||
{
|
||||
name: "green",
|
||||
label: "清翠绿",
|
||||
color: {
|
||||
primary: "#059669",
|
||||
error: "#dc2626",
|
||||
warning: "#eab308",
|
||||
success: "#16a34a",
|
||||
info: "#78716c",
|
||||
primaryLight: "#ecfdf5",
|
||||
errorLight: "#fee2e2",
|
||||
warningLight: "#fefce8",
|
||||
successLight: "#dcfce7",
|
||||
infoLight: "#fafaf9",
|
||||
primaryDark: "#047857",
|
||||
errorDark: "#b91c1c",
|
||||
warningDark: "#ca8a04",
|
||||
successDark: "#15803d",
|
||||
infoDark: "#57534e",
|
||||
primaryDisabled: "#6ee7b7",
|
||||
errorDisabled: "#fca5a5",
|
||||
warningDisabled: "#facc15",
|
||||
successDisabled: "#86efac",
|
||||
infoDisabled: "#e7e5e4",
|
||||
},
|
||||
},
|
||||
|
||||
// 主题 3: 橙色
|
||||
{
|
||||
name: "orange",
|
||||
label: "暖阳橙",
|
||||
color: {
|
||||
primary: "#f97316",
|
||||
error: "#ef4444",
|
||||
warning: "#fbbf24",
|
||||
success: "#22c55e",
|
||||
info: "#6366f1",
|
||||
primaryLight: "#ffedd5",
|
||||
errorLight: "#fee2e2",
|
||||
warningLight: "#fef3c7",
|
||||
successLight: "#dcfce7",
|
||||
infoLight: "#e0e7ff",
|
||||
primaryDark: "#ea580c",
|
||||
errorDark: "#dc2626",
|
||||
warningDark: "#f59e0b",
|
||||
successDark: "#16a34a",
|
||||
infoDark: "#4f46e5",
|
||||
primaryDisabled: "#fed7aa",
|
||||
errorDisabled: "#fecaca",
|
||||
warningDisabled: "#fde68a",
|
||||
successDisabled: "#86efac",
|
||||
infoDisabled: "#c7d2fe",
|
||||
},
|
||||
},
|
||||
|
||||
// 主题 4: 深蓝 / 黑蓝色系
|
||||
{
|
||||
name: "dark",
|
||||
label: "午夜蓝",
|
||||
color: {
|
||||
primary: "#0b3d91",
|
||||
error: "#ef5350",
|
||||
warning: "#ffa726",
|
||||
success: "#66bb6a",
|
||||
info: "#2196f3",
|
||||
primaryLight: "#081a33",
|
||||
errorLight: "#5e1914",
|
||||
warningLight: "#663c00",
|
||||
successLight: "#1b3a1b",
|
||||
infoLight: "#003d66",
|
||||
primaryDark: "#062a57",
|
||||
errorDark: "#c62828",
|
||||
warningDark: "#e65100",
|
||||
successDark: "#2e7d32",
|
||||
infoDark: "#01579b",
|
||||
primaryDisabled: "#274a7a",
|
||||
errorDisabled: "#ef9a9a",
|
||||
warningDisabled: "#ffb74d",
|
||||
successDisabled: "#81c784",
|
||||
infoDisabled: "#4fc3f7",
|
||||
},
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,75 @@
|
||||
<script setup lang="ts">
|
||||
import type { PropType } from "vue";
|
||||
import { $u } from "uview-pro";
|
||||
import { reactive } from "vue";
|
||||
|
||||
defineProps({
|
||||
navTitle: {
|
||||
type: String,
|
||||
default: "uView Pro",
|
||||
},
|
||||
showNavBack: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
},
|
||||
hideNav: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showTabbar: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
customStyle: {
|
||||
type: [String, Object] as PropType<string | Record<string, any>>,
|
||||
default: "",
|
||||
},
|
||||
customClass: {
|
||||
type: [String, Object] as PropType<string | Record<string, any>>,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
|
||||
const background = reactive({
|
||||
backgroundColor: "var(--u-type-primary)",
|
||||
// 渐变色
|
||||
backgroundImage: "linear-gradient(90deg, var(--u-type-primary-dark), var(--u-type-primary-disabled))",
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<view class="app-page" :class="{ 'has-tabbar': showTabbar }" :style="$u.toStyle(customStyle)">
|
||||
<!-- #ifndef MP-ALIPAY -->
|
||||
<u-navbar
|
||||
v-if="!hideNav" :is-back="showNavBack && !showTabbar" :title="navTitle" :background="background" :is-fixed="true"
|
||||
:immersive="false" back-icon-name="arrow-leftward" title-width="350" title-color="#ffffff"
|
||||
back-icon-color="#ffffff"
|
||||
/>
|
||||
<!-- #endif -->
|
||||
<u-transition name="slide-left" :appear="true">
|
||||
<slot />
|
||||
</u-transition>
|
||||
<app-tabbar v-if="showTabbar" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app-page {
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
// padding-bottom: 30rpx;
|
||||
overflow-y: auto;
|
||||
background-color: $u-bg-white;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
color: $u-main-color;
|
||||
transition: background 0.3s ease;
|
||||
|
||||
&.has-tabbar {
|
||||
background-image: linear-gradient(135deg,
|
||||
rgba(var(--u-type-primary-rgb, 41, 121, 255), 0.04) 0%,
|
||||
rgba(var(--u-type-success-rgb, 25, 190, 107), 0.04) 40%,
|
||||
rgba(var(--u-type-warning-rgb, 255, 153, 0), 0.04) 100%);
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,29 @@
|
||||
<script lang="ts">
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { $u } from "uview-pro";
|
||||
import { ref } from "vue";
|
||||
import { useTabbarStore } from "@/stores";
|
||||
|
||||
defineOptions({
|
||||
options: {
|
||||
addGlobalClass: true,
|
||||
// #ifndef MP-TOUTIAO
|
||||
virtualHost: true,
|
||||
// #endif
|
||||
styleIsolation: "shared",
|
||||
},
|
||||
});
|
||||
|
||||
const { tabbarList } = useTabbarStore();
|
||||
|
||||
const current = ref<number>(0);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<u-tabbar v-model="current" :list="tabbarList" :active-color="$u.color.primary" />
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
</style>
|
||||
@@ -0,0 +1,316 @@
|
||||
<script setup lang="ts">
|
||||
import type { PropType } from "vue";
|
||||
import { useLocale } from "uview-pro";
|
||||
import { WebSitePolicy } from "@/policy/custom/webSitePolicy";
|
||||
|
||||
/**
|
||||
* 错误页通用外壳(401 / 403 / 404 共用),移植自旧 WebVue 的 components/basic/ErrorPanel.vue。
|
||||
* 只负责排版与配色,具体文案、图标、按钮由各错误页提供。
|
||||
* 旧版用 ant-design 图标 + <a> 链接,这里换成 uView Pro 的 u-icon 与纯文本,跨端可用。
|
||||
*/
|
||||
defineProps({
|
||||
/** 状态码,如 401 */
|
||||
code: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
/** 状态码下方的短标签,如「UNAUTHORIZED · 未认证」 */
|
||||
badge: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
/** 主题色:blue(默认)/ amber(无权限)/ violet(找不到页面) */
|
||||
tone: {
|
||||
type: String as PropType<"blue" | "amber" | "violet">,
|
||||
default: "blue",
|
||||
},
|
||||
/** 主标题:一句话说清出了什么问题 */
|
||||
title: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
/** 副标题:补充说明 */
|
||||
description: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
/** 可能的原因清单 */
|
||||
reasons: {
|
||||
type: Array as PropType<string[]>,
|
||||
default: () => [],
|
||||
},
|
||||
/** 出错的地址(守卫跳页时用 ?from= 带过来) */
|
||||
from: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
/** 兜底提示 */
|
||||
hint: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
|
||||
// 「可能的原因」「出错的地址:」是组件自己的固定标签,走语言包;业务文案仍由各错误页传入
|
||||
const { t } = useLocale();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<view class="ep" :class="`ep--${tone}`">
|
||||
<!-- 顶部渐变头图:品牌 + 大号状态码 -->
|
||||
<view class="ep-hero">
|
||||
<view class="ep-brand">
|
||||
<image class="ep-brand__logo" src="/static/logo.png" mode="aspectFill" />
|
||||
<text class="ep-brand__name">
|
||||
{{ WebSitePolicy.Title }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="ep-code">
|
||||
{{ code }}
|
||||
</view>
|
||||
<view class="ep-tag">
|
||||
{{ badge }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 悬浮卡片:图标 + 说明 + 可能原因 + 操作 -->
|
||||
<view class="ep-card">
|
||||
<view class="ep-icon">
|
||||
<slot name="icon" />
|
||||
</view>
|
||||
|
||||
<view class="ep-title">
|
||||
{{ title }}
|
||||
</view>
|
||||
<view v-if="description" class="ep-desc">
|
||||
{{ description }}
|
||||
</view>
|
||||
|
||||
<view v-if="reasons && reasons.length" class="ep-reasons">
|
||||
<view class="ep-reasons__title">
|
||||
<text>{{ t('ErrorPage.reasonsTitle') }}</text>
|
||||
</view>
|
||||
<view v-for="(item, i) in reasons" :key="i" class="ep-reasons__item">
|
||||
<text class="ep-reasons__dot">
|
||||
•
|
||||
</text>
|
||||
<text class="ep-reasons__text">
|
||||
{{ item }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view v-if="from" class="ep-from">
|
||||
<text>{{ t('ErrorPage.fromLabel') }}</text>
|
||||
<text class="ep-from__code">
|
||||
{{ from }}
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view class="ep-actions">
|
||||
<slot name="actions" />
|
||||
</view>
|
||||
|
||||
<view v-if="hint" class="ep-hint">
|
||||
{{ hint }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="ep-footer">
|
||||
<text class="ep-footer__line">
|
||||
{{ WebSitePolicy.Copy }}
|
||||
</text>
|
||||
<text class="ep-footer__line">
|
||||
{{ WebSitePolicy.Beian }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.ep {
|
||||
/* 主题色:默认品牌蓝→青渐变,amber / violet 用于区分不同错误类型 */
|
||||
--ep-from: #1677ff;
|
||||
--ep-to: #36cfc9;
|
||||
--ep-shadow: rgba(22, 119, 255, 0.18);
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
background-color: $u-bg-white;
|
||||
}
|
||||
|
||||
.ep--amber {
|
||||
--ep-from: #fa8c16;
|
||||
--ep-to: #ffc53d;
|
||||
--ep-shadow: rgba(250, 140, 22, 0.18);
|
||||
}
|
||||
|
||||
.ep--violet {
|
||||
--ep-from: #722ed1;
|
||||
--ep-to: #b37feb;
|
||||
--ep-shadow: rgba(114, 46, 209, 0.18);
|
||||
}
|
||||
|
||||
/* ---------- 头图 ---------- */
|
||||
.ep-hero {
|
||||
/* 状态栏高度:navigationStyle 为 custom,页面顶部会被状态栏压住 */
|
||||
padding: calc(var(--status-bar-height) + 32rpx) 32rpx 88rpx;
|
||||
border-radius: 0 0 44rpx 44rpx;
|
||||
background-image: linear-gradient(135deg, var(--ep-from) 0%, var(--ep-to) 100%);
|
||||
box-shadow: 0 12rpx 36rpx var(--ep-shadow);
|
||||
color: $u-bg-white;
|
||||
}
|
||||
|
||||
.ep-brand {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ep-brand__logo {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
border-radius: 10rpx;
|
||||
background-color: rgba(255, 255, 255, 0.24);
|
||||
}
|
||||
|
||||
.ep-brand__name {
|
||||
margin-left: 16rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
.ep-code {
|
||||
margin-top: 16rpx;
|
||||
font-size: 104rpx;
|
||||
font-weight: 800;
|
||||
line-height: 1;
|
||||
letter-spacing: 4rpx;
|
||||
}
|
||||
|
||||
.ep-tag {
|
||||
margin-top: 12rpx;
|
||||
font-size: 24rpx;
|
||||
letter-spacing: 2rpx;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* ---------- 悬浮卡片 ---------- */
|
||||
.ep-card {
|
||||
margin: -56rpx 32rpx 36rpx;
|
||||
padding: 36rpx 32rpx 40rpx;
|
||||
border-radius: 40rpx;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 16rpx 48rpx rgba(15, 35, 60, 0.08);
|
||||
}
|
||||
|
||||
.ep-icon {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 96rpx;
|
||||
height: 96rpx;
|
||||
margin-bottom: 24rpx;
|
||||
border-radius: 28rpx;
|
||||
background-image: linear-gradient(135deg, var(--ep-from) 0%, var(--ep-to) 100%);
|
||||
box-shadow: 0 4rpx 16rpx var(--ep-shadow);
|
||||
}
|
||||
|
||||
.ep-title {
|
||||
font-size: 36rpx;
|
||||
font-weight: 700;
|
||||
line-height: 1.4;
|
||||
color: $u-main-color;
|
||||
}
|
||||
|
||||
.ep-desc {
|
||||
margin-top: 12rpx;
|
||||
font-size: 27rpx;
|
||||
line-height: 1.65;
|
||||
color: $u-content-color;
|
||||
}
|
||||
|
||||
.ep-reasons {
|
||||
margin-top: 28rpx;
|
||||
padding: 24rpx;
|
||||
border: 2rpx solid #eef0f4;
|
||||
border-radius: 28rpx;
|
||||
background-color: #f7f9fc;
|
||||
}
|
||||
|
||||
.ep-reasons__title {
|
||||
margin-bottom: 12rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: 600;
|
||||
color: $u-main-color;
|
||||
}
|
||||
|
||||
.ep-reasons__item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
|
||||
.ep-reasons__dot {
|
||||
margin-right: 12rpx;
|
||||
font-size: 26rpx;
|
||||
line-height: 1.6;
|
||||
color: var(--ep-from);
|
||||
}
|
||||
|
||||
.ep-reasons__text {
|
||||
flex: 1;
|
||||
font-size: 26rpx;
|
||||
line-height: 1.6;
|
||||
color: $u-tips-color;
|
||||
}
|
||||
|
||||
.ep-from {
|
||||
margin-top: 24rpx;
|
||||
font-size: 24rpx;
|
||||
line-height: 1.6;
|
||||
color: $u-light-color;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.ep-from__code {
|
||||
margin-left: 8rpx;
|
||||
padding: 2rpx 12rpx;
|
||||
border-radius: 12rpx;
|
||||
background-color: #f2f4f8;
|
||||
color: $u-main-color;
|
||||
}
|
||||
|
||||
.ep-actions {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
/* 按钮来自各页面的插槽,拿不到本组件的 scoped 样式,故间距写在容器上 */
|
||||
gap: 20rpx;
|
||||
margin-top: 36rpx;
|
||||
}
|
||||
|
||||
.ep-hint {
|
||||
margin-top: 28rpx;
|
||||
font-size: 24rpx;
|
||||
line-height: 1.6;
|
||||
color: $u-light-color;
|
||||
}
|
||||
|
||||
/* ---------- 底部信息 ---------- */
|
||||
.ep-footer {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
padding: 0 32rpx 28rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ep-footer__line {
|
||||
font-size: 22rpx;
|
||||
line-height: 32rpx;
|
||||
color: $u-light-color;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from "./useAuthGuard";
|
||||
export * from "./useLang";
|
||||
@@ -0,0 +1,23 @@
|
||||
import { onShow } from "@dcloudio/uni-app";
|
||||
import { ensureCurrentPageAuthorized } from "@/router/nav-guard";
|
||||
|
||||
/**
|
||||
* 页面级登录守卫(补 router/nav-guard 拦不到的那半边)
|
||||
*
|
||||
* uni.addInterceptor 只作用于站内跳转;H5 地址栏直达、分享链接冷启动、
|
||||
* 小程序「编译进入指定页面」都不会调用任何导航 API,
|
||||
* 因此受保护页面必须在自己的 onShow 里再校验一次。
|
||||
*
|
||||
* 放在 onShow 而不是 onLoad:从登录页 reLaunch 回来、或从后台切回前台时
|
||||
* 令牌可能已经变化,每次显示都复核一次更稳妥。
|
||||
*
|
||||
* @param onAuthorized 校验通过后的初始化回调(拉数据等),被拦走时不会执行
|
||||
*/
|
||||
export function useAuthGuard(onAuthorized?: () => void): void {
|
||||
onShow(() => {
|
||||
if (!ensureCurrentPageAuthorized()) {
|
||||
return;
|
||||
}
|
||||
onAuthorized?.();
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import { useLocale } from "uview-pro";
|
||||
|
||||
export function useLang() {
|
||||
const { setLocale } = useLocale();
|
||||
|
||||
// 切换语言
|
||||
function switchLang(lang: string, locale?: string) {
|
||||
// 切换uniapp语言
|
||||
locale && uni.setLocale(locale);
|
||||
uni.setStorageSync("UNI_LOCALE", locale);
|
||||
// 切换uView Pro语言
|
||||
setLocale(lang);
|
||||
}
|
||||
|
||||
return {
|
||||
switchLang,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import type { GridColumnInfo } from "./gridColumnInfo";
|
||||
import type { SearchFilter } from "./searchFilter";
|
||||
import type { SelectOption } from "./selectOption";
|
||||
|
||||
export class AbstractSearchCriteria {
|
||||
public limit: number = 0;
|
||||
public page: number = 0;
|
||||
public clear: number = 0;
|
||||
public orderby: string = "";
|
||||
public orderbytag: string = "";
|
||||
public Filter: SearchFilter[] = [];
|
||||
public IsModal: boolean = false;
|
||||
public ReportName: string = "";
|
||||
public GridColumns: GridColumnInfo[] = [];
|
||||
public SelectOptions: SelectOption[] = [];
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class BiometricLoginChallengeDto {
|
||||
public RequestOptionsJson: string = "";
|
||||
public ChallengeId: string = "";
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export class BiometricRegistrationResultDto {
|
||||
public CredentialIdBase64Url: string = "";
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
export class DmsFileDeleteLogEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public FileId: number = 0;
|
||||
public FileName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FileSize: number = 0;
|
||||
public OwerId: string = "";
|
||||
public RevisionNo: number = 0;
|
||||
public IsDirectoryIndc: string = "";
|
||||
public IsLinkIndc: string = "";
|
||||
public LinkedFileId: number = 0;
|
||||
public OrgFileName: string = "";
|
||||
public OrderKey: string = "";
|
||||
public FileTag: string = "";
|
||||
public AllowRenameIndc: string = "";
|
||||
public AllowDeleteIndc: string = "";
|
||||
public FileType: string = "";
|
||||
public LandscapeIndc: string = "";
|
||||
public TranscodeIndc: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FILE_SIZE: string = "FileSize";
|
||||
static readonly OWER_ID: string = "OwerId";
|
||||
static readonly REVISION_NO: string = "RevisionNo";
|
||||
static readonly IS_DIRECTORY_INDC: string = "IsDirectoryIndc";
|
||||
static readonly IS_LINK_INDC: string = "IsLinkIndc";
|
||||
static readonly LINKED_FILE_ID: string = "LinkedFileId";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly ORDER_KEY: string = "OrderKey";
|
||||
static readonly FILE_TAG: string = "FileTag";
|
||||
static readonly ALLOW_RENAME_INDC: string = "AllowRenameIndc";
|
||||
static readonly ALLOW_DELETE_INDC: string = "AllowDeleteIndc";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly LANDSCAPE_INDC: string = "LandscapeIndc";
|
||||
static readonly TRANSCODE_INDC: string = "TranscodeIndc";
|
||||
static readonly DB_NAME_DMS_FILE_DELETE_LOG: string = "dms_file_delete_log";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,file_id,file_name,file_path,file_size,ower_id,revision_no,is_directory_indc,is_link_indc,linked_file_id,org_file_name,order_key,file_tag,allow_rename_indc,allow_delete_indc,file_type,landscape_indc,transcode_indc";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FILE_SIZE: string = "file_size";
|
||||
static readonly DB_OWER_ID: string = "ower_id";
|
||||
static readonly DB_REVISION_NO: string = "revision_no";
|
||||
static readonly DB_IS_DIRECTORY_INDC: string = "is_directory_indc";
|
||||
static readonly DB_IS_LINK_INDC: string = "is_link_indc";
|
||||
static readonly DB_LINKED_FILE_ID: string = "linked_file_id";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_ORDER_KEY: string = "order_key";
|
||||
static readonly DB_FILE_TAG: string = "file_tag";
|
||||
static readonly DB_ALLOW_RENAME_INDC: string = "allow_rename_indc";
|
||||
static readonly DB_ALLOW_DELETE_INDC: string = "allow_delete_indc";
|
||||
static readonly DB_FILE_TYPE: string = "file_type";
|
||||
static readonly DB_LANDSCAPE_INDC: string = "landscape_indc";
|
||||
static readonly DB_TRANSCODE_INDC: string = "transcode_indc";
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
export class DmsFileEntity {
|
||||
public AllowDeleteIndc: string = "";
|
||||
public AllowRenameIndc: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FileId: number = 0;
|
||||
public FileName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FileSize: number = 0;
|
||||
public FileTag: string = "";
|
||||
public FileType: string = "";
|
||||
public IsDirectoryIndc: string = "";
|
||||
public IsLinkIndc: string = "";
|
||||
public LandscapeIndc: string = "";
|
||||
public LinkedFileId: number = 0;
|
||||
public OrderKey: string = "";
|
||||
public OrgFileName: string = "";
|
||||
public OwerId: string = "";
|
||||
public RevisionNo: number = 0;
|
||||
public TranscodeIndc: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly ALLOW_DELETE_INDC: string = "AllowDeleteIndc";
|
||||
static readonly ALLOW_RENAME_INDC: string = "AllowRenameIndc";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FILE_SIZE: string = "FileSize";
|
||||
static readonly FILE_TAG: string = "FileTag";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly IS_DIRECTORY_INDC: string = "IsDirectoryIndc";
|
||||
static readonly IS_LINK_INDC: string = "IsLinkIndc";
|
||||
static readonly LANDSCAPE_INDC: string = "LandscapeIndc";
|
||||
static readonly LINKED_FILE_ID: string = "LinkedFileId";
|
||||
static readonly ORDER_KEY: string = "OrderKey";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly OWER_ID: string = "OwerId";
|
||||
static readonly REVISION_NO: string = "RevisionNo";
|
||||
static readonly TRANSCODE_INDC: string = "TranscodeIndc";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_DMS_FILE: string = "dms_file";
|
||||
static readonly DB_NAME_FIELDS: string = "allow_delete_indc,allow_rename_indc,created_by,created_datetime,file_id,file_name,file_path,file_size,file_tag,file_type,is_directory_indc,is_link_indc,landscape_indc,linked_file_id,order_key,org_file_name,ower_id,revision_no,transcode_indc,updated_by,updated_datetime";
|
||||
static readonly DB_ALLOW_DELETE_INDC: string = "allow_delete_indc";
|
||||
static readonly DB_ALLOW_RENAME_INDC: string = "allow_rename_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FILE_SIZE: string = "file_size";
|
||||
static readonly DB_FILE_TAG: string = "file_tag";
|
||||
static readonly DB_FILE_TYPE: string = "file_type";
|
||||
static readonly DB_IS_DIRECTORY_INDC: string = "is_directory_indc";
|
||||
static readonly DB_IS_LINK_INDC: string = "is_link_indc";
|
||||
static readonly DB_LANDSCAPE_INDC: string = "landscape_indc";
|
||||
static readonly DB_LINKED_FILE_ID: string = "linked_file_id";
|
||||
static readonly DB_ORDER_KEY: string = "order_key";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_OWER_ID: string = "ower_id";
|
||||
static readonly DB_REVISION_NO: string = "revision_no";
|
||||
static readonly DB_TRANSCODE_INDC: string = "transcode_indc";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { DmsFileUploadDeleteLogViewDisplayData } from "./dmsFileUploadDeleteLogViewDisplayData";
|
||||
import type { DmsFileUploadViewDisplayData } from "./dmsFileUploadViewDisplayData";
|
||||
import type { FamilyDmsFileViewDisplayData } from "./familyDmsFileViewDisplayData";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class DmsFileResultData extends SearchCriteriaResultData {
|
||||
public Datas: DmsFileUploadViewDisplayData[] = [];
|
||||
public Previews: string[] = [];
|
||||
public Logs: DmsFileUploadDeleteLogViewDisplayData[] = [];
|
||||
public Families: FamilyDmsFileViewDisplayData[] = [];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class DmsFileSearchCriteria extends AbstractSearchCriteria {
|
||||
public UserIdIndc: boolean = false;
|
||||
public FamilyName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class DmsFileUploadDeleteLogEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public FileId: number = 0;
|
||||
public UploadName: string = "";
|
||||
public FileCategory: string = "";
|
||||
public OrgFileName: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly UPLOAD_NAME: string = "UploadName";
|
||||
static readonly FILE_CATEGORY: string = "FileCategory";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly DB_NAME_DMS_FILE_UPLOAD_DELETE_LOG: string = "dms_file_upload_delete_log";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,file_id,upload_name,file_category,org_file_name";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_UPLOAD_NAME: string = "upload_name";
|
||||
static readonly DB_FILE_CATEGORY: string = "file_category";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { DmsFileUploadDeleteLogViewEntity } from "./dmsFileUploadDeleteLogViewEntity";
|
||||
|
||||
export class DmsFileUploadDeleteLogViewDisplayData extends DmsFileUploadDeleteLogViewEntity {
|
||||
public IsSelected?: Date = null!;
|
||||
public IsPlay: string = "";
|
||||
public IsPause: string = "";
|
||||
public FormattedPic: string = "";
|
||||
public FormattedM3u8: string = "";
|
||||
|
||||
static readonly IS_SELECTED: string = "IsSelected";
|
||||
static readonly IS_PLAY: string = "IsPlay";
|
||||
static readonly IS_PAUSE: string = "IsPause";
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
export class DmsFileUploadDeleteLogViewEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public FileId: number = 0;
|
||||
public UploadName: string = "";
|
||||
public FileCategory: string = "";
|
||||
public OrgFileName: string = "";
|
||||
public FileName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
public FileSize: number = 0;
|
||||
public OwerId: string = "";
|
||||
public RevisionNo: number = 0;
|
||||
public IsDirectoryIndc: string = "";
|
||||
public IsLinkIndc: string = "";
|
||||
public LinkedFileId: number = 0;
|
||||
public OrderKey: string = "";
|
||||
public FileTag: string = "";
|
||||
public AllowRenameIndc: string = "";
|
||||
public AllowDeleteIndc: string = "";
|
||||
public FileType: string = "";
|
||||
public LandscapeIndc: string = "";
|
||||
public TranscodeIndc: string = "";
|
||||
public Url: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly UPLOAD_NAME: string = "UploadName";
|
||||
static readonly FILE_CATEGORY: string = "FileCategory";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FILE_SIZE: string = "FileSize";
|
||||
static readonly OWER_ID: string = "OwerId";
|
||||
static readonly REVISION_NO: string = "RevisionNo";
|
||||
static readonly IS_DIRECTORY_INDC: string = "IsDirectoryIndc";
|
||||
static readonly IS_LINK_INDC: string = "IsLinkIndc";
|
||||
static readonly LINKED_FILE_ID: string = "LinkedFileId";
|
||||
static readonly ORDER_KEY: string = "OrderKey";
|
||||
static readonly FILE_TAG: string = "FileTag";
|
||||
static readonly ALLOW_RENAME_INDC: string = "AllowRenameIndc";
|
||||
static readonly ALLOW_DELETE_INDC: string = "AllowDeleteIndc";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly LANDSCAPE_INDC: string = "LandscapeIndc";
|
||||
static readonly TRANSCODE_INDC: string = "TranscodeIndc";
|
||||
static readonly URL: string = "Url";
|
||||
static readonly DB_NAME_DMS_FILE_UPLOAD_DELETE_LOG_VIEW: string = "dms_file_upload_delete_log_view";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,file_id,upload_name,file_category,org_file_name,file_name,file_path,folder_local_name,file_size,ower_id,revision_no,is_directory_indc,is_link_indc,linked_file_id,order_key,file_tag,allow_rename_indc,allow_delete_indc,file_type,landscape_indc,transcode_indc,url";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_UPLOAD_NAME: string = "upload_name";
|
||||
static readonly DB_FILE_CATEGORY: string = "file_category";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FILE_SIZE: string = "file_size";
|
||||
static readonly DB_OWER_ID: string = "ower_id";
|
||||
static readonly DB_REVISION_NO: string = "revision_no";
|
||||
static readonly DB_IS_DIRECTORY_INDC: string = "is_directory_indc";
|
||||
static readonly DB_IS_LINK_INDC: string = "is_link_indc";
|
||||
static readonly DB_LINKED_FILE_ID: string = "linked_file_id";
|
||||
static readonly DB_ORDER_KEY: string = "order_key";
|
||||
static readonly DB_FILE_TAG: string = "file_tag";
|
||||
static readonly DB_ALLOW_RENAME_INDC: string = "allow_rename_indc";
|
||||
static readonly DB_ALLOW_DELETE_INDC: string = "allow_delete_indc";
|
||||
static readonly DB_FILE_TYPE: string = "file_type";
|
||||
static readonly DB_LANDSCAPE_INDC: string = "landscape_indc";
|
||||
static readonly DB_TRANSCODE_INDC: string = "transcode_indc";
|
||||
static readonly DB_URL: string = "url";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class DmsFileUploadEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FileCategory: string = "";
|
||||
public FileId: number = 0;
|
||||
public OrgFileName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UploadName: string = "";
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FILE_CATEGORY: string = "FileCategory";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPLOAD_NAME: string = "UploadName";
|
||||
static readonly DB_NAME_DMS_FILE_UPLOAD: string = "dms_file_upload";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,file_category,file_id,org_file_name,updated_by,updated_datetime,upload_name";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FILE_CATEGORY: string = "file_category";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPLOAD_NAME: string = "upload_name";
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import { DmsFileUploadViewEntity } from "./dmsFileUploadViewEntity";
|
||||
|
||||
export class DmsFileUploadViewDisplayData extends DmsFileUploadViewEntity {
|
||||
public IsSelected?: Date = null!;
|
||||
public IsPlay: string = "";
|
||||
public IsPause: string = "";
|
||||
public FormattedPic: string = "";
|
||||
public FormattedM3u8: string = "";
|
||||
|
||||
static readonly IS_SELECTED: string = "IsSelected";
|
||||
static readonly IS_PLAY: string = "IsPlay";
|
||||
static readonly IS_PAUSE: string = "IsPause";
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
export class DmsFileUploadViewEntity {
|
||||
public AllowDeleteIndc: string = "";
|
||||
public AllowRenameIndc: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FileCategory: string = "";
|
||||
public FileId: number = 0;
|
||||
public FileName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FileSize: number = 0;
|
||||
public FileTag: string = "";
|
||||
public FileType: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
public IsDirectoryIndc: string = "";
|
||||
public IsLinkIndc: string = "";
|
||||
public LandscapeIndc: string = "";
|
||||
public LinkedFileId: number = 0;
|
||||
public OrderKey: string = "";
|
||||
public OrgFileName: string = "";
|
||||
public OwerId: string = "";
|
||||
public RevisionNo: number = 0;
|
||||
public TranscodeIndc: string = "";
|
||||
public UploadName: string = "";
|
||||
public Url: string = "";
|
||||
|
||||
static readonly ALLOW_DELETE_INDC: string = "AllowDeleteIndc";
|
||||
static readonly ALLOW_RENAME_INDC: string = "AllowRenameIndc";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FILE_CATEGORY: string = "FileCategory";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FILE_SIZE: string = "FileSize";
|
||||
static readonly FILE_TAG: string = "FileTag";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly IS_DIRECTORY_INDC: string = "IsDirectoryIndc";
|
||||
static readonly IS_LINK_INDC: string = "IsLinkIndc";
|
||||
static readonly LANDSCAPE_INDC: string = "LandscapeIndc";
|
||||
static readonly LINKED_FILE_ID: string = "LinkedFileId";
|
||||
static readonly ORDER_KEY: string = "OrderKey";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly OWER_ID: string = "OwerId";
|
||||
static readonly REVISION_NO: string = "RevisionNo";
|
||||
static readonly TRANSCODE_INDC: string = "TranscodeIndc";
|
||||
static readonly UPLOAD_NAME: string = "UploadName";
|
||||
static readonly URL: string = "Url";
|
||||
static readonly DB_NAME_DMS_FILE_UPLOAD_VIEW: string = "dms_file_upload_view";
|
||||
static readonly DB_NAME_FIELDS: string = "allow_delete_indc,allow_rename_indc,created_by,created_datetime,file_category,file_id,file_name,file_path,file_size,file_tag,file_type,folder_local_name,is_directory_indc,is_link_indc,landscape_indc,linked_file_id,order_key,org_file_name,ower_id,revision_no,transcode_indc,upload_name,url";
|
||||
static readonly DB_ALLOW_DELETE_INDC: string = "allow_delete_indc";
|
||||
static readonly DB_ALLOW_RENAME_INDC: string = "allow_rename_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FILE_CATEGORY: string = "file_category";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FILE_SIZE: string = "file_size";
|
||||
static readonly DB_FILE_TAG: string = "file_tag";
|
||||
static readonly DB_FILE_TYPE: string = "file_type";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_IS_DIRECTORY_INDC: string = "is_directory_indc";
|
||||
static readonly DB_IS_LINK_INDC: string = "is_link_indc";
|
||||
static readonly DB_LANDSCAPE_INDC: string = "landscape_indc";
|
||||
static readonly DB_LINKED_FILE_ID: string = "linked_file_id";
|
||||
static readonly DB_ORDER_KEY: string = "order_key";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_OWER_ID: string = "ower_id";
|
||||
static readonly DB_REVISION_NO: string = "revision_no";
|
||||
static readonly DB_TRANSCODE_INDC: string = "transcode_indc";
|
||||
static readonly DB_UPLOAD_NAME: string = "upload_name";
|
||||
static readonly DB_URL: string = "url";
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import type { DmsFolderEntity } from "./dmsFolderEntity";
|
||||
import type { DmsFolderMapEntity } from "./dmsFolderMapEntity";
|
||||
|
||||
export class DmsFolderData {
|
||||
public DmsFolders: DmsFolderEntity[] = [];
|
||||
public DmsFoldersMaps: DmsFolderMapEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
export class DmsFolderDeleteLogEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public FolderId: number = 0;
|
||||
public FolderName: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly FOLDER_ID: string = "FolderId";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly DB_NAME_DMS_FOLDER_DELETE_LOG: string = "dms_folder_delete_log";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,folder_id,folder_name,folder_local_name";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_FOLDER_ID: string = "folder_id";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
export class DmsFolderEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FolderId: number = 0;
|
||||
public FolderLocalName: string = "";
|
||||
public FolderName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FOLDER_ID: string = "FolderId";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_DMS_FOLDER: string = "dms_folder";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,folder_id,folder_local_name,folder_name,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FOLDER_ID: string = "folder_id";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
export class DmsFolderMapDeleteLogEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public FolderNameParent: string = "";
|
||||
public FolderNameSon: string = "";
|
||||
public Orderby: number = 0;
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly FOLDER_NAME_PARENT: string = "FolderNameParent";
|
||||
static readonly FOLDER_NAME_SON: string = "FolderNameSon";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly DB_NAME_DMS_FOLDER_MAP_DELETE_LOG: string = "dms_folder_map_delete_log";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,folder_name_parent,folder_name_son,orderby";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_FOLDER_NAME_PARENT: string = "folder_name_parent";
|
||||
static readonly DB_FOLDER_NAME_SON: string = "folder_name_son";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class DmsFolderMapDeleteLogEntityKey {
|
||||
public FolderNameParent: string = "";
|
||||
public FolderNameSon: string = "";
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
export class DmsFolderMapEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FolderNameParent: string = "";
|
||||
public FolderNameSon: string = "";
|
||||
public Orderby: number = 0;
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FOLDER_NAME_PARENT: string = "FolderNameParent";
|
||||
static readonly FOLDER_NAME_SON: string = "FolderNameSon";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_DMS_FOLDER_MAP: string = "dms_folder_map";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,folder_name_parent,folder_name_son,orderby,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FOLDER_NAME_PARENT: string = "folder_name_parent";
|
||||
static readonly DB_FOLDER_NAME_SON: string = "folder_name_son";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class DmsFolderMapEntityKey {
|
||||
public FolderNameParent: string = "";
|
||||
public FolderNameSon: string = "";
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import { FamilyDmsFileViewEntity } from "./familyDmsFileViewEntity";
|
||||
|
||||
export class FamilyDmsFileViewDisplayData extends FamilyDmsFileViewEntity {
|
||||
public IsSelected?: Date = null!;
|
||||
public FileType: string = "";
|
||||
public IsPlay: string = "";
|
||||
public IsPause: string = "";
|
||||
public FormattedPic: string = "";
|
||||
public FormattedM3u8: string = "";
|
||||
|
||||
static readonly IS_SELECTED: string = "IsSelected";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly IS_PLAY: string = "IsPlay";
|
||||
static readonly IS_PAUSE: string = "IsPause";
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
export class FamilyDmsFileViewEntity {
|
||||
public AllowDeleteIndc: string = "";
|
||||
public AllowRenameIndc: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FamilyName: string = "";
|
||||
public FavoriteIndc: string = "";
|
||||
public FileCategory: string = "";
|
||||
public FileId: number = 0;
|
||||
public FileName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FileSize: number = 0;
|
||||
public FileTag: string = "";
|
||||
public FileType: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
public FolderName: string = "";
|
||||
public IsDirectoryIndc: string = "";
|
||||
public IsLinkIndc: string = "";
|
||||
public LandscapeIndc: string = "";
|
||||
public LinkedFileId: number = 0;
|
||||
public Notice: string = "";
|
||||
public OrderKey: string = "";
|
||||
public OrgFileName: string = "";
|
||||
public OwerId: string = "";
|
||||
public PermissionIndc: string = "";
|
||||
public RevisionNo: number = 0;
|
||||
public TopFolderName: string = "";
|
||||
public TranscodeIndc: string = "";
|
||||
public Url: string = "";
|
||||
|
||||
static readonly ALLOW_DELETE_INDC: string = "AllowDeleteIndc";
|
||||
static readonly ALLOW_RENAME_INDC: string = "AllowRenameIndc";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly FAVORITE_INDC: string = "FavoriteIndc";
|
||||
static readonly FILE_CATEGORY: string = "FileCategory";
|
||||
static readonly FILE_ID: string = "FileId";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FILE_SIZE: string = "FileSize";
|
||||
static readonly FILE_TAG: string = "FileTag";
|
||||
static readonly FILE_TYPE: string = "FileType";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly IS_DIRECTORY_INDC: string = "IsDirectoryIndc";
|
||||
static readonly IS_LINK_INDC: string = "IsLinkIndc";
|
||||
static readonly LANDSCAPE_INDC: string = "LandscapeIndc";
|
||||
static readonly LINKED_FILE_ID: string = "LinkedFileId";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly ORDER_KEY: string = "OrderKey";
|
||||
static readonly ORG_FILE_NAME: string = "OrgFileName";
|
||||
static readonly OWER_ID: string = "OwerId";
|
||||
static readonly PERMISSION_INDC: string = "PermissionIndc";
|
||||
static readonly REVISION_NO: string = "RevisionNo";
|
||||
static readonly TOP_FOLDER_NAME: string = "TopFolderName";
|
||||
static readonly TRANSCODE_INDC: string = "TranscodeIndc";
|
||||
static readonly URL: string = "Url";
|
||||
static readonly DB_NAME_FAMILY_DMS_FILE_VIEW: string = "family_dms_file_view";
|
||||
static readonly DB_NAME_FIELDS: string = "allow_delete_indc,allow_rename_indc,created_by,created_datetime,family_name,favorite_indc,file_category,file_id,file_name,file_path,file_size,file_tag,file_type,folder_local_name,folder_name,is_directory_indc,is_link_indc,landscape_indc,linked_file_id,notice,order_key,org_file_name,ower_id,permission_indc,revision_no,top_folder_name,transcode_indc,url";
|
||||
static readonly DB_ALLOW_DELETE_INDC: string = "allow_delete_indc";
|
||||
static readonly DB_ALLOW_RENAME_INDC: string = "allow_rename_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_FAVORITE_INDC: string = "favorite_indc";
|
||||
static readonly DB_FILE_CATEGORY: string = "file_category";
|
||||
static readonly DB_FILE_ID: string = "file_id";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FILE_SIZE: string = "file_size";
|
||||
static readonly DB_FILE_TAG: string = "file_tag";
|
||||
static readonly DB_FILE_TYPE: string = "file_type";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_IS_DIRECTORY_INDC: string = "is_directory_indc";
|
||||
static readonly DB_IS_LINK_INDC: string = "is_link_indc";
|
||||
static readonly DB_LANDSCAPE_INDC: string = "landscape_indc";
|
||||
static readonly DB_LINKED_FILE_ID: string = "linked_file_id";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_ORDER_KEY: string = "order_key";
|
||||
static readonly DB_ORG_FILE_NAME: string = "org_file_name";
|
||||
static readonly DB_OWER_ID: string = "ower_id";
|
||||
static readonly DB_PERMISSION_INDC: string = "permission_indc";
|
||||
static readonly DB_REVISION_NO: string = "revision_no";
|
||||
static readonly DB_TOP_FOLDER_NAME: string = "top_folder_name";
|
||||
static readonly DB_TRANSCODE_INDC: string = "transcode_indc";
|
||||
static readonly DB_URL: string = "url";
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
export class FamilyFolderFavoriteEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FolderName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UserName: string = "";
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly DB_NAME_FAMILY_FOLDER_FAVORITE: string = "family_folder_favorite";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,folder_name,updated_by,updated_datetime,user_name";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class FamilyFolderFavoriteEntityKey {
|
||||
public FolderName: string = "";
|
||||
public UserName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class FamilyFolderFavoriteViewEntity {
|
||||
public FamilyLocalName: string = "";
|
||||
public FamilyName: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
public FolderName: string = "";
|
||||
public Notice: string = "";
|
||||
public TopFolderLocalName: string = "";
|
||||
public TopFolderName: string = "";
|
||||
public UserName: string = "";
|
||||
|
||||
static readonly FAMILY_LOCAL_NAME: string = "FamilyLocalName";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly TOP_FOLDER_LOCAL_NAME: string = "TopFolderLocalName";
|
||||
static readonly TOP_FOLDER_NAME: string = "TopFolderName";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly DB_NAME_FAMILY_FOLDER_FAVORITE_VIEW: string = "family_folder_favorite_view";
|
||||
static readonly DB_NAME_FIELDS: string = "family_local_name,family_name,folder_local_name,folder_name,notice,top_folder_local_name,top_folder_name,user_name";
|
||||
static readonly DB_FAMILY_LOCAL_NAME: string = "family_local_name";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_TOP_FOLDER_LOCAL_NAME: string = "top_folder_local_name";
|
||||
static readonly DB_TOP_FOLDER_NAME: string = "top_folder_name";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import type { FamilyGroupFolderDisplayData } from "./familyGroupFolderDisplayData";
|
||||
import type { FamilyGroupManagerDisplayData } from "./familyGroupManagerDisplayData";
|
||||
import type { FamilyGroupPermissionDisplayData } from "./familyGroupPermissionDisplayData";
|
||||
import { FamilyGroupEntity } from "./familyGroupEntity";
|
||||
|
||||
export class FamilyGroupData {
|
||||
public FamilyGroup: FamilyGroupEntity = new FamilyGroupEntity();
|
||||
public IsManager: boolean = false;
|
||||
public IsOpen: boolean = false;
|
||||
public IsAdd: boolean = false;
|
||||
public FamilyGroupFolders: FamilyGroupFolderDisplayData[] = [];
|
||||
public FamilyGroupManagers: FamilyGroupManagerDisplayData[] = [];
|
||||
public FamilyGroupRequests: FamilyGroupManagerDisplayData[] = [];
|
||||
public FamilyGroupPermissions: FamilyGroupPermissionDisplayData[] = [];
|
||||
|
||||
static readonly IS_MANAGER: string = "IsManager";
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
export class FamilyGroupEntity {
|
||||
public AddIndc: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public ExpireDatetime?: Date = null!;
|
||||
public FamilyLocalName: string = "";
|
||||
public FamilyName: string = "";
|
||||
public Notice: string = "";
|
||||
public OpenIndc: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public ValidIndc: string = "";
|
||||
|
||||
static readonly ADD_INDC: string = "AddIndc";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly EXPIRE_DATETIME: string = "ExpireDatetime";
|
||||
static readonly FAMILY_LOCAL_NAME: string = "FamilyLocalName";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly OPEN_INDC: string = "OpenIndc";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly VALID_INDC: string = "ValidIndc";
|
||||
static readonly DB_NAME_FAMILY_GROUP: string = "family_group";
|
||||
static readonly DB_NAME_FIELDS: string = "add_indc,created_by,created_datetime,expire_datetime,family_local_name,family_name,notice,open_indc,updated_by,updated_datetime,valid_indc";
|
||||
static readonly DB_ADD_INDC: string = "add_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_EXPIRE_DATETIME: string = "expire_datetime";
|
||||
static readonly DB_FAMILY_LOCAL_NAME: string = "family_local_name";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_OPEN_INDC: string = "open_indc";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_VALID_INDC: string = "valid_indc";
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { FamilyGroupFolderEntity } from "./familyGroupFolderEntity";
|
||||
|
||||
export class FamilyGroupFolderDisplayData extends FamilyGroupFolderEntity {
|
||||
public IsSharePermission: boolean = false;
|
||||
|
||||
static readonly IS_SHARE_PERMISSION: string = "IsSharePermission";
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
export class FamilyGroupFolderEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FamilyName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FolderId: number = 0;
|
||||
public FolderLocalName: string = "";
|
||||
public FolderName: string = "";
|
||||
public Notice: string = "";
|
||||
public TopFolderName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FOLDER_ID: string = "FolderId";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly TOP_FOLDER_NAME: string = "TopFolderName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_FAMILY_GROUP_FOLDER: string = "family_group_folder";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,family_name,file_path,folder_id,folder_local_name,folder_name,notice,top_folder_name,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FOLDER_ID: string = "folder_id";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_TOP_FOLDER_NAME: string = "top_folder_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import { FamilyGroupManagerEntity } from "./familyGroupManagerEntity";
|
||||
|
||||
export class FamilyGroupManagerDisplayData extends FamilyGroupManagerEntity {
|
||||
public UserLocalName: string = "";
|
||||
public IsManager: boolean = false;
|
||||
|
||||
static readonly USER_LOCAL_NAME: string = "UserLocalName";
|
||||
static readonly DB_USER_LOCAL_NAME: string = "user_local_name";
|
||||
static readonly IS_MANAGER: string = "IsManager";
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
export class FamilyGroupManagerEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FamilyName: string = "";
|
||||
public ManagerIndc: string = "";
|
||||
public Notice: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UserName: string = "";
|
||||
public ValidIndc: string = "";
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly MANAGER_INDC: string = "ManagerIndc";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly VALID_INDC: string = "ValidIndc";
|
||||
static readonly DB_NAME_FAMILY_GROUP_MANAGER: string = "family_group_manager";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,family_name,manager_indc,notice,updated_by,updated_datetime,user_name,valid_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_MANAGER_INDC: string = "manager_indc";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
static readonly DB_VALID_INDC: string = "valid_indc";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class FamilyGroupManagerEntityKey {
|
||||
public FamilyName: string = "";
|
||||
public UserName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class FamilyGroupManagerUserSearchCriteria extends AbstractSearchCriteria {
|
||||
public FamilyName: string = "";
|
||||
public FolderName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
export class FamilyGroupManagerUserViewEntity {
|
||||
public FamilyLocalName: string = "";
|
||||
public FamilyName: string = "";
|
||||
public ManagerIndc: string = "";
|
||||
public UserLocalName: string = "";
|
||||
public UserName: string = "";
|
||||
public ValidIndc: string = "";
|
||||
|
||||
static readonly FAMILY_LOCAL_NAME: string = "FamilyLocalName";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly MANAGER_INDC: string = "ManagerIndc";
|
||||
static readonly USER_LOCAL_NAME: string = "UserLocalName";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly VALID_INDC: string = "ValidIndc";
|
||||
static readonly DB_NAME_FAMILY_GROUP_MANAGER_USER_VIEW: string = "family_group_manager_user_view";
|
||||
static readonly DB_NAME_FIELDS: string = "family_local_name,family_name,manager_indc,user_local_name,user_name,valid_indc";
|
||||
static readonly DB_FAMILY_LOCAL_NAME: string = "family_local_name";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_MANAGER_INDC: string = "manager_indc";
|
||||
static readonly DB_USER_LOCAL_NAME: string = "user_local_name";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
static readonly DB_VALID_INDC: string = "valid_indc";
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { FamilyGroupPermissionEntity } from "./familyGroupPermissionEntity";
|
||||
|
||||
export class FamilyGroupPermissionDisplayData extends FamilyGroupPermissionEntity {
|
||||
public UserLocalName: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
|
||||
static readonly USER_LOCAL_NAME: string = "UserLocalName";
|
||||
static readonly DB_USER_LOCAL_NAME: string = "user_local_name";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
export class FamilyGroupPermissionEntity {
|
||||
public CreateIndc: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DeleteIndc: string = "";
|
||||
public FamilyName: string = "";
|
||||
public FolderName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UserName: string = "";
|
||||
|
||||
static readonly CREATE_INDC: string = "CreateIndc";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DELETE_INDC: string = "DeleteIndc";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly DB_NAME_FAMILY_GROUP_PERMISSION: string = "family_group_permission";
|
||||
static readonly DB_NAME_FIELDS: string = "create_indc,created_by,created_datetime,delete_indc,family_name,folder_name,updated_by,updated_datetime,user_name";
|
||||
static readonly DB_CREATE_INDC: string = "create_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DELETE_INDC: string = "delete_indc";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class FamilyGroupPermissionEntityKey {
|
||||
public FamilyName: string = "";
|
||||
public FolderName: string = "";
|
||||
public UserName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
export class FamilyGroupPermissionUserFolderViewEntity {
|
||||
public FamilyName: string = "";
|
||||
public FilePath: string = "";
|
||||
public FolderLocalName: string = "";
|
||||
public FolderName: string = "";
|
||||
public Notice: string = "";
|
||||
public UserLocalName: string = "";
|
||||
public UserName: string = "";
|
||||
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly FILE_PATH: string = "FilePath";
|
||||
static readonly FOLDER_LOCAL_NAME: string = "FolderLocalName";
|
||||
static readonly FOLDER_NAME: string = "FolderName";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly USER_LOCAL_NAME: string = "UserLocalName";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly DB_NAME_FAMILY_GROUP_PERMISSION_USER_FOLDER_VIEW: string = "family_group_permission_user_folder_view";
|
||||
static readonly DB_NAME_FIELDS: string = "family_name,file_path,folder_local_name,folder_name,notice,user_local_name,user_name";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_FILE_PATH: string = "file_path";
|
||||
static readonly DB_FOLDER_LOCAL_NAME: string = "folder_local_name";
|
||||
static readonly DB_FOLDER_NAME: string = "folder_name";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_USER_LOCAL_NAME: string = "user_local_name";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import type { FamilyFolderFavoriteViewEntity } from "./familyFolderFavoriteViewEntity";
|
||||
import type { FamilyGroupEntity } from "./familyGroupEntity";
|
||||
import type { FamilyGroupManagerUserViewEntity } from "./familyGroupManagerUserViewEntity";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class FamilyGroupResultData extends SearchCriteriaResultData {
|
||||
public Datas: FamilyGroupEntity[] = [];
|
||||
public Users: FamilyGroupManagerUserViewEntity[] = [];
|
||||
public Favorites: FamilyFolderFavoriteViewEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class FamilyGroupSearchCriteria extends AbstractSearchCriteria {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { FamilyTreeChildrenMapViewEntity } from "./familyTreeChildrenMapViewEntity";
|
||||
import type { FamilyTreeSpouseMapViewEntity } from "./familyTreeSpouseMapViewEntity";
|
||||
import { FamilyPersonDisplayData } from "./familyPersonDisplayData";
|
||||
|
||||
export class FamilyPersonData {
|
||||
public FamilyPerson: FamilyPersonDisplayData = new FamilyPersonDisplayData();
|
||||
public FamilyTreePersons: FamilyPersonDisplayData[] = [];
|
||||
public FamilyTreeSpouseMaps: FamilyTreeSpouseMapViewEntity[] = [];
|
||||
public FamilyTreeParentMaps: FamilyTreeChildrenMapViewEntity[] = [];
|
||||
public FamilyTreeChildrenMaps: FamilyTreeChildrenMapViewEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { FamilyPersonEntity } from "./familyPersonEntity";
|
||||
|
||||
export class FamilyPersonDisplayData extends FamilyPersonEntity {
|
||||
public AvatarUrl: string = "";
|
||||
public IsCanAmend?: Date = null!;
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
export class FamilyPersonEntity {
|
||||
public Alias: string = "";
|
||||
public AvatarFilename: string = "";
|
||||
public BindUserId: string = "";
|
||||
public BirthDate?: Date = null!;
|
||||
public BirthOrder: string = "";
|
||||
public BirthText: string = "";
|
||||
public CommonName: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DeathDate?: Date = null!;
|
||||
public DeathText: string = "";
|
||||
public Duty: string = "";
|
||||
public Education: string = "";
|
||||
public FatherId: string = "";
|
||||
public Gender: string = "";
|
||||
public GenealogyName: string = "";
|
||||
public GraduationStatus: string = "";
|
||||
public Hao: string = "";
|
||||
public Introduction: string = "";
|
||||
public IsBindUser: string = "";
|
||||
public LiveStatus: string = "";
|
||||
public Major: string = "";
|
||||
public MaritalStatus: string = "";
|
||||
public MotherName: string = "";
|
||||
public PersonId: string = "";
|
||||
public Privacy: string = "";
|
||||
public School: string = "";
|
||||
public Surname: string = "";
|
||||
public Title: string = "";
|
||||
public TreeId: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public Zi: string = "";
|
||||
|
||||
static readonly ALIAS: string = "Alias";
|
||||
static readonly AVATAR_FILENAME: string = "AvatarFilename";
|
||||
static readonly BIND_USER_ID: string = "BindUserId";
|
||||
static readonly BIRTH_DATE: string = "BirthDate";
|
||||
static readonly BIRTH_ORDER: string = "BirthOrder";
|
||||
static readonly BIRTH_TEXT: string = "BirthText";
|
||||
static readonly COMMON_NAME: string = "CommonName";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DEATH_DATE: string = "DeathDate";
|
||||
static readonly DEATH_TEXT: string = "DeathText";
|
||||
static readonly DUTY: string = "Duty";
|
||||
static readonly EDUCATION: string = "Education";
|
||||
static readonly FATHER_ID: string = "FatherId";
|
||||
static readonly GENDER: string = "Gender";
|
||||
static readonly GENEALOGY_NAME: string = "GenealogyName";
|
||||
static readonly GRADUATION_STATUS: string = "GraduationStatus";
|
||||
static readonly HAO: string = "Hao";
|
||||
static readonly INTRODUCTION: string = "Introduction";
|
||||
static readonly IS_BIND_USER: string = "IsBindUser";
|
||||
static readonly LIVE_STATUS: string = "LiveStatus";
|
||||
static readonly MAJOR: string = "Major";
|
||||
static readonly MARITAL_STATUS: string = "MaritalStatus";
|
||||
static readonly MOTHER_NAME: string = "MotherName";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly PRIVACY: string = "Privacy";
|
||||
static readonly SCHOOL: string = "School";
|
||||
static readonly SURNAME: string = "Surname";
|
||||
static readonly TITLE: string = "Title";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly ZI: string = "Zi";
|
||||
static readonly DB_NAME_FAMILY_PERSON: string = "family_person";
|
||||
static readonly DB_NAME_FIELDS: string = "alias,avatar_filename,bind_user_id,birth_date,birth_order,birth_text,common_name,created_by,created_datetime,death_date,death_text,duty,education,father_id,gender,genealogy_name,graduation_status,hao,introduction,is_bind_user,live_status,major,marital_status,mother_name,person_id,privacy,school,surname,title,tree_id,updated_by,updated_datetime,zi";
|
||||
static readonly DB_ALIAS: string = "alias";
|
||||
static readonly DB_AVATAR_FILENAME: string = "avatar_filename";
|
||||
static readonly DB_BIND_USER_ID: string = "bind_user_id";
|
||||
static readonly DB_BIRTH_DATE: string = "birth_date";
|
||||
static readonly DB_BIRTH_ORDER: string = "birth_order";
|
||||
static readonly DB_BIRTH_TEXT: string = "birth_text";
|
||||
static readonly DB_COMMON_NAME: string = "common_name";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DEATH_DATE: string = "death_date";
|
||||
static readonly DB_DEATH_TEXT: string = "death_text";
|
||||
static readonly DB_DUTY: string = "duty";
|
||||
static readonly DB_EDUCATION: string = "education";
|
||||
static readonly DB_FATHER_ID: string = "father_id";
|
||||
static readonly DB_GENDER: string = "gender";
|
||||
static readonly DB_GENEALOGY_NAME: string = "genealogy_name";
|
||||
static readonly DB_GRADUATION_STATUS: string = "graduation_status";
|
||||
static readonly DB_HAO: string = "hao";
|
||||
static readonly DB_INTRODUCTION: string = "introduction";
|
||||
static readonly DB_IS_BIND_USER: string = "is_bind_user";
|
||||
static readonly DB_LIVE_STATUS: string = "live_status";
|
||||
static readonly DB_MAJOR: string = "major";
|
||||
static readonly DB_MARITAL_STATUS: string = "marital_status";
|
||||
static readonly DB_MOTHER_NAME: string = "mother_name";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_PRIVACY: string = "privacy";
|
||||
static readonly DB_SCHOOL: string = "school";
|
||||
static readonly DB_SURNAME: string = "surname";
|
||||
static readonly DB_TITLE: string = "title";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_ZI: string = "zi";
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
export class FamilyPersonLogEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public LogId: number = 0;
|
||||
public PersonId: string = "";
|
||||
public AuditCode: string = "";
|
||||
public EventActor: string = "";
|
||||
public OldValue: string = "";
|
||||
public NewValue: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly LOG_ID: string = "LogId";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly AUDIT_CODE: string = "AuditCode";
|
||||
static readonly EVENT_ACTOR: string = "EventActor";
|
||||
static readonly OLD_VALUE: string = "OldValue";
|
||||
static readonly NEW_VALUE: string = "NewValue";
|
||||
static readonly DB_NAME_FAMILY_PERSON_LOG: string = "family_person_log";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,log_id,person_id,audit_code,event_actor,old_value,new_value";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_LOG_ID: string = "log_id";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_AUDIT_CODE: string = "audit_code";
|
||||
static readonly DB_EVENT_ACTOR: string = "event_actor";
|
||||
static readonly DB_OLD_VALUE: string = "old_value";
|
||||
static readonly DB_NEW_VALUE: string = "new_value";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import type { FamilyPersonEntity } from "./familyPersonEntity";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class FamilyPersonResultData extends SearchCriteriaResultData {
|
||||
public Datas: FamilyPersonEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class FamilyPersonSearchCriteria extends AbstractSearchCriteria {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
export class FamilyTreeChildrenMapEntity {
|
||||
public ChildrenId: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public Orderby: number = 0;
|
||||
public PersonId: string = "";
|
||||
public RelationType: string = "";
|
||||
public Remark: string = "";
|
||||
public SpouseId: string = "";
|
||||
public TreeId: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CHILDREN_ID: string = "ChildrenId";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly RELATION_TYPE: string = "RelationType";
|
||||
static readonly REMARK: string = "Remark";
|
||||
static readonly SPOUSE_ID: string = "SpouseId";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_FAMILY_TREE_CHILDREN_MAP: string = "family_tree_children_map";
|
||||
static readonly DB_NAME_FIELDS: string = "children_id,created_by,created_datetime,orderby,person_id,relation_type,remark,spouse_id,tree_id,updated_by,updated_datetime";
|
||||
static readonly DB_CHILDREN_ID: string = "children_id";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_RELATION_TYPE: string = "relation_type";
|
||||
static readonly DB_REMARK: string = "remark";
|
||||
static readonly DB_SPOUSE_ID: string = "spouse_id";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class FamilyTreeChildrenMapEntityKey {
|
||||
public ChildrenId: string = "";
|
||||
public PersonId: string = "";
|
||||
public TreeId: string = "";
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
export class FamilyTreeChildrenMapViewEntity {
|
||||
public ChildrenCommonName: string = "";
|
||||
public ChildrenGenealogyName: string = "";
|
||||
public ChildrenId: string = "";
|
||||
public ChildrenSurname: string = "";
|
||||
public CommonName: string = "";
|
||||
public Gender: string = "";
|
||||
public GenealogyName: string = "";
|
||||
public Orderby: number = 0;
|
||||
public PersonId: string = "";
|
||||
public RelationType: string = "";
|
||||
public Remark: string = "";
|
||||
public SpouseId: string = "";
|
||||
public Surname: string = "";
|
||||
public TreeId: string = "";
|
||||
|
||||
static readonly CHILDREN_COMMON_NAME: string = "ChildrenCommonName";
|
||||
static readonly CHILDREN_GENEALOGY_NAME: string = "ChildrenGenealogyName";
|
||||
static readonly CHILDREN_ID: string = "ChildrenId";
|
||||
static readonly CHILDREN_SURNAME: string = "ChildrenSurname";
|
||||
static readonly COMMON_NAME: string = "CommonName";
|
||||
static readonly GENDER: string = "Gender";
|
||||
static readonly GENEALOGY_NAME: string = "GenealogyName";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly RELATION_TYPE: string = "RelationType";
|
||||
static readonly REMARK: string = "Remark";
|
||||
static readonly SPOUSE_ID: string = "SpouseId";
|
||||
static readonly SURNAME: string = "Surname";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly DB_NAME_FAMILY_TREE_CHILDREN_MAP_VIEW: string = "family_tree_children_map_view";
|
||||
static readonly DB_NAME_FIELDS: string = "children_common_name,children_genealogy_name,children_id,children_surname,common_name,gender,genealogy_name,orderby,person_id,relation_type,remark,spouse_id,surname,tree_id";
|
||||
static readonly DB_CHILDREN_COMMON_NAME: string = "children_common_name";
|
||||
static readonly DB_CHILDREN_GENEALOGY_NAME: string = "children_genealogy_name";
|
||||
static readonly DB_CHILDREN_ID: string = "children_id";
|
||||
static readonly DB_CHILDREN_SURNAME: string = "children_surname";
|
||||
static readonly DB_COMMON_NAME: string = "common_name";
|
||||
static readonly DB_GENDER: string = "gender";
|
||||
static readonly DB_GENEALOGY_NAME: string = "genealogy_name";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_RELATION_TYPE: string = "relation_type";
|
||||
static readonly DB_REMARK: string = "remark";
|
||||
static readonly DB_SPOUSE_ID: string = "spouse_id";
|
||||
static readonly DB_SURNAME: string = "surname";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import type { FamilyTreePermissionUserViewEntity } from "./familyTreePermissionUserViewEntity";
|
||||
import { FamilyPersonData } from "./familyPersonData";
|
||||
import { FamilyTreeDisplayData } from "./familyTreeDisplayData";
|
||||
|
||||
export class FamilyTreeData {
|
||||
public FamilyTree: FamilyTreeDisplayData = new FamilyTreeDisplayData();
|
||||
public CurrentPerson: FamilyPersonData = new FamilyPersonData();
|
||||
public IsManager: boolean = false;
|
||||
public IsCanAmend: boolean = false;
|
||||
public FamilyTreePermissions: FamilyTreePermissionUserViewEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { FamilyTreeEntity } from "./familyTreeEntity";
|
||||
|
||||
export class FamilyTreeDisplayData extends FamilyTreeEntity {
|
||||
public AncestorPersonGenealogyName: string = "";
|
||||
public OrgTreeName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
export class FamilyTreeEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public TreeId: string = "";
|
||||
public TreeName: string = "";
|
||||
public Brief: string = "";
|
||||
public AncestorPersonId: string = "";
|
||||
public TreeCoverFilename: string = "";
|
||||
public PublicIndc: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly TREE_NAME: string = "TreeName";
|
||||
static readonly BRIEF: string = "Brief";
|
||||
static readonly ANCESTOR_PERSON_ID: string = "AncestorPersonId";
|
||||
static readonly TREE_COVER_FILENAME: string = "TreeCoverFilename";
|
||||
static readonly PUBLIC_INDC: string = "PublicIndc";
|
||||
static readonly DB_NAME_FAMILY_TREE: string = "family_tree";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,tree_id,tree_name,brief,ancestor_person_id,tree_cover_filename,public_indc";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_TREE_NAME: string = "tree_name";
|
||||
static readonly DB_BRIEF: string = "brief";
|
||||
static readonly DB_ANCESTOR_PERSON_ID: string = "ancestor_person_id";
|
||||
static readonly DB_TREE_COVER_FILENAME: string = "tree_cover_filename";
|
||||
static readonly DB_PUBLIC_INDC: string = "public_indc";
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
export class FamilyTreePermissionEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public ManagerIndc: string = "";
|
||||
public PersonId: string = "";
|
||||
public TreeId: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UserName: string = "";
|
||||
public ValidIndc: string = "";
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly MANAGER_INDC: string = "ManagerIndc";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly VALID_INDC: string = "ValidIndc";
|
||||
static readonly DB_NAME_FAMILY_TREE_PERMISSION: string = "family_tree_permission";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,manager_indc,person_id,tree_id,updated_by,updated_datetime,user_name,valid_indc";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_MANAGER_INDC: string = "manager_indc";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
static readonly DB_VALID_INDC: string = "valid_indc";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class FamilyTreePermissionEntityKey {
|
||||
public PersonId: string = "";
|
||||
public TreeId: string = "";
|
||||
public UserName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class FamilyTreePermissionUserViewEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public ManagerIndc: string = "";
|
||||
public PersonId: string = "";
|
||||
public PersonLocalName: string = "";
|
||||
public TreeId: string = "";
|
||||
public UserLocalName: string = "";
|
||||
public UserName: string = "";
|
||||
public ValidIndc: string = "";
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly MANAGER_INDC: string = "ManagerIndc";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly PERSON_LOCAL_NAME: string = "PersonLocalName";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly USER_LOCAL_NAME: string = "UserLocalName";
|
||||
static readonly USER_NAME: string = "UserName";
|
||||
static readonly VALID_INDC: string = "ValidIndc";
|
||||
static readonly DB_NAME_FAMILY_TREE_PERMISSION_USER_VIEW: string = "family_tree_permission_user_view";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,manager_indc,person_id,person_local_name,tree_id,user_local_name,user_name,valid_indc";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_MANAGER_INDC: string = "manager_indc";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_PERSON_LOCAL_NAME: string = "person_local_name";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_USER_LOCAL_NAME: string = "user_local_name";
|
||||
static readonly DB_USER_NAME: string = "user_name";
|
||||
static readonly DB_VALID_INDC: string = "valid_indc";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import type { FamilyTreeViewEntity } from "./familyTreeViewEntity";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class FamilyTreeResultData extends SearchCriteriaResultData {
|
||||
public Datas: FamilyTreeViewEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class FamilyTreeSearchCriteria extends AbstractSearchCriteria {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
export class FamilyTreeSpouseMapEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DivorceDate?: Date = null!;
|
||||
public DivorceDateText: string = "";
|
||||
public IsCurrent: string = "";
|
||||
public MarryDate?: Date = null!;
|
||||
public MarryDateText: string = "";
|
||||
public MarryType: string = "";
|
||||
public Orderby: number = 0;
|
||||
public PersonId: string = "";
|
||||
public Remark: string = "";
|
||||
public SpouseId: string = "";
|
||||
public TreeId: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DIVORCE_DATE: string = "DivorceDate";
|
||||
static readonly DIVORCE_DATE_TEXT: string = "DivorceDateText";
|
||||
static readonly IS_CURRENT: string = "IsCurrent";
|
||||
static readonly MARRY_DATE: string = "MarryDate";
|
||||
static readonly MARRY_DATE_TEXT: string = "MarryDateText";
|
||||
static readonly MARRY_TYPE: string = "MarryType";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly REMARK: string = "Remark";
|
||||
static readonly SPOUSE_ID: string = "SpouseId";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_FAMILY_TREE_SPOUSE_MAP: string = "family_tree_spouse_map";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,divorce_date,divorce_date_text,is_current,marry_date,marry_date_text,marry_type,orderby,person_id,remark,spouse_id,tree_id,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DIVORCE_DATE: string = "divorce_date";
|
||||
static readonly DB_DIVORCE_DATE_TEXT: string = "divorce_date_text";
|
||||
static readonly DB_IS_CURRENT: string = "is_current";
|
||||
static readonly DB_MARRY_DATE: string = "marry_date";
|
||||
static readonly DB_MARRY_DATE_TEXT: string = "marry_date_text";
|
||||
static readonly DB_MARRY_TYPE: string = "marry_type";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_REMARK: string = "remark";
|
||||
static readonly DB_SPOUSE_ID: string = "spouse_id";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class FamilyTreeSpouseMapEntityKey {
|
||||
public PersonId: string = "";
|
||||
public SpouseId: string = "";
|
||||
public TreeId: string = "";
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
export class FamilyTreeSpouseMapViewEntity {
|
||||
public CommonName: string = "";
|
||||
public DivorceDate?: Date = null!;
|
||||
public DivorceDateText: string = "";
|
||||
public Gender: string = "";
|
||||
public GenealogyName: string = "";
|
||||
public IsCurrent: string = "";
|
||||
public MarryDate?: Date = null!;
|
||||
public MarryDateText: string = "";
|
||||
public MarryType: string = "";
|
||||
public Orderby: number = 0;
|
||||
public PersonId: string = "";
|
||||
public Remark: string = "";
|
||||
public SpouseCommonName: string = "";
|
||||
public SpouseGenealogyName: string = "";
|
||||
public SpouseId: string = "";
|
||||
public SpouseSurname: string = "";
|
||||
public Surname: string = "";
|
||||
public TreeId: string = "";
|
||||
|
||||
static readonly COMMON_NAME: string = "CommonName";
|
||||
static readonly DIVORCE_DATE: string = "DivorceDate";
|
||||
static readonly DIVORCE_DATE_TEXT: string = "DivorceDateText";
|
||||
static readonly GENDER: string = "Gender";
|
||||
static readonly GENEALOGY_NAME: string = "GenealogyName";
|
||||
static readonly IS_CURRENT: string = "IsCurrent";
|
||||
static readonly MARRY_DATE: string = "MarryDate";
|
||||
static readonly MARRY_DATE_TEXT: string = "MarryDateText";
|
||||
static readonly MARRY_TYPE: string = "MarryType";
|
||||
static readonly ORDERBY: string = "Orderby";
|
||||
static readonly PERSON_ID: string = "PersonId";
|
||||
static readonly REMARK: string = "Remark";
|
||||
static readonly SPOUSE_COMMON_NAME: string = "SpouseCommonName";
|
||||
static readonly SPOUSE_GENEALOGY_NAME: string = "SpouseGenealogyName";
|
||||
static readonly SPOUSE_ID: string = "SpouseId";
|
||||
static readonly SPOUSE_SURNAME: string = "SpouseSurname";
|
||||
static readonly SURNAME: string = "Surname";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly DB_NAME_FAMILY_TREE_SPOUSE_MAP_VIEW: string = "family_tree_spouse_map_view";
|
||||
static readonly DB_NAME_FIELDS: string = "common_name,divorce_date,divorce_date_text,gender,genealogy_name,is_current,marry_date,marry_date_text,marry_type,orderby,person_id,remark,spouse_common_name,spouse_genealogy_name,spouse_id,spouse_surname,surname,tree_id";
|
||||
static readonly DB_COMMON_NAME: string = "common_name";
|
||||
static readonly DB_DIVORCE_DATE: string = "divorce_date";
|
||||
static readonly DB_DIVORCE_DATE_TEXT: string = "divorce_date_text";
|
||||
static readonly DB_GENDER: string = "gender";
|
||||
static readonly DB_GENEALOGY_NAME: string = "genealogy_name";
|
||||
static readonly DB_IS_CURRENT: string = "is_current";
|
||||
static readonly DB_MARRY_DATE: string = "marry_date";
|
||||
static readonly DB_MARRY_DATE_TEXT: string = "marry_date_text";
|
||||
static readonly DB_MARRY_TYPE: string = "marry_type";
|
||||
static readonly DB_ORDERBY: string = "orderby";
|
||||
static readonly DB_PERSON_ID: string = "person_id";
|
||||
static readonly DB_REMARK: string = "remark";
|
||||
static readonly DB_SPOUSE_COMMON_NAME: string = "spouse_common_name";
|
||||
static readonly DB_SPOUSE_GENEALOGY_NAME: string = "spouse_genealogy_name";
|
||||
static readonly DB_SPOUSE_ID: string = "spouse_id";
|
||||
static readonly DB_SPOUSE_SURNAME: string = "spouse_surname";
|
||||
static readonly DB_SURNAME: string = "surname";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
export class FamilyTreeViewEntity {
|
||||
public AncestorPersonId: string = "";
|
||||
public Brief: string = "";
|
||||
public CommonName: string = "";
|
||||
public GenealogyName: string = "";
|
||||
public PublicIndc: string = "";
|
||||
public Surname: string = "";
|
||||
public TreeId: string = "";
|
||||
public TreeName: string = "";
|
||||
|
||||
static readonly ANCESTOR_PERSON_ID: string = "AncestorPersonId";
|
||||
static readonly BRIEF: string = "Brief";
|
||||
static readonly COMMON_NAME: string = "CommonName";
|
||||
static readonly GENEALOGY_NAME: string = "GenealogyName";
|
||||
static readonly PUBLIC_INDC: string = "PublicIndc";
|
||||
static readonly SURNAME: string = "Surname";
|
||||
static readonly TREE_ID: string = "TreeId";
|
||||
static readonly TREE_NAME: string = "TreeName";
|
||||
static readonly DB_NAME_FAMILY_TREE_VIEW: string = "family_tree_view";
|
||||
static readonly DB_NAME_FIELDS: string = "ancestor_person_id,brief,common_name,genealogy_name,public_indc,surname,tree_id,tree_name";
|
||||
static readonly DB_ANCESTOR_PERSON_ID: string = "ancestor_person_id";
|
||||
static readonly DB_BRIEF: string = "brief";
|
||||
static readonly DB_COMMON_NAME: string = "common_name";
|
||||
static readonly DB_GENEALOGY_NAME: string = "genealogy_name";
|
||||
static readonly DB_PUBLIC_INDC: string = "public_indc";
|
||||
static readonly DB_SURNAME: string = "surname";
|
||||
static readonly DB_TREE_ID: string = "tree_id";
|
||||
static readonly DB_TREE_NAME: string = "tree_name";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export class FinishBiometricLoginData {
|
||||
public Username: string = "";
|
||||
public AssertionJson: string = "";
|
||||
public RequestOptionsJson: string = "";
|
||||
public ChallengeId: string = "";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class FinishBiometricRegistrationData {
|
||||
public AttestationJson: string = "";
|
||||
public CreationOptionsJson: string = "";
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export class GridColumnInfo {
|
||||
public title: string = "";
|
||||
public dataIndex: string = "";
|
||||
public sequence: number = 0;
|
||||
public align: string = "";
|
||||
public hidden: string = "";
|
||||
public format: string = "";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class JwtInfo {
|
||||
public AccessToken: string = "";
|
||||
public RefreshToken: string = "";
|
||||
public CreatedTime: Date = new Date();
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import type { LocaleDisplayData } from "./localeDisplayData";
|
||||
|
||||
export class LocaleData {
|
||||
public Inserts: LocaleDisplayData[] = [];
|
||||
public Updates: LocaleDisplayData[] = [];
|
||||
public Deletes: LocaleDisplayData[] = [];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { LocaleEntity } from "./localeEntity";
|
||||
|
||||
export class LocaleDisplayData extends LocaleEntity {
|
||||
public OrgGroupName: string = "";
|
||||
public OrgLang: string = "";
|
||||
public OrgName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
export class LocaleEntity {
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public CreatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public UpdatedBy: string = "";
|
||||
public GroupName: string = "";
|
||||
public Lang: string = "";
|
||||
public Name: string = "";
|
||||
public Value: string = "";
|
||||
public OrderBy: number = 0;
|
||||
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly GROUP_NAME: string = "GroupName";
|
||||
static readonly LANG: string = "Lang";
|
||||
static readonly NAME: string = "Name";
|
||||
static readonly VALUE: string = "Value";
|
||||
static readonly ORDER_BY: string = "OrderBy";
|
||||
static readonly DB_NAME_LOCALE: string = "locale";
|
||||
static readonly DB_NAME_FIELDS: string = "created_datetime,created_by,updated_datetime,updated_by,group_name,lang,name,value,order_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_GROUP_NAME: string = "group_name";
|
||||
static readonly DB_LANG: string = "lang";
|
||||
static readonly DB_NAME: string = "name";
|
||||
static readonly DB_VALUE: string = "value";
|
||||
static readonly DB_ORDER_BY: string = "order_by";
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export class LocaleEntityKey {
|
||||
public GroupName: string = "";
|
||||
public Lang: string = "";
|
||||
public Name: string = "";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import type { LocaleDisplayData } from "./localeDisplayData";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class LocaleResultData extends SearchCriteriaResultData {
|
||||
public Datas: LocaleDisplayData[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class LocaleSearchCriteria extends AbstractSearchCriteria {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
export class LoginData {
|
||||
public UserName: string = "";
|
||||
public AgentUserName: string = "";
|
||||
public UserMobile: string = "";
|
||||
public UserPassword: string = "";
|
||||
public RsaUserPassword: string = "";
|
||||
public Guid: string = "";
|
||||
public Culture: string = "";
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
import { JwtInfo } from "./jwtInfo";
|
||||
import { SecurityUserPermissionInfo } from "./securityUserPermissionInfo";
|
||||
|
||||
export class LoginProfile {
|
||||
public Token: JwtInfo = new JwtInfo();
|
||||
public UserType: string = "";
|
||||
public Username: string = "";
|
||||
public UserLocalName: string = "";
|
||||
public UserEngName: string = "";
|
||||
public UserMobile: string = "";
|
||||
public PermissionInfo: SecurityUserPermissionInfo = new SecurityUserPermissionInfo();
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import type { PublishAudioDetailDisplayData } from "./publishAudioDetailDisplayData";
|
||||
import type { PublishAudioFamilyGroupEntity } from "./publishAudioFamilyGroupEntity";
|
||||
import { PublishAudioEntity } from "./publishAudioEntity";
|
||||
|
||||
export class PublishAudioData {
|
||||
public PublishAudio: PublishAudioEntity = new PublishAudioEntity();
|
||||
public Details: PublishAudioDetailDisplayData[] = [];
|
||||
public FamilyGroups: PublishAudioFamilyGroupEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import { PublishAudioDetailEntity } from "./publishAudioDetailEntity";
|
||||
|
||||
export class PublishAudioDetailDisplayData extends PublishAudioDetailEntity {
|
||||
public FormattedUrl: string = "";
|
||||
public FormattedPic: string = "";
|
||||
public FormattedLrc: string = "";
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
export class PublishAudioDetailEntity {
|
||||
public Author: string = "";
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DetailId: number = 0;
|
||||
public Lrc: string = "";
|
||||
public Notice: string = "";
|
||||
public OrderBy: number = 0;
|
||||
public OwnerName: string = "";
|
||||
public Pic: string = "";
|
||||
public PublishName: string = "";
|
||||
public Title: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
public Url: string = "";
|
||||
|
||||
static readonly AUTHOR: string = "Author";
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DETAIL_ID: string = "DetailId";
|
||||
static readonly LRC: string = "Lrc";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly ORDER_BY: string = "OrderBy";
|
||||
static readonly OWNER_NAME: string = "OwnerName";
|
||||
static readonly PIC: string = "Pic";
|
||||
static readonly PUBLISH_NAME: string = "PublishName";
|
||||
static readonly TITLE: string = "Title";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly URL: string = "Url";
|
||||
static readonly DB_NAME_PUBLISH_AUDIO_DETAIL: string = "publish_audio_detail";
|
||||
static readonly DB_NAME_FIELDS: string = "author,created_by,created_datetime,detail_id,lrc,notice,order_by,owner_name,pic,publish_name,title,updated_by,updated_datetime,url";
|
||||
static readonly DB_AUTHOR: string = "author";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DETAIL_ID: string = "detail_id";
|
||||
static readonly DB_LRC: string = "lrc";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_ORDER_BY: string = "order_by";
|
||||
static readonly DB_OWNER_NAME: string = "owner_name";
|
||||
static readonly DB_PIC: string = "pic";
|
||||
static readonly DB_PUBLISH_NAME: string = "publish_name";
|
||||
static readonly DB_TITLE: string = "title";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
static readonly DB_URL: string = "url";
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
export class PublishAudioEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DefaultIndc: string = "";
|
||||
public ExpireDatetime: Date = new Date();
|
||||
public Notice: string = "";
|
||||
public OpenIndc: string = "";
|
||||
public OrderBy: number = 0;
|
||||
public OwnerName: string = "";
|
||||
public PublishLocalName: string = "";
|
||||
public PublishName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DEFAULT_INDC: string = "DefaultIndc";
|
||||
static readonly EXPIRE_DATETIME: string = "ExpireDatetime";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly OPEN_INDC: string = "OpenIndc";
|
||||
static readonly ORDER_BY: string = "OrderBy";
|
||||
static readonly OWNER_NAME: string = "OwnerName";
|
||||
static readonly PUBLISH_LOCAL_NAME: string = "PublishLocalName";
|
||||
static readonly PUBLISH_NAME: string = "PublishName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_PUBLISH_AUDIO: string = "publish_audio";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,default_indc,expire_datetime,notice,open_indc,order_by,owner_name,publish_local_name,publish_name,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DEFAULT_INDC: string = "default_indc";
|
||||
static readonly DB_EXPIRE_DATETIME: string = "expire_datetime";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_OPEN_INDC: string = "open_indc";
|
||||
static readonly DB_ORDER_BY: string = "order_by";
|
||||
static readonly DB_OWNER_NAME: string = "owner_name";
|
||||
static readonly DB_PUBLISH_LOCAL_NAME: string = "publish_local_name";
|
||||
static readonly DB_PUBLISH_NAME: string = "publish_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import { PublishAudioFamilyGroupEntity } from "./publishAudioFamilyGroupEntity";
|
||||
|
||||
export class PublishAudioFamilyGroupDisplayData extends PublishAudioFamilyGroupEntity {
|
||||
public FamilyLocalName: string = "";
|
||||
public Notice: string = "";
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
export class PublishAudioFamilyGroupEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public FamilyName: string = "";
|
||||
public PublishName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly FAMILY_NAME: string = "FamilyName";
|
||||
static readonly PUBLISH_NAME: string = "PublishName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_PUBLISH_AUDIO_FAMILY_GROUP: string = "publish_audio_family_group";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,family_name,publish_name,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_FAMILY_NAME: string = "family_name";
|
||||
static readonly DB_PUBLISH_NAME: string = "publish_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class PublishAudioFamilyGroupEntityKey {
|
||||
public FamilyName: string = "";
|
||||
public PublishName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
import type { PublishAudioEntity } from "./publishAudioEntity";
|
||||
import { SearchCriteriaResultData } from "./searchCriteriaResultData";
|
||||
|
||||
export class PublishAudioResultData extends SearchCriteriaResultData {
|
||||
public Datas: PublishAudioEntity[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { AbstractSearchCriteria } from "./abstractSearchCriteria";
|
||||
|
||||
export class PublishAudioSearchCriteria extends AbstractSearchCriteria {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
export class PublishData {
|
||||
public FileId: number = 0;
|
||||
public PublishName: string = "";
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
import type { PublishPhotoDetailDisplayData } from "./publishPhotoDetailDisplayData";
|
||||
import type { PublishPhotoFamilyGroupDisplayData } from "./publishPhotoFamilyGroupDisplayData";
|
||||
import { PublishPhotoEntity } from "./publishPhotoEntity";
|
||||
|
||||
export class PublishPhotoData {
|
||||
public PublishPhoto: PublishPhotoEntity = new PublishPhotoEntity();
|
||||
public Details: PublishPhotoDetailDisplayData[] = [];
|
||||
public FamilyGroups: PublishPhotoFamilyGroupDisplayData[] = [];
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { PublishPhotoDetailEntity } from "./publishPhotoDetailEntity";
|
||||
|
||||
export class PublishPhotoDetailDisplayData extends PublishPhotoDetailEntity {
|
||||
public FormattedPic: string = "";
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
export class PublishPhotoDetailEntity {
|
||||
public CreatedBy: string = "";
|
||||
public CreatedDatetime: Date = new Date();
|
||||
public DetailId: number = 0;
|
||||
public FileName: string = "";
|
||||
public Notice: string = "";
|
||||
public OrderBy: number = 0;
|
||||
public OwnerName: string = "";
|
||||
public PublishName: string = "";
|
||||
public UpdatedBy: string = "";
|
||||
public UpdatedDatetime: Date = new Date();
|
||||
|
||||
static readonly CREATED_BY: string = "CreatedBy";
|
||||
static readonly CREATED_DATETIME: string = "CreatedDatetime";
|
||||
static readonly DETAIL_ID: string = "DetailId";
|
||||
static readonly FILE_NAME: string = "FileName";
|
||||
static readonly NOTICE: string = "Notice";
|
||||
static readonly ORDER_BY: string = "OrderBy";
|
||||
static readonly OWNER_NAME: string = "OwnerName";
|
||||
static readonly PUBLISH_NAME: string = "PublishName";
|
||||
static readonly UPDATED_BY: string = "UpdatedBy";
|
||||
static readonly UPDATED_DATETIME: string = "UpdatedDatetime";
|
||||
static readonly DB_NAME_PUBLISH_PHOTO_DETAIL: string = "publish_photo_detail";
|
||||
static readonly DB_NAME_FIELDS: string = "created_by,created_datetime,detail_id,file_name,notice,order_by,owner_name,publish_name,updated_by,updated_datetime";
|
||||
static readonly DB_CREATED_BY: string = "created_by";
|
||||
static readonly DB_CREATED_DATETIME: string = "created_datetime";
|
||||
static readonly DB_DETAIL_ID: string = "detail_id";
|
||||
static readonly DB_FILE_NAME: string = "file_name";
|
||||
static readonly DB_NOTICE: string = "notice";
|
||||
static readonly DB_ORDER_BY: string = "order_by";
|
||||
static readonly DB_OWNER_NAME: string = "owner_name";
|
||||
static readonly DB_PUBLISH_NAME: string = "publish_name";
|
||||
static readonly DB_UPDATED_BY: string = "updated_by";
|
||||
static readonly DB_UPDATED_DATETIME: string = "updated_datetime";
|
||||
}
|
||||
Loaded 100 of 274 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user