将updateItems暴露给组件
This commit is contained in:
parent
ec6130459a
commit
a53909bcc3
|
|
@ -1,9 +1,9 @@
|
|||
export default OakComponent({
|
||||
isList: false,
|
||||
data: {
|
||||
slideWidth: 0,
|
||||
slideLeft: 0,
|
||||
slideShow: false,
|
||||
slideWidth: 0, //小程序使用
|
||||
slideLeft: 0, //小程序使用
|
||||
slideShow: false, //小程序使用
|
||||
commonAction: [
|
||||
'create',
|
||||
'update',
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@ import { ED, OakAbsAttrDef } from '../../types/AbstractComponent';
|
|||
import { ReactComponentProps } from '../../types/Page';
|
||||
import { Breakpoint } from 'antd';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
column?: number | Record<Breakpoint, number> | undefined;
|
||||
column?: number | Record<Breakpoint, number>;
|
||||
entity: T2;
|
||||
attributes: OakAbsAttrDef[];
|
||||
data: Partial<ED2[T2]["Schema"]>;
|
||||
title?: string | undefined;
|
||||
bordered?: boolean | undefined;
|
||||
layout?: "horizontal" | "vertical" | undefined;
|
||||
data: Partial<ED2[T2]['Schema']>;
|
||||
title?: string;
|
||||
bordered?: boolean;
|
||||
layout?: 'horizontal' | 'vertical';
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ export default OakComponent({
|
|||
let currentUrl = event.currentTarget.dataset.src;
|
||||
let urlList = event.currentTarget.dataset.list;
|
||||
wx.previewImage({
|
||||
current: currentUrl,
|
||||
current: currentUrl, // 当前显示图片的http链接
|
||||
urls: urlList, // 需要预览的图片http链接列表
|
||||
});
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import { ReactComponentProps } from '../../types/Page';
|
|||
import { ECode } from '../../types/ErrorPage';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
code: ECode;
|
||||
title?: string | undefined;
|
||||
desc?: string | undefined;
|
||||
title?: string;
|
||||
desc?: string;
|
||||
children?: React.ReactNode;
|
||||
icon?: React.ReactNode;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ export default OakComponent({
|
|||
code: '',
|
||||
title: '',
|
||||
desc: '',
|
||||
icon: '',
|
||||
icon: '', //web独有
|
||||
imagePath: '', //小程序独有
|
||||
},
|
||||
lifetimes: {
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ export default OakComponent({
|
|||
attribute: {},
|
||||
options: [],
|
||||
inputType: '',
|
||||
timeStartStr: '',
|
||||
timeStartStr: '', // 小程序选择时间显示
|
||||
timeEndStr: '',
|
||||
selectedLabel: '',
|
||||
minDateMp: new Date(1980, 1, 1).getTime(),
|
||||
|
|
|
|||
|
|
@ -9,18 +9,13 @@ declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactCompo
|
|||
attributes: OakAbsAttrDef[];
|
||||
data: RowWithActions<ED2, T2>[];
|
||||
loading: boolean;
|
||||
tablePagination?: false | import("antd").TablePaginationConfig | undefined;
|
||||
rowSelection?: import("antd/es/table/interface").TableRowSelection<RowWithActions<ED2, T2>> | undefined;
|
||||
hideHeader?: boolean | undefined;
|
||||
disableSerialNumber?: boolean | undefined;
|
||||
size?: "small" | "large" | "middle" | undefined;
|
||||
scroll?: ({
|
||||
x?: string | number | true | undefined;
|
||||
y?: string | number | undefined;
|
||||
} & {
|
||||
scrollToFirstRowOnChange?: boolean | undefined;
|
||||
}) | undefined;
|
||||
locale?: import("antd/es/table/interface").TableLocale | undefined;
|
||||
opWidth?: number | undefined;
|
||||
tablePagination?: TableProps<RowWithActions<ED2, T2>>['pagination'];
|
||||
rowSelection?: TableProps<RowWithActions<ED2, T2>>['rowSelection'];
|
||||
hideHeader?: boolean;
|
||||
disableSerialNumber?: boolean;
|
||||
size?: 'large' | 'middle' | 'small';
|
||||
scroll?: TableProps<RowWithActions<ED2, T2>>['scroll'];
|
||||
locale?: TableProps<RowWithActions<ED2, T2>>['locale'];
|
||||
opWidth?: number;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ export default OakComponent({
|
|||
tablePagination: undefined,
|
||||
rowSelection: undefined,
|
||||
hideHeader: false,
|
||||
disableSerialNumber: false,
|
||||
disableSerialNumber: false, //是否禁用序号 默认启用
|
||||
size: 'large',
|
||||
scroll: undefined,
|
||||
locale: undefined,
|
||||
|
|
|
|||
|
|
@ -1,21 +1,20 @@
|
|||
/// <reference types="react" />
|
||||
import { ReactComponentProps } from '../../types/Page';
|
||||
import { ED } from '../../types/AbstractComponent';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
style?: import("react").CSSProperties | undefined;
|
||||
className?: string | undefined;
|
||||
style?: React.CSSProperties;
|
||||
className?: string;
|
||||
title?: React.ReactNode;
|
||||
showBack?: boolean | undefined;
|
||||
onBack?: (() => void) | undefined;
|
||||
showBack?: boolean;
|
||||
onBack?: () => void;
|
||||
backIcon?: React.ReactNode;
|
||||
delta?: number | undefined;
|
||||
delta?: number;
|
||||
extra?: React.ReactNode;
|
||||
subTitle?: React.ReactNode;
|
||||
contentMargin?: boolean | undefined;
|
||||
contentStyle?: import("react").CSSProperties | undefined;
|
||||
contentClassName?: string | undefined;
|
||||
contentMargin?: boolean;
|
||||
contentStyle?: React.CSSProperties;
|
||||
contentClassName?: string;
|
||||
tags?: React.ReactNode;
|
||||
children?: React.ReactNode;
|
||||
showHeader?: boolean | undefined;
|
||||
showHeader?: boolean;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
/// <reference types="react" />
|
||||
import { ReactComponentProps } from '../../types/Page';
|
||||
import { ED } from '../../types/AbstractComponent';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
style?: import("react").CSSProperties | undefined;
|
||||
className?: string | undefined;
|
||||
showHeader?: boolean | undefined;
|
||||
showBack?: boolean | undefined;
|
||||
onBack?: (() => void) | undefined;
|
||||
style?: React.CSSProperties;
|
||||
className?: string;
|
||||
showHeader?: boolean;
|
||||
showBack?: boolean;
|
||||
onBack?: () => void;
|
||||
backIcon?: React.ReactNode;
|
||||
delta?: number | undefined;
|
||||
delta?: number;
|
||||
title?: React.ReactNode;
|
||||
subTitle?: React.ReactNode;
|
||||
tags?: React.ReactNode;
|
||||
extra?: React.ReactNode;
|
||||
children?: React.ReactNode;
|
||||
content: React.ReactNode;
|
||||
contentStyle?: import("react").CSSProperties | undefined;
|
||||
contentClassName?: string | undefined;
|
||||
bodyStyle?: import("react").CSSProperties | undefined;
|
||||
bodyClassName?: string | undefined;
|
||||
contentStyle?: React.CSSProperties;
|
||||
contentClassName?: string;
|
||||
bodyStyle?: React.CSSProperties;
|
||||
bodyClassName?: string;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
/// <reference types="react" />
|
||||
import { ReactComponentProps } from '../../types/Page';
|
||||
import { ED } from '../../types/AbstractComponent';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
entity: T2;
|
||||
style?: import("react").CSSProperties | undefined;
|
||||
className?: string | undefined;
|
||||
showQuickJumper?: boolean | undefined;
|
||||
size?: "small" | "default" | undefined;
|
||||
showSizeChanger?: boolean | undefined;
|
||||
showTotal?: ((total: number, range: [number, number]) => React.ReactNode) | undefined;
|
||||
style?: React.CSSProperties;
|
||||
className?: string;
|
||||
showQuickJumper?: boolean;
|
||||
size?: 'default' | 'small';
|
||||
showSizeChanger?: boolean;
|
||||
showTotal?: (total: number, range: [number, number]) => React.ReactNode;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ export default OakComponent({
|
|||
multiple: false,
|
||||
entityId: '',
|
||||
entityIds: [],
|
||||
pickerRender: {},
|
||||
pickerRender: {}, // OakAbsRefAttrPickerRender
|
||||
onChange: (() => undefined),
|
||||
},
|
||||
formData() {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ declare const _default: <ED2 extends ED, T2 extends keyof ED2, T3 extends string
|
|||
helps: Record<string, string>;
|
||||
entity: T2;
|
||||
attributes: OakAbsAttrUpsertDef<ED2, T2, T3>[];
|
||||
data: ED2[T2]["Schema"];
|
||||
data: ED2[T2]['Schema'];
|
||||
layout: 'horizontal' | 'vertical';
|
||||
mode: 'default' | 'card';
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ export default OakComponent({
|
|||
return this.props.entity;
|
||||
},
|
||||
properties: {
|
||||
helps: {},
|
||||
helps: {}, // Record<string, string>;
|
||||
entity: '',
|
||||
attributes: [],
|
||||
layout: 'horizontal',
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ export class Cache extends Feature {
|
|||
this.refreshing--;
|
||||
if (e instanceof OakException) {
|
||||
const { opRecords } = e;
|
||||
if (opRecords) {
|
||||
if (opRecords.length) {
|
||||
this.syncInner(opRecords);
|
||||
this.publish();
|
||||
}
|
||||
|
|
@ -349,7 +349,7 @@ export class Cache extends Feature {
|
|||
opers.forEach((oper) => {
|
||||
const { entity, operation } = oper;
|
||||
this.cacheStore.operate(entity, operation, this.context, {
|
||||
checkerTypes: ['logical'],
|
||||
checkerTypes: ['logical'], // 这里不能检查data,不然在数据没填完前会有大量异常
|
||||
dontCollect: true,
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -137,6 +137,8 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
recoverItem(id: string): void;
|
||||
recoverItems(ids: string[]): void;
|
||||
resetItem(id: string): void;
|
||||
private preProcessUpdateData;
|
||||
private updateItemInner;
|
||||
/**
|
||||
* 目前只支持根据itemId进行更新
|
||||
* @param data
|
||||
|
|
@ -145,7 +147,7 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
* @param afterExecute
|
||||
*/
|
||||
updateItem(lsn: number, data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action']): void;
|
||||
updateItems(data: Record<string, ED[T]['Update']['data']>, action?: ED[T]['Action']): void;
|
||||
updateItems(lsn: number, data: Record<string, ED[T]['Update']['data']>, ids: string[], action?: ED[T]['Action']): void;
|
||||
composeOperations(): Array<{
|
||||
entity: keyof ED;
|
||||
operation: ED[keyof ED]['Operation'];
|
||||
|
|
@ -307,6 +309,7 @@ export declare class RunningTree<ED extends EntityDict & BaseEntityDict> extends
|
|||
removeItem(path: string, id: string): void;
|
||||
removeItems(path: string, ids: string[]): void;
|
||||
updateItem<T extends keyof ED>(path: string, data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action']): void;
|
||||
updateItems<T extends keyof ED>(path: string, data: ED[T]['Update']['data'], ids: string[], action?: ED[T]['Action']): void;
|
||||
recoverItem(path: string, id: string): void;
|
||||
recoverItems(path: string, ids: string[]): void;
|
||||
resetItem(path: string, id: string): void;
|
||||
|
|
|
|||
|
|
@ -776,14 +776,7 @@ class ListNode extends Node {
|
|||
resetItem(id) {
|
||||
this.ulManager.undo({ id });
|
||||
}
|
||||
/**
|
||||
* 目前只支持根据itemId进行更新
|
||||
* @param data
|
||||
* @param id
|
||||
* @param beforeExecute
|
||||
* @param afterExecute
|
||||
*/
|
||||
updateItem(lsn, data, id, action) {
|
||||
preProcessUpdateData(data) {
|
||||
const undefinedAttrs = [];
|
||||
// 如果数据键值是一个空字符串则更新成null,undefined则unset掉
|
||||
for (const k in data) {
|
||||
|
|
@ -797,6 +790,8 @@ class ListNode extends Node {
|
|||
}
|
||||
}
|
||||
undefinedAttrs.forEach((attr) => unset(data, attr));
|
||||
}
|
||||
updateItemInner(lsn, data, id, action) {
|
||||
this.ulManager.push(lsn, {
|
||||
action: action || 'update',
|
||||
data,
|
||||
|
|
@ -804,10 +799,23 @@ class ListNode extends Node {
|
|||
id,
|
||||
},
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 目前只支持根据itemId进行更新
|
||||
* @param data
|
||||
* @param id
|
||||
* @param beforeExecute
|
||||
* @param afterExecute
|
||||
*/
|
||||
updateItem(lsn, data, id, action) {
|
||||
this.preProcessUpdateData(data);
|
||||
this.updateItemInner(lsn, data, id, action);
|
||||
this.setDirty();
|
||||
}
|
||||
updateItems(data, action) {
|
||||
throw new Error('暂未实现');
|
||||
updateItems(lsn, data, ids, action) {
|
||||
this.preProcessUpdateData(data);
|
||||
ids.forEach((id) => this.updateItemInner(lsn, data, id, action));
|
||||
this.setDirty();
|
||||
}
|
||||
composeOperations() {
|
||||
if (!this.dirty) {
|
||||
|
|
@ -2022,6 +2030,11 @@ export class RunningTree extends Feature {
|
|||
assert(node instanceof ListNode);
|
||||
node.updateItem(this.logSerailNumber, data, id, action);
|
||||
}
|
||||
updateItems(path, data, ids, action) {
|
||||
const node = this.findNode(path);
|
||||
assert(node instanceof ListNode);
|
||||
node.updateItems(this.logSerailNumber, data, ids, action);
|
||||
}
|
||||
recoverItem(path, id) {
|
||||
const node = this.findNode(path);
|
||||
assert(node instanceof ListNode);
|
||||
|
|
|
|||
|
|
@ -77,6 +77,13 @@ export function onPathSet(option, isPage) {
|
|||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// 不设置的默认情况,宽屏取100窄屏不取
|
||||
const { width } = this.props;
|
||||
if (width !== 'xs') {
|
||||
getTotal2 = 100;
|
||||
}
|
||||
}
|
||||
let pagination2;
|
||||
if (pagination) {
|
||||
if (pagination instanceof Array) {
|
||||
|
|
@ -87,13 +94,6 @@ export function onPathSet(option, isPage) {
|
|||
pagination2 = pagination;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// 不设置的默认情况,宽屏取100窄屏不取
|
||||
const { width } = this.props;
|
||||
if (width !== 'xs') {
|
||||
getTotal2 = 100;
|
||||
}
|
||||
}
|
||||
features.runningTree.createNode({
|
||||
path: oakPath2,
|
||||
entity: entity2,
|
||||
|
|
|
|||
|
|
@ -394,6 +394,12 @@ const oakBehavior = Behavior({
|
|||
: this.state.oakFullpath;
|
||||
return this.features.runningTree.updateItem(path2, data, id, action);
|
||||
},
|
||||
updateItems(data, ids, action, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
return this.features.runningTree.updateItems(path2, data, ids, action);
|
||||
},
|
||||
removeItem(id, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
|
|||
|
|
@ -48,20 +48,21 @@ export declare function createComponent<IsList extends boolean, ED extends Entit
|
|||
redirectTo<T2_1 extends keyof ED>(options: {
|
||||
url: string;
|
||||
} & OakNavigateToParameters<ED, T2_1>, state?: Record<string, any> | undefined, disableNamespace?: boolean | undefined): Promise<void>;
|
||||
addItem<T extends keyof ED>(data: Omit<ED[T]["CreateSingle"]["data"], "id"> & {
|
||||
addItem<T_1 extends keyof ED>(data: Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
||||
id?: string | undefined;
|
||||
}, path?: string | undefined): string;
|
||||
addItems<T_1 extends keyof ED>(data: (Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
||||
addItems<T_2 extends keyof ED>(data: (Omit<ED[T_2]["CreateSingle"]["data"], "id"> & {
|
||||
id?: string | undefined;
|
||||
})[], path?: string | undefined): string[];
|
||||
removeItem(id: string, path?: string | undefined): void;
|
||||
removeItems(ids: string[], path?: string | undefined): void;
|
||||
updateItem<T_2 extends keyof ED>(data: ED[T_2]["Update"]["data"], id: string, action?: ED[T_2]["Action"] | undefined, path?: string | undefined): void;
|
||||
updateItem<T_3 extends keyof ED>(data: ED[T_3]["Update"]["data"], id: string, action?: ED[T_3]["Action"] | undefined, path?: string | undefined): void;
|
||||
updateItems<T_4 extends keyof ED>(data: ED[T_4]["Update"]["data"], ids: string[], action?: ED[T_4]["Action"] | undefined, path?: string | undefined): void;
|
||||
recoverItem(id: string, path?: string | undefined): void;
|
||||
recoverItems(ids: string[], path?: string | undefined): void;
|
||||
resetItem(id: string, path?: string | undefined): void;
|
||||
update<T_3 extends keyof ED>(data: ED[T_3]["Update"]["data"], action?: ED[T_3]["Action"] | undefined, path?: string | undefined): void;
|
||||
create<T_4 extends keyof ED>(data: Omit<ED[T_4]["CreateSingle"]["data"], "id">, path?: string | undefined): void;
|
||||
update<T_5 extends keyof ED>(data: ED[T_5]["Update"]["data"], action?: ED[T_5]["Action"] | undefined, path?: string | undefined): void;
|
||||
create<T_6 extends keyof ED>(data: Omit<ED[T_6]["CreateSingle"]["data"], "id">, path?: string | undefined): void;
|
||||
remove(path?: string | undefined): void;
|
||||
isCreation(path?: string | undefined): boolean;
|
||||
clean(lsn?: number | undefined, dontPublish?: true | undefined, path?: string | undefined): void;
|
||||
|
|
@ -75,7 +76,7 @@ export declare function createComponent<IsList extends boolean, ED extends Entit
|
|||
getFreshValue(path?: string | undefined): Partial<import("oak-domain/lib/types").GeneralEntityShape> | Partial<import("oak-domain/lib/types").GeneralEntityShape>[] | undefined;
|
||||
checkOperation<T2_2 extends keyof ED>(entity: T2_2, operation: Omit<ED[T2_2]["Operation"], "id">, checkerTypes?: (CheckerType | "relation")[] | undefined): boolean | import("oak-domain/lib/types").OakUserException<ED>;
|
||||
tryExecute(path?: string | undefined, action?: string | undefined): boolean | import("oak-domain/lib/types").OakUserException<ED>;
|
||||
getOperations<T_5 extends keyof ED>(path?: string | undefined): {
|
||||
getOperations<T_7 extends keyof ED>(path?: string | undefined): {
|
||||
entity: keyof ED;
|
||||
operation: ED[keyof ED]["Operation"];
|
||||
}[] | undefined;
|
||||
|
|
|
|||
|
|
@ -100,6 +100,12 @@ class OakComponentBase extends React.PureComponent {
|
|||
: this.state.oakFullpath;
|
||||
this.features.runningTree.updateItem(path2, data, id, action);
|
||||
}
|
||||
updateItems(data, ids, action, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
this.features.runningTree.updateItems(path2, data, ids, action);
|
||||
}
|
||||
recoverItem(id, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
@ -465,6 +471,9 @@ export function createComponent(option, features) {
|
|||
updateItem: (data, id, action, path) => {
|
||||
return this.updateItem(data, id, action, path);
|
||||
},
|
||||
updateItems: (data, ids, action, path) => {
|
||||
return this.updateItems(data, ids, action, path);
|
||||
},
|
||||
setFilters: (filters, path) => {
|
||||
return this.setFilters(filters, path);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import React from 'react';
|
||||
export const keys = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
||||
export const values = {
|
||||
xs: 576,
|
||||
xs: 576, //小于576
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
|
|
|
|||
|
|
@ -222,6 +222,7 @@ export type OakListComponentMethods<ED extends EntityDict & BaseEntityDict, T ex
|
|||
removeItem: (id: string, path?: string) => void;
|
||||
removeItems: (ids: string[], path?: string) => void;
|
||||
updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], path?: string) => void;
|
||||
updateItems: (data: ED[T]['Update']['data'], ids: string[], action?: ED[T]['Action'], path?: string) => void;
|
||||
recoverItem: (id: string, path?: string) => void;
|
||||
recoverItems: (ids: string[], path?: string) => void;
|
||||
resetItem: (id: string, path?: string) => void;
|
||||
|
|
@ -260,7 +261,7 @@ type OakListComoponetData<ED extends EntityDict & BaseEntityDict, T extends keyo
|
|||
};
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh' | 'aggregate' | 'checkOperation' | 'isDirty';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'updateItems' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentSingleMethodNames = 'update' | 'remove' | 'create' | 'isCreation' | 'getId' | 'setId';
|
||||
export type WebComponentProps<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, TData extends DataOption = {}, TMethod extends MethodOption = {}> = {
|
||||
methods: TMethod & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import { ReactComponentProps } from '../../types/Page';
|
|||
import { ECode } from '../../types/ErrorPage';
|
||||
declare const _default: <ED2 extends ED, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
code: ECode;
|
||||
title?: string | undefined;
|
||||
desc?: string | undefined;
|
||||
title?: string;
|
||||
desc?: string;
|
||||
children?: React.ReactNode;
|
||||
icon?: React.ReactNode;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ exports.default = OakComponent({
|
|||
code: '',
|
||||
title: '',
|
||||
desc: '',
|
||||
icon: '',
|
||||
icon: '', //web独有
|
||||
imagePath: '', //小程序独有
|
||||
},
|
||||
lifetimes: {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/// <reference types="wechat-miniprogram" />
|
||||
declare const _default: (props: import("../../..").ReactComponentProps<import("oak-domain/lib/types").EntityDict & import("oak-domain/lib/base-app-domain").EntityDict, string | number, true, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||
/// <reference types="react" />
|
||||
declare const _default: (props: import("../../..").ReactComponentProps<import("oak-domain/lib/types").EntityDict & import("oak-domain/lib/base-app-domain").EntityDict, string | number, true, WechatMiniprogram.Component.DataOption>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/// <reference types="wechat-miniprogram" />
|
||||
declare const _default: (props: import("../..").ReactComponentProps<import("oak-domain/lib/types").EntityDict & import("oak-domain/lib/base-app-domain").EntityDict, string | number, false, WechatMiniprogram.Component.DataOption>) => React.ReactElement;
|
||||
/// <reference types="react" />
|
||||
declare const _default: (props: import("../..").ReactComponentProps<import("oak-domain/lib/types").EntityDict & import("oak-domain/lib/base-app-domain").EntityDict, string | number, false, WechatMiniprogram.Component.DataOption>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -352,7 +352,7 @@ class Cache extends Feature_1.Feature {
|
|||
opers.forEach((oper) => {
|
||||
const { entity, operation } = oper;
|
||||
this.cacheStore.operate(entity, operation, this.context, {
|
||||
checkerTypes: ['logical'],
|
||||
checkerTypes: ['logical'], // 这里不能检查data,不然在数据没填完前会有大量异常
|
||||
dontCollect: true,
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -397,6 +397,12 @@ const oakBehavior = Behavior({
|
|||
: this.state.oakFullpath;
|
||||
return this.features.runningTree.updateItem(path2, data, id, action);
|
||||
},
|
||||
updateItems(data, ids, action, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
return this.features.runningTree.updateItems(path2, data, ids, action);
|
||||
},
|
||||
removeItem(id, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ import { Feature } from './types/Feature';
|
|||
import { DataOption, OakComponentOption } from './types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED> & FD): (props: any) => any;
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED> & FD): (props: any) => import("react/jsx-runtime").JSX.Element;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
import React from 'react';
|
||||
import { Aspect, CheckerType, EntityDict, OpRecord } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { BasicFeatures } from './features';
|
||||
import { NamedFilterItem, NamedSorterItem } from './types/NamedCondition';
|
||||
import { Feature } from './types/Feature';
|
||||
import { DataOption, ComponentProps, OakComponentOption, OakNavigateToParameters } from './types/Page';
|
||||
import { DataOption, ComponentData, ComponentProps, OakComponentOption, OakNavigateToParameters } from './types/Page';
|
||||
import { MessageProps } from './types/Message';
|
||||
import { NotificationProps } from './types/Notification';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
|
|
@ -47,20 +48,21 @@ export declare function createComponent<IsList extends boolean, ED extends Entit
|
|||
redirectTo<T2_1 extends keyof ED>(options: {
|
||||
url: string;
|
||||
} & OakNavigateToParameters<ED, T2_1>, state?: Record<string, any> | undefined, disableNamespace?: boolean | undefined): Promise<void>;
|
||||
addItem<T extends keyof ED>(data: Omit<ED[T]["CreateSingle"]["data"], "id"> & {
|
||||
addItem<T_1 extends keyof ED>(data: Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
||||
id?: string | undefined;
|
||||
}, path?: string | undefined): string;
|
||||
addItems<T_1 extends keyof ED>(data: (Omit<ED[T_1]["CreateSingle"]["data"], "id"> & {
|
||||
addItems<T_2 extends keyof ED>(data: (Omit<ED[T_2]["CreateSingle"]["data"], "id"> & {
|
||||
id?: string | undefined;
|
||||
})[], path?: string | undefined): string[];
|
||||
removeItem(id: string, path?: string | undefined): void;
|
||||
removeItems(ids: string[], path?: string | undefined): void;
|
||||
updateItem<T_2 extends keyof ED>(data: ED[T_2]["Update"]["data"], id: string, action?: ED[T_2]["Action"] | undefined, path?: string | undefined): void;
|
||||
updateItem<T_3 extends keyof ED>(data: ED[T_3]["Update"]["data"], id: string, action?: ED[T_3]["Action"] | undefined, path?: string | undefined): void;
|
||||
updateItems<T_4 extends keyof ED>(data: ED[T_4]["Update"]["data"], ids: string[], action?: ED[T_4]["Action"] | undefined, path?: string | undefined): void;
|
||||
recoverItem(id: string, path?: string | undefined): void;
|
||||
recoverItems(ids: string[], path?: string | undefined): void;
|
||||
resetItem(id: string, path?: string | undefined): void;
|
||||
update<T_3 extends keyof ED>(data: ED[T_3]["Update"]["data"], action?: ED[T_3]["Action"] | undefined, path?: string | undefined): void;
|
||||
create<T_4 extends keyof ED>(data: Omit<ED[T_4]["CreateSingle"]["data"], "id">, path?: string | undefined): void;
|
||||
update<T_5 extends keyof ED>(data: ED[T_5]["Update"]["data"], action?: ED[T_5]["Action"] | undefined, path?: string | undefined): void;
|
||||
create<T_6 extends keyof ED>(data: Omit<ED[T_6]["CreateSingle"]["data"], "id">, path?: string | undefined): void;
|
||||
remove(path?: string | undefined): void;
|
||||
isCreation(path?: string | undefined): boolean;
|
||||
clean(lsn?: number | undefined, dontPublish?: true | undefined, path?: string | undefined): void;
|
||||
|
|
@ -74,7 +76,7 @@ export declare function createComponent<IsList extends boolean, ED extends Entit
|
|||
getFreshValue(path?: string | undefined): Partial<import("oak-domain/lib/types").GeneralEntityShape> | Partial<import("oak-domain/lib/types").GeneralEntityShape>[] | undefined;
|
||||
checkOperation<T2_2 extends keyof ED>(entity: T2_2, operation: Omit<ED[T2_2]["Operation"], "id">, checkerTypes?: (CheckerType | "relation")[] | undefined): boolean | import("oak-domain/lib/types").OakUserException<ED>;
|
||||
tryExecute(path?: string | undefined, action?: string | undefined): boolean | import("oak-domain/lib/types").OakUserException<ED>;
|
||||
getOperations<T_5 extends keyof ED>(path?: string | undefined): {
|
||||
getOperations<T_7 extends keyof ED>(path?: string | undefined): {
|
||||
entity: keyof ED;
|
||||
operation: ED[keyof ED]["Operation"];
|
||||
}[] | undefined;
|
||||
|
|
@ -101,5 +103,23 @@ export declare function createComponent<IsList extends boolean, ED extends Entit
|
|||
setCurrentPage(currentPage: number, path?: string | undefined): void;
|
||||
subDataEvents(events: string[], moduleName: string, callback: (event: string, opRecords: OpRecord<ED>[]) => void): Promise<void>;
|
||||
unsubDataEvents(events: string[], moduleName: string): Promise<void>;
|
||||
context: unknown;
|
||||
setState<K extends keyof TData | keyof FormedData | keyof import("./types/Page").OakComponentData<ED, T>>(state: ComponentData<ED, T, FormedData, TData> | ((prevState: Readonly<ComponentData<ED, T, FormedData, TData>>, props: Readonly<ComponentProps<ED, T, TProperty>>) => ComponentData<ED, T, FormedData, TData> | Pick<ComponentData<ED, T, FormedData, TData>, K> | null) | Pick<ComponentData<ED, T, FormedData, TData>, K> | null, callback?: (() => void) | undefined): void;
|
||||
forceUpdate(callback?: (() => void) | undefined): void;
|
||||
readonly props: Readonly<ComponentProps<ED, T, TProperty>>;
|
||||
state: Readonly<ComponentData<ED, T, FormedData, TData>>;
|
||||
refs: {
|
||||
[key: string]: React.ReactInstance;
|
||||
};
|
||||
shouldComponentUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): boolean;
|
||||
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
||||
getSnapshotBeforeUpdate?(prevProps: Readonly<ComponentProps<ED, T, TProperty>>, prevState: Readonly<ComponentData<ED, T, FormedData, TData>>): any;
|
||||
componentWillMount?(): void;
|
||||
UNSAFE_componentWillMount?(): void;
|
||||
componentWillReceiveProps?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextContext: any): void;
|
||||
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextContext: any): void;
|
||||
componentWillUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): void;
|
||||
UNSAFE_componentWillUpdate?(nextProps: Readonly<ComponentProps<ED, T, TProperty>>, nextState: Readonly<ComponentData<ED, T, FormedData, TData>>, nextContext: any): void;
|
||||
};
|
||||
contextType?: React.Context<any> | undefined;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -105,6 +105,12 @@ class OakComponentBase extends react_1.default.PureComponent {
|
|||
: this.state.oakFullpath;
|
||||
this.features.runningTree.updateItem(path2, data, id, action);
|
||||
}
|
||||
updateItems(data, ids, action, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
this.features.runningTree.updateItems(path2, data, ids, action);
|
||||
}
|
||||
recoverItem(id, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
@ -470,6 +476,9 @@ function createComponent(option, features) {
|
|||
updateItem: (data, id, action, path) => {
|
||||
return this.updateItem(data, id, action, path);
|
||||
},
|
||||
updateItems: (data, ids, action, path) => {
|
||||
return this.updateItems(data, ids, action, path);
|
||||
},
|
||||
setFilters: (filters, path) => {
|
||||
return this.setFilters(filters, path);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import React from 'react';
|
||||
import { Aspect, EntityDict } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { BasicFeatures } from './features';
|
||||
|
|
@ -5,4 +6,4 @@ import { Feature } from './types/Feature';
|
|||
import { DataOption, OakComponentOption } from './types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED> & FD): any;
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED> & FD): React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|||
exports.createComponent = void 0;
|
||||
const tslib_1 = require("tslib");
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
const react_1 = tslib_1.__importDefault(require("react"));
|
||||
const withRouter_1 = tslib_1.__importDefault(require("./platforms/web/router/withRouter"));
|
||||
const PullToRefresh_1 = tslib_1.__importDefault(require("./platforms/web/PullToRefresh"));
|
||||
const page_react_1 = require("./page.react");
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ type Props = {
|
|||
features: Record<string, Feature>;
|
||||
children: React.ReactNode;
|
||||
};
|
||||
declare const FeaturesProvider: (props: Props) => any;
|
||||
declare const useFeatures: <FD2 extends Record<string, Feature>>() => any;
|
||||
declare const FeaturesProvider: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
||||
declare const useFeatures: <FD2 extends Record<string, Feature>>() => FD2;
|
||||
export { FeaturesProvider, useFeatures };
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import React from 'react';
|
||||
type OakComponentProperties = {
|
||||
path?: string;
|
||||
properties?: Record<string, any>;
|
||||
};
|
||||
declare const withRouter: (Component: React.ComponentType<any>, { path, properties }: OakComponentProperties) => (props: any) => any;
|
||||
declare const withRouter: (Component: React.ComponentType<any>, { path, properties }: OakComponentProperties) => (props: any) => import("react/jsx-runtime").JSX.Element;
|
||||
export default withRouter;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("tslib");
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
const react_1 = tslib_1.__importDefault(require("react"));
|
||||
const assert_1 = require("oak-domain/lib/utils/assert");
|
||||
function getParams(params, properties) {
|
||||
const props = getProps(params, properties);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import React from 'react';
|
||||
import 'nprogress/nprogress.css';
|
||||
declare const _default: any;
|
||||
declare const _default: React.MemoExoticComponent<() => null>;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("tslib");
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
const react_1 = tslib_1.__importDefault(require("react"));
|
||||
const rmc_pull_to_refresh_1 = tslib_1.__importDefault(require("rmc-pull-to-refresh"));
|
||||
require("./PullToRefresh.css");
|
||||
const OakPullToRefresh = (props) => {
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ declare const FeaturesProvider: React.FC<{
|
|||
features: Record<string, Feature>;
|
||||
children: React.ReactNode;
|
||||
}>;
|
||||
declare const useFeatures: <FD2 extends Record<string, Feature>>() => any;
|
||||
declare const useFeatures: <FD2 extends Record<string, Feature>>() => FD2;
|
||||
export { FeaturesProvider, useFeatures };
|
||||
|
|
|
|||
|
|
@ -2,5 +2,5 @@ import React from 'react';
|
|||
type AppContainerProps = {
|
||||
children?: React.ReactNode;
|
||||
};
|
||||
declare const AppContainer: (props: AppContainerProps) => any;
|
||||
declare const AppContainer: (props: AppContainerProps) => import("react/jsx-runtime").JSX.Element;
|
||||
export default AppContainer;
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ interface ErrorProps<ED extends EntityDict & BaseEntityDict> {
|
|||
error: any;
|
||||
features: BasicFeatures<ED>;
|
||||
}
|
||||
declare function Error<ED extends EntityDict & BaseEntityDict>(props: ErrorProps<ED>): any;
|
||||
declare function Error<ED extends EntityDict & BaseEntityDict>(props: ErrorProps<ED>): import("react/jsx-runtime").JSX.Element;
|
||||
export default Error;
|
||||
|
|
|
|||
|
|
@ -1,12 +1,34 @@
|
|||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("tslib");
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
const react_1 = tslib_1.__importStar(require("react"));
|
||||
const react_1 = require("react");
|
||||
const antd_1 = require("antd");
|
||||
const Exception_1 = require("oak-domain/lib/types/Exception");
|
||||
const ErrorPage_1 = require("../../../types/ErrorPage");
|
||||
const ErrorPage = (0, react_1.lazy)(() => Promise.resolve().then(() => tslib_1.__importStar(require('../../../components/errorPage'))));
|
||||
const ErrorPage = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('../../../components/errorPage'))));
|
||||
function Error(props) {
|
||||
const { error, features } = props;
|
||||
if (error instanceof Exception_1.OakException) {
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ declare const AppRouter: <ED extends BaseEntityDict>(props: {
|
|||
routers: IRouter[];
|
||||
appName: string;
|
||||
features: BasicFeatures<ED>;
|
||||
}) => any;
|
||||
}) => import("react/jsx-runtime").JSX.Element;
|
||||
export default AppRouter;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,6 @@
|
|||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const tslib_1 = require("tslib");
|
||||
const jsx_runtime_1 = require("react/jsx-runtime");
|
||||
// @ts-nocheck
|
||||
const react_1 = tslib_1.__importDefault(require("react"));
|
||||
const client_1 = tslib_1.__importDefault(require("react-dom/client"));
|
||||
const history_1 = require("history");
|
||||
const react_router_dom_1 = require("react-router-dom");
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
import React from 'react';
|
||||
export type Width = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
||||
export type Keys = Width[];
|
||||
export type Values = {
|
||||
|
|
@ -15,4 +16,6 @@ export type Breakpoints = {
|
|||
export declare const keys: Keys;
|
||||
export declare const values: Values;
|
||||
export declare const defaultBreakpoints: Breakpoints;
|
||||
export declare const ResponsiveContext: any;
|
||||
export declare const ResponsiveContext: React.Context<{
|
||||
breakpoints?: Breakpoints | undefined;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
|
|||
const react_1 = tslib_1.__importDefault(require("react"));
|
||||
exports.keys = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
||||
exports.values = {
|
||||
xs: 576,
|
||||
xs: 576, //小于576
|
||||
sm: 576,
|
||||
md: 768,
|
||||
lg: 992,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import React from 'react';
|
||||
type OakComponentProperties = {
|
||||
path?: string;
|
||||
properties?: Record<string, any>;
|
||||
};
|
||||
declare const withRouter: (Component: React.ComponentType<any>, { path, properties }: OakComponentProperties) => any;
|
||||
declare const withRouter: (Component: React.ComponentType<any>, { path, properties }: OakComponentProperties) => React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
|
||||
export default withRouter;
|
||||
|
|
|
|||
|
|
@ -222,6 +222,7 @@ export type OakListComponentMethods<ED extends EntityDict & BaseEntityDict, T ex
|
|||
removeItem: (id: string, path?: string) => void;
|
||||
removeItems: (ids: string[], path?: string) => void;
|
||||
updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], path?: string) => void;
|
||||
updateItems: (data: ED[T]['Update']['data'], ids: string[], action?: ED[T]['Action'], path?: string) => void;
|
||||
recoverItem: (id: string, path?: string) => void;
|
||||
recoverItems: (ids: string[], path?: string) => void;
|
||||
resetItem: (id: string, path?: string) => void;
|
||||
|
|
@ -260,7 +261,7 @@ type OakListComoponetData<ED extends EntityDict & BaseEntityDict, T extends keyo
|
|||
};
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, AsyncContext<ED>>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh' | 'aggregate' | 'checkOperation' | 'isDirty';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'updateItems' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentSingleMethodNames = 'update' | 'remove' | 'create' | 'isCreation' | 'getId' | 'setId';
|
||||
export type WebComponentProps<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, TData extends DataOption = {}, TMethod extends MethodOption = {}> = {
|
||||
methods: TMethod & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
"weapp.socket.io": "^2.2.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ant-design/icons": ">=5.2.6",
|
||||
"@ant-design/icons": ">=5.3.4",
|
||||
"antd": ">=5.13.0",
|
||||
"antd-mobile": ">=5.33.0",
|
||||
"antd-mobile-icons": ">=0.3.0",
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
"react-router-dom": ">=6.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ant-design/icons": "5.2.6",
|
||||
"@ant-design/icons": "^5.3.4",
|
||||
"@babel/cli": "^7.12.13",
|
||||
"@babel/core": "^7.12.13",
|
||||
"@babel/plugin-proposal-class-properties": "^7.12.13",
|
||||
|
|
|
|||
|
|
@ -598,6 +598,17 @@ const oakBehavior = Behavior<
|
|||
action
|
||||
);
|
||||
},
|
||||
updateItems(data, ids, action, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
return this.features.runningTree.updateItems(
|
||||
path2,
|
||||
data,
|
||||
ids,
|
||||
action
|
||||
);
|
||||
},
|
||||
removeItem(id, path) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
|
|||
|
|
@ -227,6 +227,23 @@ abstract class OakComponentBase<
|
|||
);
|
||||
}
|
||||
|
||||
updateItems<T extends keyof ED>(
|
||||
data: ED[T]['Update']['data'],
|
||||
ids: string[],
|
||||
action?: ED[T]['Action'],
|
||||
path?: string
|
||||
) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
: this.state.oakFullpath;
|
||||
this.features.runningTree.updateItems(
|
||||
path2,
|
||||
data,
|
||||
ids,
|
||||
action
|
||||
);
|
||||
}
|
||||
|
||||
recoverItem(id: string, path?: string) {
|
||||
const path2 = path
|
||||
? `${this.state.oakFullpath}.${path}`
|
||||
|
|
@ -777,6 +794,9 @@ export function createComponent<
|
|||
updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], path?: string) => {
|
||||
return this.updateItem(data, id, action, path);
|
||||
},
|
||||
updateItems: (data: ED[T]['Update']['data'], ids: string[], action?: ED[T]['Action'], path?: string) => {
|
||||
return this.updateItems(data, ids, action, path);
|
||||
},
|
||||
setFilters: (filters: NamedFilterItem<ED, T>[], path?: string) => {
|
||||
return this.setFilters(filters, path);
|
||||
},
|
||||
|
|
|
|||
|
|
@ -445,6 +445,7 @@ export type OakListComponentMethods<ED extends EntityDict & BaseEntityDict, T ex
|
|||
removeItem: (id: string, path?: string) => void;
|
||||
removeItems: (ids: string[], path?: string) => void;
|
||||
updateItem: (data: ED[T]['Update']['data'], id: string, action?: ED[T]['Action'], path?: string) => void;
|
||||
updateItems: (data: ED[T]['Update']['data'], ids: string[], action?: ED[T]['Action'], path?: string) => void;
|
||||
recoverItem: (id: string, path?: string) => void;
|
||||
recoverItems: (ids: string[], path?: string) => void;
|
||||
resetItem: (id: string, path?: string) => void;
|
||||
|
|
@ -529,7 +530,7 @@ export type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | '
|
|||
// 暴露给list组件的方法
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters'
|
||||
| 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage'
|
||||
| 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
| 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'updateItems' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
|
||||
// 暴露给single组件的方法
|
||||
export type WebComponentSingleMethodNames = 'update' | 'remove' | 'create' | 'isCreation' | 'getId' | 'setId';
|
||||
|
|
|
|||
Loading…
Reference in New Issue