Merge branch 'dev' into release
This commit is contained in:
commit
d548388b6c
|
|
@ -1,2 +1,2 @@
|
|||
declare const checkers: (import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "applicationPassport", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const checkers: (import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "applicationPassport", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default checkers;
|
||||
|
|
|
|||
|
|
@ -60,13 +60,6 @@ export default OakComponent({
|
|||
onTapItem(e) {
|
||||
const index = e.currentTarget.dataset.index;
|
||||
const url = this.props.list[index].pagePath;
|
||||
this.triggerEvent('oaktap', {
|
||||
index,
|
||||
item: this.props.list[index],
|
||||
});
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
// 切换路由
|
||||
this.switchTab({
|
||||
url,
|
||||
|
|
|
|||
|
|
@ -14,21 +14,21 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
type?: ButtonProps['type'] | AmButtonProps['type'];
|
||||
executeText?: string | undefined;
|
||||
buttonProps?: (ButtonProps & {
|
||||
color?: "success" | "warning" | "default" | "primary" | "danger" | undefined;
|
||||
color?: "primary" | "success" | "warning" | "default" | "danger" | undefined;
|
||||
fill?: "none" | "solid" | "outline" | undefined;
|
||||
size?: "small" | "middle" | "large" | "mini" | undefined;
|
||||
size?: "small" | "large" | "middle" | "mini" | undefined;
|
||||
block?: boolean | undefined;
|
||||
loading?: boolean | "auto" | undefined;
|
||||
loadingText?: string | undefined;
|
||||
loadingIcon?: import("react").ReactNode;
|
||||
disabled?: boolean | undefined;
|
||||
onClick?: ((event: import("react").MouseEvent<HTMLButtonElement, MouseEvent>) => unknown) | undefined;
|
||||
type?: "button" | "submit" | "reset" | undefined;
|
||||
type?: "reset" | "submit" | "button" | undefined;
|
||||
shape?: "default" | "rounded" | "rectangular" | undefined;
|
||||
children?: import("react").ReactNode;
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseDown" | "onMouseUp" | "onTouchEnd" | "onTouchStart"> & {
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseUp" | "onMouseDown" | "onTouchStart" | "onTouchEnd"> & {
|
||||
className?: string | undefined;
|
||||
style?: (import("react").CSSProperties & Partial<Record<"--background-color" | "--border-color" | "--text-color" | "--border-width" | "--border-radius" | "--border-style", string>>) | undefined;
|
||||
style?: (import("react").CSSProperties & Partial<Record<"--text-color" | "--background-color" | "--border-radius" | "--border-width" | "--border-style" | "--border-color", string>>) | undefined;
|
||||
tabIndex?: number | undefined;
|
||||
} & import("react").AriaAttributes) | undefined;
|
||||
afterCommit?: AfterCommit;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
entity: keyof EntityDict;
|
||||
entityFilter: any;
|
||||
relationIds: string[];
|
||||
rule: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "free";
|
||||
onPickRelations: (ids: string[]) => void;
|
||||
onPickRows: (ids: string[]) => void;
|
||||
pickedRowIds: string[] | undefined;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
claimUrl: string;
|
||||
qrCodeType: QrCodeType;
|
||||
multiple: boolean;
|
||||
rule: "all" | "single" | "free";
|
||||
ruleOnRow: "all" | "single" | "free";
|
||||
rule: "single" | "all" | "free";
|
||||
ruleOnRow: "single" | "all" | "free";
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@ export class BackendRuntimeContext extends BRC {
|
|||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
playerId: 1,
|
||||
},
|
||||
filter: {
|
||||
$or: [
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export interface Schema extends User {
|
|||
codes: Array<WechatQrCode>;
|
||||
isRoot?: Boolean;
|
||||
addresses?: Address[];
|
||||
hasPassword?: Boolean;
|
||||
}
|
||||
export type IdAction = 'verify' | 'accept' | 'reject';
|
||||
export type IdState = 'unverified' | 'verified' | 'verifying';
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ export const entityDesc = {
|
|||
codes: '微信分享二维码',
|
||||
isRoot: '是否超级用户',
|
||||
addresses: '收货地址',
|
||||
hasPassword: '用户是否存在密码'
|
||||
},
|
||||
action: {
|
||||
activate: '激活',
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
export declare const actionDefDict: {
|
||||
log: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
modi: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
oper: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
captcha: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import { actionDefDict as log } from "./Log/Action";
|
||||
import { actionDefDict as modi } from "./Modi/Action";
|
||||
import { actionDefDict as oper } from "./Oper/Action";
|
||||
import { actionDefDict as captcha } from "./Captcha/Action";
|
||||
import { actionDefDict as email } from "./Email/Action";
|
||||
import { actionDefDict as loginName } from "./LoginName/Action";
|
||||
|
|
@ -15,7 +17,9 @@ import { actionDefDict as wechatLogin } from "./WechatLogin/Action";
|
|||
import { actionDefDict as wechatMenu } from "./WechatMenu/Action";
|
||||
import { actionDefDict as wechatPublicTag } from "./WechatPublicTag/Action";
|
||||
export const actionDefDict = {
|
||||
log,
|
||||
modi,
|
||||
oper,
|
||||
captcha,
|
||||
email,
|
||||
loginName,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { EntityDef as ActionAuth } from "./ActionAuth/Schema";
|
||||
import { EntityDef as I18n } from "./I18n/Schema";
|
||||
import { EntityDef as Log } from "./Log/Schema";
|
||||
import { EntityDef as Modi } from "./Modi/Schema";
|
||||
import { EntityDef as ModiEntity } from "./ModiEntity/Schema";
|
||||
import { EntityDef as Oper } from "./Oper/Schema";
|
||||
|
|
@ -58,6 +59,7 @@ import { EntityDef as WechatUser } from "./WechatUser/Schema";
|
|||
export type EntityDict = {
|
||||
actionAuth: ActionAuth;
|
||||
i18n: I18n;
|
||||
log: Log;
|
||||
modi: Modi;
|
||||
modiEntity: ModiEntity;
|
||||
oper: Oper;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, MakeFilter, ExprOp, ExpressionKey, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { AppendOnlyAction } from "oak-domain/lib/actions/action";
|
||||
import { Action, ParticularAction, IState } from "./Action";
|
||||
import { String, Datetime } from "oak-domain/lib/types/DataType";
|
||||
import * as User from "../User/Schema";
|
||||
import * as Log from "../Log/Schema";
|
||||
import * as OperEntity from "../OperEntity/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
action: String<24>;
|
||||
|
|
@ -14,6 +15,9 @@ export type OpSchema = EntityShape & {
|
|||
operatorId?: ForeignKey<"user"> | null;
|
||||
targetEntity: String<32>;
|
||||
bornAt?: Datetime | null;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
undoData?: Object | null;
|
||||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
|
|
@ -24,7 +28,11 @@ export type Schema = EntityShape & {
|
|||
operatorId?: ForeignKey<"user"> | null;
|
||||
targetEntity: String<32>;
|
||||
bornAt?: Datetime | null;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
undoData?: Object | null;
|
||||
iState?: IState | null;
|
||||
operator?: User.Schema | null;
|
||||
log?: Log.Schema | null;
|
||||
operEntity$oper?: Array<OperEntity.Schema>;
|
||||
operEntity$oper$$aggr?: AggregationResult<OperEntity.Schema>;
|
||||
} & {
|
||||
|
|
@ -43,6 +51,10 @@ type AttrFilter = {
|
|||
operator: User.Filter;
|
||||
targetEntity: Q_StringValue;
|
||||
bornAt: Q_DateValue;
|
||||
logId: Q_StringValue;
|
||||
log: Log.Filter;
|
||||
undoData: Object;
|
||||
iState: Q_EnumValue<IState>;
|
||||
operEntity$oper: OperEntity.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
|
|
@ -61,6 +73,10 @@ export type Projection = {
|
|||
operator?: User.Projection;
|
||||
targetEntity?: number;
|
||||
bornAt?: number;
|
||||
logId?: number;
|
||||
log?: Log.Projection;
|
||||
undoData?: number | Object;
|
||||
iState?: number;
|
||||
operEntity$oper?: OperEntity.Selection & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
|
|
@ -74,6 +90,9 @@ type OperIdProjection = OneOf<{
|
|||
type UserIdProjection = OneOf<{
|
||||
operatorId: number;
|
||||
}>;
|
||||
type LogIdProjection = OneOf<{
|
||||
logId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
|
|
@ -92,6 +111,12 @@ export type SortAttr = {
|
|||
targetEntity: number;
|
||||
} | {
|
||||
bornAt: number;
|
||||
} | {
|
||||
logId: number;
|
||||
} | {
|
||||
log: Log.SortAttr;
|
||||
} | {
|
||||
iState: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
|
|
@ -103,7 +128,7 @@ export type Sorter = SortNode[];
|
|||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId">> & (({
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId" | "logId">> & (({
|
||||
operatorId?: never;
|
||||
operator?: User.CreateSingleOperation;
|
||||
} | {
|
||||
|
|
@ -112,13 +137,22 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId">> &
|
|||
} | {
|
||||
operator?: never;
|
||||
operatorId?: ForeignKey<"operator">;
|
||||
}) & ({
|
||||
logId?: never;
|
||||
log?: Log.CreateSingleOperation;
|
||||
} | {
|
||||
logId: ForeignKey<"log">;
|
||||
log?: Log.UpdateOperation;
|
||||
} | {
|
||||
log?: never;
|
||||
logId?: ForeignKey<"log">;
|
||||
})) & {
|
||||
operEntity$oper?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId">> & (({
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId" | "logId">> & (({
|
||||
operator?: User.CreateSingleOperation;
|
||||
operatorId?: never;
|
||||
} | {
|
||||
|
|
@ -130,22 +164,37 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId">> &
|
|||
} | {
|
||||
operator?: never;
|
||||
operatorId?: ForeignKey<"operator"> | null;
|
||||
}) & ({
|
||||
log?: Log.CreateSingleOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: Log.UpdateOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: Log.RemoveOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: never;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
operEntity$oper?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type UpdateOperation = OakOperation<"update" | ParticularAction | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
operator?: User.UpdateOperation | User.RemoveOperation;
|
||||
}) & ({
|
||||
log?: Log.UpdateOperation | Log.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type UserIdSubQuery = Selection<UserIdProjection>;
|
||||
export type LogIdSubQuery = Selection<LogIdProjection>;
|
||||
export type OperIdSubQuery = Selection<OperIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<AppendOnlyAction> | string;
|
||||
Action: OakMakeAction<Action> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
|
|
@ -154,5 +203,6 @@ export type EntityDef = {
|
|||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
ParticularAction: ParticularAction;
|
||||
};
|
||||
export {};
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { appendOnlyActions as actions } from "oak-domain/lib/actions/action";
|
||||
import { actions } from "./Action";
|
||||
export const desc = {
|
||||
attributes: {
|
||||
action: {
|
||||
|
|
@ -31,9 +31,20 @@ export const desc = {
|
|||
},
|
||||
bornAt: {
|
||||
type: "datetime"
|
||||
},
|
||||
logId: {
|
||||
type: "ref",
|
||||
ref: "log"
|
||||
},
|
||||
undoData: {
|
||||
type: "object"
|
||||
},
|
||||
iState: {
|
||||
type: "enum",
|
||||
enumeration: ["normal", "rollbacked"]
|
||||
}
|
||||
},
|
||||
actionType: "appendOnly",
|
||||
actionType: "crud",
|
||||
actions,
|
||||
indexes: [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{ "name": "操作", "attr": { "action": "动作", "data": "数据", "filter": "选择条件", "extra": "其它", "operator": "操作者", "targetEntity": "关联对象", "bornAt": "诞生时间" } }
|
||||
{ "name": "操作", "attr": { "action": "动作", "data": "数据", "filter": "选择条件", "extra": "其它", "operator": "操作者", "targetEntity": "关联对象", "bornAt": "诞生时间", "log": "关联日志", "undoData": "回滚数据", "iState": "状态" }, "action": { "undo": "回滚", "redo": "重做" }, "v": { "iState": { "normal": "正常的", "rollbacked": "已回滚" } } }
|
||||
|
|
|
|||
|
|
@ -186,6 +186,9 @@ export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
|||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "entityId" | "operId">> & (({
|
||||
operId?: never;
|
||||
oper: Oper.CreateSingleOperation;
|
||||
} | {
|
||||
operId: ForeignKey<"oper">;
|
||||
oper?: Oper.UpdateOperation;
|
||||
} | {
|
||||
oper?: never;
|
||||
operId: ForeignKey<"oper">;
|
||||
|
|
@ -344,6 +347,12 @@ export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
|||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "entityId" | "operId">> & (({
|
||||
oper?: Oper.CreateSingleOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: Oper.UpdateOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: Oper.RemoveOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: never;
|
||||
operId?: ForeignKey<"oper">;
|
||||
|
|
@ -414,7 +423,9 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
[k: string]: any;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & ({
|
||||
export type RemoveOperationData = {} & (({
|
||||
oper?: Oper.UpdateOperation | Oper.RemoveOperation;
|
||||
})) & ({
|
||||
user?: User.UpdateOperation | User.RemoveOperation;
|
||||
} | {
|
||||
userEntityGrant?: UserEntityGrant.UpdateOperation | UserEntityGrant.RemoveOperation;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { desc as actionAuthDesc } from "./ActionAuth/Storage";
|
||||
import { desc as i18nDesc } from "./I18n/Storage";
|
||||
import { desc as logDesc } from "./Log/Storage";
|
||||
import { desc as modiDesc } from "./Modi/Storage";
|
||||
import { desc as modiEntityDesc } from "./ModiEntity/Storage";
|
||||
import { desc as operDesc } from "./Oper/Storage";
|
||||
|
|
@ -58,6 +59,7 @@ import { desc as wechatUserDesc } from "./WechatUser/Storage";
|
|||
export const storageSchema = {
|
||||
actionAuth: actionAuthDesc,
|
||||
i18n: i18nDesc,
|
||||
log: logDesc,
|
||||
modi: modiDesc,
|
||||
modiEntity: modiEntityDesc,
|
||||
oper: operDesc,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
import { style as log } from "./Log/Style";
|
||||
import { style as modi } from "./Modi/Style";
|
||||
import { style as oper } from "./Oper/Style";
|
||||
import { style as application } from "./Application/Style";
|
||||
import { style as area } from "./Area/Style";
|
||||
import { style as captcha } from "./Captcha/Style";
|
||||
|
|
@ -25,7 +27,9 @@ import { style as wechatPublicTag } from "./WechatPublicTag/Style";
|
|||
import { style as wechatQrCode } from "./WechatQrCode/Style";
|
||||
import { style as wechatUser } from "./WechatUser/Style";
|
||||
export const styleDict = {
|
||||
log,
|
||||
modi,
|
||||
oper,
|
||||
application,
|
||||
area,
|
||||
captcha,
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ export type OpSchema = EntityShape & {
|
|||
idCardType?: ("ID-Card" | "passport" | "Mainland-passport") | null;
|
||||
idNumber?: String<32> | null;
|
||||
isRoot?: Boolean | null;
|
||||
hasPassword?: Boolean | null;
|
||||
idState?: IdState | null;
|
||||
userState?: UserState | null;
|
||||
};
|
||||
|
|
@ -53,6 +54,7 @@ export type Schema = EntityShape & {
|
|||
idCardType?: ("ID-Card" | "passport" | "Mainland-passport") | null;
|
||||
idNumber?: String<32> | null;
|
||||
isRoot?: Boolean | null;
|
||||
hasPassword?: Boolean | null;
|
||||
idState?: IdState | null;
|
||||
userState?: UserState | null;
|
||||
ref?: Schema | null;
|
||||
|
|
@ -123,6 +125,7 @@ type AttrFilter = {
|
|||
idCardType: Q_EnumValue<"ID-Card" | "passport" | "Mainland-passport">;
|
||||
idNumber: Q_StringValue;
|
||||
isRoot: Q_BooleanValue;
|
||||
hasPassword: Q_BooleanValue;
|
||||
idState: Q_EnumValue<IdState>;
|
||||
userState: Q_EnumValue<UserState>;
|
||||
oper$operator: Oper.Filter & SubQueryPredicateMetadata;
|
||||
|
|
@ -169,6 +172,7 @@ export type Projection = {
|
|||
idCardType?: number;
|
||||
idNumber?: number;
|
||||
isRoot?: number;
|
||||
hasPassword?: number;
|
||||
idState?: number;
|
||||
userState?: number;
|
||||
oper$operator?: Oper.Selection & {
|
||||
|
|
@ -350,6 +354,8 @@ export type SortAttr = {
|
|||
idNumber: number;
|
||||
} | {
|
||||
isRoot: number;
|
||||
} | {
|
||||
hasPassword: number;
|
||||
} | {
|
||||
idState: number;
|
||||
} | {
|
||||
|
|
@ -375,7 +381,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "refId">> & (({
|
|||
ref?: never;
|
||||
refId?: ForeignKey<"ref">;
|
||||
})) & {
|
||||
oper$operator?: OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">>>;
|
||||
oper$operator?: OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">> | OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">>>;
|
||||
user$ref?: OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">[]> | Array<OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">> | OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">>>;
|
||||
userEntityClaim$user?: OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">> | OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">>>;
|
||||
userRelation$user?: OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">> | OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">>>;
|
||||
|
|
@ -417,7 +423,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "refId">> & (({
|
|||
refId?: ForeignKey<"ref"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
oper$operator?: OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">>>;
|
||||
oper$operator?: OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<Oper.RemoveOperation["action"], Omit<Oper.RemoveOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">> | OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<Oper.RemoveOperation["action"], Omit<Oper.RemoveOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">>>;
|
||||
user$ref?: OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<RemoveOperation["action"], Omit<RemoveOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">[]> | Array<OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">> | OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<RemoveOperation["action"], Omit<RemoveOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">>>;
|
||||
userEntityClaim$user?: OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<UserEntityClaim.RemoveOperation["action"], Omit<UserEntityClaim.RemoveOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">> | OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<UserEntityClaim.RemoveOperation["action"], Omit<UserEntityClaim.RemoveOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">>>;
|
||||
userRelation$user?: OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<UserRelation.RemoveOperation["action"], Omit<UserRelation.RemoveOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">> | OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<UserRelation.RemoveOperation["action"], Omit<UserRelation.RemoveOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">>>;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,9 @@ export const desc = {
|
|||
isRoot: {
|
||||
type: "boolean"
|
||||
},
|
||||
hasPassword: {
|
||||
type: "boolean"
|
||||
},
|
||||
idState: {
|
||||
type: "enum",
|
||||
enumeration: ["unverified", "verified", "verifying"]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{ "name": "用户", "attr": { "name": "姓名", "nickname": "昵称", "birth": "生日", "password": "密码", "passwordSha1": "sha1加密密码", "gender": "性别", "idCardType": "证件类型", "idNumber": "证件号码", "ref": "指向用户", "files": "相关文件", "userState": "用户状态", "idState": "认证状态", "codes": "微信分享二维码", "isRoot": "是否超级用户", "addresses": "收货地址" }, "action": { "activate": "激活", "accept": "同意", "verify": "认证", "reject": "拒绝", "enable": "启用", "disable": "禁用", "mergeTo": "合并", "mergeFrom": "使合并" }, "v": { "userState": { "shadow": "未激活", "normal": "正常", "disabled": "禁用", "merged": "已被合并" }, "idState": { "unverified": "未认证", "verifying": "认证中", "verified": "已认证" }, "gender": { "male": "男", "female": "女" }, "idCardType": { "ID-Card": "身份证", "passport": "护照", "Mainland-passport": "港澳台通行证" } } }
|
||||
{ "name": "用户", "attr": { "name": "姓名", "nickname": "昵称", "birth": "生日", "password": "密码", "passwordSha1": "sha1加密密码", "gender": "性别", "idCardType": "证件类型", "idNumber": "证件号码", "ref": "指向用户", "files": "相关文件", "userState": "用户状态", "idState": "认证状态", "codes": "微信分享二维码", "isRoot": "是否超级用户", "addresses": "收货地址", "hasPassword": "用户是否存在密码" }, "action": { "activate": "激活", "accept": "同意", "verify": "认证", "reject": "拒绝", "enable": "启用", "disable": "禁用", "mergeTo": "合并", "mergeFrom": "使合并" }, "v": { "userState": { "shadow": "未激活", "normal": "正常", "disabled": "禁用", "merged": "已被合并" }, "idState": { "unverified": "未认证", "verifying": "认证中", "verified": "已认证" }, "gender": { "male": "男", "female": "女" }, "idCardType": { "ID-Card": "身份证", "passport": "护照", "Mainland-passport": "港澳台通行证" } } }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import * as ActionAuth from "./ActionAuth/Schema";
|
||||
import * as I18n from "./I18n/Schema";
|
||||
import * as Log from "./Log/Schema";
|
||||
import * as Modi from "./Modi/Schema";
|
||||
import * as ModiEntity from "./ModiEntity/Schema";
|
||||
import * as Oper from "./Oper/Schema";
|
||||
|
|
@ -65,6 +66,13 @@ export type I18nIdSubQuery = {
|
|||
entity: "i18n";
|
||||
}) | any;
|
||||
};
|
||||
export type LogIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Oper.LogIdSubQuery & {
|
||||
entity: "oper";
|
||||
}) | (Log.LogIdSubQuery & {
|
||||
entity: "log";
|
||||
}) | any;
|
||||
};
|
||||
export type ModiIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.ModiIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ const triggers = [
|
|||
if (!userData.nickname) {
|
||||
userData.nickname = randomName('user_', 8);
|
||||
}
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
userData.userSystem$user = [
|
||||
{
|
||||
id: await generateNewIdAsync(),
|
||||
|
|
@ -41,6 +44,29 @@ const triggers = [
|
|||
return 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '当用户更新信息带有密码时,将hasPassword附上true',
|
||||
entity: 'user',
|
||||
action: 'update',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context) => {
|
||||
const { data, filter } = operation;
|
||||
const setData = async (userData) => {
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
};
|
||||
if (data instanceof Array) {
|
||||
for (const item of data) {
|
||||
await setData(item);
|
||||
}
|
||||
}
|
||||
else {
|
||||
await setData(data);
|
||||
}
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '系统生成的第一个用户默认注册为root,用户的初始状态默认为shadow',
|
||||
entity: 'user',
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ const userProjection = {
|
|||
gender: 1,
|
||||
birth: 1,
|
||||
isRoot: 1,
|
||||
hasPassword: 1,
|
||||
extraFile$entity: {
|
||||
$entity: 'extraFile',
|
||||
data: {
|
||||
|
|
@ -37,27 +38,43 @@ const userProjection = {
|
|||
userId: 1,
|
||||
},
|
||||
},
|
||||
user$ref: {
|
||||
$entity: 'user',
|
||||
email$user: {
|
||||
$entity: 'email',
|
||||
data: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
mobile$user: {
|
||||
$entity: 'mobile',
|
||||
data: {
|
||||
id: 1,
|
||||
mobile: 1,
|
||||
userId: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
email: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
loginName$user: {
|
||||
$entity: 'loginName',
|
||||
data: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
// user$ref: {
|
||||
// $entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// mobile$user: {
|
||||
// $entity: 'mobile',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// mobile: 1,
|
||||
// userId: 1,
|
||||
// user: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
};
|
||||
export const tokenProjection = {
|
||||
id: 1,
|
||||
|
|
@ -94,6 +111,28 @@ export const tokenProjection = {
|
|||
refId: 1,
|
||||
},
|
||||
},
|
||||
email: {
|
||||
id: 1,
|
||||
email: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
loginName: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
export const applicationProjection = {
|
||||
id: 1,
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const checkers: (import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "applicationPassport", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const checkers: (import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "address", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "application", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "applicationPassport", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "token", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "user", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "mobile", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "message", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Checker<import("../oak-app-domain").EntityDict, "parasite", import("..").RuntimeCxt<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default checkers;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ class BackendRuntimeContext extends BackendRuntimeContext_1.BackendRuntimeContex
|
|||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
playerId: 1,
|
||||
},
|
||||
filter: {
|
||||
$or: [
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export interface Schema extends User {
|
|||
codes: Array<WechatQrCode>;
|
||||
isRoot?: Boolean;
|
||||
addresses?: Address[];
|
||||
hasPassword?: Boolean;
|
||||
}
|
||||
export type IdAction = 'verify' | 'accept' | 'reject';
|
||||
export type IdState = 'unverified' | 'verified' | 'verifying';
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ exports.entityDesc = {
|
|||
codes: '微信分享二维码',
|
||||
isRoot: '是否超级用户',
|
||||
addresses: '收货地址',
|
||||
hasPassword: '用户是否存在密码'
|
||||
},
|
||||
action: {
|
||||
activate: '激活',
|
||||
|
|
|
|||
|
|
@ -1,7 +1,13 @@
|
|||
export declare const actionDefDict: {
|
||||
log: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
modi: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
oper: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
captcha: {
|
||||
iState: import("oak-domain/lib/types").ActionDef<string, string>;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,37 +1,41 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.actionDefDict = void 0;
|
||||
const Action_1 = require("./Modi/Action");
|
||||
const Action_2 = require("./Captcha/Action");
|
||||
const Action_3 = require("./Email/Action");
|
||||
const Action_4 = require("./LoginName/Action");
|
||||
const Action_5 = require("./Message/Action");
|
||||
const Action_6 = require("./Mobile/Action");
|
||||
const Action_7 = require("./Notification/Action");
|
||||
const Action_8 = require("./Parasite/Action");
|
||||
const Action_9 = require("./ToDo/Action");
|
||||
const Action_10 = require("./Token/Action");
|
||||
const Action_11 = require("./User/Action");
|
||||
const Action_12 = require("./UserEntityGrant/Action");
|
||||
const Action_13 = require("./UserWechatPublicTag/Action");
|
||||
const Action_14 = require("./WechatLogin/Action");
|
||||
const Action_15 = require("./WechatMenu/Action");
|
||||
const Action_16 = require("./WechatPublicTag/Action");
|
||||
const Action_1 = require("./Log/Action");
|
||||
const Action_2 = require("./Modi/Action");
|
||||
const Action_3 = require("./Oper/Action");
|
||||
const Action_4 = require("./Captcha/Action");
|
||||
const Action_5 = require("./Email/Action");
|
||||
const Action_6 = require("./LoginName/Action");
|
||||
const Action_7 = require("./Message/Action");
|
||||
const Action_8 = require("./Mobile/Action");
|
||||
const Action_9 = require("./Notification/Action");
|
||||
const Action_10 = require("./Parasite/Action");
|
||||
const Action_11 = require("./ToDo/Action");
|
||||
const Action_12 = require("./Token/Action");
|
||||
const Action_13 = require("./User/Action");
|
||||
const Action_14 = require("./UserEntityGrant/Action");
|
||||
const Action_15 = require("./UserWechatPublicTag/Action");
|
||||
const Action_16 = require("./WechatLogin/Action");
|
||||
const Action_17 = require("./WechatMenu/Action");
|
||||
const Action_18 = require("./WechatPublicTag/Action");
|
||||
exports.actionDefDict = {
|
||||
modi: Action_1.actionDefDict,
|
||||
captcha: Action_2.actionDefDict,
|
||||
email: Action_3.actionDefDict,
|
||||
loginName: Action_4.actionDefDict,
|
||||
message: Action_5.actionDefDict,
|
||||
mobile: Action_6.actionDefDict,
|
||||
notification: Action_7.actionDefDict,
|
||||
parasite: Action_8.actionDefDict,
|
||||
toDo: Action_9.actionDefDict,
|
||||
token: Action_10.actionDefDict,
|
||||
user: Action_11.actionDefDict,
|
||||
userEntityGrant: Action_12.actionDefDict,
|
||||
userWechatPublicTag: Action_13.actionDefDict,
|
||||
wechatLogin: Action_14.actionDefDict,
|
||||
wechatMenu: Action_15.actionDefDict,
|
||||
wechatPublicTag: Action_16.actionDefDict
|
||||
log: Action_1.actionDefDict,
|
||||
modi: Action_2.actionDefDict,
|
||||
oper: Action_3.actionDefDict,
|
||||
captcha: Action_4.actionDefDict,
|
||||
email: Action_5.actionDefDict,
|
||||
loginName: Action_6.actionDefDict,
|
||||
message: Action_7.actionDefDict,
|
||||
mobile: Action_8.actionDefDict,
|
||||
notification: Action_9.actionDefDict,
|
||||
parasite: Action_10.actionDefDict,
|
||||
toDo: Action_11.actionDefDict,
|
||||
token: Action_12.actionDefDict,
|
||||
user: Action_13.actionDefDict,
|
||||
userEntityGrant: Action_14.actionDefDict,
|
||||
userWechatPublicTag: Action_15.actionDefDict,
|
||||
wechatLogin: Action_16.actionDefDict,
|
||||
wechatMenu: Action_17.actionDefDict,
|
||||
wechatPublicTag: Action_18.actionDefDict
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { EntityDef as ActionAuth } from "./ActionAuth/Schema";
|
||||
import { EntityDef as I18n } from "./I18n/Schema";
|
||||
import { EntityDef as Log } from "./Log/Schema";
|
||||
import { EntityDef as Modi } from "./Modi/Schema";
|
||||
import { EntityDef as ModiEntity } from "./ModiEntity/Schema";
|
||||
import { EntityDef as Oper } from "./Oper/Schema";
|
||||
|
|
@ -58,6 +59,7 @@ import { EntityDef as WechatUser } from "./WechatUser/Schema";
|
|||
export type EntityDict = {
|
||||
actionAuth: ActionAuth;
|
||||
i18n: I18n;
|
||||
log: Log;
|
||||
modi: Modi;
|
||||
modiEntity: ModiEntity;
|
||||
oper: Oper;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
import { ForeignKey } from "oak-domain/lib/types/DataType";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { Q_DateValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, MakeFilter, ExprOp, ExpressionKey, SubQueryPredicateMetadata } from "oak-domain/lib/types/Demand";
|
||||
import { OneOf } from "oak-domain/lib/types/Polyfill";
|
||||
import { FormCreateData, FormUpdateData, DeduceAggregation, Operation as OakOperation, Selection as OakSelection, MakeAction as OakMakeAction, AggregationResult, EntityShape } from "oak-domain/lib/types/Entity";
|
||||
import { AppendOnlyAction } from "oak-domain/lib/actions/action";
|
||||
import { Action, ParticularAction, IState } from "./Action";
|
||||
import { String, Datetime } from "oak-domain/lib/types/DataType";
|
||||
import * as User from "../User/Schema";
|
||||
import * as Log from "../Log/Schema";
|
||||
import * as OperEntity from "../OperEntity/Schema";
|
||||
export type OpSchema = EntityShape & {
|
||||
action: String<24>;
|
||||
|
|
@ -14,6 +15,9 @@ export type OpSchema = EntityShape & {
|
|||
operatorId?: ForeignKey<"user"> | null;
|
||||
targetEntity: String<32>;
|
||||
bornAt?: Datetime | null;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
undoData?: Object | null;
|
||||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = EntityShape & {
|
||||
|
|
@ -24,7 +28,11 @@ export type Schema = EntityShape & {
|
|||
operatorId?: ForeignKey<"user"> | null;
|
||||
targetEntity: String<32>;
|
||||
bornAt?: Datetime | null;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
undoData?: Object | null;
|
||||
iState?: IState | null;
|
||||
operator?: User.Schema | null;
|
||||
log?: Log.Schema | null;
|
||||
operEntity$oper?: Array<OperEntity.Schema>;
|
||||
operEntity$oper$$aggr?: AggregationResult<OperEntity.Schema>;
|
||||
} & {
|
||||
|
|
@ -43,6 +51,10 @@ type AttrFilter = {
|
|||
operator: User.Filter;
|
||||
targetEntity: Q_StringValue;
|
||||
bornAt: Q_DateValue;
|
||||
logId: Q_StringValue;
|
||||
log: Log.Filter;
|
||||
undoData: Object;
|
||||
iState: Q_EnumValue<IState>;
|
||||
operEntity$oper: OperEntity.Filter & SubQueryPredicateMetadata;
|
||||
};
|
||||
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
|
||||
|
|
@ -61,6 +73,10 @@ export type Projection = {
|
|||
operator?: User.Projection;
|
||||
targetEntity?: number;
|
||||
bornAt?: number;
|
||||
logId?: number;
|
||||
log?: Log.Projection;
|
||||
undoData?: number | Object;
|
||||
iState?: number;
|
||||
operEntity$oper?: OperEntity.Selection & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
|
|
@ -74,6 +90,9 @@ type OperIdProjection = OneOf<{
|
|||
type UserIdProjection = OneOf<{
|
||||
operatorId: number;
|
||||
}>;
|
||||
type LogIdProjection = OneOf<{
|
||||
logId: number;
|
||||
}>;
|
||||
export type SortAttr = {
|
||||
id: number;
|
||||
} | {
|
||||
|
|
@ -92,6 +111,12 @@ export type SortAttr = {
|
|||
targetEntity: number;
|
||||
} | {
|
||||
bornAt: number;
|
||||
} | {
|
||||
logId: number;
|
||||
} | {
|
||||
log: Log.SortAttr;
|
||||
} | {
|
||||
iState: number;
|
||||
} | {
|
||||
[k: string]: any;
|
||||
} | OneOf<ExprOp<OpAttr | string>>;
|
||||
|
|
@ -103,7 +128,7 @@ export type Sorter = SortNode[];
|
|||
export type SelectOperation<P extends Object = Projection> = OakSelection<"select", P, Filter, Sorter>;
|
||||
export type Selection<P extends Object = Projection> = SelectOperation<P>;
|
||||
export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId">> & (({
|
||||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId" | "logId">> & (({
|
||||
operatorId?: never;
|
||||
operator?: User.CreateSingleOperation;
|
||||
} | {
|
||||
|
|
@ -112,13 +137,22 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "operatorId">> &
|
|||
} | {
|
||||
operator?: never;
|
||||
operatorId?: ForeignKey<"operator">;
|
||||
}) & ({
|
||||
logId?: never;
|
||||
log?: Log.CreateSingleOperation;
|
||||
} | {
|
||||
logId: ForeignKey<"log">;
|
||||
log?: Log.UpdateOperation;
|
||||
} | {
|
||||
log?: never;
|
||||
logId?: ForeignKey<"log">;
|
||||
})) & {
|
||||
operEntity$oper?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">>>;
|
||||
};
|
||||
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
|
||||
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
|
||||
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId">> & (({
|
||||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId" | "logId">> & (({
|
||||
operator?: User.CreateSingleOperation;
|
||||
operatorId?: never;
|
||||
} | {
|
||||
|
|
@ -130,22 +164,37 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "operatorId">> &
|
|||
} | {
|
||||
operator?: never;
|
||||
operatorId?: ForeignKey<"operator"> | null;
|
||||
}) & ({
|
||||
log?: Log.CreateSingleOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: Log.UpdateOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: Log.RemoveOperation;
|
||||
logId?: never;
|
||||
} | {
|
||||
log?: never;
|
||||
logId?: ForeignKey<"log"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
operEntity$oper?: OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">[]> | Array<OakOperation<"create", Omit<OperEntity.CreateOperationData, "oper" | "operId">>>;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type UpdateOperation = OakOperation<"update" | ParticularAction | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & (({
|
||||
operator?: User.UpdateOperation | User.RemoveOperation;
|
||||
}) & ({
|
||||
log?: Log.UpdateOperation | Log.RemoveOperation;
|
||||
}));
|
||||
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
|
||||
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
|
||||
export type UserIdSubQuery = Selection<UserIdProjection>;
|
||||
export type LogIdSubQuery = Selection<LogIdProjection>;
|
||||
export type OperIdSubQuery = Selection<OperIdProjection>;
|
||||
export type EntityDef = {
|
||||
Schema: Schema;
|
||||
OpSchema: OpSchema;
|
||||
Action: OakMakeAction<AppendOnlyAction> | string;
|
||||
Action: OakMakeAction<Action> | string;
|
||||
Selection: Selection;
|
||||
Aggregation: Aggregation;
|
||||
Operation: Operation;
|
||||
|
|
@ -154,5 +203,6 @@ export type EntityDef = {
|
|||
Remove: RemoveOperation;
|
||||
CreateSingle: CreateSingleOperation;
|
||||
CreateMulti: CreateMultipleOperation;
|
||||
ParticularAction: ParticularAction;
|
||||
};
|
||||
export {};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.desc = void 0;
|
||||
const action_1 = require("oak-domain/lib/actions/action");
|
||||
const Action_1 = require("./Action");
|
||||
exports.desc = {
|
||||
attributes: {
|
||||
action: {
|
||||
|
|
@ -34,10 +34,21 @@ exports.desc = {
|
|||
},
|
||||
bornAt: {
|
||||
type: "datetime"
|
||||
},
|
||||
logId: {
|
||||
type: "ref",
|
||||
ref: "log"
|
||||
},
|
||||
undoData: {
|
||||
type: "object"
|
||||
},
|
||||
iState: {
|
||||
type: "enum",
|
||||
enumeration: ["normal", "rollbacked"]
|
||||
}
|
||||
},
|
||||
actionType: "appendOnly",
|
||||
actions: action_1.appendOnlyActions,
|
||||
actionType: "crud",
|
||||
actions: Action_1.actions,
|
||||
indexes: [
|
||||
{
|
||||
name: 'index_bornAt_operatorId',
|
||||
|
|
|
|||
|
|
@ -186,6 +186,9 @@ export type Aggregation = DeduceAggregation<Projection, Filter, Sorter>;
|
|||
export type CreateOperationData = FormCreateData<Omit<OpSchema, "entity" | "entityId" | "operId">> & (({
|
||||
operId?: never;
|
||||
oper: Oper.CreateSingleOperation;
|
||||
} | {
|
||||
operId: ForeignKey<"oper">;
|
||||
oper?: Oper.UpdateOperation;
|
||||
} | {
|
||||
oper?: never;
|
||||
operId: ForeignKey<"oper">;
|
||||
|
|
@ -344,6 +347,12 @@ export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
|
|||
export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "entityId" | "operId">> & (({
|
||||
oper?: Oper.CreateSingleOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: Oper.UpdateOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: Oper.RemoveOperation;
|
||||
operId?: never;
|
||||
} | {
|
||||
oper?: never;
|
||||
operId?: ForeignKey<"oper">;
|
||||
|
|
@ -414,7 +423,9 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "entity" | "enti
|
|||
[k: string]: any;
|
||||
};
|
||||
export type UpdateOperation = OakOperation<"update" | string, UpdateOperationData, Filter, Sorter>;
|
||||
export type RemoveOperationData = {} & ({
|
||||
export type RemoveOperationData = {} & (({
|
||||
oper?: Oper.UpdateOperation | Oper.RemoveOperation;
|
||||
})) & ({
|
||||
user?: User.UpdateOperation | User.RemoveOperation;
|
||||
} | {
|
||||
userEntityGrant?: UserEntityGrant.UpdateOperation | UserEntityGrant.RemoveOperation;
|
||||
|
|
|
|||
|
|
@ -3,117 +3,119 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
exports.storageSchema = void 0;
|
||||
const Storage_1 = require("./ActionAuth/Storage");
|
||||
const Storage_2 = require("./I18n/Storage");
|
||||
const Storage_3 = require("./Modi/Storage");
|
||||
const Storage_4 = require("./ModiEntity/Storage");
|
||||
const Storage_5 = require("./Oper/Storage");
|
||||
const Storage_6 = require("./OperEntity/Storage");
|
||||
const Storage_7 = require("./Path/Storage");
|
||||
const Storage_8 = require("./Relation/Storage");
|
||||
const Storage_9 = require("./RelationAuth/Storage");
|
||||
const Storage_10 = require("./User/Storage");
|
||||
const Storage_11 = require("./UserEntityClaim/Storage");
|
||||
const Storage_12 = require("./UserEntityGrant/Storage");
|
||||
const Storage_13 = require("./UserRelation/Storage");
|
||||
const Storage_14 = require("./Address/Storage");
|
||||
const Storage_15 = require("./Application/Storage");
|
||||
const Storage_16 = require("./ApplicationPassport/Storage");
|
||||
const Storage_17 = require("./Area/Storage");
|
||||
const Storage_18 = require("./Article/Storage");
|
||||
const Storage_19 = require("./ArticleMenu/Storage");
|
||||
const Storage_20 = require("./Captcha/Storage");
|
||||
const Storage_21 = require("./ChangePasswordTemp/Storage");
|
||||
const Storage_22 = require("./Domain/Storage");
|
||||
const Storage_23 = require("./Email/Storage");
|
||||
const Storage_24 = require("./ExtraFile/Storage");
|
||||
const Storage_25 = require("./Livestream/Storage");
|
||||
const Storage_26 = require("./LoginName/Storage");
|
||||
const Storage_27 = require("./Message/Storage");
|
||||
const Storage_28 = require("./MessageSystem/Storage");
|
||||
const Storage_29 = require("./MessageType/Storage");
|
||||
const Storage_30 = require("./MessageTypeSmsTemplate/Storage");
|
||||
const Storage_31 = require("./MessageTypeTemplate/Storage");
|
||||
const Storage_32 = require("./Mobile/Storage");
|
||||
const Storage_33 = require("./Notification/Storage");
|
||||
const Storage_34 = require("./Parasite/Storage");
|
||||
const Storage_35 = require("./Passport/Storage");
|
||||
const Storage_36 = require("./Platform/Storage");
|
||||
const Storage_37 = require("./ReadRemark/Storage");
|
||||
const Storage_38 = require("./Session/Storage");
|
||||
const Storage_39 = require("./SessionMessage/Storage");
|
||||
const Storage_40 = require("./SmsTemplate/Storage");
|
||||
const Storage_41 = require("./Station/Storage");
|
||||
const Storage_42 = require("./Subscription/Storage");
|
||||
const Storage_43 = require("./Subway/Storage");
|
||||
const Storage_44 = require("./SubwayStation/Storage");
|
||||
const Storage_45 = require("./System/Storage");
|
||||
const Storage_46 = require("./ToDo/Storage");
|
||||
const Storage_47 = require("./Token/Storage");
|
||||
const Storage_48 = require("./UserSystem/Storage");
|
||||
const Storage_49 = require("./UserWechatPublicTag/Storage");
|
||||
const Storage_50 = require("./WechatLogin/Storage");
|
||||
const Storage_51 = require("./WechatMenu/Storage");
|
||||
const Storage_52 = require("./WechatMpJump/Storage");
|
||||
const Storage_53 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_54 = require("./WechatPublicTag/Storage");
|
||||
const Storage_55 = require("./WechatQrCode/Storage");
|
||||
const Storage_56 = require("./WechatTemplate/Storage");
|
||||
const Storage_57 = require("./WechatUser/Storage");
|
||||
const Storage_3 = require("./Log/Storage");
|
||||
const Storage_4 = require("./Modi/Storage");
|
||||
const Storage_5 = require("./ModiEntity/Storage");
|
||||
const Storage_6 = require("./Oper/Storage");
|
||||
const Storage_7 = require("./OperEntity/Storage");
|
||||
const Storage_8 = require("./Path/Storage");
|
||||
const Storage_9 = require("./Relation/Storage");
|
||||
const Storage_10 = require("./RelationAuth/Storage");
|
||||
const Storage_11 = require("./User/Storage");
|
||||
const Storage_12 = require("./UserEntityClaim/Storage");
|
||||
const Storage_13 = require("./UserEntityGrant/Storage");
|
||||
const Storage_14 = require("./UserRelation/Storage");
|
||||
const Storage_15 = require("./Address/Storage");
|
||||
const Storage_16 = require("./Application/Storage");
|
||||
const Storage_17 = require("./ApplicationPassport/Storage");
|
||||
const Storage_18 = require("./Area/Storage");
|
||||
const Storage_19 = require("./Article/Storage");
|
||||
const Storage_20 = require("./ArticleMenu/Storage");
|
||||
const Storage_21 = require("./Captcha/Storage");
|
||||
const Storage_22 = require("./ChangePasswordTemp/Storage");
|
||||
const Storage_23 = require("./Domain/Storage");
|
||||
const Storage_24 = require("./Email/Storage");
|
||||
const Storage_25 = require("./ExtraFile/Storage");
|
||||
const Storage_26 = require("./Livestream/Storage");
|
||||
const Storage_27 = require("./LoginName/Storage");
|
||||
const Storage_28 = require("./Message/Storage");
|
||||
const Storage_29 = require("./MessageSystem/Storage");
|
||||
const Storage_30 = require("./MessageType/Storage");
|
||||
const Storage_31 = require("./MessageTypeSmsTemplate/Storage");
|
||||
const Storage_32 = require("./MessageTypeTemplate/Storage");
|
||||
const Storage_33 = require("./Mobile/Storage");
|
||||
const Storage_34 = require("./Notification/Storage");
|
||||
const Storage_35 = require("./Parasite/Storage");
|
||||
const Storage_36 = require("./Passport/Storage");
|
||||
const Storage_37 = require("./Platform/Storage");
|
||||
const Storage_38 = require("./ReadRemark/Storage");
|
||||
const Storage_39 = require("./Session/Storage");
|
||||
const Storage_40 = require("./SessionMessage/Storage");
|
||||
const Storage_41 = require("./SmsTemplate/Storage");
|
||||
const Storage_42 = require("./Station/Storage");
|
||||
const Storage_43 = require("./Subscription/Storage");
|
||||
const Storage_44 = require("./Subway/Storage");
|
||||
const Storage_45 = require("./SubwayStation/Storage");
|
||||
const Storage_46 = require("./System/Storage");
|
||||
const Storage_47 = require("./ToDo/Storage");
|
||||
const Storage_48 = require("./Token/Storage");
|
||||
const Storage_49 = require("./UserSystem/Storage");
|
||||
const Storage_50 = require("./UserWechatPublicTag/Storage");
|
||||
const Storage_51 = require("./WechatLogin/Storage");
|
||||
const Storage_52 = require("./WechatMenu/Storage");
|
||||
const Storage_53 = require("./WechatMpJump/Storage");
|
||||
const Storage_54 = require("./WechatPublicAutoReply/Storage");
|
||||
const Storage_55 = require("./WechatPublicTag/Storage");
|
||||
const Storage_56 = require("./WechatQrCode/Storage");
|
||||
const Storage_57 = require("./WechatTemplate/Storage");
|
||||
const Storage_58 = require("./WechatUser/Storage");
|
||||
exports.storageSchema = {
|
||||
actionAuth: Storage_1.desc,
|
||||
i18n: Storage_2.desc,
|
||||
modi: Storage_3.desc,
|
||||
modiEntity: Storage_4.desc,
|
||||
oper: Storage_5.desc,
|
||||
operEntity: Storage_6.desc,
|
||||
path: Storage_7.desc,
|
||||
relation: Storage_8.desc,
|
||||
relationAuth: Storage_9.desc,
|
||||
user: Storage_10.desc,
|
||||
userEntityClaim: Storage_11.desc,
|
||||
userEntityGrant: Storage_12.desc,
|
||||
userRelation: Storage_13.desc,
|
||||
address: Storage_14.desc,
|
||||
application: Storage_15.desc,
|
||||
applicationPassport: Storage_16.desc,
|
||||
area: Storage_17.desc,
|
||||
article: Storage_18.desc,
|
||||
articleMenu: Storage_19.desc,
|
||||
captcha: Storage_20.desc,
|
||||
changePasswordTemp: Storage_21.desc,
|
||||
domain: Storage_22.desc,
|
||||
email: Storage_23.desc,
|
||||
extraFile: Storage_24.desc,
|
||||
livestream: Storage_25.desc,
|
||||
loginName: Storage_26.desc,
|
||||
message: Storage_27.desc,
|
||||
messageSystem: Storage_28.desc,
|
||||
messageType: Storage_29.desc,
|
||||
messageTypeSmsTemplate: Storage_30.desc,
|
||||
messageTypeTemplate: Storage_31.desc,
|
||||
mobile: Storage_32.desc,
|
||||
notification: Storage_33.desc,
|
||||
parasite: Storage_34.desc,
|
||||
passport: Storage_35.desc,
|
||||
platform: Storage_36.desc,
|
||||
readRemark: Storage_37.desc,
|
||||
session: Storage_38.desc,
|
||||
sessionMessage: Storage_39.desc,
|
||||
smsTemplate: Storage_40.desc,
|
||||
station: Storage_41.desc,
|
||||
subscription: Storage_42.desc,
|
||||
subway: Storage_43.desc,
|
||||
subwayStation: Storage_44.desc,
|
||||
system: Storage_45.desc,
|
||||
toDo: Storage_46.desc,
|
||||
token: Storage_47.desc,
|
||||
userSystem: Storage_48.desc,
|
||||
userWechatPublicTag: Storage_49.desc,
|
||||
wechatLogin: Storage_50.desc,
|
||||
wechatMenu: Storage_51.desc,
|
||||
wechatMpJump: Storage_52.desc,
|
||||
wechatPublicAutoReply: Storage_53.desc,
|
||||
wechatPublicTag: Storage_54.desc,
|
||||
wechatQrCode: Storage_55.desc,
|
||||
wechatTemplate: Storage_56.desc,
|
||||
wechatUser: Storage_57.desc
|
||||
log: Storage_3.desc,
|
||||
modi: Storage_4.desc,
|
||||
modiEntity: Storage_5.desc,
|
||||
oper: Storage_6.desc,
|
||||
operEntity: Storage_7.desc,
|
||||
path: Storage_8.desc,
|
||||
relation: Storage_9.desc,
|
||||
relationAuth: Storage_10.desc,
|
||||
user: Storage_11.desc,
|
||||
userEntityClaim: Storage_12.desc,
|
||||
userEntityGrant: Storage_13.desc,
|
||||
userRelation: Storage_14.desc,
|
||||
address: Storage_15.desc,
|
||||
application: Storage_16.desc,
|
||||
applicationPassport: Storage_17.desc,
|
||||
area: Storage_18.desc,
|
||||
article: Storage_19.desc,
|
||||
articleMenu: Storage_20.desc,
|
||||
captcha: Storage_21.desc,
|
||||
changePasswordTemp: Storage_22.desc,
|
||||
domain: Storage_23.desc,
|
||||
email: Storage_24.desc,
|
||||
extraFile: Storage_25.desc,
|
||||
livestream: Storage_26.desc,
|
||||
loginName: Storage_27.desc,
|
||||
message: Storage_28.desc,
|
||||
messageSystem: Storage_29.desc,
|
||||
messageType: Storage_30.desc,
|
||||
messageTypeSmsTemplate: Storage_31.desc,
|
||||
messageTypeTemplate: Storage_32.desc,
|
||||
mobile: Storage_33.desc,
|
||||
notification: Storage_34.desc,
|
||||
parasite: Storage_35.desc,
|
||||
passport: Storage_36.desc,
|
||||
platform: Storage_37.desc,
|
||||
readRemark: Storage_38.desc,
|
||||
session: Storage_39.desc,
|
||||
sessionMessage: Storage_40.desc,
|
||||
smsTemplate: Storage_41.desc,
|
||||
station: Storage_42.desc,
|
||||
subscription: Storage_43.desc,
|
||||
subway: Storage_44.desc,
|
||||
subwayStation: Storage_45.desc,
|
||||
system: Storage_46.desc,
|
||||
toDo: Storage_47.desc,
|
||||
token: Storage_48.desc,
|
||||
userSystem: Storage_49.desc,
|
||||
userWechatPublicTag: Storage_50.desc,
|
||||
wechatLogin: Storage_51.desc,
|
||||
wechatMenu: Storage_52.desc,
|
||||
wechatMpJump: Storage_53.desc,
|
||||
wechatPublicAutoReply: Storage_54.desc,
|
||||
wechatPublicTag: Storage_55.desc,
|
||||
wechatQrCode: Storage_56.desc,
|
||||
wechatTemplate: Storage_57.desc,
|
||||
wechatUser: Storage_58.desc
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,57 +1,61 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.styleDict = void 0;
|
||||
const Style_1 = require("./Modi/Style");
|
||||
const Style_2 = require("./Application/Style");
|
||||
const Style_3 = require("./Area/Style");
|
||||
const Style_4 = require("./Captcha/Style");
|
||||
const Style_5 = require("./ChangePasswordTemp/Style");
|
||||
const Style_6 = require("./Domain/Style");
|
||||
const Style_7 = require("./Email/Style");
|
||||
const Style_8 = require("./ExtraFile/Style");
|
||||
const Style_9 = require("./Livestream/Style");
|
||||
const Style_10 = require("./LoginName/Style");
|
||||
const Style_11 = require("./Message/Style");
|
||||
const Style_12 = require("./Mobile/Style");
|
||||
const Style_13 = require("./Notification/Style");
|
||||
const Style_14 = require("./Parasite/Style");
|
||||
const Style_15 = require("./Passport/Style");
|
||||
const Style_16 = require("./SmsTemplate/Style");
|
||||
const Style_17 = require("./ToDo/Style");
|
||||
const Style_18 = require("./Token/Style");
|
||||
const Style_19 = require("./User/Style");
|
||||
const Style_20 = require("./UserEntityGrant/Style");
|
||||
const Style_21 = require("./UserWechatPublicTag/Style");
|
||||
const Style_22 = require("./WechatLogin/Style");
|
||||
const Style_23 = require("./WechatMenu/Style");
|
||||
const Style_24 = require("./WechatPublicTag/Style");
|
||||
const Style_25 = require("./WechatQrCode/Style");
|
||||
const Style_26 = require("./WechatUser/Style");
|
||||
const Style_1 = require("./Log/Style");
|
||||
const Style_2 = require("./Modi/Style");
|
||||
const Style_3 = require("./Oper/Style");
|
||||
const Style_4 = require("./Application/Style");
|
||||
const Style_5 = require("./Area/Style");
|
||||
const Style_6 = require("./Captcha/Style");
|
||||
const Style_7 = require("./ChangePasswordTemp/Style");
|
||||
const Style_8 = require("./Domain/Style");
|
||||
const Style_9 = require("./Email/Style");
|
||||
const Style_10 = require("./ExtraFile/Style");
|
||||
const Style_11 = require("./Livestream/Style");
|
||||
const Style_12 = require("./LoginName/Style");
|
||||
const Style_13 = require("./Message/Style");
|
||||
const Style_14 = require("./Mobile/Style");
|
||||
const Style_15 = require("./Notification/Style");
|
||||
const Style_16 = require("./Parasite/Style");
|
||||
const Style_17 = require("./Passport/Style");
|
||||
const Style_18 = require("./SmsTemplate/Style");
|
||||
const Style_19 = require("./ToDo/Style");
|
||||
const Style_20 = require("./Token/Style");
|
||||
const Style_21 = require("./User/Style");
|
||||
const Style_22 = require("./UserEntityGrant/Style");
|
||||
const Style_23 = require("./UserWechatPublicTag/Style");
|
||||
const Style_24 = require("./WechatLogin/Style");
|
||||
const Style_25 = require("./WechatMenu/Style");
|
||||
const Style_26 = require("./WechatPublicTag/Style");
|
||||
const Style_27 = require("./WechatQrCode/Style");
|
||||
const Style_28 = require("./WechatUser/Style");
|
||||
exports.styleDict = {
|
||||
modi: Style_1.style,
|
||||
application: Style_2.style,
|
||||
area: Style_3.style,
|
||||
captcha: Style_4.style,
|
||||
changePasswordTemp: Style_5.style,
|
||||
domain: Style_6.style,
|
||||
email: Style_7.style,
|
||||
extraFile: Style_8.style,
|
||||
livestream: Style_9.style,
|
||||
loginName: Style_10.style,
|
||||
message: Style_11.style,
|
||||
mobile: Style_12.style,
|
||||
notification: Style_13.style,
|
||||
parasite: Style_14.style,
|
||||
passport: Style_15.style,
|
||||
smsTemplate: Style_16.style,
|
||||
toDo: Style_17.style,
|
||||
token: Style_18.style,
|
||||
user: Style_19.style,
|
||||
userEntityGrant: Style_20.style,
|
||||
userWechatPublicTag: Style_21.style,
|
||||
wechatLogin: Style_22.style,
|
||||
wechatMenu: Style_23.style,
|
||||
wechatPublicTag: Style_24.style,
|
||||
wechatQrCode: Style_25.style,
|
||||
wechatUser: Style_26.style
|
||||
log: Style_1.style,
|
||||
modi: Style_2.style,
|
||||
oper: Style_3.style,
|
||||
application: Style_4.style,
|
||||
area: Style_5.style,
|
||||
captcha: Style_6.style,
|
||||
changePasswordTemp: Style_7.style,
|
||||
domain: Style_8.style,
|
||||
email: Style_9.style,
|
||||
extraFile: Style_10.style,
|
||||
livestream: Style_11.style,
|
||||
loginName: Style_12.style,
|
||||
message: Style_13.style,
|
||||
mobile: Style_14.style,
|
||||
notification: Style_15.style,
|
||||
parasite: Style_16.style,
|
||||
passport: Style_17.style,
|
||||
smsTemplate: Style_18.style,
|
||||
toDo: Style_19.style,
|
||||
token: Style_20.style,
|
||||
user: Style_21.style,
|
||||
userEntityGrant: Style_22.style,
|
||||
userWechatPublicTag: Style_23.style,
|
||||
wechatLogin: Style_24.style,
|
||||
wechatMenu: Style_25.style,
|
||||
wechatPublicTag: Style_26.style,
|
||||
wechatQrCode: Style_27.style,
|
||||
wechatUser: Style_28.style
|
||||
};
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ export type OpSchema = EntityShape & {
|
|||
idCardType?: ("ID-Card" | "passport" | "Mainland-passport") | null;
|
||||
idNumber?: String<32> | null;
|
||||
isRoot?: Boolean | null;
|
||||
hasPassword?: Boolean | null;
|
||||
idState?: IdState | null;
|
||||
userState?: UserState | null;
|
||||
};
|
||||
|
|
@ -53,6 +54,7 @@ export type Schema = EntityShape & {
|
|||
idCardType?: ("ID-Card" | "passport" | "Mainland-passport") | null;
|
||||
idNumber?: String<32> | null;
|
||||
isRoot?: Boolean | null;
|
||||
hasPassword?: Boolean | null;
|
||||
idState?: IdState | null;
|
||||
userState?: UserState | null;
|
||||
ref?: Schema | null;
|
||||
|
|
@ -123,6 +125,7 @@ type AttrFilter = {
|
|||
idCardType: Q_EnumValue<"ID-Card" | "passport" | "Mainland-passport">;
|
||||
idNumber: Q_StringValue;
|
||||
isRoot: Q_BooleanValue;
|
||||
hasPassword: Q_BooleanValue;
|
||||
idState: Q_EnumValue<IdState>;
|
||||
userState: Q_EnumValue<UserState>;
|
||||
oper$operator: Oper.Filter & SubQueryPredicateMetadata;
|
||||
|
|
@ -169,6 +172,7 @@ export type Projection = {
|
|||
idCardType?: number;
|
||||
idNumber?: number;
|
||||
isRoot?: number;
|
||||
hasPassword?: number;
|
||||
idState?: number;
|
||||
userState?: number;
|
||||
oper$operator?: Oper.Selection & {
|
||||
|
|
@ -350,6 +354,8 @@ export type SortAttr = {
|
|||
idNumber: number;
|
||||
} | {
|
||||
isRoot: number;
|
||||
} | {
|
||||
hasPassword: number;
|
||||
} | {
|
||||
idState: number;
|
||||
} | {
|
||||
|
|
@ -375,7 +381,7 @@ export type CreateOperationData = FormCreateData<Omit<OpSchema, "refId">> & (({
|
|||
ref?: never;
|
||||
refId?: ForeignKey<"ref">;
|
||||
})) & {
|
||||
oper$operator?: OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">>>;
|
||||
oper$operator?: OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">> | OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">>>;
|
||||
user$ref?: OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">[]> | Array<OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">> | OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">>>;
|
||||
userEntityClaim$user?: OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">> | OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">>>;
|
||||
userRelation$user?: OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">> | OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">>>;
|
||||
|
|
@ -417,7 +423,7 @@ export type UpdateOperationData = FormUpdateData<Omit<OpSchema, "refId">> & (({
|
|||
refId?: ForeignKey<"ref"> | null;
|
||||
})) & {
|
||||
[k: string]: any;
|
||||
oper$operator?: OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">>>;
|
||||
oper$operator?: OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<Oper.RemoveOperation["action"], Omit<Oper.RemoveOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">[]> | Array<OakOperation<"create", Omit<Oper.CreateOperationData, "operator" | "operatorId">> | OakOperation<Oper.UpdateOperation["action"], Omit<Oper.UpdateOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">> | OakOperation<Oper.RemoveOperation["action"], Omit<Oper.RemoveOperationData, "operator" | "operatorId">, Omit<Oper.Filter, "operator" | "operatorId">>>;
|
||||
user$ref?: OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<RemoveOperation["action"], Omit<RemoveOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">[]> | Array<OakOperation<"create", Omit<CreateOperationData, "ref" | "refId">> | OakOperation<UpdateOperation["action"], Omit<UpdateOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">> | OakOperation<RemoveOperation["action"], Omit<RemoveOperationData, "ref" | "refId">, Omit<Filter, "ref" | "refId">>>;
|
||||
userEntityClaim$user?: OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<UserEntityClaim.RemoveOperation["action"], Omit<UserEntityClaim.RemoveOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserEntityClaim.CreateOperationData, "user" | "userId">> | OakOperation<UserEntityClaim.UpdateOperation["action"], Omit<UserEntityClaim.UpdateOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">> | OakOperation<UserEntityClaim.RemoveOperation["action"], Omit<UserEntityClaim.RemoveOperationData, "user" | "userId">, Omit<UserEntityClaim.Filter, "user" | "userId">>>;
|
||||
userRelation$user?: OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<UserRelation.RemoveOperation["action"], Omit<UserRelation.RemoveOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">[]> | Array<OakOperation<"create", Omit<UserRelation.CreateOperationData, "user" | "userId">> | OakOperation<UserRelation.UpdateOperation["action"], Omit<UserRelation.UpdateOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">> | OakOperation<UserRelation.RemoveOperation["action"], Omit<UserRelation.RemoveOperationData, "user" | "userId">, Omit<UserRelation.Filter, "user" | "userId">>>;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,9 @@ exports.desc = {
|
|||
isRoot: {
|
||||
type: "boolean"
|
||||
},
|
||||
hasPassword: {
|
||||
type: "boolean"
|
||||
},
|
||||
idState: {
|
||||
type: "enum",
|
||||
enumeration: ["unverified", "verified", "verifying"]
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
{ "name": "用户", "attr": { "name": "姓名", "nickname": "昵称", "birth": "生日", "password": "密码", "passwordSha1": "sha1加密密码", "gender": "性别", "idCardType": "证件类型", "idNumber": "证件号码", "ref": "指向用户", "files": "相关文件", "userState": "用户状态", "idState": "认证状态", "codes": "微信分享二维码", "isRoot": "是否超级用户", "addresses": "收货地址" }, "action": { "activate": "激活", "accept": "同意", "verify": "认证", "reject": "拒绝", "enable": "启用", "disable": "禁用", "mergeTo": "合并", "mergeFrom": "使合并" }, "v": { "userState": { "shadow": "未激活", "normal": "正常", "disabled": "禁用", "merged": "已被合并" }, "idState": { "unverified": "未认证", "verifying": "认证中", "verified": "已认证" }, "gender": { "male": "男", "female": "女" }, "idCardType": { "ID-Card": "身份证", "passport": "护照", "Mainland-passport": "港澳台通行证" } } }
|
||||
{ "name": "用户", "attr": { "name": "姓名", "nickname": "昵称", "birth": "生日", "password": "密码", "passwordSha1": "sha1加密密码", "gender": "性别", "idCardType": "证件类型", "idNumber": "证件号码", "ref": "指向用户", "files": "相关文件", "userState": "用户状态", "idState": "认证状态", "codes": "微信分享二维码", "isRoot": "是否超级用户", "addresses": "收货地址", "hasPassword": "用户是否存在密码" }, "action": { "activate": "激活", "accept": "同意", "verify": "认证", "reject": "拒绝", "enable": "启用", "disable": "禁用", "mergeTo": "合并", "mergeFrom": "使合并" }, "v": { "userState": { "shadow": "未激活", "normal": "正常", "disabled": "禁用", "merged": "已被合并" }, "idState": { "unverified": "未认证", "verifying": "认证中", "verified": "已认证" }, "gender": { "male": "男", "female": "女" }, "idCardType": { "ID-Card": "身份证", "passport": "护照", "Mainland-passport": "港澳台通行证" } } }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import * as ActionAuth from "./ActionAuth/Schema";
|
||||
import * as I18n from "./I18n/Schema";
|
||||
import * as Log from "./Log/Schema";
|
||||
import * as Modi from "./Modi/Schema";
|
||||
import * as ModiEntity from "./ModiEntity/Schema";
|
||||
import * as Oper from "./Oper/Schema";
|
||||
|
|
@ -65,6 +66,13 @@ export type I18nIdSubQuery = {
|
|||
entity: "i18n";
|
||||
}) | any;
|
||||
};
|
||||
export type LogIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (Oper.LogIdSubQuery & {
|
||||
entity: "oper";
|
||||
}) | (Log.LogIdSubQuery & {
|
||||
entity: "log";
|
||||
}) | any;
|
||||
};
|
||||
export type ModiIdSubQuery = {
|
||||
[K in "$in" | "$nin"]?: (ModiEntity.ModiIdSubQuery & {
|
||||
entity: "modiEntity";
|
||||
|
|
|
|||
|
|
@ -1,2 +1,2 @@
|
|||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
declare const _default: (import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "message", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "address", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "application", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "article", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "articleMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "extraFile", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "user", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "userEntityGrant", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatQrCode", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "notification", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatLogin", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "parasite", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "sessionMessage", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMenu", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatPublicTag", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "wechatMpJump", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "system", import("..").BRC<import("../oak-app-domain").EntityDict>> | import("oak-domain/lib/types").Trigger<import("../oak-app-domain").EntityDict, "passport", import("..").BRC<import("../oak-app-domain").EntityDict>>)[];
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ export declare function createToDo<ED extends EntityDict & BaseEntityDict, T ext
|
|||
redirectTo: EntityDict['toDo']['OpSchema']['redirectTo'];
|
||||
entity: any;
|
||||
entityId: string;
|
||||
}, userIds?: string[]): Promise<0 | 1>;
|
||||
}, userIds?: string[]): Promise<1 | 0>;
|
||||
/**
|
||||
* 完成todo例程,当在entity对象上进行action操作时(操作条件是filter),将对应的todo完成
|
||||
* 必须在entity的action的后trigger中调用
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ const triggers = [
|
|||
if (!userData.nickname) {
|
||||
userData.nickname = (0, randomUser_1.randomName)('user_', 8);
|
||||
}
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
userData.userSystem$user = [
|
||||
{
|
||||
id: await (0, uuid_1.generateNewIdAsync)(),
|
||||
|
|
@ -43,6 +46,29 @@ const triggers = [
|
|||
return 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '当用户更新信息带有密码时,将hasPassword附上true',
|
||||
entity: 'user',
|
||||
action: 'update',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context) => {
|
||||
const { data, filter } = operation;
|
||||
const setData = async (userData) => {
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
};
|
||||
if (data instanceof Array) {
|
||||
for (const item of data) {
|
||||
await setData(item);
|
||||
}
|
||||
}
|
||||
else {
|
||||
await setData(data);
|
||||
}
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '系统生成的第一个用户默认注册为root,用户的初始状态默认为shadow',
|
||||
entity: 'user',
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ const userProjection = {
|
|||
gender: 1,
|
||||
birth: 1,
|
||||
isRoot: 1,
|
||||
hasPassword: 1,
|
||||
extraFile$entity: {
|
||||
$entity: 'extraFile',
|
||||
data: {
|
||||
|
|
@ -40,27 +41,43 @@ const userProjection = {
|
|||
userId: 1,
|
||||
},
|
||||
},
|
||||
user$ref: {
|
||||
$entity: 'user',
|
||||
email$user: {
|
||||
$entity: 'email',
|
||||
data: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
mobile$user: {
|
||||
$entity: 'mobile',
|
||||
data: {
|
||||
id: 1,
|
||||
mobile: 1,
|
||||
userId: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
email: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
loginName$user: {
|
||||
$entity: 'loginName',
|
||||
data: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
// user$ref: {
|
||||
// $entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// mobile$user: {
|
||||
// $entity: 'mobile',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// mobile: 1,
|
||||
// userId: 1,
|
||||
// user: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
};
|
||||
exports.tokenProjection = {
|
||||
id: 1,
|
||||
|
|
@ -97,6 +114,28 @@ exports.tokenProjection = {
|
|||
refId: 1,
|
||||
},
|
||||
},
|
||||
email: {
|
||||
id: 1,
|
||||
email: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
loginName: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
exports.applicationProjection = {
|
||||
id: 1,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "oak-general-business",
|
||||
"version": "5.4.1",
|
||||
"version": "5.5.0",
|
||||
"description": "oak框架中公共业务逻辑的实现",
|
||||
"author": {
|
||||
"name": "XuChang"
|
||||
|
|
@ -24,10 +24,10 @@
|
|||
"csstype": "^3.1.3",
|
||||
"dayjs": "^1.11.9",
|
||||
"nodemailer": "^6.9.14",
|
||||
"oak-common-aspect": "^3.0.1",
|
||||
"oak-domain": "^5.1.0",
|
||||
"oak-common-aspect": "^3.0.2",
|
||||
"oak-domain": "^5.1.1",
|
||||
"oak-external-sdk": "^2.3.3",
|
||||
"oak-frontend-base": "^5.3.6",
|
||||
"oak-frontend-base": "^5.3.8",
|
||||
"qrcode.react": "^3.1.0",
|
||||
"react-dnd": "^16.0.1",
|
||||
"react-dnd-html5-backend": "^16.0.1",
|
||||
|
|
|
|||
|
|
@ -75,18 +75,10 @@ export default OakComponent({
|
|||
/**
|
||||
* 事件:点击 tab 项
|
||||
*/
|
||||
onTapItem(e: { currentTarget: { dataset: { index: any } } }) {
|
||||
onTapItem(e: { currentTarget: { dataset: { index: number } } }) {
|
||||
const index = e.currentTarget.dataset.index;
|
||||
const url = this.props.list![index].pagePath;
|
||||
|
||||
this.triggerEvent('oaktap', {
|
||||
index,
|
||||
item: this.props.list![index],
|
||||
});
|
||||
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
// 切换路由
|
||||
this.switchTab({
|
||||
url,
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
id: 1,
|
||||
isRoot: 1,
|
||||
},
|
||||
playerId: 1,
|
||||
},
|
||||
filter: {
|
||||
$or: [
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ export interface Schema extends User {
|
|||
codes: Array<WechatQrCode>;
|
||||
isRoot?: Boolean;
|
||||
addresses?: Address[];
|
||||
hasPassword?: Boolean;
|
||||
};
|
||||
|
||||
export type IdAction = 'verify' | 'accept' | 'reject';
|
||||
|
|
@ -74,6 +75,7 @@ export const entityDesc: EntityDesc<
|
|||
codes: '微信分享二维码',
|
||||
isRoot: '是否超级用户',
|
||||
addresses: '收货地址',
|
||||
hasPassword: '用户是否存在密码'
|
||||
},
|
||||
action: {
|
||||
activate: '激活',
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { generateNewIdAsync } from 'oak-domain/lib/utils/uuid';
|
||||
import { CreateTrigger, Trigger } from 'oak-domain/lib/types/Trigger';
|
||||
import { EntityDict } from '../oak-app-domain/EntityDict';
|
||||
import { CreateOperationData as CreateUserData } from '../oak-app-domain/User/Schema';
|
||||
import { CreateOperationData as CreateUserData, UpdateOperationData as UpdateUserData } from '../oak-app-domain/User/Schema';
|
||||
import { ROOT_USER_ID } from '../constants';
|
||||
import { randomName } from '../utils/randomUser';
|
||||
import { BRC } from '../types/RuntimeCxt';
|
||||
|
|
@ -24,6 +24,9 @@ const triggers: Trigger<EntityDict, 'user', BRC<EntityDict>>[] = [
|
|||
if (!userData.nickname) {
|
||||
userData.nickname = randomName('user_', 8);
|
||||
}
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
userData.userSystem$user = [
|
||||
{
|
||||
id: await generateNewIdAsync(),
|
||||
|
|
@ -45,6 +48,30 @@ const triggers: Trigger<EntityDict, 'user', BRC<EntityDict>>[] = [
|
|||
return 1;
|
||||
},
|
||||
} as CreateTrigger<EntityDict, 'user', BRC<EntityDict>>,
|
||||
{
|
||||
name: '当用户更新信息带有密码时,将hasPassword附上true',
|
||||
entity: 'user',
|
||||
action: 'update',
|
||||
when: 'before',
|
||||
fn: async ({ operation }, context) => {
|
||||
const { data, filter } = operation as EntityDict['user']['Update'];
|
||||
|
||||
const setData = async (userData: UpdateUserData) => {
|
||||
if (userData.password || userData.passwordSha1) {
|
||||
userData.hasPassword = true;
|
||||
}
|
||||
}
|
||||
if (data instanceof Array) {
|
||||
for (const item of data) {
|
||||
await setData(item);
|
||||
}
|
||||
} else {
|
||||
await setData(data);
|
||||
}
|
||||
|
||||
return 1;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '系统生成的第一个用户默认注册为root,用户的初始状态默认为shadow',
|
||||
entity: 'user',
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ const userProjection: EntityDict['user']['Selection']['data'] = {
|
|||
gender: 1,
|
||||
birth: 1,
|
||||
isRoot: 1,
|
||||
hasPassword: 1,
|
||||
extraFile$entity: {
|
||||
$entity: 'extraFile',
|
||||
data: {
|
||||
|
|
@ -42,27 +43,43 @@ const userProjection: EntityDict['user']['Selection']['data'] = {
|
|||
userId: 1,
|
||||
},
|
||||
},
|
||||
user$ref: {
|
||||
$entity: 'user',
|
||||
email$user: {
|
||||
$entity: 'email',
|
||||
data: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
mobile$user: {
|
||||
$entity: 'mobile',
|
||||
data: {
|
||||
id: 1,
|
||||
mobile: 1,
|
||||
userId: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
email: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
loginName$user: {
|
||||
$entity: 'loginName',
|
||||
data: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
},
|
||||
},
|
||||
// user$ref: {
|
||||
// $entity: 'user',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// mobile$user: {
|
||||
// $entity: 'mobile',
|
||||
// data: {
|
||||
// id: 1,
|
||||
// mobile: 1,
|
||||
// userId: 1,
|
||||
// user: {
|
||||
// id: 1,
|
||||
// userState: 1,
|
||||
// refId: 1,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
};
|
||||
export const tokenProjection: EntityDict['token']['Selection']['data'] = {
|
||||
id: 1,
|
||||
|
|
@ -99,6 +116,28 @@ export const tokenProjection: EntityDict['token']['Selection']['data'] = {
|
|||
refId: 1,
|
||||
},
|
||||
},
|
||||
email: {
|
||||
id: 1,
|
||||
email: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
loginName: {
|
||||
id: 1,
|
||||
name: 1,
|
||||
userId: 1,
|
||||
ableState: 1,
|
||||
user: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export const applicationProjection: EntityDict['application']['Selection']['data'] = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue