feat: update
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
"@types/crypto-js": "^4.2.2",
|
||||
"@types/react-calendar-heatmap": "^1.6.7",
|
||||
"@vitejs/plugin-legacy": "^5.4.0",
|
||||
"aieditor": "^1.0.12",
|
||||
"antd": "^5.17.4",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"axios": "^1.7.2",
|
||||
@@ -31,6 +32,7 @@
|
||||
"react": "^18.3.1",
|
||||
"react-calendar-heatmap": "^1.9.0",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-infinite-scroll-component": "^6.1.0",
|
||||
"react-rotate-captcha": "^1.0.26",
|
||||
"react-router-dom": "^6.23.1",
|
||||
"regenerator-runtime": "^0.14.1",
|
||||
|
830
pnpm-lock.yaml
generated
830
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 376 KiB |
@@ -1,12 +1,7 @@
|
||||
/** @format */
|
||||
|
||||
import { Avatar, Button, message } from "antd";
|
||||
import {
|
||||
DrawerForm,
|
||||
ProCard,
|
||||
ProForm,
|
||||
ProFormText,
|
||||
} from "@ant-design/pro-components";
|
||||
import { DrawerForm, ProCard, ProForm, ProFormText } from "@ant-design/pro-components";
|
||||
import React, { createContext, useContext, useState } from "react";
|
||||
import { EditOutlined, EllipsisOutlined, SettingOutlined } from "@ant-design/icons";
|
||||
import bucket from "../../../../assets/icons/bucket.svg";
|
||||
|
@@ -1,13 +1,9 @@
|
||||
.proCard{
|
||||
max-width: 30%;
|
||||
height: 75vh;
|
||||
max-height: 75vh;
|
||||
|
||||
|
||||
}
|
||||
.proCardBucket{
|
||||
height: 75vh;
|
||||
max-height: 75vh;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -23,6 +19,3 @@
|
||||
overflow-y:scroll;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
//.div_checkCardArea::-webkit-scrollbar {
|
||||
//
|
||||
//}
|
||||
|
@@ -14,23 +14,14 @@ const Bucket: FunctionComponent = () => {
|
||||
return (
|
||||
<div className={styles.div_proCard}>
|
||||
<ProCard
|
||||
extra={
|
||||
<Button
|
||||
type="primary"
|
||||
shape={"circle"}
|
||||
icon={<ReloadOutlined />}
|
||||
onClick={() => navigate("/main/bucket/add")}></Button>
|
||||
}
|
||||
extra={<Button type="primary" shape={"circle"} icon={<ReloadOutlined />}></Button>}
|
||||
title="存储商"
|
||||
headerBordered
|
||||
className={styles.proCard}
|
||||
boxShadow={true}
|
||||
colSpan={"100%"}
|
||||
bordered>
|
||||
<CheckCard.Group
|
||||
onChange={(value) => {
|
||||
console.log("value", value);
|
||||
}}>
|
||||
<CheckCard.Group>
|
||||
<div className={styles.div_checkCardArea}>
|
||||
{checkList.map((item) => {
|
||||
return (
|
||||
@@ -42,7 +33,6 @@ const Bucket: FunctionComponent = () => {
|
||||
description="点击查看"
|
||||
value={item}
|
||||
onChange={() => {
|
||||
console.log(`/main/bucket/${item}`);
|
||||
navigate(`/main/bucket/${item}`);
|
||||
}}
|
||||
/>
|
||||
|
@@ -5,7 +5,7 @@ import { Avatar, Card, Empty, Select } from "antd";
|
||||
import styles from "./index.module.less";
|
||||
import { Outlet, useLocation, useNavigate } from "react-router-dom";
|
||||
import { Suspense } from "react";
|
||||
import selectOptions from "@/components/Main/Settings/defaultSettings.ts";
|
||||
import selectOptions from "@/components/Main/Settings/settings.ts";
|
||||
import StorageIcon from "@/context/stroage-icon.ts";
|
||||
export default () => {
|
||||
const navigate = useNavigate();
|
||||
|
@@ -1,7 +0,0 @@
|
||||
/** @format */
|
||||
import React from "react";
|
||||
|
||||
const ShareList: React.FunctionComponent = () => {
|
||||
return <></>;
|
||||
};
|
||||
export default ShareList;
|
@@ -0,0 +1,46 @@
|
||||
/** @format */
|
||||
import React, { useEffect, useRef } from "react";
|
||||
import { Button } from "antd";
|
||||
import { LeftOutlined } from "@ant-design/icons";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import {AiEditor} from "aieditor";
|
||||
import "aieditor/dist/style.css"
|
||||
|
||||
const ShareDetail: React.FunctionComponent = () => {
|
||||
const navigate = useNavigate();
|
||||
//定义 ref
|
||||
const divRef = useRef(null);
|
||||
//初始化 AiEditor
|
||||
useEffect(() => {
|
||||
if (divRef.current) {
|
||||
const aiEditor = new AiEditor({
|
||||
editable:false,
|
||||
element: divRef.current,
|
||||
placeholder: "点击输入内容...",
|
||||
content: 'AiEditor 是一个面向 AI 的开源富文本编辑器。 ',
|
||||
})
|
||||
return ()=>{
|
||||
aiEditor.destroy();
|
||||
}
|
||||
}
|
||||
}, [])
|
||||
return (
|
||||
<>
|
||||
<Button
|
||||
shape="circle"
|
||||
icon={<LeftOutlined />}
|
||||
onClick={() => {
|
||||
navigate("/main/share/list/1");
|
||||
}}
|
||||
/>
|
||||
<div>
|
||||
<div ref={divRef} style={{ height: 550}}>
|
||||
</div>
|
||||
<div>
|
||||
555
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
export default ShareDetail;
|
@@ -1,86 +0,0 @@
|
||||
/** @format */
|
||||
|
||||
import { LikeOutlined, MessageOutlined, StarOutlined } from "@ant-design/icons";
|
||||
import { ProList } from "@ant-design/pro-components";
|
||||
import { Button, Tag } from "antd";
|
||||
import React from "react";
|
||||
|
||||
const IconText = ({ icon, text }: { icon: any; text: string }) => (
|
||||
<span>
|
||||
{React.createElement(icon, { style: { marginInlineEnd: 8 } })}
|
||||
{text}
|
||||
</span>
|
||||
);
|
||||
|
||||
const dataSource = [
|
||||
{
|
||||
title: "语雀的天空",
|
||||
},
|
||||
{
|
||||
title: "Ant Design",
|
||||
},
|
||||
{
|
||||
title: "蚂蚁金服体验科技",
|
||||
},
|
||||
{
|
||||
title: "TechUI",
|
||||
},
|
||||
];
|
||||
|
||||
const ShareList = () => {
|
||||
return (
|
||||
<ProList<{ title: string }>
|
||||
toolBarRender={() => {
|
||||
return [
|
||||
<Button key="3" type="primary">
|
||||
新建
|
||||
</Button>,
|
||||
];
|
||||
}}
|
||||
itemLayout="vertical"
|
||||
rowKey="id"
|
||||
// headerTitle="竖排样式"
|
||||
dataSource={dataSource}
|
||||
metas={{
|
||||
title: {},
|
||||
description: {
|
||||
render: () => (
|
||||
<>
|
||||
<Tag>语雀专栏</Tag>
|
||||
<Tag>设计语言</Tag>
|
||||
<Tag>蚂蚁金服</Tag>
|
||||
</>
|
||||
),
|
||||
},
|
||||
actions: {
|
||||
render: () => [
|
||||
<IconText icon={StarOutlined} text="156" key="list-vertical-star-o" />,
|
||||
<IconText icon={LikeOutlined} text="156" key="list-vertical-like-o" />,
|
||||
<IconText icon={MessageOutlined} text="2" key="list-vertical-message" />,
|
||||
],
|
||||
},
|
||||
extra: {
|
||||
render: () => (
|
||||
<img
|
||||
width={272}
|
||||
alt="logo"
|
||||
src="https://gw.alipayobjects.com/zos/rmsportal/mqaQswcyDLcXyDKnZfES.png"
|
||||
/>
|
||||
),
|
||||
},
|
||||
content: {
|
||||
render: () => {
|
||||
return (
|
||||
<div>
|
||||
段落示意:蚂蚁金服设计平台
|
||||
design.alipay.com,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台
|
||||
design.alipay.com,用最小的工作量,无缝接入蚂蚁金服生态提供跨越设计与开发的体验解决方案。
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
export default ShareList;
|
102
src/components/Main/Share/components/ShareList/ShareList.tsx
Normal file
102
src/components/Main/Share/components/ShareList/ShareList.tsx
Normal file
@@ -0,0 +1,102 @@
|
||||
/** @format */
|
||||
|
||||
import { ProCard } from "@ant-design/pro-components";
|
||||
import { Avatar, Button, Divider, List, Skeleton } from "antd";
|
||||
import { useEffect, useState } from "react";
|
||||
import styles from "./index.module.less";
|
||||
import Search from "antd/es/input/Search";
|
||||
import InfiniteScroll from "react-infinite-scroll-component";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { LeftOutlined } from "@ant-design/icons";
|
||||
interface DataType {
|
||||
gender: string;
|
||||
name: {
|
||||
title: string;
|
||||
first: string;
|
||||
last: string;
|
||||
};
|
||||
email: string;
|
||||
picture: {
|
||||
large: string;
|
||||
medium: string;
|
||||
thumbnail: string;
|
||||
};
|
||||
nat: string;
|
||||
}
|
||||
export default () => {
|
||||
const navigate = useNavigate();
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [data, setData] = useState<DataType[]>([]);
|
||||
|
||||
const loadMoreData = () => {
|
||||
if (loading) {
|
||||
return;
|
||||
}
|
||||
setLoading(true);
|
||||
fetch("https://randomuser.me/api/?results=10&inc=name,gender,email,nat,picture&noinfo")
|
||||
.then((res) => res.json())
|
||||
.then((body) => {
|
||||
setData([...data, ...body.results]);
|
||||
setLoading(false);
|
||||
})
|
||||
.catch(() => {
|
||||
setLoading(false);
|
||||
});
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
loadMoreData();
|
||||
}, []);
|
||||
return (
|
||||
<>
|
||||
<div className={styles.share_list_main}>
|
||||
<ProCard bordered={true} boxShadow={true}>
|
||||
<div className={styles.share_list_header}>
|
||||
<div>
|
||||
<Button
|
||||
shape="circle"
|
||||
icon={<LeftOutlined />}
|
||||
onClick={() => {
|
||||
navigate("/main/share");
|
||||
}}
|
||||
/>
|
||||
<Search placeholder="搜索" style={{ width: 500, marginLeft: 20 }} />
|
||||
</div>
|
||||
|
||||
<Button>分享</Button>
|
||||
</div>
|
||||
</ProCard>
|
||||
<ProCard bordered={true} boxShadow={true} style={{ marginTop: 20 }}>
|
||||
<InfiniteScroll
|
||||
dataLength={data.length}
|
||||
next={loadMoreData}
|
||||
hasMore={data.length < 50}
|
||||
loader={<Skeleton avatar paragraph={{ rows: 1 }} active />}
|
||||
endMessage={<Divider plain>It is all, nothing more 🤐</Divider>}
|
||||
scrollableTarget="scrollableDiv">
|
||||
<List
|
||||
dataSource={data}
|
||||
renderItem={(item) => (
|
||||
<List.Item key={item.email}>
|
||||
<List.Item.Meta
|
||||
avatar={<Avatar src={item.picture.large} />}
|
||||
title={
|
||||
<a
|
||||
onClick={() => {
|
||||
navigate("/main/share/detail/1");
|
||||
}}>
|
||||
{item.name.last}
|
||||
</a>
|
||||
}
|
||||
description={item.email}
|
||||
/>
|
||||
<div>Content</div>
|
||||
</List.Item>
|
||||
)}
|
||||
/>
|
||||
</InfiniteScroll>
|
||||
</ProCard>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
@@ -0,0 +1,9 @@
|
||||
.share_list_main{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.share_list_header{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
@@ -1,39 +1,46 @@
|
||||
/** @format */
|
||||
import { FunctionComponent } from "react";
|
||||
import { ProCard } from "@ant-design/pro-components";
|
||||
import styles from "./index.module.less";
|
||||
import { Avatar, Button, Card } from "antd";
|
||||
import setting from "@/assets/icons/setting.svg";
|
||||
import Search from "antd/es/input/Search";
|
||||
import Meta from "antd/es/card/Meta";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
const MainShare: FunctionComponent = () => {
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<>
|
||||
<div className={styles.share_main}>
|
||||
<ProCard bordered={true} boxShadow={true}>
|
||||
<div className={styles.share_header}>
|
||||
<Search placeholder="搜索圈子" style={{ width: 500 }} />
|
||||
<Button>创建圈子</Button>
|
||||
</div>
|
||||
</ProCard>
|
||||
<ProCard bordered={true} boxShadow={true} style={{ marginTop: 20 }}>
|
||||
<Card
|
||||
style={{ width: 250, marginTop: 16 }}
|
||||
hoverable
|
||||
onClick={() => {
|
||||
navigate("/main/share/list/1");
|
||||
}}>
|
||||
<Meta
|
||||
avatar={<Avatar src={setting} />}
|
||||
title="Card title"
|
||||
description="This is the description"
|
||||
/>
|
||||
</Card>
|
||||
</ProCard>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
export default MainShare;
|
||||
/** @format */
|
||||
import { FunctionComponent } from "react";
|
||||
import { ProCard } from "@ant-design/pro-components";
|
||||
import styles from "./index.module.less";
|
||||
import { Button, Card, Image } from "antd";
|
||||
|
||||
import Search from "antd/es/input/Search";
|
||||
import Meta from "antd/es/card/Meta";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import background from "@/assets/images/background.png";
|
||||
const MainShare: FunctionComponent = () => {
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<>
|
||||
<div className={styles.share_main}>
|
||||
<ProCard bordered={true} boxShadow={false}>
|
||||
<div className={styles.share_header}>
|
||||
<Search placeholder="搜索圈子" style={{ width: 500 }} />
|
||||
<Button>创建圈子</Button>
|
||||
</div>
|
||||
</ProCard>
|
||||
<ProCard bordered={true} boxShadow={false} style={{ marginTop: 20 }}>
|
||||
<Card
|
||||
hoverable
|
||||
style={{ width: 240 }}
|
||||
onClick={() => {
|
||||
navigate("/main/share/list/1");
|
||||
}}
|
||||
cover={
|
||||
<Image
|
||||
alt="example"
|
||||
src={background}
|
||||
style={{ height: 200 }}
|
||||
preview={false}
|
||||
width={"100%"}
|
||||
fallback="data:image/png;base64,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"
|
||||
/>
|
||||
}>
|
||||
<Meta title="Europe Street beat" description="www.instagram.com" />
|
||||
</Card>
|
||||
</ProCard>
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
};
|
||||
export default MainShare;
|
||||
|
11
src/router/modules/main/share/modules/shareDetail.tsx
Normal file
11
src/router/modules/main/share/modules/shareDetail.tsx
Normal file
@@ -0,0 +1,11 @@
|
||||
/** @format */
|
||||
|
||||
import { lazy } from "react";
|
||||
|
||||
const ShareDetail = lazy(
|
||||
() =>
|
||||
new Promise((resolve: any) => {
|
||||
resolve(import("@/components/Main/Share/components/ShareDetail/ShareDetail.tsx"));
|
||||
}),
|
||||
);
|
||||
export default ShareDetail;
|
@@ -5,7 +5,7 @@ import { lazy } from "react";
|
||||
const ShareList = lazy(
|
||||
() =>
|
||||
new Promise((resolve: any) => {
|
||||
resolve(import("@/components/Main/Share/components/ShareList"));
|
||||
resolve(import("@/components/Main/Share/components/ShareList/ShareList.tsx"));
|
||||
}),
|
||||
);
|
||||
export default ShareList;
|
||||
|
@@ -32,6 +32,7 @@ import Wangyi from "@/router/modules/main/settings/wangyi/wangyi.ts";
|
||||
import Jinshan from "@/router/modules/main/settings/jinshan/jinshan.ts";
|
||||
import Qiniu from "@/router/modules/main/settings/qiniu/qiniu.ts";
|
||||
import ShareList from "@/router/modules/main/share/modules/shareList.tsx";
|
||||
import ShareDetail from "@/router/modules/main/share/modules/shareDetail.tsx";
|
||||
import minioBucket from "@/router/modules/main/bucket/createBuckets/minio.ts";
|
||||
import tencentBucket from "@/router/modules/main/bucket/createBuckets/tencent.ts";
|
||||
import aliBucket from "@/router/modules/main/bucket/createBuckets/ali.ts";
|
||||
@@ -158,6 +159,10 @@ const routes: RouteObject[] = [
|
||||
path: "/main/share/list/:id",
|
||||
Component: ShareList,
|
||||
},
|
||||
{
|
||||
path: "/main/share/detail/:id",
|
||||
Component: ShareDetail,
|
||||
},
|
||||
{
|
||||
path: "/main/setting",
|
||||
Component: MainSetting,
|
||||
|
32
src/types/user.d.ts
vendored
Normal file
32
src/types/user.d.ts
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
/** @format */
|
||||
/* eslint-disable */
|
||||
|
||||
declare namespace API {
|
||||
type PhoneRegisterRequest = {
|
||||
phone?: string;
|
||||
userName?: string;
|
||||
password?: string;
|
||||
confirmPassword?: string;
|
||||
activeCode?: string;
|
||||
};
|
||||
type LoginRequest = {
|
||||
userName?: string;
|
||||
password?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
type LoginByPhoneRequest = {
|
||||
phone?: string;
|
||||
activeCode?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
type findPasswordRequest = {
|
||||
phone?: string;
|
||||
password?: string;
|
||||
confirmPassword?: string;
|
||||
activeCode?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
}
|
261
src/types/user/user.d.ts
vendored
261
src/types/user/user.d.ts
vendored
@@ -1,261 +0,0 @@
|
||||
/** @format */
|
||||
/* eslint-disable */
|
||||
|
||||
declare namespace API {
|
||||
type PhoneRegisterRequest = {
|
||||
phone?: string;
|
||||
userName?: string;
|
||||
password?: string;
|
||||
confirmPassword?: string;
|
||||
activeCode?: string;
|
||||
};
|
||||
type LoginRequest = {
|
||||
userName?: string;
|
||||
password?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
type LoginByPhoneRequest = {
|
||||
phone?: string;
|
||||
activeCode?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
type findPasswordRequest = {
|
||||
phone?: string;
|
||||
password?: string;
|
||||
confirmPassword?: string;
|
||||
activeCode?: string;
|
||||
token: string;
|
||||
deg: number;
|
||||
};
|
||||
// type ApiResponse<T> = {
|
||||
// success?: boolean;
|
||||
// code?: number;
|
||||
// codeMessage?: string;
|
||||
// errorMessage?: Map<string, string>;
|
||||
// showType?: ErrorShowType;
|
||||
// data: T
|
||||
// }
|
||||
// type CurrentUser = {
|
||||
// name?: string;
|
||||
// avatar?: string;
|
||||
// userid?: string;
|
||||
// email?: string;
|
||||
// signature?: string;
|
||||
// title?: string;
|
||||
// group?: string;
|
||||
// tags?: { key?: string; label?: string }[];
|
||||
// notifyCount?: number;
|
||||
// unreadCount?: number;
|
||||
// country?: string;
|
||||
// access?: string;
|
||||
// geographic?: {
|
||||
// province?: { label?: string; key?: string };
|
||||
// city?: { label?: string; key?: string };
|
||||
// };
|
||||
// address?: string;
|
||||
// phone?: string;
|
||||
// };
|
||||
//
|
||||
// type LoginResult = ResponseStructure & {
|
||||
// data?: {
|
||||
// token?: string;
|
||||
// expireDateTime?: number;
|
||||
// expire?: number;
|
||||
// timeUnit?: any;
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// type PageParams = {
|
||||
// pageNum?: number;
|
||||
// pageSize?: number;
|
||||
// };
|
||||
|
||||
// type RuleListItem = {
|
||||
// key?: number;
|
||||
// disabled?: boolean;
|
||||
// href?: string;
|
||||
// avatar?: string;
|
||||
// name?: string;
|
||||
// owner?: string;
|
||||
// desc?: string;
|
||||
// callNo?: number;
|
||||
// status?: number;
|
||||
// updatedAt?: string;
|
||||
// createdAt?: string;
|
||||
// progress?: number;
|
||||
// };
|
||||
|
||||
// type RuleList = {
|
||||
// data?: RuleListItem[];
|
||||
// /** 列表的内容总数 */
|
||||
// total?: number;
|
||||
// success?: boolean;
|
||||
// };
|
||||
// interface ResponseStructure {
|
||||
// success?: boolean;
|
||||
// code?: number;
|
||||
// codeMessage?: string;
|
||||
// errorMessage?: Map<string, string>;
|
||||
// showType?: ErrorShowType;
|
||||
// }
|
||||
// type
|
||||
// FakeCaptcha = ResponseStructure & {
|
||||
// data?: boolean,
|
||||
// };
|
||||
//
|
||||
// type PhonePasswordLoginParams = {
|
||||
// clientId?: string;
|
||||
// phone?: string;
|
||||
// password?: string;
|
||||
// code?: string;
|
||||
// autoLogin?: boolean;
|
||||
// };
|
||||
//
|
||||
// type PhoneSmsCodeLoginParams = {
|
||||
// clientId?: string;
|
||||
// phone?: string;
|
||||
// smsCode?: string;
|
||||
// autoLogin?: boolean;
|
||||
// };
|
||||
//
|
||||
// type ErrorResponse = {
|
||||
// /** 业务约定的错误码 */
|
||||
// errorCode: string;
|
||||
// /** 业务上的错误信息 */
|
||||
// errorMessage?: Map<string, string>;
|
||||
// /** 业务上的请求是否成功 */
|
||||
// success?: boolean;
|
||||
// };
|
||||
//
|
||||
// type NoticeIconList = {
|
||||
// data?: NoticeIconItem[];
|
||||
// /** 列表的内容总数 */
|
||||
// total?: number;
|
||||
// success?: boolean;
|
||||
// };
|
||||
|
||||
// type NoticeIconItemType = 'notification' | 'message' | 'event';
|
||||
|
||||
// type NoticeIconItem = {
|
||||
// id?: string;
|
||||
// extra?: string;
|
||||
// key?: string;
|
||||
// read?: boolean;
|
||||
// avatar?: string;
|
||||
// title?: string;
|
||||
// status?: string;
|
||||
// datetime?: string;
|
||||
// description?: string;
|
||||
// type?: NoticeIconItemType;
|
||||
// };
|
||||
|
||||
// type GenerateMpRegCode = {
|
||||
// data?: {
|
||||
// regCode?: string;
|
||||
// qrCodeUrl?: string;
|
||||
// expireSeconds?: number;
|
||||
// ticket?: string;
|
||||
// url?: string;
|
||||
// };
|
||||
// }
|
||||
|
||||
// type GetClientId = {
|
||||
// data?: string;
|
||||
// }
|
||||
|
||||
// type GenerateBase64Code = {
|
||||
// data?: string;
|
||||
// }
|
||||
|
||||
// type GetClientToken = {
|
||||
// data?: {
|
||||
// token?: string;
|
||||
// expireDateTime?: number;
|
||||
// expire?: number;
|
||||
// };
|
||||
// }
|
||||
|
||||
// type PhoneRegisterResponse = ResponseStructure & {
|
||||
// data?: number;
|
||||
// }
|
||||
//
|
||||
// type CustomValidate = {
|
||||
// validateStatus?: boolean;
|
||||
// msg?: string;
|
||||
// formValue?: any;
|
||||
// code?: number;
|
||||
// codeMessage?: string;
|
||||
// errors?: Map<string, string>;
|
||||
// validateFields: ValidateFields<Values>;
|
||||
// }
|
||||
//
|
||||
// type ListAccountBookVo = ResponseStructure & {
|
||||
// data?: {
|
||||
// total?: number;
|
||||
// list?: ListAccountBookVoItem[]
|
||||
// }
|
||||
// }
|
||||
// type ListAccountBookVoItem = {
|
||||
// id: number;
|
||||
// companyName?: string;
|
||||
// valueAddedTaxCate?: string;
|
||||
// accountingStandard?: string;
|
||||
// startTime?: Date;
|
||||
// createTime?: Date;
|
||||
// enableVoucherVerify?: boolean;
|
||||
// disable?: boolean;
|
||||
// }
|
||||
// type GetAccountBookVo = {
|
||||
// id?: number;
|
||||
// companyName?: string;
|
||||
// unifiedSocialCreditCode?: string;
|
||||
// industryId?: number;
|
||||
// valueAddedTaxCate?: number;
|
||||
// enableVoucherVerify?: boolean;
|
||||
// startTime?: Date;
|
||||
// accountingStandard?: number;
|
||||
// enableFixedAssets?: boolean;
|
||||
// enableCapital?: boolean;
|
||||
// enablePsi?: boolean;
|
||||
// }
|
||||
// type DataDictionaryVo = {
|
||||
// dataCode?: string;
|
||||
// dataValue?: string;
|
||||
// }
|
||||
//
|
||||
// type ListTreeMenuVo = {
|
||||
// id?: number;
|
||||
// key?: string;
|
||||
// title?: any;
|
||||
// icon?: string;
|
||||
// checked?: boolean;
|
||||
// children?: ListTreeMenuVo[];
|
||||
// level?: number;
|
||||
// };
|
||||
//
|
||||
// type ListTreeSelectMenuVo = {
|
||||
// id?: number;
|
||||
// value?: string;
|
||||
// title?: any;
|
||||
// children?: ListTreeMenuVo[];
|
||||
// }
|
||||
//
|
||||
// type ListRoleVo = {
|
||||
// id: number;
|
||||
// roleName?: string;
|
||||
// disable?: boolean;
|
||||
// }
|
||||
//
|
||||
// type ListSubject = {
|
||||
// id: number;
|
||||
// pid?: number;
|
||||
// valueAddedTaxCate?: string;
|
||||
// accountingStandard?: string;
|
||||
// startTime?: Date;
|
||||
// createTime?: Date;
|
||||
// enableVoucherVerify?: boolean;
|
||||
// disable?: boolean;
|
||||
// }
|
||||
}
|
Reference in New Issue
Block a user