1、修复了微信公众号关注后,可能会创建一个没有 userId 的 wechatUser 记录的情况。当系统中存在相同的 unionId 时,自动根据该 unionId 查找并关联到相应的用户。
2、增强了文档管理功能,支持传入指定滚动条所在元素的 id,以便动态调整和控制页面滚动。
This commit is contained in:
parent
abf942ae1a
commit
eaca6b32f6
|
|
@ -1502,12 +1502,39 @@ async function loginFromWechatEnv(code, env, context, wechatLoginId) {
|
|||
else if (wechatLoginData.type === 'login') {
|
||||
// wechatUser存在直接登录
|
||||
if (wechatUser) {
|
||||
const tokenValue = await setUpTokenAndUser(env, context, 'wechatUser', wechatUser.id, undefined, wechatUser.user);
|
||||
// 微信公众号关注后,会创建一个没有userId的wechatUser
|
||||
let user2 = wechatUser.user;
|
||||
if (!user2 && unionId) {
|
||||
// 如果有unionId,查找同一个system下有相同的unionId的user
|
||||
const [user] = await context.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
filter: {
|
||||
wechatUser$user: {
|
||||
application: {
|
||||
systemId: application.systemId,
|
||||
},
|
||||
unionId,
|
||||
},
|
||||
},
|
||||
}, {
|
||||
dontCollect: true,
|
||||
});
|
||||
user2 = user;
|
||||
}
|
||||
const tokenValue = await setUpTokenAndUser(env, context, 'wechatUser', wechatUser.id, undefined, user2);
|
||||
const wechatUserUpdateData = wechatUserData;
|
||||
if (unionId !== wechatUser.unionId) {
|
||||
Object.assign(wechatUserUpdateData, {
|
||||
unionId,
|
||||
...wechatUserData,
|
||||
});
|
||||
}
|
||||
if (user2 && !wechatUser.userId) {
|
||||
Object.assign(wechatUserUpdateData, {
|
||||
userId: user2.id,
|
||||
});
|
||||
}
|
||||
await context.operate('wechatUser', {
|
||||
|
|
@ -1518,7 +1545,10 @@ async function loginFromWechatEnv(code, env, context, wechatLoginId) {
|
|||
id: wechatUser.id,
|
||||
},
|
||||
}, { dontCollect: true });
|
||||
await updateWechatLogin({ userId: wechatUser.userId, successed: true });
|
||||
await updateWechatLogin({
|
||||
userId: wechatUser.userId,
|
||||
successed: true,
|
||||
});
|
||||
return tokenValue;
|
||||
}
|
||||
else {
|
||||
|
|
@ -1541,13 +1571,41 @@ async function loginFromWechatEnv(code, env, context, wechatLoginId) {
|
|||
}
|
||||
else {
|
||||
if (wechatUser) {
|
||||
const tokenValue = await setUpTokenAndUser(env, context, 'wechatUser', wechatUser.id, undefined, wechatUser.user);
|
||||
// 微信公众号关注后,会创建一个没有userId的wechatUser
|
||||
let user2 = wechatUser.user;
|
||||
if (!user2 && unionId) {
|
||||
// 如果有unionId,查找同一个system下有相同的unionId的user
|
||||
const [user] = await context.select('user', {
|
||||
data: {
|
||||
id: 1,
|
||||
userState: 1,
|
||||
refId: 1,
|
||||
},
|
||||
filter: {
|
||||
wechatUser$user: {
|
||||
application: {
|
||||
systemId: application.systemId,
|
||||
},
|
||||
unionId,
|
||||
}
|
||||
},
|
||||
}, {
|
||||
dontCollect: true,
|
||||
});
|
||||
user2 = user;
|
||||
}
|
||||
const tokenValue = await setUpTokenAndUser(env, context, 'wechatUser', wechatUser.id, undefined, user2);
|
||||
const wechatUserUpdateData = wechatUserData;
|
||||
if (unionId !== wechatUser.unionId) {
|
||||
Object.assign(wechatUserUpdateData, {
|
||||
unionId,
|
||||
});
|
||||
}
|
||||
if (user2 && !wechatUser.userId) {
|
||||
Object.assign(wechatUserUpdateData, {
|
||||
userId: user2.id,
|
||||
});
|
||||
}
|
||||
await context.operate('wechatUser', {
|
||||
id: await generateNewIdAsync(),
|
||||
action: 'update',
|
||||
|
|
|
|||
|
|
@ -5,5 +5,6 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
highlightBgColor: string;
|
||||
headerTop: number;
|
||||
className: string;
|
||||
scrollId: string;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ export default OakComponent({
|
|||
highlightBgColor: 'none',
|
||||
headerTop: 0, //页面中吸顶部分高度
|
||||
className: '',
|
||||
scrollId: '', // 滚动条所在容器id,不传默认body
|
||||
},
|
||||
lifetimes: {},
|
||||
methods: {}
|
||||
|
|
|
|||
|
|
@ -10,4 +10,5 @@ export default function Render(props: WebComponentProps<EntityDict, 'article', f
|
|||
className?: string;
|
||||
tocFixed: boolean;
|
||||
tocClosed: boolean;
|
||||
scrollId?: string;
|
||||
}, {}>): React.JSX.Element;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import classNames from 'classnames';
|
|||
import { TocView } from '../toc/tocView';
|
||||
import Style from './web.module.less';
|
||||
export default function Render(props) {
|
||||
const { className, content, tocPosition = 'none', tocFixed, highlightBgColor = 'none', headerTop = 0, tocClosed = false } = props.data;
|
||||
const { className, content, tocPosition = 'none', tocFixed, highlightBgColor = 'none', headerTop = 0, tocClosed = false, scrollId } = props.data;
|
||||
const editorConfig = {
|
||||
readOnly: true,
|
||||
autoFocus: true,
|
||||
|
|
@ -37,12 +37,12 @@ export default function Render(props) {
|
|||
return (<div className={classNames(Style.container, className)}>
|
||||
<Row gutter={[16, 0]}>
|
||||
{tocPosition === 'left' ? (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed} scrollId={scrollId}/>
|
||||
</Col>) : null}
|
||||
|
||||
<Col flex="auto">
|
||||
<div className={Style.content}>
|
||||
<div id="editorContainer" className={Style.editorContainer}>
|
||||
<div className={Style.editorContainer}>
|
||||
<div style={{ width: "100%" }}>
|
||||
<Editor defaultConfig={editorConfig} value={html} mode="default" style={{
|
||||
width: '100%'
|
||||
|
|
@ -65,7 +65,7 @@ export default function Render(props) {
|
|||
</div>
|
||||
</Col>
|
||||
{tocPosition === 'right' ? (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed} scrollId={scrollId}/>
|
||||
</Col>) : null}
|
||||
</Row>
|
||||
</div>);
|
||||
|
|
|
|||
|
|
@ -5,5 +5,6 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
highlightBgColor: string;
|
||||
headerTop: number;
|
||||
className: string;
|
||||
scrollId: string;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ export default OakComponent({
|
|||
highlightBgColor: 'none',
|
||||
headerTop: 0, //页面中吸顶部分高度
|
||||
className: '',
|
||||
scrollId: '', // 滚动条所在容器id,不传默认body
|
||||
},
|
||||
methods: {},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -9,4 +9,5 @@ export default function Render(props: WebComponentProps<EntityDict, 'article', f
|
|||
className?: string;
|
||||
tocFixed: boolean;
|
||||
tocClosed: boolean;
|
||||
scrollId?: string;
|
||||
}, {}>): React.JSX.Element;
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import classNames from 'classnames';
|
|||
import { TocView } from '../toc/tocView';
|
||||
import Styles from './web.module.less';
|
||||
export default function Render(props) {
|
||||
const { className, content, tocPosition = 'none', tocFixed, highlightBgColor = 'none', headerTop = 0, tocClosed = false } = props.data;
|
||||
const { className, content, tocPosition = 'none', tocFixed, highlightBgColor = 'none', headerTop = 0, tocClosed = false, scrollId } = props.data;
|
||||
const editorConfig = {
|
||||
readOnly: true,
|
||||
autoFocus: true,
|
||||
|
|
@ -37,12 +37,12 @@ export default function Render(props) {
|
|||
return (<div className={classNames(Styles.container, className)}>
|
||||
<Row gutter={[16, 0]}>
|
||||
{tocPosition === 'left' && (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed} scrollId={scrollId}/>
|
||||
</Col>)}
|
||||
|
||||
<Col flex="auto">
|
||||
<div className={Styles.content}>
|
||||
<div id="editorContainer" className={Styles.editorContainer}>
|
||||
<div className={Styles.editorContainer}>
|
||||
<div style={{ width: "100%" }}>
|
||||
<Editor defaultConfig={editorConfig} value={html} mode="default" style={{
|
||||
width: '100%'
|
||||
|
|
@ -65,7 +65,7 @@ export default function Render(props) {
|
|||
</div>
|
||||
</Col>
|
||||
{tocPosition === 'right' && (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor} headerTop={headerTop} fixed={tocFixed} closed={tocClosed} scrollId={scrollId}/>
|
||||
</Col>)}
|
||||
</Row>
|
||||
</div>);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ export declare function TocView(props: {
|
|||
highlightBgColor: string;
|
||||
headerTop?: number;
|
||||
fixed?: boolean;
|
||||
containerId?: string;
|
||||
scrollId?: string;
|
||||
closed?: boolean;
|
||||
}): import("react").JSX.Element;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { CaretDownOutlined, CloseOutlined, MenuOutlined } from "@ant-design/icon
|
|||
import classNames from "classnames";
|
||||
import Style from './tocView.module.less';
|
||||
export function TocView(props) {
|
||||
const { toc, showToc, tocPosition, setShowToc, highlightBgColor, headerTop = 0, containerId, fixed = false, closed = false } = props;
|
||||
const { toc, showToc, tocPosition, setShowToc, highlightBgColor, headerTop = 0, scrollId, fixed = false, closed = false } = props;
|
||||
useEffect(() => {
|
||||
document.documentElement.style.setProperty('--highlight-bg-color', highlightBgColor);
|
||||
}, [highlightBgColor]);
|
||||
|
|
@ -49,8 +49,8 @@ export function TocView(props) {
|
|||
//页面滚动到对应元素
|
||||
const elem = document.getElementById(item.id);
|
||||
const elemTop = elem?.getBoundingClientRect().top;
|
||||
if (containerId) {
|
||||
const scrollContainer = document.getElementById(containerId);
|
||||
if (scrollId) {
|
||||
const scrollContainer = document.getElementById(scrollId);
|
||||
const containerTop = scrollContainer?.getBoundingClientRect().top;
|
||||
scrollContainer?.scrollBy({
|
||||
top: elemTop - containerTop,
|
||||
|
|
@ -58,6 +58,7 @@ export function TocView(props) {
|
|||
});
|
||||
}
|
||||
else {
|
||||
// const containerTop = document.body.getBoundingClientRect().top;
|
||||
window.scrollBy({
|
||||
top: elemTop - headerTop,
|
||||
behavior: 'smooth',
|
||||
|
|
|
|||
|
|
@ -6,5 +6,6 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
highlightBgColor: string;
|
||||
onArticlePreview: (content?: string, title?: string) => void;
|
||||
origin: string;
|
||||
scrollId: string;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ export default OakComponent({
|
|||
highlightBgColor: 'none', //点击目录时标题高亮背景色,none为不显示高亮背景色
|
||||
onArticlePreview: (content, title) => undefined, //预览文章
|
||||
origin: 'qiniu', // 默认为七牛云
|
||||
scrollId: '', // 滚动条所在容器id,不传默认页面编辑器容器id
|
||||
},
|
||||
listeners: {
|
||||
'editor,content'(prev, next) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ export default function Render(props: WebComponentProps<EntityDict, 'article', f
|
|||
oakId: string;
|
||||
tocPosition: 'none' | 'left' | 'right';
|
||||
highlightBgColor: string;
|
||||
scrollId?: string;
|
||||
}, {
|
||||
setHtml: (content: string) => void;
|
||||
setEditor: (editor: any) => void;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ function customCheckImageFn(src, alt, url) {
|
|||
// 3. 返回 undefined(即没有任何返回),说明检查未通过,编辑器会阻止插入。但不会提示任何信息
|
||||
}
|
||||
function TocView(props) {
|
||||
const { toc, showToc, tocPosition, setShowToc, highlightBgColor } = props;
|
||||
const { toc, showToc, tocPosition, setShowToc, highlightBgColor, scrollId } = props;
|
||||
useEffect(() => {
|
||||
document.documentElement.style.setProperty('--highlight-bg-color', highlightBgColor);
|
||||
}, [highlightBgColor]);
|
||||
|
|
@ -74,7 +74,7 @@ function TocView(props) {
|
|||
//编辑器滚动到对应元素
|
||||
const elem = document.getElementById(item.id);
|
||||
const elemTop = elem?.getBoundingClientRect().top;
|
||||
const scrollContainer = document.getElementById('editorContainer');
|
||||
const scrollContainer = document.getElementById(scrollId || 'article-upsert-editorContainer');
|
||||
const containerTop = scrollContainer?.getBoundingClientRect().top;
|
||||
scrollContainer?.scrollBy({
|
||||
top: elemTop - containerTop,
|
||||
|
|
@ -122,7 +122,7 @@ function TocView(props) {
|
|||
export default function Render(props) {
|
||||
const { methods, data } = props;
|
||||
const { t, setEditor, check, uploadFile, update, setHtml, gotoPreview, clearContentTip, } = methods;
|
||||
const { id, content, editor, origin = 'qiniu', oakFullpath, html, tocPosition = 'none', highlightBgColor = 'none' } = data;
|
||||
const { id, content, editor, origin = 'qiniu', oakFullpath, html, tocPosition = 'none', highlightBgColor = 'none', scrollId } = data;
|
||||
const [articleId, setArticleId] = useState('');
|
||||
const [toc, setToc] = useState([]);
|
||||
const [showToc, setShowToc] = useState(false);
|
||||
|
|
@ -143,12 +143,14 @@ export default function Render(props) {
|
|||
</div>
|
||||
<Row gutter={[16, 0]}>
|
||||
{tocPosition === 'left' ? (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='left' setShowToc={setShowToc} highlightBgColor={highlightBgColor} scrollId={scrollId}/>
|
||||
</Col>) : null}
|
||||
|
||||
<Col flex="auto">
|
||||
<div className={Style.content}>
|
||||
<div id="editorContainer" className={Style.editorContainer}>
|
||||
<div id="article-upsert-editorContainer" className={classNames(Style.editorContainer, {
|
||||
[Style.editorExternalContainer]: !!scrollId
|
||||
})}>
|
||||
{data.contentTip && (<Alert type="info" message={t('tips.content')} closable onClose={() => clearContentTip()}/>)}
|
||||
<div className={Style.titleContainer}>
|
||||
<Input onChange={(e) => update({ name: e.target.value })} value={data.name} placeholder={'请输入文章标题'} size="large" maxLength={32} suffix={`${[...(data.name || '')].length}/32`} className={Style.titleInput}/>
|
||||
|
|
@ -264,7 +266,7 @@ export default function Render(props) {
|
|||
</div>
|
||||
</Col>
|
||||
{tocPosition === 'right' ? (<Col flex="228px">
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor}/>
|
||||
<TocView toc={toc} showToc={showToc} tocPosition='right' setShowToc={setShowToc} highlightBgColor={highlightBgColor} scrollId={scrollId}/>
|
||||
</Col>) : null}
|
||||
</Row>
|
||||
</div>);
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@
|
|||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.editorExternalContainer {
|
||||
overflow-y: unset;
|
||||
max-height: unset;
|
||||
}
|
||||
|
||||
.titleContainer {
|
||||
padding: 5px 0;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
|
|
|
|||
|
|
@ -13,5 +13,6 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
onArticleEdit: (oakId: string) => void;
|
||||
setCopyArticleUrl: (id: string) => string;
|
||||
origin: string;
|
||||
scrollId: string;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ export default OakComponent({
|
|||
onArticlePreview: (content, title) => undefined, //预览文章
|
||||
onArticleEdit: (oakId) => undefined, //编辑文章
|
||||
setCopyArticleUrl: (id) => '',
|
||||
origin: 'qiniu' // cos origin默认七牛云
|
||||
origin: 'qiniu', // cos origin默认七牛云
|
||||
scrollId: '', // 滚动条所在容器id,不传默认页面编辑器容器id
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ export default function Render(props: WebComponentProps<EntityDict, 'articleMenu
|
|||
onArticlePreview: (content?: string, title?: string) => void;
|
||||
onArticleEdit: (oakId: string) => void;
|
||||
setCopyArticleUrl: (id: string) => string;
|
||||
scrollId?: string;
|
||||
}, {
|
||||
gotoDoc: () => void;
|
||||
gotoArticleDetail: (oakId: string) => void;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { EyeOutlined, CopyOutlined, MenuFoldOutlined, MenuUnfoldOutlined, PlusOu
|
|||
import copy from 'copy-to-clipboard';
|
||||
import TreeList from '../treeList';
|
||||
import ArticleUpsert from '../../article/upsert';
|
||||
import ArticleDetail from '../../article/cell';
|
||||
import ArticleCell from '../../article/cell';
|
||||
import Styles from './web.pc.module.less';
|
||||
function BreadcrumbView(props) {
|
||||
const { breadcrumbItems } = props;
|
||||
|
|
@ -20,7 +20,7 @@ function BreadcrumbView(props) {
|
|||
</div>);
|
||||
}
|
||||
export default function Render(props) {
|
||||
const { entity, entityId, oakFullpath, show, articleMenuId, width, articleId, tocPosition, highlightBgColor, onMenuViewById, onArticlePreview, onArticleEdit, origin, setCopyArticleUrl } = props.data;
|
||||
const { entity, entityId, oakFullpath, show, articleMenuId, width, articleId, tocPosition, highlightBgColor, onMenuViewById, onArticlePreview, onArticleEdit, origin, setCopyArticleUrl, scrollId } = props.data;
|
||||
const { gotoDoc, setMessage, gotoArticleDetail } = props.methods;
|
||||
const [editArticleId, setEditArticleId] = useState('');
|
||||
const [breadcrumbItems, setBreadcrumbItems] = useState([]);
|
||||
|
|
@ -95,7 +95,7 @@ export default function Render(props) {
|
|||
<div className={Styles.editor2}>
|
||||
{editArticleId ? (<React.Fragment>
|
||||
<BreadcrumbView breadcrumbItems={breadcrumbItems}/>
|
||||
<ArticleDetail oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleDetail-${editArticleId}`}/>
|
||||
<ArticleCell oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleCell-${editArticleId}`}/>
|
||||
</React.Fragment>) : null}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -114,7 +114,7 @@ export default function Render(props) {
|
|||
<div className={Styles.editor}>
|
||||
{editArticleId ? (<React.Fragment>
|
||||
<BreadcrumbView breadcrumbItems={breadcrumbItems}/>
|
||||
<ArticleDetail oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleDetail-${editArticleId}`}/>
|
||||
<ArticleCell oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleCell-${editArticleId}`} scrollId={scrollId}/>
|
||||
</React.Fragment>) : null}
|
||||
</div>
|
||||
</div>);
|
||||
|
|
@ -160,7 +160,7 @@ export default function Render(props) {
|
|||
</div>);
|
||||
})}
|
||||
</div>
|
||||
{isEdit ? (<ArticleUpsert oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleUpsert-${editArticleId}`} changeIsEdit={changeIsEdit} tocPosition={tocPosition} highlightBgColor={highlightBgColor} origin={origin}/>) : (<ArticleDetail oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleDetail-${editArticleId}`}/>)}
|
||||
{isEdit ? (<ArticleUpsert oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleUpsert-${editArticleId}`} changeIsEdit={changeIsEdit} tocPosition={tocPosition} highlightBgColor={highlightBgColor} origin={origin} scrollId={scrollId}/>) : (<ArticleCell oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleCell-${editArticleId}`}/>)}
|
||||
</div>) : null}
|
||||
</div>
|
||||
</div>);
|
||||
|
|
@ -194,7 +194,7 @@ export default function Render(props) {
|
|||
</div>)}
|
||||
|
||||
<div className={Styles.editor}>
|
||||
{editArticleId ? (<ArticleUpsert oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleUpsert-${editArticleId}`} tocPosition={tocPosition} highlightBgColor={highlightBgColor} onArticlePreview={onArticlePreview} origin={origin}/>) : null}
|
||||
{editArticleId ? (<ArticleUpsert oakId={editArticleId} oakAutoUnmount={true} oakPath={`$articleMenu/treeManager-ArticleUpsert-${editArticleId}`} tocPosition={tocPosition} highlightBgColor={highlightBgColor} onArticlePreview={onArticlePreview} origin={origin} scrollId={scrollId}/>) : null}
|
||||
</div>
|
||||
</div>);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,7 +95,6 @@
|
|||
padding: 0 10px;
|
||||
height: 50px;
|
||||
width: 100vw;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import { ReactComponentProps } from 'oak-frontend-base';
|
|||
import { ECode } from '../../../types/ErrorPage';
|
||||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, false, {
|
||||
code: ECode;
|
||||
title?: string;
|
||||
desc?: string;
|
||||
title?: string | undefined;
|
||||
desc?: string | undefined;
|
||||
children?: React.ReactNode;
|
||||
icon?: React.ReactNode;
|
||||
}>) => React.ReactElement;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
/// <reference types="react" />
|
||||
import { EntityDict } from '../../../oak-app-domain';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { ReactComponentProps } from 'oak-frontend-base/lib/types/Page';
|
||||
|
|
@ -8,14 +9,31 @@ type AfterCommit = (() => void) | undefined;
|
|||
type BeforeCommit = (() => boolean | undefined | Promise<boolean | undefined>) | undefined;
|
||||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, true, {
|
||||
entity: keyof ED2;
|
||||
action?: string;
|
||||
action?: string | undefined;
|
||||
size?: ButtonProps['size'] | AmButtonProps['size'];
|
||||
block?: boolean;
|
||||
block?: boolean | undefined;
|
||||
type?: ButtonProps['type'] | AmButtonProps['type'];
|
||||
executeText?: string;
|
||||
buttonProps?: ButtonProps & AmButtonProps;
|
||||
executeText?: string | undefined;
|
||||
buttonProps?: (ButtonProps & {
|
||||
color?: "primary" | "success" | "warning" | "default" | "danger" | undefined;
|
||||
fill?: "none" | "solid" | "outline" | 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?: "reset" | "submit" | "button" | undefined;
|
||||
shape?: "default" | "rounded" | "rectangular" | undefined;
|
||||
children?: import("react").ReactNode;
|
||||
} & Pick<import("react").ClassAttributes<HTMLButtonElement> & import("react").ButtonHTMLAttributes<HTMLButtonElement>, "id" | "onMouseUp" | "onMouseDown" | "onTouchStart" | "onTouchEnd"> & {
|
||||
className?: 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;
|
||||
beforeCommit?: BeforeCommit;
|
||||
messageProps?: MessageProps | boolean;
|
||||
messageProps?: boolean | MessageProps | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -11,6 +11,6 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
tag2: string;
|
||||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
style?: string;
|
||||
style?: string | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -39,6 +39,6 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
entityId: string;
|
||||
theme: Theme;
|
||||
children?: React.ReactNode;
|
||||
style?: string;
|
||||
style?: string | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { EntityDict } from '../../../oak-app-domain';
|
||||
declare const _default: (props: import("oak-frontend-base").ReactComponentProps<EntityDict, "userEntityGrant", false, {
|
||||
picker: ((props: {
|
||||
disabled?: boolean;
|
||||
disabled?: boolean | undefined;
|
||||
entity: keyof EntityDict;
|
||||
entityFilter: object;
|
||||
relationIds: string[];
|
||||
|
|
@ -9,8 +9,8 @@ declare const _default: (props: import("oak-frontend-base").ReactComponentProps<
|
|||
ruleOnRow: EntityDict['userEntityGrant']['OpSchema']['ruleOnRow'];
|
||||
onPickRelations: (ids: string[]) => void;
|
||||
onPickRows: (ids: string[]) => void;
|
||||
pickedRowIds?: string[];
|
||||
pickedRelationIds?: string[];
|
||||
pickedRowIds?: string[] | undefined;
|
||||
pickedRelationIds?: string[] | undefined;
|
||||
oakPath: string;
|
||||
}) => React.ReactElement) | undefined;
|
||||
hideInfo: boolean;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { ReactComponentProps } from 'oak-frontend-base';
|
|||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, true, {
|
||||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
redirectToAfterConfirm: ED2['userEntityGrant']['Schema']['redirectTo'];
|
||||
redirectToAfterConfirm: ED2["userEntityGrant"]["Schema"]["redirectTo"];
|
||||
qrCodeType: string;
|
||||
showTitle: true;
|
||||
showBack: false;
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends key
|
|||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
relations: EntityDict['relation']['OpSchema'][];
|
||||
passwordRequire?: boolean;
|
||||
allowUpdateName?: boolean;
|
||||
allowUpdateNickname?: boolean;
|
||||
passwordRequire?: boolean | undefined;
|
||||
allowUpdateName?: boolean | undefined;
|
||||
allowUpdateNickname?: boolean | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
|||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, true, {
|
||||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
allowUpdateName?: boolean;
|
||||
allowUpdateNickname?: boolean;
|
||||
allowUpdateName?: boolean | undefined;
|
||||
allowUpdateNickname?: boolean | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { ReactComponentProps } from 'oak-frontend-base';
|
|||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, true, {
|
||||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
redirectToAfterConfirm: ED2['userEntityGrant']['Schema']['redirectTo'];
|
||||
redirectToAfterConfirm: ED2["userEntityGrant"]["Schema"]["redirectTo"];
|
||||
qrCodeType: QrCodeType;
|
||||
type: EntityDict['userEntityGrant']['Schema']['type'];
|
||||
relations: EntityDict['relation']['OpSchema'][];
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
|||
declare const _default: <ED2 extends EntityDict & BaseEntityDict, T2 extends keyof ED2>(props: ReactComponentProps<ED2, T2, true, {
|
||||
entity: keyof ED2;
|
||||
entityId: string;
|
||||
redirectToAfterConfirm: ED2['userEntityGrant']['Schema']['redirectTo'];
|
||||
redirectToAfterConfirm: ED2["userEntityGrant"]["Schema"]["redirectTo"];
|
||||
claimUrl: string;
|
||||
qrCodeType: string;
|
||||
passwordRequire?: boolean;
|
||||
allowUpdateName?: boolean;
|
||||
allowUpdateNickname?: boolean;
|
||||
passwordRequire?: boolean | undefined;
|
||||
allowUpdateName?: boolean | undefined;
|
||||
allowUpdateNickname?: boolean | undefined;
|
||||
}>) => React.ReactElement;
|
||||
export default _default;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@ export type OpSchema = EntityShape & {
|
|||
deActions: Actions;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
relationId?: ForeignKey<"relation"> | null;
|
||||
pathId: ForeignKey<"path">;
|
||||
deActions: Actions;
|
||||
relation?: Relation.Schema | null;
|
||||
path: Path.Schema;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -1,8 +1 @@
|
|||
{
|
||||
"name": "用户授权",
|
||||
"attr": {
|
||||
"relation": "关系",
|
||||
"path": "路径",
|
||||
"deActions": "目标对象动作"
|
||||
}
|
||||
}
|
||||
{ "name": "用户授权", "attr": { "relation": "关系", "path": "路径", "deActions": "目标对象动作" } }
|
||||
|
|
|
|||
|
|
@ -17,7 +17,15 @@ export type OpSchema = EntityShape & {
|
|||
entityId?: String<64> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
detail: String<32>;
|
||||
areaId: ForeignKey<"area">;
|
||||
phone: String<12>;
|
||||
name: String<32>;
|
||||
default: Boolean;
|
||||
remark?: Text | null;
|
||||
entity?: ("user" | string) | null;
|
||||
entityId?: String<64> | null;
|
||||
area: Area.Schema;
|
||||
user?: User.Schema;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -1,13 +1 @@
|
|||
{
|
||||
"name": "地址",
|
||||
"attr": {
|
||||
"detail": "详细地址",
|
||||
"area": "所在地区",
|
||||
"phone": "联系电话",
|
||||
"name": "姓名",
|
||||
"default": "是否默认",
|
||||
"remark": "备注",
|
||||
"entity": "对象实体",
|
||||
"entityId": "对象实体Id"
|
||||
}
|
||||
}
|
||||
{ "name": "地址", "attr": { "detail": "详细地址", "area": "所在地区", "phone": "联系电话", "name": "姓名", "default": "是否默认", "remark": "备注", "entity": "对象实体", "entityId": "对象实体Id" } }
|
||||
|
|
|
|||
|
|
@ -91,59 +91,42 @@ export type OpSchema = EntityShape & {
|
|||
domainId?: ForeignKey<"domain"> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ApplicationPassport$applicationAggr = "applicationPassport$application$$aggr" | "applicationPassport$application$$0$$aggr" | "applicationPassport$application$$1$$aggr" | "applicationPassport$application$$2$$aggr" | "applicationPassport$application$$3$$aggr" | "applicationPassport$application$$4$$aggr" | "applicationPassport$application$$5$$aggr" | "applicationPassport$application$$6$$aggr" | "applicationPassport$application$$7$$aggr" | "applicationPassport$application$$8$$aggr" | "applicationPassport$application$$9$$aggr";
|
||||
type ExtraFile$applicationAggr = "extraFile$application$$aggr" | "extraFile$application$$0$$aggr" | "extraFile$application$$1$$aggr" | "extraFile$application$$2$$aggr" | "extraFile$application$$3$$aggr" | "extraFile$application$$4$$aggr" | "extraFile$application$$5$$aggr" | "extraFile$application$$6$$aggr" | "extraFile$application$$7$$aggr" | "extraFile$application$$8$$aggr" | "extraFile$application$$9$$aggr";
|
||||
type Notification$applicationAggr = "notification$application$$aggr" | "notification$application$$0$$aggr" | "notification$application$$1$$aggr" | "notification$application$$2$$aggr" | "notification$application$$3$$aggr" | "notification$application$$4$$aggr" | "notification$application$$5$$aggr" | "notification$application$$6$$aggr" | "notification$application$$7$$aggr" | "notification$application$$8$$aggr" | "notification$application$$9$$aggr";
|
||||
type SessionMessage$applicationAggr = "sessionMessage$application$$aggr" | "sessionMessage$application$$0$$aggr" | "sessionMessage$application$$1$$aggr" | "sessionMessage$application$$2$$aggr" | "sessionMessage$application$$3$$aggr" | "sessionMessage$application$$4$$aggr" | "sessionMessage$application$$5$$aggr" | "sessionMessage$application$$6$$aggr" | "sessionMessage$application$$7$$aggr" | "sessionMessage$application$$8$$aggr" | "sessionMessage$application$$9$$aggr";
|
||||
type Token$applicationAggr = "token$application$$aggr" | "token$application$$0$$aggr" | "token$application$$1$$aggr" | "token$application$$2$$aggr" | "token$application$$3$$aggr" | "token$application$$4$$aggr" | "token$application$$5$$aggr" | "token$application$$6$$aggr" | "token$application$$7$$aggr" | "token$application$$8$$aggr" | "token$application$$9$$aggr";
|
||||
type WechatMenu$applicationAggr = "wechatMenu$application$$aggr" | "wechatMenu$application$$0$$aggr" | "wechatMenu$application$$1$$aggr" | "wechatMenu$application$$2$$aggr" | "wechatMenu$application$$3$$aggr" | "wechatMenu$application$$4$$aggr" | "wechatMenu$application$$5$$aggr" | "wechatMenu$application$$6$$aggr" | "wechatMenu$application$$7$$aggr" | "wechatMenu$application$$8$$aggr" | "wechatMenu$application$$9$$aggr";
|
||||
type WechatPublicAutoReply$applicationAggr = "wechatPublicAutoReply$application$$aggr" | "wechatPublicAutoReply$application$$0$$aggr" | "wechatPublicAutoReply$application$$1$$aggr" | "wechatPublicAutoReply$application$$2$$aggr" | "wechatPublicAutoReply$application$$3$$aggr" | "wechatPublicAutoReply$application$$4$$aggr" | "wechatPublicAutoReply$application$$5$$aggr" | "wechatPublicAutoReply$application$$6$$aggr" | "wechatPublicAutoReply$application$$7$$aggr" | "wechatPublicAutoReply$application$$8$$aggr" | "wechatPublicAutoReply$application$$9$$aggr";
|
||||
type WechatPublicTag$applicationAggr = "wechatPublicTag$application$$aggr" | "wechatPublicTag$application$$0$$aggr" | "wechatPublicTag$application$$1$$aggr" | "wechatPublicTag$application$$2$$aggr" | "wechatPublicTag$application$$3$$aggr" | "wechatPublicTag$application$$4$$aggr" | "wechatPublicTag$application$$5$$aggr" | "wechatPublicTag$application$$6$$aggr" | "wechatPublicTag$application$$7$$aggr" | "wechatPublicTag$application$$8$$aggr" | "wechatPublicTag$application$$9$$aggr";
|
||||
type WechatQrCode$applicationAggr = "wechatQrCode$application$$aggr" | "wechatQrCode$application$$0$$aggr" | "wechatQrCode$application$$1$$aggr" | "wechatQrCode$application$$2$$aggr" | "wechatQrCode$application$$3$$aggr" | "wechatQrCode$application$$4$$aggr" | "wechatQrCode$application$$5$$aggr" | "wechatQrCode$application$$6$$aggr" | "wechatQrCode$application$$7$$aggr" | "wechatQrCode$application$$8$$aggr" | "wechatQrCode$application$$9$$aggr";
|
||||
type WechatTemplate$applicationAggr = "wechatTemplate$application$$aggr" | "wechatTemplate$application$$0$$aggr" | "wechatTemplate$application$$1$$aggr" | "wechatTemplate$application$$2$$aggr" | "wechatTemplate$application$$3$$aggr" | "wechatTemplate$application$$4$$aggr" | "wechatTemplate$application$$5$$aggr" | "wechatTemplate$application$$6$$aggr" | "wechatTemplate$application$$7$$aggr" | "wechatTemplate$application$$8$$aggr" | "wechatTemplate$application$$9$$aggr";
|
||||
type WechatUser$applicationAggr = "wechatUser$application$$aggr" | "wechatUser$application$$0$$aggr" | "wechatUser$application$$1$$aggr" | "wechatUser$application$$2$$aggr" | "wechatUser$application$$3$$aggr" | "wechatUser$application$$4$$aggr" | "wechatUser$application$$5$$aggr" | "wechatUser$application$$6$$aggr" | "wechatUser$application$$7$$aggr" | "wechatUser$application$$8$$aggr" | "wechatUser$application$$9$$aggr";
|
||||
type Session$entityAggr = "session$entity$$aggr" | "session$entity$$0$$aggr" | "session$entity$$1$$aggr" | "session$entity$$2$$aggr" | "session$entity$$3$$aggr" | "session$entity$$4$$aggr" | "session$entity$$5$$aggr" | "session$entity$$6$$aggr" | "session$entity$$7$$aggr" | "session$entity$$8$$aggr" | "session$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
description?: Text | null;
|
||||
type: AppType;
|
||||
systemId: ForeignKey<"system">;
|
||||
config: WebConfig | WechatMpConfig | WechatPublicConfig | NativeConfig;
|
||||
style?: Style | null;
|
||||
domainId?: ForeignKey<"domain"> | null;
|
||||
system: System.Schema;
|
||||
domain?: Domain.Schema | null;
|
||||
applicationPassport$application?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$application$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
extraFile$application?: Array<ExtraFile.Schema>;
|
||||
extraFile$application$$aggr?: AggregationResult<ExtraFile.Schema>;
|
||||
notification$application?: Array<Notification.Schema>;
|
||||
notification$application$$aggr?: AggregationResult<Notification.Schema>;
|
||||
sessionMessage$application?: Array<SessionMessage.Schema>;
|
||||
sessionMessage$application$$aggr?: AggregationResult<SessionMessage.Schema>;
|
||||
token$application?: Array<Token.Schema>;
|
||||
token$application$$aggr?: AggregationResult<Token.Schema>;
|
||||
wechatMenu$application?: Array<WechatMenu.Schema>;
|
||||
wechatMenu$application$$aggr?: AggregationResult<WechatMenu.Schema>;
|
||||
wechatPublicAutoReply$application?: Array<WechatPublicAutoReply.Schema>;
|
||||
wechatPublicAutoReply$application$$aggr?: AggregationResult<WechatPublicAutoReply.Schema>;
|
||||
wechatPublicTag$application?: Array<WechatPublicTag.Schema>;
|
||||
wechatPublicTag$application$$aggr?: AggregationResult<WechatPublicTag.Schema>;
|
||||
wechatQrCode$application?: Array<WechatQrCode.Schema>;
|
||||
wechatQrCode$application$$aggr?: AggregationResult<WechatQrCode.Schema>;
|
||||
wechatTemplate$application?: Array<WechatTemplate.Schema>;
|
||||
wechatTemplate$application$$aggr?: AggregationResult<WechatTemplate.Schema>;
|
||||
wechatUser$application?: Array<WechatUser.Schema>;
|
||||
wechatUser$application$$aggr?: AggregationResult<WechatUser.Schema>;
|
||||
session$entity?: Array<Session.Schema>;
|
||||
session$entity$$aggr?: AggregationResult<Session.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ApplicationPassport$applicationAggr]?: AggregationResult<ApplicationPassport.Schema>;
|
||||
} & {
|
||||
[A in ExtraFile$applicationAggr]?: AggregationResult<ExtraFile.Schema>;
|
||||
} & {
|
||||
[A in Notification$applicationAggr]?: AggregationResult<Notification.Schema>;
|
||||
} & {
|
||||
[A in SessionMessage$applicationAggr]?: AggregationResult<SessionMessage.Schema>;
|
||||
} & {
|
||||
[A in Token$applicationAggr]?: AggregationResult<Token.Schema>;
|
||||
} & {
|
||||
[A in WechatMenu$applicationAggr]?: AggregationResult<WechatMenu.Schema>;
|
||||
} & {
|
||||
[A in WechatPublicAutoReply$applicationAggr]?: AggregationResult<WechatPublicAutoReply.Schema>;
|
||||
} & {
|
||||
[A in WechatPublicTag$applicationAggr]?: AggregationResult<WechatPublicTag.Schema>;
|
||||
} & {
|
||||
[A in WechatQrCode$applicationAggr]?: AggregationResult<WechatQrCode.Schema>;
|
||||
} & {
|
||||
[A in WechatTemplate$applicationAggr]?: AggregationResult<WechatTemplate.Schema>;
|
||||
} & {
|
||||
[A in WechatUser$applicationAggr]?: AggregationResult<WechatUser.Schema>;
|
||||
} & {
|
||||
[A in Session$entityAggr]?: AggregationResult<Session.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -192,88 +175,76 @@ export type Projection = {
|
|||
applicationPassport$application?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
applicationPassport$application$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
extraFile$application?: ExtraFile.Selection & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
extraFile$application$$aggr?: ExtraFile.Aggregation & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
notification$application?: Notification.Selection & {
|
||||
$entity: "notification";
|
||||
};
|
||||
notification$application$$aggr?: Notification.Aggregation & {
|
||||
$entity: "notification";
|
||||
};
|
||||
sessionMessage$application?: SessionMessage.Selection & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
sessionMessage$application$$aggr?: SessionMessage.Aggregation & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
token$application?: Token.Selection & {
|
||||
$entity: "token";
|
||||
};
|
||||
token$application$$aggr?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
wechatMenu$application?: WechatMenu.Selection & {
|
||||
$entity: "wechatMenu";
|
||||
};
|
||||
wechatMenu$application$$aggr?: WechatMenu.Aggregation & {
|
||||
$entity: "wechatMenu";
|
||||
};
|
||||
wechatPublicAutoReply$application?: WechatPublicAutoReply.Selection & {
|
||||
$entity: "wechatPublicAutoReply";
|
||||
};
|
||||
wechatPublicAutoReply$application$$aggr?: WechatPublicAutoReply.Aggregation & {
|
||||
$entity: "wechatPublicAutoReply";
|
||||
};
|
||||
wechatPublicTag$application?: WechatPublicTag.Selection & {
|
||||
$entity: "wechatPublicTag";
|
||||
};
|
||||
wechatPublicTag$application$$aggr?: WechatPublicTag.Aggregation & {
|
||||
$entity: "wechatPublicTag";
|
||||
};
|
||||
wechatQrCode$application?: WechatQrCode.Selection & {
|
||||
$entity: "wechatQrCode";
|
||||
};
|
||||
wechatQrCode$application$$aggr?: WechatQrCode.Aggregation & {
|
||||
$entity: "wechatQrCode";
|
||||
};
|
||||
wechatTemplate$application?: WechatTemplate.Selection & {
|
||||
$entity: "wechatTemplate";
|
||||
};
|
||||
wechatTemplate$application$$aggr?: WechatTemplate.Aggregation & {
|
||||
$entity: "wechatTemplate";
|
||||
};
|
||||
wechatUser$application?: WechatUser.Selection & {
|
||||
$entity: "wechatUser";
|
||||
};
|
||||
wechatUser$application$$aggr?: WechatUser.Aggregation & {
|
||||
$entity: "wechatUser";
|
||||
};
|
||||
session$entity?: Session.Selection & {
|
||||
$entity: "session";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ApplicationPassport$applicationAggr]?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
} & {
|
||||
[A in ExtraFile$applicationAggr]?: ExtraFile.Aggregation & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
} & {
|
||||
[A in Notification$applicationAggr]?: Notification.Aggregation & {
|
||||
$entity: "notification";
|
||||
};
|
||||
} & {
|
||||
[A in SessionMessage$applicationAggr]?: SessionMessage.Aggregation & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
} & {
|
||||
[A in Token$applicationAggr]?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
} & {
|
||||
[A in WechatMenu$applicationAggr]?: WechatMenu.Aggregation & {
|
||||
$entity: "wechatMenu";
|
||||
};
|
||||
} & {
|
||||
[A in WechatPublicAutoReply$applicationAggr]?: WechatPublicAutoReply.Aggregation & {
|
||||
$entity: "wechatPublicAutoReply";
|
||||
};
|
||||
} & {
|
||||
[A in WechatPublicTag$applicationAggr]?: WechatPublicTag.Aggregation & {
|
||||
$entity: "wechatPublicTag";
|
||||
};
|
||||
} & {
|
||||
[A in WechatQrCode$applicationAggr]?: WechatQrCode.Aggregation & {
|
||||
$entity: "wechatQrCode";
|
||||
};
|
||||
} & {
|
||||
[A in WechatTemplate$applicationAggr]?: WechatTemplate.Aggregation & {
|
||||
$entity: "wechatTemplate";
|
||||
};
|
||||
} & {
|
||||
[A in WechatUser$applicationAggr]?: WechatUser.Aggregation & {
|
||||
$entity: "wechatUser";
|
||||
};
|
||||
} & {
|
||||
[A in Session$entityAggr]?: Session.Aggregation & {
|
||||
session$entity$$aggr?: Session.Aggregation & {
|
||||
$entity: "session";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ApplicationIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,21 +1 @@
|
|||
{
|
||||
"name": "应用",
|
||||
"attr": {
|
||||
"description": "描述",
|
||||
"type": "类型",
|
||||
"system": "系统",
|
||||
"name": "名称",
|
||||
"config": "设置",
|
||||
"style": "样式",
|
||||
"sessions": "会话",
|
||||
"domain": "域名"
|
||||
},
|
||||
"v": {
|
||||
"type": {
|
||||
"web": "网站",
|
||||
"wechatPublic": "微信公众号",
|
||||
"wechatMp": "微信小程序",
|
||||
"native": "App"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "应用", "attr": { "description": "描述", "type": "类型", "system": "系统", "name": "名称", "config": "设置", "style": "样式", "sessions": "会话", "domain": "域名" }, "v": { "type": { "web": "网站", "wechatPublic": "微信公众号", "wechatMp": "微信小程序", "native": "App" } } }
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@ export type OpSchema = EntityShape & {
|
|||
isDefault: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
applicationId: ForeignKey<"application">;
|
||||
passportId: ForeignKey<"passport">;
|
||||
isDefault: Boolean;
|
||||
application: Application.Schema;
|
||||
passport: Passport.Schema;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -1,8 +1 @@
|
|||
{
|
||||
"name": "应用登录方式",
|
||||
"attr": {
|
||||
"application": "应用",
|
||||
"passport": "登录方式",
|
||||
"isDefault": "是否默认"
|
||||
}
|
||||
}
|
||||
{ "name": "应用登录方式", "attr": { "application": "应用", "passport": "登录方式", "isDefault": "是否默认" } }
|
||||
|
|
|
|||
|
|
@ -16,26 +16,24 @@ export type OpSchema = EntityShape & {
|
|||
center: Geo;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Address$areaAggr = "address$area$$aggr" | "address$area$$0$$aggr" | "address$area$$1$$aggr" | "address$area$$2$$aggr" | "address$area$$3$$aggr" | "address$area$$4$$aggr" | "address$area$$5$$aggr" | "address$area$$6$$aggr" | "address$area$$7$$aggr" | "address$area$$8$$aggr" | "address$area$$9$$aggr";
|
||||
type Area$parentAggr = "area$parent$$aggr" | "area$parent$$0$$aggr" | "area$parent$$1$$aggr" | "area$parent$$2$$aggr" | "area$parent$$3$$aggr" | "area$parent$$4$$aggr" | "area$parent$$5$$aggr" | "area$parent$$6$$aggr" | "area$parent$$7$$aggr" | "area$parent$$8$$aggr" | "area$parent$$9$$aggr";
|
||||
type Station$areaAggr = "station$area$$aggr" | "station$area$$0$$aggr" | "station$area$$1$$aggr" | "station$area$$2$$aggr" | "station$area$$3$$aggr" | "station$area$$4$$aggr" | "station$area$$5$$aggr" | "station$area$$6$$aggr" | "station$area$$7$$aggr" | "station$area$$8$$aggr" | "station$area$$9$$aggr";
|
||||
type Subway$areaAggr = "subway$area$$aggr" | "subway$area$$0$$aggr" | "subway$area$$1$$aggr" | "subway$area$$2$$aggr" | "subway$area$$3$$aggr" | "subway$area$$4$$aggr" | "subway$area$$5$$aggr" | "subway$area$$6$$aggr" | "subway$area$$7$$aggr" | "subway$area$$8$$aggr" | "subway$area$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
level: "province" | "city" | "district" | "street" | "country";
|
||||
depth: 0 | 1 | 2 | 3 | 4;
|
||||
parentId?: ForeignKey<"area"> | null;
|
||||
code: String<12>;
|
||||
center: Geo;
|
||||
parent?: Schema | null;
|
||||
address$area?: Array<Address.Schema>;
|
||||
address$area$$aggr?: AggregationResult<Address.Schema>;
|
||||
area$parent?: Array<Schema>;
|
||||
area$parent$$aggr?: AggregationResult<Schema>;
|
||||
station$area?: Array<Station.Schema>;
|
||||
station$area$$aggr?: AggregationResult<Station.Schema>;
|
||||
subway$area?: Array<Subway.Schema>;
|
||||
subway$area$$aggr?: AggregationResult<Subway.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Address$areaAggr]?: AggregationResult<Address.Schema>;
|
||||
} & {
|
||||
[A in Area$parentAggr]?: AggregationResult<Schema>;
|
||||
} & {
|
||||
[A in Station$areaAggr]?: AggregationResult<Station.Schema>;
|
||||
} & {
|
||||
[A in Subway$areaAggr]?: AggregationResult<Subway.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -71,32 +69,28 @@ export type Projection = {
|
|||
address$area?: Address.Selection & {
|
||||
$entity: "address";
|
||||
};
|
||||
address$area$$aggr?: Address.Aggregation & {
|
||||
$entity: "address";
|
||||
};
|
||||
area$parent?: Selection & {
|
||||
$entity: "area";
|
||||
};
|
||||
area$parent$$aggr?: Aggregation & {
|
||||
$entity: "area";
|
||||
};
|
||||
station$area?: Station.Selection & {
|
||||
$entity: "station";
|
||||
};
|
||||
station$area$$aggr?: Station.Aggregation & {
|
||||
$entity: "station";
|
||||
};
|
||||
subway$area?: Subway.Selection & {
|
||||
$entity: "subway";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Address$areaAggr]?: Address.Aggregation & {
|
||||
$entity: "address";
|
||||
};
|
||||
} & {
|
||||
[A in Area$parentAggr]?: Aggregation & {
|
||||
$entity: "area";
|
||||
};
|
||||
} & {
|
||||
[A in Station$areaAggr]?: Station.Aggregation & {
|
||||
$entity: "station";
|
||||
};
|
||||
} & {
|
||||
[A in Subway$areaAggr]?: Subway.Aggregation & {
|
||||
subway$area$$aggr?: Subway.Aggregation & {
|
||||
$entity: "subway";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type AreaIdProjection = OneOf<{
|
||||
id: number;
|
||||
parentId: number;
|
||||
|
|
|
|||
|
|
@ -1,20 +1 @@
|
|||
{
|
||||
"name": "地区",
|
||||
"attr": {
|
||||
"level": "层级",
|
||||
"depth": "深度",
|
||||
"parent": "上级地区",
|
||||
"name": "名称",
|
||||
"code": "地区编码",
|
||||
"center": "中心坐标"
|
||||
},
|
||||
"v": {
|
||||
"level": {
|
||||
"country": "国家",
|
||||
"province": "省",
|
||||
"city": "市",
|
||||
"district": "区",
|
||||
"street": "街道"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "地区", "attr": { "level": "层级", "depth": "深度", "parent": "上级地区", "name": "名称", "code": "地区编码", "center": "中心坐标" }, "v": { "level": { "country": "国家", "province": "省", "city": "市", "district": "区", "street": "街道" } } }
|
||||
|
|
|
|||
|
|
@ -12,14 +12,15 @@ export type OpSchema = EntityShape & {
|
|||
articleMenuId: ForeignKey<"articleMenu">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ExtraFile$entityAggr = "extraFile$entity$$aggr" | "extraFile$entity$$0$$aggr" | "extraFile$entity$$1$$aggr" | "extraFile$entity$$2$$aggr" | "extraFile$entity$$3$$aggr" | "extraFile$entity$$4$$aggr" | "extraFile$entity$$5$$aggr" | "extraFile$entity$$6$$aggr" | "extraFile$entity$$7$$aggr" | "extraFile$entity$$8$$aggr" | "extraFile$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
content: Text;
|
||||
articleMenuId: ForeignKey<"articleMenu">;
|
||||
articleMenu: ArticleMenu.Schema;
|
||||
extraFile$entity?: Array<ExtraFile.Schema>;
|
||||
extraFile$entity$$aggr?: AggregationResult<ExtraFile.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ExtraFile$entityAggr]?: AggregationResult<ExtraFile.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -47,11 +48,10 @@ export type Projection = {
|
|||
extraFile$entity?: ExtraFile.Selection & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ExtraFile$entityAggr]?: ExtraFile.Aggregation & {
|
||||
extraFile$entity$$aggr?: ExtraFile.Aggregation & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ArticleIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,9 +1 @@
|
|||
{
|
||||
"name": "文章",
|
||||
"attr": {
|
||||
"name": "标题",
|
||||
"content": "正文内容",
|
||||
"articleMenu": "菜单",
|
||||
"files": "文件"
|
||||
}
|
||||
}
|
||||
{ "name": "文章", "attr": { "name": "标题", "content": "正文内容", "articleMenu": "菜单", "files": "文件" } }
|
||||
|
|
|
|||
|
|
@ -15,22 +15,22 @@ export type OpSchema = EntityShape & {
|
|||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Article$articleMenuAggr = "article$articleMenu$$aggr" | "article$articleMenu$$0$$aggr" | "article$articleMenu$$1$$aggr" | "article$articleMenu$$2$$aggr" | "article$articleMenu$$3$$aggr" | "article$articleMenu$$4$$aggr" | "article$articleMenu$$5$$aggr" | "article$articleMenu$$6$$aggr" | "article$articleMenu$$7$$aggr" | "article$articleMenu$$8$$aggr" | "article$articleMenu$$9$$aggr";
|
||||
type ArticleMenu$parentAggr = "articleMenu$parent$$aggr" | "articleMenu$parent$$0$$aggr" | "articleMenu$parent$$1$$aggr" | "articleMenu$parent$$2$$aggr" | "articleMenu$parent$$3$$aggr" | "articleMenu$parent$$4$$aggr" | "articleMenu$parent$$5$$aggr" | "articleMenu$parent$$6$$aggr" | "articleMenu$parent$$7$$aggr" | "articleMenu$parent$$8$$aggr" | "articleMenu$parent$$9$$aggr";
|
||||
type ExtraFile$entityAggr = "extraFile$entity$$aggr" | "extraFile$entity$$0$$aggr" | "extraFile$entity$$1$$aggr" | "extraFile$entity$$2$$aggr" | "extraFile$entity$$3$$aggr" | "extraFile$entity$$4$$aggr" | "extraFile$entity$$5$$aggr" | "extraFile$entity$$6$$aggr" | "extraFile$entity$$7$$aggr" | "extraFile$entity$$8$$aggr" | "extraFile$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
isArticle: Boolean;
|
||||
parentId?: ForeignKey<"articleMenu"> | null;
|
||||
isLeaf?: Boolean | null;
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
parent?: Schema | null;
|
||||
article$articleMenu?: Array<Article.Schema>;
|
||||
article$articleMenu$$aggr?: AggregationResult<Article.Schema>;
|
||||
articleMenu$parent?: Array<Schema>;
|
||||
articleMenu$parent$$aggr?: AggregationResult<Schema>;
|
||||
extraFile$entity?: Array<ExtraFile.Schema>;
|
||||
extraFile$entity$$aggr?: AggregationResult<ExtraFile.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Article$articleMenuAggr]?: AggregationResult<Article.Schema>;
|
||||
} & {
|
||||
[A in ArticleMenu$parentAggr]?: AggregationResult<Schema>;
|
||||
} & {
|
||||
[A in ExtraFile$entityAggr]?: AggregationResult<ExtraFile.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -66,25 +66,22 @@ export type Projection = {
|
|||
article$articleMenu?: Article.Selection & {
|
||||
$entity: "article";
|
||||
};
|
||||
article$articleMenu$$aggr?: Article.Aggregation & {
|
||||
$entity: "article";
|
||||
};
|
||||
articleMenu$parent?: Selection & {
|
||||
$entity: "articleMenu";
|
||||
};
|
||||
articleMenu$parent$$aggr?: Aggregation & {
|
||||
$entity: "articleMenu";
|
||||
};
|
||||
extraFile$entity?: ExtraFile.Selection & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Article$articleMenuAggr]?: Article.Aggregation & {
|
||||
$entity: "article";
|
||||
};
|
||||
} & {
|
||||
[A in ArticleMenu$parentAggr]?: Aggregation & {
|
||||
$entity: "articleMenu";
|
||||
};
|
||||
} & {
|
||||
[A in ExtraFile$entityAggr]?: ExtraFile.Aggregation & {
|
||||
extraFile$entity$$aggr?: ExtraFile.Aggregation & {
|
||||
$entity: "extraFile";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ArticleMenuIdProjection = OneOf<{
|
||||
id: number;
|
||||
parentId: number;
|
||||
|
|
|
|||
|
|
@ -1,12 +1 @@
|
|||
{
|
||||
"name": "文章分类",
|
||||
"attr": {
|
||||
"name": "分类标题",
|
||||
"isArticle": "是否存在文章",
|
||||
"parent": "所属分类",
|
||||
"entity": "对象",
|
||||
"entityId": "对象Id",
|
||||
"isLeaf": "结点下是否存在叶子结点",
|
||||
"files": "文件"
|
||||
}
|
||||
}
|
||||
{ "name": "文章分类", "attr": { "name": "分类标题", "isArticle": "是否存在文章", "parent": "所属分类", "entity": "对象", "entityId": "对象Id", "isLeaf": "结点下是否存在叶子结点", "files": "文件" } }
|
||||
|
|
|
|||
|
|
@ -16,7 +16,18 @@ export type OpSchema = EntityShape & {
|
|||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {} & {
|
||||
export type Schema = EntityShape & {
|
||||
origin: "mobile" | "email";
|
||||
content: String<32>;
|
||||
code: String<8>;
|
||||
visitorId: Text;
|
||||
reason?: Text | null;
|
||||
env: Object;
|
||||
expired: Boolean;
|
||||
expiresAt: Datetime;
|
||||
type: "login" | "changePassword" | "confirm";
|
||||
iState?: IState | null;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
|
|
|
|||
|
|
@ -1,33 +1 @@
|
|||
{
|
||||
"name": "验证码",
|
||||
"attr": {
|
||||
"origin": "源",
|
||||
"content": "内容",
|
||||
"code": "验证码",
|
||||
"visitorId": "用户标识",
|
||||
"reason": "失败原因",
|
||||
"env": "用户环境",
|
||||
"expired": "是否过期",
|
||||
"expiresAt": "过期时间",
|
||||
"iState": "状态",
|
||||
"type": "类型"
|
||||
},
|
||||
"action": {
|
||||
"send": "发送",
|
||||
"fail": "失败",
|
||||
"success": "成功"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"unsent": "未发送",
|
||||
"sending": "发送中",
|
||||
"sent": "已发送",
|
||||
"failure": "已失败"
|
||||
},
|
||||
"type": {
|
||||
"login": "登录",
|
||||
"changePassword": "修改密码",
|
||||
"confirm": "校验"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "验证码", "attr": { "origin": "源", "content": "内容", "code": "验证码", "visitorId": "用户标识", "reason": "失败原因", "env": "用户环境", "expired": "是否过期", "expiresAt": "过期时间", "iState": "状态", "type": "类型" }, "action": { "send": "发送", "fail": "失败", "success": "成功" }, "v": { "iState": { "unsent": "未发送", "sending": "发送中", "sent": "已发送", "failure": "已失败" }, "type": { "login": "登录", "changePassword": "修改密码", "confirm": "校验" } } }
|
||||
|
|
|
|||
|
|
@ -12,7 +12,11 @@ export type OpSchema = EntityShape & {
|
|||
result: "success" | "fail";
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
prevPassword?: String<32> | null;
|
||||
newPassword?: String<32> | null;
|
||||
result: "success" | "fail";
|
||||
user: User.Schema;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
|
|||
|
|
@ -1,15 +1 @@
|
|||
{
|
||||
"name": "密码修改记录",
|
||||
"attr": {
|
||||
"user": "用户",
|
||||
"prevPassword": "原密码",
|
||||
"newPassword": "新密码",
|
||||
"result": "修改结果"
|
||||
},
|
||||
"v": {
|
||||
"result": {
|
||||
"success": "成功",
|
||||
"fail": "失败"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "密码修改记录", "attr": { "user": "用户", "prevPassword": "原密码", "newPassword": "新密码", "result": "修改结果" }, "v": { "result": { "success": "成功", "fail": "失败" } } }
|
||||
|
|
|
|||
|
|
@ -14,14 +14,17 @@ export type OpSchema = EntityShape & {
|
|||
systemId: ForeignKey<"system">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Application$domainAggr = "application$domain$$aggr" | "application$domain$$0$$aggr" | "application$domain$$1$$aggr" | "application$domain$$2$$aggr" | "application$domain$$3$$aggr" | "application$domain$$4$$aggr" | "application$domain$$5$$aggr" | "application$domain$$6$$aggr" | "application$domain$$7$$aggr" | "application$domain$$8$$aggr" | "application$domain$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
url: String<64>;
|
||||
apiPath?: String<32> | null;
|
||||
protocol: "http:" | "https:";
|
||||
port: Int<2>;
|
||||
systemId: ForeignKey<"system">;
|
||||
system: System.Schema;
|
||||
application$domain?: Array<Application.Schema>;
|
||||
application$domain$$aggr?: AggregationResult<Application.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Application$domainAggr]?: AggregationResult<Application.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -53,11 +56,10 @@ export type Projection = {
|
|||
application$domain?: Application.Selection & {
|
||||
$entity: "application";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Application$domainAggr]?: Application.Aggregation & {
|
||||
application$domain$$aggr?: Application.Aggregation & {
|
||||
$entity: "application";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type DomainIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,16 +1 @@
|
|||
{
|
||||
"name": "域名",
|
||||
"attr": {
|
||||
"url": "域名",
|
||||
"apiPath": "api路径",
|
||||
"protocol": "协议",
|
||||
"port": "端口",
|
||||
"system": "系统"
|
||||
},
|
||||
"v": {
|
||||
"protocol": {
|
||||
"http:": "http",
|
||||
"https:": "https"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "域名", "attr": { "url": "域名", "apiPath": "api路径", "protocol": "协议", "port": "端口", "system": "系统" }, "v": { "protocol": { "http:": "http", "https:": "https" } } }
|
||||
|
|
|
|||
|
|
@ -13,14 +13,15 @@ export type OpSchema = EntityShape & {
|
|||
ableState?: AbleState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Token$entityAggr = "token$entity$$aggr" | "token$entity$$0$$aggr" | "token$entity$$1$$aggr" | "token$entity$$2$$aggr" | "token$entity$$3$$aggr" | "token$entity$$4$$aggr" | "token$entity$$5$$aggr" | "token$entity$$6$$aggr" | "token$entity$$7$$aggr" | "token$entity$$8$$aggr" | "token$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
email: String<32>;
|
||||
userId: ForeignKey<"user">;
|
||||
ableState?: AbleState | null;
|
||||
user: User.Schema;
|
||||
token$entity?: Array<Token.Schema>;
|
||||
token$entity$$aggr?: AggregationResult<Token.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Token$entityAggr]?: AggregationResult<Token.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -48,11 +49,10 @@ export type Projection = {
|
|||
token$entity?: Token.Selection & {
|
||||
$entity: "token";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Token$entityAggr]?: Token.Aggregation & {
|
||||
token$entity$$aggr?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type EmailIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,19 +1 @@
|
|||
{
|
||||
"name": "邮箱",
|
||||
"attr": {
|
||||
"ableState": "是否可用",
|
||||
"email": "邮箱",
|
||||
"user": "关联用户",
|
||||
"tokens": "相关令牌"
|
||||
},
|
||||
"action": {
|
||||
"enable": "启用",
|
||||
"disable": "禁用"
|
||||
},
|
||||
"v": {
|
||||
"ableState": {
|
||||
"enabled": "可用的",
|
||||
"disabled": "禁用的"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "邮箱", "attr": { "ableState": "是否可用", "email": "邮箱", "user": "关联用户", "tokens": "相关令牌" }, "action": { "enable": "启用", "disable": "禁用" }, "v": { "ableState": { "enabled": "可用的", "disabled": "禁用的" } } }
|
||||
|
|
|
|||
|
|
@ -32,7 +32,27 @@ export type OpSchema = EntityShape & {
|
|||
applicationId: ForeignKey<"application">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
origin: "qiniu" | "wechat" | "ctyun" | "aliyun" | "tencent" | "unknown";
|
||||
type: "image" | "video" | "audio" | "file";
|
||||
bucket?: String<32> | null;
|
||||
objectId?: String<64> | null;
|
||||
tag1?: String<32> | null;
|
||||
tag2?: String<32> | null;
|
||||
filename: String<256>;
|
||||
md5?: Text | null;
|
||||
entity: "article" | "articleMenu" | "sessionMessage" | "user" | string;
|
||||
entityId: String<64>;
|
||||
extra1?: Text | null;
|
||||
extra2?: Object | null;
|
||||
extension?: String<16> | null;
|
||||
size?: Int<8> | null;
|
||||
sort?: Float<22, 10> | null;
|
||||
fileType?: String<128> | null;
|
||||
isBridge?: Boolean | null;
|
||||
uploadState: "success" | "failed" | "uploading";
|
||||
uploadMeta?: Object | null;
|
||||
applicationId: ForeignKey<"application">;
|
||||
application: Application.Schema;
|
||||
article?: Article.Schema;
|
||||
articleMenu?: ArticleMenu.Schema;
|
||||
|
|
|
|||
|
|
@ -1,46 +1 @@
|
|||
{
|
||||
"name": "文件",
|
||||
"attr": {
|
||||
"origin": "源",
|
||||
"type": "类型",
|
||||
"bucket": "桶",
|
||||
"objectId": "对象编号",
|
||||
"tag1": "标签一",
|
||||
"tag2": "标签二",
|
||||
"filename": "文件名",
|
||||
"md5": "md5",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象id",
|
||||
"extra1": "额外信息",
|
||||
"extra2": "非结构化额外信息",
|
||||
"extension": "后缀名",
|
||||
"size": "文件大小",
|
||||
"sort": "排序",
|
||||
"fileType": "文件类型",
|
||||
"isBridge": "是否桥接访问",
|
||||
"uploadState": "上传状态",
|
||||
"uploadMeta": "上传需要的metadata",
|
||||
"application": "来源应用"
|
||||
},
|
||||
"v": {
|
||||
"origin": {
|
||||
"qiniu": "七牛云",
|
||||
"ctyun": "天翼云",
|
||||
"wechat": "微信",
|
||||
"aliyun": "阿里云",
|
||||
"tencent": "腾讯云",
|
||||
"unknown": "未知"
|
||||
},
|
||||
"type": {
|
||||
"image": "图像",
|
||||
"video": "视频",
|
||||
"audio": "音频",
|
||||
"file": "文件"
|
||||
},
|
||||
"uploadState": {
|
||||
"success": "上传成功",
|
||||
"failed": "上传失败",
|
||||
"uploading": "上传中"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "文件", "attr": { "origin": "源", "type": "类型", "bucket": "桶", "objectId": "对象编号", "tag1": "标签一", "tag2": "标签二", "filename": "文件名", "md5": "md5", "entity": "关联对象", "entityId": "关联对象id", "extra1": "额外信息", "extra2": "非结构化额外信息", "extension": "后缀名", "size": "文件大小", "sort": "排序", "fileType": "文件类型", "isBridge": "是否桥接访问", "uploadState": "上传状态", "uploadMeta": "上传需要的metadata", "application": "来源应用" }, "v": { "origin": { "qiniu": "七牛云", "ctyun": "天翼云", "wechat": "微信", "aliyun": "阿里云", "tencent": "腾讯云", "unknown": "未知" }, "type": { "image": "图像", "video": "视频", "audio": "音频", "file": "文件" }, "uploadState": { "success": "上传成功", "failed": "上传失败", "uploading": "上传中" } } }
|
||||
|
|
|
|||
|
|
@ -11,7 +11,13 @@ export type OpSchema = EntityShape & {
|
|||
data: Object;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {} & {
|
||||
export type Schema = EntityShape & {
|
||||
module: String<64>;
|
||||
position: String<188>;
|
||||
namespace: String<256>;
|
||||
language: String<32>;
|
||||
data: Object;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
|
|
|
|||
|
|
@ -1,10 +1 @@
|
|||
{
|
||||
"name": "i18n",
|
||||
"attr": {
|
||||
"module": "模块",
|
||||
"position": "文件位置",
|
||||
"namespace": "命名空间",
|
||||
"language": "语言",
|
||||
"data": "数据"
|
||||
}
|
||||
}
|
||||
{ "name": "用户授权", "attr": { "module": "模块", "position": "文件位置", "namespace": "命名空间", "language": "语言", "data": "数据" } }
|
||||
|
|
|
|||
|
|
@ -17,7 +17,19 @@ export type OpSchema = EntityShape & {
|
|||
expireAt: Datetime;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {} & {
|
||||
export type Schema = EntityShape & {
|
||||
title: String<32>;
|
||||
streamTitle: String<32>;
|
||||
liveonly: "online" | "offline";
|
||||
hub: String<32>;
|
||||
streamKey: String<64>;
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
rtmpPushUrl: String<64>;
|
||||
rtmpPlayUrl: String<64>;
|
||||
pcPushUrl: String<64>;
|
||||
expireAt: Datetime;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
|
|
|
|||
|
|
@ -1,22 +1 @@
|
|||
{
|
||||
"name": "直播流",
|
||||
"attr": {
|
||||
"title": "名称",
|
||||
"streamTitle": "直播流名称",
|
||||
"liveonly": "活跃状态",
|
||||
"hub": "直播空间名称",
|
||||
"entity": "所属实体",
|
||||
"entityId": "所属实体id",
|
||||
"rtmpPushUrl": "推流地址",
|
||||
"rtmpPlayUrl": "播放地址",
|
||||
"expireAt": "推流过期时间",
|
||||
"pcPushUrl": "OBS推流地址",
|
||||
"streamKey": "OBS串流密钥"
|
||||
},
|
||||
"v": {
|
||||
"liveonly": {
|
||||
"online": "在线",
|
||||
"offline": "下线"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "直播流", "attr": { "title": "名称", "streamTitle": "直播流名称", "liveonly": "活跃状态", "hub": "直播空间名称", "entity": "所属实体", "entityId": "所属实体id", "rtmpPushUrl": "推流地址", "rtmpPlayUrl": "播放地址", "expireAt": "推流过期时间", "pcPushUrl": "OBS推流地址", "streamKey": "OBS串流密钥" }, "v": { "liveonly": { "online": "在线", "offline": "下线" } } }
|
||||
|
|
|
|||
|
|
@ -10,13 +10,14 @@ export type OpSchema = EntityShape & {
|
|||
iState: "normal" | "rollbacked";
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Oper$logAggr = "oper$log$$aggr" | "oper$log$$0$$aggr" | "oper$log$$1$$aggr" | "oper$log$$2$$aggr" | "oper$log$$3$$aggr" | "oper$log$$4$$aggr" | "oper$log$$5$$aggr" | "oper$log$$6$$aggr" | "oper$log$$7$$aggr" | "oper$log$$8$$aggr" | "oper$log$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
iState: "normal" | "rollbacked";
|
||||
oper$log?: Array<Oper.Schema>;
|
||||
oper$log$$aggr?: AggregationResult<Oper.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Oper$logAggr]?: AggregationResult<Oper.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -42,11 +43,10 @@ export type Projection = {
|
|||
oper$log?: Oper.Selection & {
|
||||
$entity: "oper";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Oper$logAggr]?: Oper.Aggregation & {
|
||||
oper$log$$aggr?: Oper.Aggregation & {
|
||||
$entity: "oper";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type LogIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,18 +1 @@
|
|||
{
|
||||
"name": "日志",
|
||||
"attr": {
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象ID",
|
||||
"iState": "状态"
|
||||
},
|
||||
"action": {
|
||||
"undo": "回滚",
|
||||
"redo": "重做"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"normal": "正常的",
|
||||
"rollbacked": "已回滚"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "日志", "attr": { "entity": "关联对象", "entityId": "关联对象ID", "iState": "状态" }, "action": { "undo": "回滚", "redo": "重做" }, "v": { "iState": { "normal": "正常的", "rollbacked": "已回滚" } } }
|
||||
|
|
|
|||
|
|
@ -13,14 +13,15 @@ export type OpSchema = EntityShape & {
|
|||
ableState?: AbleState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Token$entityAggr = "token$entity$$aggr" | "token$entity$$0$$aggr" | "token$entity$$1$$aggr" | "token$entity$$2$$aggr" | "token$entity$$3$$aggr" | "token$entity$$4$$aggr" | "token$entity$$5$$aggr" | "token$entity$$6$$aggr" | "token$entity$$7$$aggr" | "token$entity$$8$$aggr" | "token$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
userId: ForeignKey<"user">;
|
||||
ableState?: AbleState | null;
|
||||
user: User.Schema;
|
||||
token$entity?: Array<Token.Schema>;
|
||||
token$entity$$aggr?: AggregationResult<Token.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Token$entityAggr]?: AggregationResult<Token.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -48,11 +49,10 @@ export type Projection = {
|
|||
token$entity?: Token.Selection & {
|
||||
$entity: "token";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Token$entityAggr]?: Token.Aggregation & {
|
||||
token$entity$$aggr?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type LoginNameIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,19 +1 @@
|
|||
{
|
||||
"name": "账号",
|
||||
"attr": {
|
||||
"name": "账号",
|
||||
"user": "关联用户",
|
||||
"tokens": "相关令牌",
|
||||
"ableState": "是否可用"
|
||||
},
|
||||
"action": {
|
||||
"enable": "启用",
|
||||
"disable": "禁用"
|
||||
},
|
||||
"v": {
|
||||
"ableState": {
|
||||
"enabled": "可用的",
|
||||
"disabled": "禁用的"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "账号", "attr": { "name": "账号", "user": "关联用户", "tokens": "相关令牌", "ableState": "是否可用" }, "action": { "enable": "启用", "disable": "禁用" }, "v": { "ableState": { "enabled": "可用的", "disabled": "禁用的" } } }
|
||||
|
|
|
|||
|
|
@ -37,19 +37,29 @@ export type OpSchema = EntityShape & {
|
|||
visitState?: VisitState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type MessageSystem$messageAggr = "messageSystem$message$$aggr" | "messageSystem$message$$0$$aggr" | "messageSystem$message$$1$$aggr" | "messageSystem$message$$2$$aggr" | "messageSystem$message$$3$$aggr" | "messageSystem$message$$4$$aggr" | "messageSystem$message$$5$$aggr" | "messageSystem$message$$6$$aggr" | "messageSystem$message$$7$$aggr" | "messageSystem$message$$8$$aggr" | "messageSystem$message$$9$$aggr";
|
||||
type WechatMpJump$messageAggr = "wechatMpJump$message$$aggr" | "wechatMpJump$message$$0$$aggr" | "wechatMpJump$message$$1$$aggr" | "wechatMpJump$message$$2$$aggr" | "wechatMpJump$message$$3$$aggr" | "wechatMpJump$message$$4$$aggr" | "wechatMpJump$message$$5$$aggr" | "wechatMpJump$message$$6$$aggr" | "wechatMpJump$message$$7$$aggr" | "wechatMpJump$message$$8$$aggr" | "wechatMpJump$message$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
userId: ForeignKey<"user">;
|
||||
type: String<64>;
|
||||
weight: Weight;
|
||||
restriction?: MessageRestriction | null;
|
||||
title: String<256>;
|
||||
content: Text;
|
||||
data?: Object | null;
|
||||
router?: Router | null;
|
||||
platformId?: ForeignKey<"platform"> | null;
|
||||
channels?: Channels | null;
|
||||
iState?: IState | null;
|
||||
visitState?: VisitState | null;
|
||||
user: User.Schema;
|
||||
platform?: Platform.Schema | null;
|
||||
messageSystem$message?: Array<MessageSystem.Schema>;
|
||||
messageSystem$message$$aggr?: AggregationResult<MessageSystem.Schema>;
|
||||
wechatMpJump$message?: Array<WechatMpJump.Schema>;
|
||||
wechatMpJump$message$$aggr?: AggregationResult<WechatMpJump.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in MessageSystem$messageAggr]?: AggregationResult<MessageSystem.Schema>;
|
||||
} & {
|
||||
[A in WechatMpJump$messageAggr]?: AggregationResult<WechatMpJump.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -102,18 +112,16 @@ export type Projection = {
|
|||
messageSystem$message?: MessageSystem.Selection & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
messageSystem$message$$aggr?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
wechatMpJump$message?: WechatMpJump.Selection & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in MessageSystem$messageAggr]?: MessageSystem.Aggregation & {
|
||||
$entity: "messageSystem";
|
||||
};
|
||||
} & {
|
||||
[A in WechatMpJump$messageAggr]?: WechatMpJump.Aggregation & {
|
||||
wechatMpJump$message$$aggr?: WechatMpJump.Aggregation & {
|
||||
$entity: "wechatMpJump";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type MessageIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,40 +1 @@
|
|||
{
|
||||
"name": "消息",
|
||||
"attr": {
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象ID",
|
||||
"restriction": "限制",
|
||||
"title": "标题",
|
||||
"content": "内容",
|
||||
"user": "关联用户",
|
||||
"type": "消息类型",
|
||||
"weight": "优先级",
|
||||
"iState": "发送状态",
|
||||
"visitState": "访问状态",
|
||||
"router": "目标路由",
|
||||
"data": "透传数据",
|
||||
"platform": "平台",
|
||||
"channels": "渠道"
|
||||
},
|
||||
"action": {
|
||||
"succeed": "成功",
|
||||
"fail": "失败",
|
||||
"visit": "阅读"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"sending": "发送中",
|
||||
"success": "发送成功",
|
||||
"failure": "发送失败"
|
||||
},
|
||||
"visitState": {
|
||||
"unvisited": "未读",
|
||||
"visited": "已读"
|
||||
},
|
||||
"weight": {
|
||||
"high": "高",
|
||||
"medium": "中",
|
||||
"low": "低"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "消息", "attr": { "entity": "关联对象", "entityId": "关联对象ID", "restriction": "限制", "title": "标题", "content": "内容", "user": "关联用户", "type": "消息类型", "weight": "优先级", "iState": "发送状态", "visitState": "访问状态", "router": "目标路由", "data": "透传数据", "platform": "平台", "channels": "渠道" }, "action": { "succeed": "成功", "fail": "失败", "visit": "阅读" }, "v": { "iState": { "sending": "发送中", "success": "发送成功", "failure": "发送失败" }, "visitState": { "unvisited": "未读", "visited": "已读" }, "weight": { "high": "高", "medium": "中", "low": "低" } } }
|
||||
|
|
|
|||
|
|
@ -11,15 +11,15 @@ export type OpSchema = EntityShape & {
|
|||
systemId: ForeignKey<"system">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Notification$messageSystemAggr = "notification$messageSystem$$aggr" | "notification$messageSystem$$0$$aggr" | "notification$messageSystem$$1$$aggr" | "notification$messageSystem$$2$$aggr" | "notification$messageSystem$$3$$aggr" | "notification$messageSystem$$4$$aggr" | "notification$messageSystem$$5$$aggr" | "notification$messageSystem$$6$$aggr" | "notification$messageSystem$$7$$aggr" | "notification$messageSystem$$8$$aggr" | "notification$messageSystem$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
messageId: ForeignKey<"message">;
|
||||
systemId: ForeignKey<"system">;
|
||||
message: Message.Schema;
|
||||
system: System.Schema;
|
||||
notification$messageSystem?: Array<Notification.Schema>;
|
||||
notification$messageSystem$$aggr?: AggregationResult<Notification.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Notification$messageSystemAggr]?: AggregationResult<Notification.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -47,11 +47,10 @@ export type Projection = {
|
|||
notification$messageSystem?: Notification.Selection & {
|
||||
$entity: "notification";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Notification$messageSystemAggr]?: Notification.Aggregation & {
|
||||
notification$messageSystem$$aggr?: Notification.Aggregation & {
|
||||
$entity: "notification";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type MessageSystemIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,7 +1 @@
|
|||
{
|
||||
"name": "消息系统连接",
|
||||
"attr": {
|
||||
"message": "消息",
|
||||
"system": "系统"
|
||||
}
|
||||
}
|
||||
{ "name": "消息系统连接", "attr": { "message": "消息", "system": "系统" } }
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ export type OpSchema = EntityShape & {
|
|||
type: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {} & {
|
||||
export type Schema = EntityShape & {
|
||||
type: String<64>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
};
|
||||
type AttrFilter = {
|
||||
|
|
|
|||
|
|
@ -1,6 +1 @@
|
|||
{
|
||||
"name": "消息类型",
|
||||
"attr": {
|
||||
"type": "类型"
|
||||
}
|
||||
}
|
||||
{ "name": "消息类型", "attr": { "type": "类型" } }
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ export type OpSchema = EntityShape & {
|
|||
templateId: ForeignKey<"smsTemplate">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
type: String<64>;
|
||||
templateId: ForeignKey<"smsTemplate">;
|
||||
template: SmsTemplate.Schema;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
|
|||
|
|
@ -1,7 +1 @@
|
|||
{
|
||||
"name": "消息类型模板关联",
|
||||
"attr": {
|
||||
"type": "消息类型",
|
||||
"template": "短信消息模板"
|
||||
}
|
||||
}
|
||||
{ "name": "消息类型模板关联", "attr": { "type": "消息类型", "template": "短信消息模板" } }
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ export type OpSchema = EntityShape & {
|
|||
templateId: ForeignKey<"wechatTemplate">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
type: String<64>;
|
||||
templateId: ForeignKey<"wechatTemplate">;
|
||||
template: WechatTemplate.Schema;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
|
|
|
|||
|
|
@ -1,7 +1 @@
|
|||
{
|
||||
"name": "消息类型模板关联",
|
||||
"attr": {
|
||||
"type": "消息类型",
|
||||
"template": "公众号消息模板"
|
||||
}
|
||||
}
|
||||
{ "name": "消息类型模板关联", "attr": { "type": "消息类型", "template": "公众号消息模板" } }
|
||||
|
|
|
|||
|
|
@ -13,14 +13,15 @@ export type OpSchema = EntityShape & {
|
|||
ableState?: AbleState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Token$entityAggr = "token$entity$$aggr" | "token$entity$$0$$aggr" | "token$entity$$1$$aggr" | "token$entity$$2$$aggr" | "token$entity$$3$$aggr" | "token$entity$$4$$aggr" | "token$entity$$5$$aggr" | "token$entity$$6$$aggr" | "token$entity$$7$$aggr" | "token$entity$$8$$aggr" | "token$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
mobile: String<16>;
|
||||
userId?: ForeignKey<"user"> | null;
|
||||
ableState?: AbleState | null;
|
||||
user?: User.Schema | null;
|
||||
token$entity?: Array<Token.Schema>;
|
||||
token$entity$$aggr?: AggregationResult<Token.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Token$entityAggr]?: AggregationResult<Token.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -48,11 +49,10 @@ export type Projection = {
|
|||
token$entity?: Token.Selection & {
|
||||
$entity: "token";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Token$entityAggr]?: Token.Aggregation & {
|
||||
token$entity$$aggr?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type MobileIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,19 +1 @@
|
|||
{
|
||||
"name": "手机",
|
||||
"attr": {
|
||||
"ableState": "是否可用",
|
||||
"mobile": "手机号",
|
||||
"user": "关联用户",
|
||||
"tokens": "相关令牌"
|
||||
},
|
||||
"action": {
|
||||
"enable": "启用",
|
||||
"disable": "禁用"
|
||||
},
|
||||
"v": {
|
||||
"ableState": {
|
||||
"enabled": "可用的",
|
||||
"disabled": "禁用的"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "手机", "attr": { "ableState": "是否可用", "mobile": "手机号", "user": "关联用户", "tokens": "相关令牌" }, "action": { "enable": "启用", "disable": "禁用" }, "v": { "ableState": { "enabled": "可用的", "disabled": "禁用的" } } }
|
||||
|
|
|
|||
|
|
@ -15,13 +15,19 @@ export type OpSchema = EntityShape & {
|
|||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ModiEntity$modiAggr = "modiEntity$modi$$aggr" | "modiEntity$modi$$0$$aggr" | "modiEntity$modi$$1$$aggr" | "modiEntity$modi$$2$$aggr" | "modiEntity$modi$$3$$aggr" | "modiEntity$modi$$4$$aggr" | "modiEntity$modi$$5$$aggr" | "modiEntity$modi$$6$$aggr" | "modiEntity$modi$$7$$aggr" | "modiEntity$modi$$8$$aggr" | "modiEntity$modi$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
targetEntity: String<32>;
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
action: String<24>;
|
||||
data: Object;
|
||||
filter?: Object | null;
|
||||
extra?: Object | null;
|
||||
iState?: IState | null;
|
||||
modiEntity$modi?: Array<ModiEntity.Schema>;
|
||||
modiEntity$modi$$aggr?: AggregationResult<ModiEntity.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ModiEntity$modiAggr]?: AggregationResult<ModiEntity.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -57,11 +63,10 @@ export type Projection = {
|
|||
modiEntity$modi?: ModiEntity.Selection & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ModiEntity$modiAggr]?: ModiEntity.Aggregation & {
|
||||
modiEntity$modi$$aggr?: ModiEntity.Aggregation & {
|
||||
$entity: "modiEntity";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ModiIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,24 +1 @@
|
|||
{
|
||||
"name": "更新",
|
||||
"attr": {
|
||||
"targetEntity": "目标对象",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象Id",
|
||||
"action": "动作",
|
||||
"data": "数据",
|
||||
"filter": "条件",
|
||||
"extra": "其它",
|
||||
"iState": "状态"
|
||||
},
|
||||
"action": {
|
||||
"abandon": "放弃",
|
||||
"apply": "应用"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"active": "活跃的",
|
||||
"abandoned": "放弃的",
|
||||
"applied": "应用的"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "更新", "attr": { "targetEntity": "目标对象", "entity": "关联对象", "entityId": "关联对象Id", "action": "动作", "data": "数据", "filter": "条件", "extra": "其它", "iState": "状态" }, "action": { "abandon": "放弃", "apply": "应用" }, "v": { "iState": { "active": "活跃的", "abandoned": "放弃的", "applied": "应用的" } } }
|
||||
|
|
|
|||
|
|
@ -23,7 +23,10 @@ export type OpSchema = EntityShape & {
|
|||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
modiId: ForeignKey<"modi">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatQrCode" | "wechatTemplate" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
modi: Modi.Schema;
|
||||
user?: User.Schema;
|
||||
userEntityGrant?: UserEntityGrant.Schema;
|
||||
|
|
|
|||
|
|
@ -1,8 +1 @@
|
|||
{
|
||||
"name": "更新对象连接",
|
||||
"attr": {
|
||||
"modi": "更新",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象id"
|
||||
}
|
||||
}
|
||||
{ "name": "更新对象连接", "attr": { "modi": "更新", "entity": "关联对象", "entityId": "关联对象id" } }
|
||||
|
|
|
|||
|
|
@ -18,7 +18,15 @@ export type OpSchema = EntityShape & {
|
|||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
channel: Channel;
|
||||
applicationId?: ForeignKey<"application"> | null;
|
||||
data?: Object | null;
|
||||
messageSystemId: ForeignKey<"messageSystem">;
|
||||
data1?: Object | null;
|
||||
data2?: Object | null;
|
||||
templateId?: String<128> | null;
|
||||
iState?: IState | null;
|
||||
application?: Application.Schema | null;
|
||||
messageSystem: MessageSystem.Schema;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -1,32 +1 @@
|
|||
{
|
||||
"name": "通知",
|
||||
"attr": {
|
||||
"channel": "消息渠道",
|
||||
"data": "消息数据",
|
||||
"messageSystem": "消息系统连接",
|
||||
"data1": "数据1",
|
||||
"data2": "数据2",
|
||||
"iState": "状态",
|
||||
"application": "关联应用",
|
||||
"templateId": "模板id"
|
||||
},
|
||||
"action": {
|
||||
"succeed": "成功",
|
||||
"fail": "失败"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"sending": "发送中",
|
||||
"success": "发送成功",
|
||||
"failure": "发送失败"
|
||||
},
|
||||
"channel": {
|
||||
"wechatPublic": "公众号",
|
||||
"jPush": "极光推送",
|
||||
"jim": "极光消息",
|
||||
"wechatMp": "小程序",
|
||||
"sms": "短信",
|
||||
"email": "邮箱"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "通知", "attr": { "channel": "消息渠道", "data": "消息数据", "messageSystem": "消息系统连接", "data1": "数据1", "data2": "数据2", "iState": "状态", "application": "关联应用", "templateId": "模板id" }, "action": { "succeed": "成功", "fail": "失败" }, "v": { "iState": { "sending": "发送中", "success": "发送成功", "failure": "发送失败" }, "channel": { "wechatPublic": "公众号", "jPush": "极光推送", "jim": "极光消息", "wechatMp": "小程序", "sms": "短信", "email": "邮箱" } } }
|
||||
|
|
|
|||
|
|
@ -20,15 +20,23 @@ export type OpSchema = EntityShape & {
|
|||
iState?: IState | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type OperEntity$operAggr = "operEntity$oper$$aggr" | "operEntity$oper$$0$$aggr" | "operEntity$oper$$1$$aggr" | "operEntity$oper$$2$$aggr" | "operEntity$oper$$3$$aggr" | "operEntity$oper$$4$$aggr" | "operEntity$oper$$5$$aggr" | "operEntity$oper$$6$$aggr" | "operEntity$oper$$7$$aggr" | "operEntity$oper$$8$$aggr" | "operEntity$oper$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
action: String<24>;
|
||||
data: Object;
|
||||
filter?: Object | null;
|
||||
extra?: Object | null;
|
||||
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>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in OperEntity$operAggr]?: AggregationResult<OperEntity.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -72,11 +80,10 @@ export type Projection = {
|
|||
operEntity$oper?: OperEntity.Selection & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in OperEntity$operAggr]?: OperEntity.Aggregation & {
|
||||
operEntity$oper$$aggr?: OperEntity.Aggregation & {
|
||||
$entity: "operEntity";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type OperIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,25 +1 @@
|
|||
{
|
||||
"name": "操作",
|
||||
"attr": {
|
||||
"action": "动作",
|
||||
"data": "数据",
|
||||
"filter": "选择条件",
|
||||
"extra": "其它",
|
||||
"operator": "操作者",
|
||||
"targetEntity": "关联对象",
|
||||
"bornAt": "诞生时间",
|
||||
"log": "关联日志",
|
||||
"undoData": "回滚数据",
|
||||
"iState": "状态"
|
||||
},
|
||||
"action": {
|
||||
"undo": "回滚",
|
||||
"redo": "重做"
|
||||
},
|
||||
"v": {
|
||||
"iState": {
|
||||
"normal": "正常的",
|
||||
"rollbacked": "已回滚"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "操作", "attr": { "action": "动作", "data": "数据", "filter": "选择条件", "extra": "其它", "operator": "操作者", "targetEntity": "关联对象", "bornAt": "诞生时间", "log": "关联日志", "undoData": "回滚数据", "iState": "状态" }, "action": { "undo": "回滚", "redo": "重做" }, "v": { "iState": { "normal": "正常的", "rollbacked": "已回滚" } } }
|
||||
|
|
|
|||
|
|
@ -23,7 +23,10 @@ export type OpSchema = EntityShape & {
|
|||
entityId: String<64>;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
operId: ForeignKey<"oper">;
|
||||
entity: "user" | "userEntityGrant" | "userSystem" | "userWechatPublicTag" | "wechatLogin" | "wechatMenu" | "wechatMpJump" | "wechatPublicAutoReply" | "wechatPublicTag" | "wechatQrCode" | "wechatTemplate" | "wechatUser" | string;
|
||||
entityId: String<64>;
|
||||
oper: Oper.Schema;
|
||||
user?: User.Schema;
|
||||
userEntityGrant?: UserEntityGrant.Schema;
|
||||
|
|
|
|||
|
|
@ -1,8 +1 @@
|
|||
{
|
||||
"name": "操作对象连接",
|
||||
"attr": {
|
||||
"oper": "操作",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象id"
|
||||
}
|
||||
}
|
||||
{ "name": "操作对象连接", "attr": { "oper": "操作", "entity": "关联对象", "entityId": "关联对象id" } }
|
||||
|
|
|
|||
|
|
@ -23,14 +23,21 @@ export type OpSchema = EntityShape & {
|
|||
tokenLifeLength?: Int<4> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Token$entityAggr = "token$entity$$aggr" | "token$entity$$0$$aggr" | "token$entity$$1$$aggr" | "token$entity$$2$$aggr" | "token$entity$$3$$aggr" | "token$entity$$4$$aggr" | "token$entity$$5$$aggr" | "token$entity$$6$$aggr" | "token$entity$$7$$aggr" | "token$entity$$8$$aggr" | "token$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
entity: String<32>;
|
||||
entityId: String<64>;
|
||||
showTip?: Boolean | null;
|
||||
expiresAt: Datetime;
|
||||
expired: Boolean;
|
||||
redirectTo: RedirectTo;
|
||||
multiple?: Boolean | null;
|
||||
tokenLifeLength?: Int<4> | null;
|
||||
user: User.Schema;
|
||||
token$entity?: Array<Token.Schema>;
|
||||
token$entity$$aggr?: AggregationResult<Token.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Token$entityAggr]?: AggregationResult<Token.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -70,11 +77,10 @@ export type Projection = {
|
|||
token$entity?: Token.Selection & {
|
||||
$entity: "token";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Token$entityAggr]?: Token.Aggregation & {
|
||||
token$entity$$aggr?: Token.Aggregation & {
|
||||
$entity: "token";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type ParasiteIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,20 +1 @@
|
|||
{
|
||||
"name": "寄生",
|
||||
"attr": {
|
||||
"user": "用户",
|
||||
"showTip": "提示",
|
||||
"expired": "已过期",
|
||||
"expiresAt": "过期时间",
|
||||
"redirectTo": "重定向页面",
|
||||
"multiple": "允许反复使用",
|
||||
"tokens": "令牌",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象Id",
|
||||
"tokenLifeLength": "令牌生命长度"
|
||||
},
|
||||
"action": {
|
||||
"wakeup": "激活",
|
||||
"cancel": "作废",
|
||||
"qrcode": "采集码"
|
||||
}
|
||||
}
|
||||
{ "name": "寄生", "attr": { "user": "用户", "showTip": "提示", "expired": "已过期", "expiresAt": "过期时间", "redirectTo": "重定向页面", "multiple": "允许反复使用", "tokens": "令牌", "entity": "关联对象", "entityId": "关联对象Id", "tokenLifeLength": "令牌生命长度" }, "action": { "wakeup": "激活", "cancel": "作废", "qrcode": "采集码" } }
|
||||
|
|
|
|||
|
|
@ -36,14 +36,16 @@ export type OpSchema = EntityShape & {
|
|||
enabled: Boolean;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ApplicationPassport$passportAggr = "applicationPassport$passport$$aggr" | "applicationPassport$passport$$0$$aggr" | "applicationPassport$passport$$1$$aggr" | "applicationPassport$passport$$2$$aggr" | "applicationPassport$passport$$3$$aggr" | "applicationPassport$passport$$4$$aggr" | "applicationPassport$passport$$5$$aggr" | "applicationPassport$passport$$6$$aggr" | "applicationPassport$passport$$7$$aggr" | "applicationPassport$passport$$8$$aggr" | "applicationPassport$passport$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
systemId: ForeignKey<"system">;
|
||||
type: Type;
|
||||
config?: (SmsConfig | EmailConfig | PfwConfig | MfwConfig) | null;
|
||||
enabled: Boolean;
|
||||
system: System.Schema;
|
||||
applicationPassport$passport?: Array<ApplicationPassport.Schema>;
|
||||
applicationPassport$passport$$aggr?: AggregationResult<ApplicationPassport.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ApplicationPassport$passportAggr]?: AggregationResult<ApplicationPassport.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -73,11 +75,10 @@ export type Projection = {
|
|||
applicationPassport$passport?: ApplicationPassport.Selection & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ApplicationPassport$passportAggr]?: ApplicationPassport.Aggregation & {
|
||||
applicationPassport$passport$$aggr?: ApplicationPassport.Aggregation & {
|
||||
$entity: "applicationPassport";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type PassportIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,21 +1 @@
|
|||
{
|
||||
"name": "登录方式",
|
||||
"attr": {
|
||||
"system": "系统",
|
||||
"type": "登录方式",
|
||||
"config": "登录方式配置",
|
||||
"enabled": "是否启用"
|
||||
},
|
||||
"v": {
|
||||
"type": {
|
||||
"email": "邮箱",
|
||||
"sms": "短信",
|
||||
"password": "密码",
|
||||
"wechatMp": "小程序",
|
||||
"wechatPublic": "公众号",
|
||||
"wechatWeb": "微信网站",
|
||||
"wechatMpForWeb": "小程序授权网页",
|
||||
"wechatPublicForWeb": "公众号授权网页"
|
||||
}
|
||||
}
|
||||
}
|
||||
{ "name": "登录方式", "attr": { "system": "系统", "type": "登录方式", "config": "登录方式配置", "enabled": "是否启用" }, "v": { "type": { "email": "邮箱", "sms": "短信", "password": "密码", "wechatMp": "小程序", "wechatPublic": "公众号", "wechatWeb": "微信网站", "wechatMpForWeb": "小程序授权网页", "wechatPublicForWeb": "公众号授权网页" } } }
|
||||
|
|
|
|||
|
|
@ -13,17 +13,18 @@ export type OpSchema = EntityShape & {
|
|||
desc?: String<256> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ActionAuth$pathAggr = "actionAuth$path$$aggr" | "actionAuth$path$$0$$aggr" | "actionAuth$path$$1$$aggr" | "actionAuth$path$$2$$aggr" | "actionAuth$path$$3$$aggr" | "actionAuth$path$$4$$aggr" | "actionAuth$path$$5$$aggr" | "actionAuth$path$$6$$aggr" | "actionAuth$path$$7$$aggr" | "actionAuth$path$$8$$aggr" | "actionAuth$path$$9$$aggr";
|
||||
type RelationAuth$pathAggr = "relationAuth$path$$aggr" | "relationAuth$path$$0$$aggr" | "relationAuth$path$$1$$aggr" | "relationAuth$path$$2$$aggr" | "relationAuth$path$$3$$aggr" | "relationAuth$path$$4$$aggr" | "relationAuth$path$$5$$aggr" | "relationAuth$path$$6$$aggr" | "relationAuth$path$$7$$aggr" | "relationAuth$path$$8$$aggr" | "relationAuth$path$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
destEntity: String<32>;
|
||||
value: String<256>;
|
||||
recursive: Boolean;
|
||||
sourceEntity: String<32>;
|
||||
desc?: String<256> | null;
|
||||
actionAuth$path?: Array<ActionAuth.Schema>;
|
||||
actionAuth$path$$aggr?: AggregationResult<ActionAuth.Schema>;
|
||||
relationAuth$path?: Array<RelationAuth.Schema>;
|
||||
relationAuth$path$$aggr?: AggregationResult<RelationAuth.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ActionAuth$pathAggr]?: AggregationResult<ActionAuth.Schema>;
|
||||
} & {
|
||||
[A in RelationAuth$pathAggr]?: AggregationResult<RelationAuth.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -54,18 +55,16 @@ export type Projection = {
|
|||
actionAuth$path?: ActionAuth.Selection & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
actionAuth$path$$aggr?: ActionAuth.Aggregation & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
relationAuth$path?: RelationAuth.Selection & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ActionAuth$pathAggr]?: ActionAuth.Aggregation & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
} & {
|
||||
[A in RelationAuth$pathAggr]?: RelationAuth.Aggregation & {
|
||||
relationAuth$path$$aggr?: RelationAuth.Aggregation & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type PathIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,10 +1 @@
|
|||
{
|
||||
"name": "关系路径",
|
||||
"attr": {
|
||||
"sourceEntity": "源对象",
|
||||
"value": "路径",
|
||||
"destEntity": "目标对象",
|
||||
"recursive": "是否递归",
|
||||
"desc": "描述"
|
||||
}
|
||||
}
|
||||
{ "name": "关系路径", "attr": { "sourceEntity": "源对象", "value": "路径", "destEntity": "目标对象", "recursive": "是否递归", "desc": "描述" } }
|
||||
|
|
|
|||
|
|
@ -17,17 +17,19 @@ export type OpSchema = EntityShape & {
|
|||
entityId?: String<64> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type Message$platformAggr = "message$platform$$aggr" | "message$platform$$0$$aggr" | "message$platform$$1$$aggr" | "message$platform$$2$$aggr" | "message$platform$$3$$aggr" | "message$platform$$4$$aggr" | "message$platform$$5$$aggr" | "message$platform$$6$$aggr" | "message$platform$$7$$aggr" | "message$platform$$8$$aggr" | "message$platform$$9$$aggr";
|
||||
type System$platformAggr = "system$platform$$aggr" | "system$platform$$0$$aggr" | "system$platform$$1$$aggr" | "system$platform$$2$$aggr" | "system$platform$$3$$aggr" | "system$platform$$4$$aggr" | "system$platform$$5$$aggr" | "system$platform$$6$$aggr" | "system$platform$$7$$aggr" | "system$platform$$8$$aggr" | "system$platform$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
name: String<32>;
|
||||
description?: Text | null;
|
||||
config: Config;
|
||||
style?: Style | null;
|
||||
entity?: String<32> | null;
|
||||
entityId?: String<64> | null;
|
||||
message$platform?: Array<Message.Schema>;
|
||||
message$platform$$aggr?: AggregationResult<Message.Schema>;
|
||||
system$platform?: Array<System.Schema>;
|
||||
system$platform$$aggr?: AggregationResult<System.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in Message$platformAggr]?: AggregationResult<Message.Schema>;
|
||||
} & {
|
||||
[A in System$platformAggr]?: AggregationResult<System.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -60,18 +62,16 @@ export type Projection = {
|
|||
message$platform?: Message.Selection & {
|
||||
$entity: "message";
|
||||
};
|
||||
message$platform$$aggr?: Message.Aggregation & {
|
||||
$entity: "message";
|
||||
};
|
||||
system$platform?: System.Selection & {
|
||||
$entity: "system";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in Message$platformAggr]?: Message.Aggregation & {
|
||||
$entity: "message";
|
||||
};
|
||||
} & {
|
||||
[A in System$platformAggr]?: System.Aggregation & {
|
||||
system$platform$$aggr?: System.Aggregation & {
|
||||
$entity: "system";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type PlatformIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,11 +1 @@
|
|||
{
|
||||
"name": "平台",
|
||||
"attr": {
|
||||
"name": "名称",
|
||||
"description": "描述",
|
||||
"config": "设置",
|
||||
"style": "样式",
|
||||
"entity": "关联对象",
|
||||
"entityId": "关联对象id"
|
||||
}
|
||||
}
|
||||
{ "name": "平台", "attr": { "name": "名称", "description": "描述", "config": "设置", "style": "样式", "entity": "关联对象", "entityId": "关联对象id" } }
|
||||
|
|
|
|||
|
|
@ -10,7 +10,9 @@ export type OpSchema = EntityShape & {
|
|||
sessionId: ForeignKey<"session">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
userId: ForeignKey<"user">;
|
||||
sessionId: ForeignKey<"session">;
|
||||
user: User.Schema;
|
||||
session: Session.Schema;
|
||||
} & {
|
||||
|
|
|
|||
|
|
@ -1,7 +1 @@
|
|||
{
|
||||
"name": "会话",
|
||||
"attr": {
|
||||
"user": "当前用户",
|
||||
"session": "会话"
|
||||
}
|
||||
}
|
||||
{ "name": "会话", "attr": { "user": "当前用户", "session": "会话" } }
|
||||
|
|
|
|||
|
|
@ -17,31 +17,25 @@ export type OpSchema = EntityShape & {
|
|||
display?: String<32> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ActionAuth$relationAggr = "actionAuth$relation$$aggr" | "actionAuth$relation$$0$$aggr" | "actionAuth$relation$$1$$aggr" | "actionAuth$relation$$2$$aggr" | "actionAuth$relation$$3$$aggr" | "actionAuth$relation$$4$$aggr" | "actionAuth$relation$$5$$aggr" | "actionAuth$relation$$6$$aggr" | "actionAuth$relation$$7$$aggr" | "actionAuth$relation$$8$$aggr" | "actionAuth$relation$$9$$aggr";
|
||||
type RelationAuth$sourceRelationAggr = "relationAuth$sourceRelation$$aggr" | "relationAuth$sourceRelation$$0$$aggr" | "relationAuth$sourceRelation$$1$$aggr" | "relationAuth$sourceRelation$$2$$aggr" | "relationAuth$sourceRelation$$3$$aggr" | "relationAuth$sourceRelation$$4$$aggr" | "relationAuth$sourceRelation$$5$$aggr" | "relationAuth$sourceRelation$$6$$aggr" | "relationAuth$sourceRelation$$7$$aggr" | "relationAuth$sourceRelation$$8$$aggr" | "relationAuth$sourceRelation$$9$$aggr";
|
||||
type RelationAuth$destRelationAggr = "relationAuth$destRelation$$aggr" | "relationAuth$destRelation$$0$$aggr" | "relationAuth$destRelation$$1$$aggr" | "relationAuth$destRelation$$2$$aggr" | "relationAuth$destRelation$$3$$aggr" | "relationAuth$destRelation$$4$$aggr" | "relationAuth$destRelation$$5$$aggr" | "relationAuth$destRelation$$6$$aggr" | "relationAuth$destRelation$$7$$aggr" | "relationAuth$destRelation$$8$$aggr" | "relationAuth$destRelation$$9$$aggr";
|
||||
type UserEntityClaim$relationAggr = "userEntityClaim$relation$$aggr" | "userEntityClaim$relation$$0$$aggr" | "userEntityClaim$relation$$1$$aggr" | "userEntityClaim$relation$$2$$aggr" | "userEntityClaim$relation$$3$$aggr" | "userEntityClaim$relation$$4$$aggr" | "userEntityClaim$relation$$5$$aggr" | "userEntityClaim$relation$$6$$aggr" | "userEntityClaim$relation$$7$$aggr" | "userEntityClaim$relation$$8$$aggr" | "userEntityClaim$relation$$9$$aggr";
|
||||
type UserRelation$relationAggr = "userRelation$relation$$aggr" | "userRelation$relation$$0$$aggr" | "userRelation$relation$$1$$aggr" | "userRelation$relation$$2$$aggr" | "userRelation$relation$$3$$aggr" | "userRelation$relation$$4$$aggr" | "userRelation$relation$$5$$aggr" | "userRelation$relation$$6$$aggr" | "userRelation$relation$$7$$aggr" | "userRelation$relation$$8$$aggr" | "userRelation$relation$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
entity: "session" | "toDo" | string;
|
||||
entityId?: String<64> | null;
|
||||
name?: String<32> | null;
|
||||
display?: String<32> | null;
|
||||
session?: Session.Schema;
|
||||
toDo?: ToDo.Schema;
|
||||
actionAuth$relation?: Array<ActionAuth.Schema>;
|
||||
actionAuth$relation$$aggr?: AggregationResult<ActionAuth.Schema>;
|
||||
relationAuth$sourceRelation?: Array<RelationAuth.Schema>;
|
||||
relationAuth$sourceRelation$$aggr?: AggregationResult<RelationAuth.Schema>;
|
||||
relationAuth$destRelation?: Array<RelationAuth.Schema>;
|
||||
relationAuth$destRelation$$aggr?: AggregationResult<RelationAuth.Schema>;
|
||||
userEntityClaim$relation?: Array<UserEntityClaim.Schema>;
|
||||
userEntityClaim$relation$$aggr?: AggregationResult<UserEntityClaim.Schema>;
|
||||
userRelation$relation?: Array<UserRelation.Schema>;
|
||||
userRelation$relation$$aggr?: AggregationResult<UserRelation.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ActionAuth$relationAggr]?: AggregationResult<ActionAuth.Schema>;
|
||||
} & {
|
||||
[A in RelationAuth$sourceRelationAggr]?: AggregationResult<RelationAuth.Schema>;
|
||||
} & {
|
||||
[A in RelationAuth$destRelationAggr]?: AggregationResult<RelationAuth.Schema>;
|
||||
} & {
|
||||
[A in UserEntityClaim$relationAggr]?: AggregationResult<UserEntityClaim.Schema>;
|
||||
} & {
|
||||
[A in UserRelation$relationAggr]?: AggregationResult<UserRelation.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -77,39 +71,34 @@ export type Projection = {
|
|||
actionAuth$relation?: ActionAuth.Selection & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
actionAuth$relation$$aggr?: ActionAuth.Aggregation & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
relationAuth$sourceRelation?: RelationAuth.Selection & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
relationAuth$sourceRelation$$aggr?: RelationAuth.Aggregation & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
relationAuth$destRelation?: RelationAuth.Selection & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
relationAuth$destRelation$$aggr?: RelationAuth.Aggregation & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
userEntityClaim$relation?: UserEntityClaim.Selection & {
|
||||
$entity: "userEntityClaim";
|
||||
};
|
||||
userEntityClaim$relation$$aggr?: UserEntityClaim.Aggregation & {
|
||||
$entity: "userEntityClaim";
|
||||
};
|
||||
userRelation$relation?: UserRelation.Selection & {
|
||||
$entity: "userRelation";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ActionAuth$relationAggr]?: ActionAuth.Aggregation & {
|
||||
$entity: "actionAuth";
|
||||
};
|
||||
} & {
|
||||
[A in RelationAuth$sourceRelationAggr]?: RelationAuth.Aggregation & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
} & {
|
||||
[A in RelationAuth$destRelationAggr]?: RelationAuth.Aggregation & {
|
||||
$entity: "relationAuth";
|
||||
};
|
||||
} & {
|
||||
[A in UserEntityClaim$relationAggr]?: UserEntityClaim.Aggregation & {
|
||||
$entity: "userEntityClaim";
|
||||
};
|
||||
} & {
|
||||
[A in UserRelation$relationAggr]?: UserRelation.Aggregation & {
|
||||
userRelation$relation$$aggr?: UserRelation.Aggregation & {
|
||||
$entity: "userRelation";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type RelationIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
|
|
@ -1,9 +1 @@
|
|||
{
|
||||
"name": "用户授权",
|
||||
"attr": {
|
||||
"name": "关系",
|
||||
"entity": "目标对象",
|
||||
"entityId": "目标对象id",
|
||||
"display": "显示值"
|
||||
}
|
||||
}
|
||||
{ "name": "用户授权", "attr": { "name": "关系", "entity": "目标对象", "entityId": "目标对象id", "display": "显示值" } }
|
||||
|
|
|
|||
|
|
@ -11,7 +11,10 @@ export type OpSchema = EntityShape & {
|
|||
destRelationId: ForeignKey<"relation">;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
sourceRelationId: ForeignKey<"relation">;
|
||||
pathId: ForeignKey<"path">;
|
||||
destRelationId: ForeignKey<"relation">;
|
||||
sourceRelation: Relation.Schema;
|
||||
path: Path.Schema;
|
||||
destRelation: Relation.Schema;
|
||||
|
|
|
|||
|
|
@ -1,8 +1 @@
|
|||
{
|
||||
"name": "用户授权",
|
||||
"attr": {
|
||||
"sourceRelation": "源关系",
|
||||
"path": "路径",
|
||||
"destRelation": "目标关系"
|
||||
}
|
||||
}
|
||||
{ "name": "用户授权", "attr": { "sourceRelation": "源关系", "path": "路径", "destRelation": "目标关系" } }
|
||||
|
|
|
|||
|
|
@ -18,27 +18,24 @@ export type OpSchema = EntityShape & {
|
|||
openId?: String<32> | null;
|
||||
};
|
||||
export type OpAttr = keyof OpSchema;
|
||||
type ReadRemark$sessionAggr = "readRemark$session$$aggr" | "readRemark$session$$0$$aggr" | "readRemark$session$$1$$aggr" | "readRemark$session$$2$$aggr" | "readRemark$session$$3$$aggr" | "readRemark$session$$4$$aggr" | "readRemark$session$$5$$aggr" | "readRemark$session$$6$$aggr" | "readRemark$session$$7$$aggr" | "readRemark$session$$8$$aggr" | "readRemark$session$$9$$aggr";
|
||||
type SessionMessage$sessionAggr = "sessionMessage$session$$aggr" | "sessionMessage$session$$0$$aggr" | "sessionMessage$session$$1$$aggr" | "sessionMessage$session$$2$$aggr" | "sessionMessage$session$$3$$aggr" | "sessionMessage$session$$4$$aggr" | "sessionMessage$session$$5$$aggr" | "sessionMessage$session$$6$$aggr" | "sessionMessage$session$$7$$aggr" | "sessionMessage$session$$8$$aggr" | "sessionMessage$session$$9$$aggr";
|
||||
type Relation$entityAggr = "relation$entity$$aggr" | "relation$entity$$0$$aggr" | "relation$entity$$1$$aggr" | "relation$entity$$2$$aggr" | "relation$entity$$3$$aggr" | "relation$entity$$4$$aggr" | "relation$entity$$5$$aggr" | "relation$entity$$6$$aggr" | "relation$entity$$7$$aggr" | "relation$entity$$8$$aggr" | "relation$entity$$9$$aggr";
|
||||
type UserRelation$entityAggr = "userRelation$entity$$aggr" | "userRelation$entity$$0$$aggr" | "userRelation$entity$$1$$aggr" | "userRelation$entity$$2$$aggr" | "userRelation$entity$$3$$aggr" | "userRelation$entity$$4$$aggr" | "userRelation$entity$$5$$aggr" | "userRelation$entity$$6$$aggr" | "userRelation$entity$$7$$aggr" | "userRelation$entity$$8$$aggr" | "userRelation$entity$$9$$aggr";
|
||||
export type Schema = OpSchema & {
|
||||
export type Schema = EntityShape & {
|
||||
entity: "application" | string;
|
||||
entityId: String<64>;
|
||||
userId?: ForeignKey<"user"> | null;
|
||||
lmts?: Datetime | null;
|
||||
openId?: String<32> | null;
|
||||
user?: User.Schema | null;
|
||||
application?: Application.Schema;
|
||||
readRemark$session?: Array<ReadRemark.Schema>;
|
||||
readRemark$session$$aggr?: AggregationResult<ReadRemark.Schema>;
|
||||
sessionMessage$session?: Array<SessionMessage.Schema>;
|
||||
sessionMessage$session$$aggr?: AggregationResult<SessionMessage.Schema>;
|
||||
relation$entity?: Array<Relation.Schema>;
|
||||
relation$entity$$aggr?: AggregationResult<Relation.Schema>;
|
||||
userRelation$entity?: Array<UserRelation.Schema>;
|
||||
userRelation$entity$$aggr?: AggregationResult<UserRelation.Schema>;
|
||||
} & {
|
||||
[A in ExpressionKey]?: any;
|
||||
} & {
|
||||
[A in ReadRemark$sessionAggr]?: AggregationResult<ReadRemark.Schema>;
|
||||
} & {
|
||||
[A in SessionMessage$sessionAggr]?: AggregationResult<SessionMessage.Schema>;
|
||||
} & {
|
||||
[A in Relation$entityAggr]?: AggregationResult<Relation.Schema>;
|
||||
} & {
|
||||
[A in UserRelation$entityAggr]?: AggregationResult<UserRelation.Schema>;
|
||||
};
|
||||
type AttrFilter = {
|
||||
id: Q_StringValue;
|
||||
|
|
@ -75,32 +72,28 @@ export type Projection = {
|
|||
readRemark$session?: ReadRemark.Selection & {
|
||||
$entity: "readRemark";
|
||||
};
|
||||
readRemark$session$$aggr?: ReadRemark.Aggregation & {
|
||||
$entity: "readRemark";
|
||||
};
|
||||
sessionMessage$session?: SessionMessage.Selection & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
sessionMessage$session$$aggr?: SessionMessage.Aggregation & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
relation$entity?: Relation.Selection & {
|
||||
$entity: "relation";
|
||||
};
|
||||
relation$entity$$aggr?: Relation.Aggregation & {
|
||||
$entity: "relation";
|
||||
};
|
||||
userRelation$entity?: UserRelation.Selection & {
|
||||
$entity: "userRelation";
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>> & {
|
||||
[A in ReadRemark$sessionAggr]?: ReadRemark.Aggregation & {
|
||||
$entity: "readRemark";
|
||||
};
|
||||
} & {
|
||||
[A in SessionMessage$sessionAggr]?: SessionMessage.Aggregation & {
|
||||
$entity: "sessionMessage";
|
||||
};
|
||||
} & {
|
||||
[A in Relation$entityAggr]?: Relation.Aggregation & {
|
||||
$entity: "relation";
|
||||
};
|
||||
} & {
|
||||
[A in UserRelation$entityAggr]?: UserRelation.Aggregation & {
|
||||
userRelation$entity$$aggr?: UserRelation.Aggregation & {
|
||||
$entity: "userRelation";
|
||||
};
|
||||
};
|
||||
} & Partial<ExprOp<OpAttr | string>>;
|
||||
type SessionIdProjection = OneOf<{
|
||||
id: number;
|
||||
}>;
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue