This commit is contained in:
wangwenchen 2023-10-25 16:36:42 +08:00
parent 34e1f02519
commit 19cd6c541d
18 changed files with 214 additions and 70 deletions

View File

@ -138,7 +138,7 @@ export default function Render(props) {
// });
// }
// }
footer: () => _jsxs(Space, { children: [_jsx(ExtraFileCommit, { oakPath: oakFullpath, efPaths: [
footer: _jsxs(Space, { children: [_jsx(ExtraFileCommit, { oakPath: oakFullpath, efPaths: [
'extraFile$entity$1',
], afterCommit: () => {
modalInstance.destroy();

15
es/entities/Bridge.d.ts vendored Normal file
View File

@ -0,0 +1,15 @@
import { String, Datetime, Boolean } from 'oak-domain/lib/types/DataType';
import { EntityShape } from 'oak-domain/lib/types/Entity';
type RedirectTo = {
pathname: string;
props?: Record<string, any>;
state?: Record<string, any>;
};
export interface Schema extends EntityShape {
entity: String<32>;
entityId: String<64>;
expiresAt: Datetime;
expired: Boolean;
redirectTo: RedirectTo;
}
export {};

19
es/entities/Bridge.js Normal file
View File

@ -0,0 +1,19 @@
const entityDesc = {
locales: {
zh_CN: {
name: '二维码链接',
attr: {
expired: '已过期',
expiresAt: '过期时间',
redirectTo: '重定向页面',
entity: '关联对象',
entityId: '关联对象Id',
},
action: {
cancel: '作废',
qrcode: '二维码',
},
},
},
};
export {};

View File

@ -5,6 +5,7 @@ export declare const ActionDefDict: {
account: {
ableState: import("oak-domain").ActionDef<import("oak-domain").AbleAction, import("oak-domain").AbleState>;
};
bridge: {};
captcha: {
iState: import("oak-domain").ActionDef<string, string>;
};

View File

@ -1,5 +1,6 @@
import { ActionDefDict as Modi } from "./Modi/Action";
import { ActionDefDict as Account } from "./Account/Action";
import { ActionDefDict as Bridge } from "./Bridge/Action";
import { ActionDefDict as Captcha } from "./Captcha/Action";
import { ActionDefDict as Email } from "./Email/Action";
import { ActionDefDict as Message } from "./Message/Action";
@ -17,6 +18,7 @@ import { ActionDefDict as WechatPublicTag } from "./WechatPublicTag/Action";
export const ActionDefDict = {
modi: Modi,
account: Account,
bridge: Bridge,
captcha: Captcha,
email: Email,
message: Message,

6
es/oak-app-domain/Bridge/Action.d.ts vendored Normal file
View File

@ -0,0 +1,6 @@
import { GenericAction } from "oak-domain/lib/actions/action";
export type IAction = 'cancel' | 'qrcode' | string;
export type ParticularAction = IAction;
export declare const actions: string[];
export type Action = GenericAction | ParticularAction | string;
export declare const ActionDefDict: {};

View File

@ -0,0 +1,2 @@
export const actions = ["count", "stat", "download", "select", "aggregate", "create", "remove", "update", "cancel", "qrcode"];
export const ActionDefDict = {};

117
es/oak-app-domain/Bridge/Schema.d.ts vendored Normal file
View File

@ -0,0 +1,117 @@
import { JsonProjection } from "oak-domain/lib/types/DataType";
import { Q_DateValue, Q_BooleanValue, Q_StringValue, NodeId, MakeFilter, ExprOp, ExpressionKey, JsonFilter } 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 } from "oak-domain/lib/types/Entity";
import { Action, ParticularAction } from "./Action";
import { String, Datetime, Boolean } from "oak-domain/lib/types/DataType";
import { EntityShape } from "oak-domain/lib/types/Entity";
type RedirectTo = {
pathname: string;
props?: Record<string, any>;
state?: Record<string, any>;
};
export type OpSchema = EntityShape & {
entity: String<32>;
entityId: String<64>;
expiresAt: Datetime;
expired: Boolean;
redirectTo: RedirectTo;
};
export type OpAttr = keyof OpSchema;
export type Schema = EntityShape & {
entity: String<32>;
entityId: String<64>;
expiresAt: Datetime;
expired: Boolean;
redirectTo: RedirectTo;
} & {
[A in ExpressionKey]?: any;
};
type AttrFilter = {
id: Q_StringValue;
$$createAt$$: Q_DateValue;
$$seq$$: Q_StringValue;
$$updateAt$$: Q_DateValue;
entity: Q_StringValue;
entityId: Q_StringValue;
expiresAt: Q_DateValue;
expired: Q_BooleanValue;
redirectTo: JsonFilter<RedirectTo>;
};
export type Filter = MakeFilter<AttrFilter & ExprOp<OpAttr | string>>;
export type Projection = {
"#id"?: NodeId;
[k: string]: any;
id?: number;
$$createAt$$?: number;
$$updateAt$$?: number;
$$seq$$?: number;
entity?: number;
entityId?: number;
expiresAt?: number;
expired?: number;
redirectTo?: number | JsonProjection<RedirectTo>;
} & Partial<ExprOp<OpAttr | string>>;
type BridgeIdProjection = OneOf<{
id: number;
}>;
export type SortAttr = {
id: number;
} | {
$$createAt$$: number;
} | {
$$seq$$: number;
} | {
$$updateAt$$: number;
} | {
entity: number;
} | {
entityId: number;
} | {
expiresAt: number;
} | {
expired: number;
} | {
redirectTo: number;
} | {
[k: string]: any;
} | OneOf<ExprOp<OpAttr | string>>;
export type SortNode = {
$attr: SortAttr;
$direction?: "asc" | "desc";
};
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, "entity" | "entityId">> & ({
entity?: string;
entityId?: string;
[K: string]: any;
});
export type CreateSingleOperation = OakOperation<"create", CreateOperationData>;
export type CreateMultipleOperation = OakOperation<"create", Array<CreateOperationData>>;
export type CreateOperation = CreateSingleOperation | CreateMultipleOperation;
export type UpdateOperationData = FormUpdateData<OpSchema> & {
[k: string]: any;
};
export type UpdateOperation = OakOperation<"update" | ParticularAction | string, UpdateOperationData, Filter, Sorter>;
export type RemoveOperationData = {};
export type RemoveOperation = OakOperation<"remove", RemoveOperationData, Filter, Sorter>;
export type Operation = CreateOperation | UpdateOperation | RemoveOperation;
export type BridgeIdSubQuery = Selection<BridgeIdProjection>;
export type EntityDef = {
Schema: Schema;
OpSchema: OpSchema;
Action: OakMakeAction<Action> | string;
Selection: Selection;
Aggregation: Aggregation;
Operation: Operation;
Create: CreateOperation;
Update: UpdateOperation;
Remove: RemoveOperation;
CreateSingle: CreateSingleOperation;
CreateMulti: CreateMultipleOperation;
ParticularAction: ParticularAction;
};
export {};

View File

@ -0,0 +1 @@
export {};

3
es/oak-app-domain/Bridge/Storage.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
import { StorageDesc } from "oak-domain/lib/types/Storage";
import { OpSchema } from "./Schema";
export declare const desc: StorageDesc<OpSchema>;

View File

@ -0,0 +1,33 @@
import { actions } from "./Action";
export const desc = {
attributes: {
entity: {
notNull: true,
type: "varchar",
params: {
length: 32
}
},
entityId: {
notNull: true,
type: "varchar",
params: {
length: 64
}
},
expiresAt: {
notNull: true,
type: "datetime"
},
expired: {
notNull: true,
type: "boolean"
},
redirectTo: {
notNull: true,
type: "object"
}
},
actionType: "crud",
actions
};

View File

@ -0,0 +1 @@
{ "name": "二维码链接", "attr": { "expired": "已过期", "expiresAt": "过期时间", "redirectTo": "重定向页面", "entity": "关联对象", "entityId": "关联对象Id" }, "action": { "cancel": "作废", "qrcode": "二维码" } }

View File

@ -15,6 +15,7 @@ import { EntityDef as Application } from "./Application/Schema";
import { EntityDef as Area } from "./Area/Schema";
import { EntityDef as Article } from "./Article/Schema";
import { EntityDef as ArticleMenu } from "./ArticleMenu/Schema";
import { EntityDef as Bridge } from "./Bridge/Schema";
import { EntityDef as Captcha } from "./Captcha/Schema";
import { EntityDef as ChangePasswordTemp } from "./ChangePasswordTemp/Schema";
import { EntityDef as Domain } from "./Domain/Schema";
@ -66,6 +67,7 @@ export type EntityDict = {
area: Area;
article: Article;
articleMenu: ArticleMenu;
bridge: Bridge;
captcha: Captcha;
changePasswordTemp: ChangePasswordTemp;
domain: Domain;

View File

@ -15,6 +15,7 @@ import { desc as applicationDesc } from "./Application/Storage";
import { desc as areaDesc } from "./Area/Storage";
import { desc as articleDesc } from "./Article/Storage";
import { desc as articleMenuDesc } from "./ArticleMenu/Storage";
import { desc as bridgeDesc } from "./Bridge/Storage";
import { desc as captchaDesc } from "./Captcha/Storage";
import { desc as changePasswordTempDesc } from "./ChangePasswordTemp/Storage";
import { desc as domainDesc } from "./Domain/Storage";
@ -66,6 +67,7 @@ export const storageSchema = {
area: areaDesc,
article: articleDesc,
articleMenu: articleMenuDesc,
bridge: bridgeDesc,
captcha: captchaDesc,
changePasswordTemp: changePasswordTempDesc,
domain: domainDesc,

View File

@ -15,6 +15,7 @@ import * as Application from "./Application/Schema";
import * as Area from "./Area/Schema";
import * as Article from "./Article/Schema";
import * as ArticleMenu from "./ArticleMenu/Schema";
import * as Bridge from "./Bridge/Schema";
import * as Captcha from "./Captcha/Schema";
import * as ChangePasswordTemp from "./ChangePasswordTemp/Schema";
import * as Domain from "./Domain/Schema";
@ -239,6 +240,11 @@ export type ArticleMenuIdSubQuery = {
entity: "articleMenu";
}) | any;
};
export type BridgeIdSubQuery = {
[K in "$in" | "$nin"]?: (Bridge.BridgeIdSubQuery & {
entity: "bridge";
}) | any;
};
export type CaptchaIdSubQuery = {
[K in "$in" | "$nin"]?: (Captcha.CaptchaIdSubQuery & {
entity: "captcha";

View File

@ -141,7 +141,7 @@ function Render(props) {
// });
// }
// }
footer: () => (0, jsx_runtime_1.jsxs)(antd_1.Space, { children: [(0, jsx_runtime_1.jsx)(commit_1.default, { oakPath: oakFullpath, efPaths: [
footer: (0, jsx_runtime_1.jsxs)(antd_1.Space, { children: [(0, jsx_runtime_1.jsx)(commit_1.default, { oakPath: oakFullpath, efPaths: [
'extraFile$entity$1',
], afterCommit: () => {
modalInstance.destroy();

View File

@ -52,39 +52,6 @@ const Storage_48 = require("./WechatPublicTag/Storage");
const Storage_49 = require("./WechatPublicTemplate/Storage");
const Storage_50 = require("./WechatQrCode/Storage");
const Storage_51 = require("./WechatUser/Storage");
const Storage_18 = require("./Captcha/Storage");
const Storage_19 = require("./ChangePasswordTemp/Storage");
const Storage_20 = require("./Domain/Storage");
const Storage_21 = require("./Email/Storage");
const Storage_22 = require("./ExtraFile/Storage");
const Storage_23 = require("./Livestream/Storage");
const Storage_24 = require("./Message/Storage");
const Storage_25 = require("./MessageSystem/Storage");
const Storage_26 = require("./MessageType/Storage");
const Storage_27 = require("./MessageTypeTemplate/Storage");
const Storage_28 = require("./Mobile/Storage");
const Storage_29 = require("./Notification/Storage");
const Storage_30 = require("./Parasite/Storage");
const Storage_31 = require("./Platform/Storage");
const Storage_32 = require("./ReadRemark/Storage");
const Storage_33 = require("./Session/Storage");
const Storage_34 = require("./SessionMessage/Storage");
const Storage_35 = require("./Station/Storage");
const Storage_36 = require("./Subscription/Storage");
const Storage_37 = require("./Subway/Storage");
const Storage_38 = require("./SubwayStation/Storage");
const Storage_39 = require("./System/Storage");
const Storage_40 = require("./ToDo/Storage");
const Storage_41 = require("./Token/Storage");
const Storage_42 = require("./UserSystem/Storage");
const Storage_43 = require("./UserWechatPublicTag/Storage");
const Storage_44 = require("./WechatLogin/Storage");
const Storage_45 = require("./WechatMenu/Storage");
const Storage_46 = require("./wechatPublicAutoReply/Storage");
const Storage_47 = require("./WechatPublicTag/Storage");
const Storage_48 = require("./WechatPublicTemplate/Storage");
const Storage_49 = require("./WechatQrCode/Storage");
const Storage_50 = require("./WechatUser/Storage");
exports.storageSchema = {
actionAuth: Storage_1.desc,
i18n: Storage_2.desc,
@ -136,38 +103,5 @@ exports.storageSchema = {
wechatPublicTag: Storage_48.desc,
wechatPublicTemplate: Storage_49.desc,
wechatQrCode: Storage_50.desc,
wechatUser: Storage_51.desc,
captcha: Storage_18.desc,
changePasswordTemp: Storage_19.desc,
domain: Storage_20.desc,
email: Storage_21.desc,
extraFile: Storage_22.desc,
livestream: Storage_23.desc,
message: Storage_24.desc,
messageSystem: Storage_25.desc,
messageType: Storage_26.desc,
messageTypeTemplate: Storage_27.desc,
mobile: Storage_28.desc,
notification: Storage_29.desc,
parasite: Storage_30.desc,
platform: Storage_31.desc,
readRemark: Storage_32.desc,
session: Storage_33.desc,
sessionMessage: Storage_34.desc,
station: Storage_35.desc,
subscription: Storage_36.desc,
subway: Storage_37.desc,
subwayStation: Storage_38.desc,
system: Storage_39.desc,
toDo: Storage_40.desc,
token: Storage_41.desc,
userSystem: Storage_42.desc,
userWechatPublicTag: Storage_43.desc,
wechatLogin: Storage_44.desc,
wechatMenu: Storage_45.desc,
wechatPublicAutoReply: Storage_46.desc,
wechatPublicTag: Storage_47.desc,
wechatPublicTemplate: Storage_48.desc,
wechatQrCode: Storage_49.desc,
wechatUser: Storage_50.desc
wechatUser: Storage_51.desc
};

View File

@ -274,7 +274,7 @@ export default function Render(props: WebComponentProps<EntityDict, 'articleMenu
// });
// }
// }
footer: () => <Space>
footer: <Space>
<ExtraFileCommit
oakPath={oakFullpath}
efPaths={[