Browse Source

refactor: simplify biome.json ignore patterns and enhance code readability in various files

pull/11572/head
ice 5 months ago
parent
commit
ae29b1cd54
  1. 25
      biome.json
  2. 38
      mock/listTableList.ts
  3. 6
      mock/notices.ts
  4. 63
      mock/requestRecord.mock.js
  5. 6
      mock/user.ts
  6. 1
      package.json
  7. 2
      public/scripts/loading.js
  8. 3
      src/app.tsx
  9. 30
      src/pages/account/center/components/Applications/index.tsx
  10. 17
      src/pages/account/center/components/Articles/index.tsx
  11. 39
      src/pages/account/settings/components/base.tsx
  12. 50
      src/pages/list/basic-list/index.tsx
  13. 2
      src/pages/list/mock/index.ts
  14. 62
      src/pages/list/search/articles/index.tsx
  15. 2
      src/pages/list/table-list/service.ts
  16. 63
      types/cache/mock/login.mock.cache.js

25
biome.json

@ -4,17 +4,17 @@
"ignoreUnknown": true, "ignoreUnknown": true,
"includes": [ "includes": [
"**/*", "**/*",
"!**/.umi/**", "!**/.umi",
"!**/.umi-production/**", "!**/.umi-production",
"!**/.umi-test/**", "!**/.umi-test",
"!**/.umi-test-production/**", "!**/.umi-test-production",
"!**/src/services/**", "!**/src/services",
"!**/mock/**", "!**/mock",
"!**/dist/**", "!**/dist",
"!**/server/**", "!**/server",
"!**/public/**", "!**/public",
"!**/coverage/**", "!**/coverage",
"!**/node_modules/**", "!**/node_modules",
"!biome.json" "!biome.json"
] ]
}, },
@ -30,7 +30,8 @@
"noExplicitAny": "off" "noExplicitAny": "off"
}, },
"correctness": { "correctness": {
"useExhaustiveDependencies": "off" "useExhaustiveDependencies": "off",
"useUniqueElementIds": "off"
}, },
"a11y": { "a11y": {
"noStaticElementInteractions": "off", "noStaticElementInteractions": "off",

38
mock/listTableList.ts

@ -34,10 +34,7 @@ let tableListDataSource = genList(1, 100);
function getRule(req: Request, res: Response, u: string) { function getRule(req: Request, res: Response, u: string) {
let realUrl = u; let realUrl = u;
if ( if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') {
!realUrl ||
Object.prototype.toString.call(realUrl) !== '[object String]'
) {
realUrl = req.url; realUrl = req.url;
} }
const { current = 1, pageSize = 10 } = req.query; const { current = 1, pageSize = 10 } = req.query;
@ -81,25 +78,21 @@ function getRule(req: Request, res: Response, u: string) {
}; };
if (Object.keys(filter).length > 0) { if (Object.keys(filter).length > 0) {
dataSource = dataSource.filter((item) => { dataSource = dataSource.filter((item) => {
return (Object.keys(filter) as Array<keyof API.RuleListItem>).some( return (Object.keys(filter) as Array<keyof API.RuleListItem>).some((key) => {
(key) => { if (!filter[key]) {
if (!filter[key]) { return true;
return true; }
} if (filter[key].includes(`${item[key]}`)) {
if (filter[key].includes(`${item[key]}`)) { return true;
return true; }
} return false;
return false; });
},
);
}); });
} }
} }
if (params.name) { if (params.name) {
dataSource = dataSource.filter((data) => dataSource = dataSource.filter((data) => data?.name?.includes(params.name || ''));
data?.name?.includes(params.name || ''),
);
} }
const result = { const result = {
data: dataSource, data: dataSource,
@ -114,10 +107,7 @@ function getRule(req: Request, res: Response, u: string) {
function postRule(req: Request, res: Response, u: string, b: Request) { function postRule(req: Request, res: Response, u: string, b: Request) {
let realUrl = u; let realUrl = u;
if ( if (!realUrl || Object.prototype.toString.call(realUrl) !== '[object String]') {
!realUrl ||
Object.prototype.toString.call(realUrl) !== '[object String]'
) {
realUrl = req.url; realUrl = req.url;
} }
@ -126,9 +116,7 @@ function postRule(req: Request, res: Response, u: string, b: Request) {
switch (method) { switch (method) {
case 'delete': case 'delete':
tableListDataSource = tableListDataSource.filter( tableListDataSource = tableListDataSource.filter((item) => key.indexOf(item.key) === -1);
(item) => key.indexOf(item.key) === -1,
);
break; break;
case 'post': case 'post':
(() => { (() => {

6
mock/notices.ts

@ -85,8 +85,7 @@ const getNotices = (_req: Request, res: Response) => {
{ {
id: '000000010', id: '000000010',
title: '第三方紧急代码变更', title: '第三方紧急代码变更',
description: description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
'冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
extra: '马上到期', extra: '马上到期',
status: 'urgent', status: 'urgent',
type: 'event', type: 'event',
@ -102,8 +101,7 @@ const getNotices = (_req: Request, res: Response) => {
{ {
id: '000000012', id: '000000012',
title: 'ABCD 版本发布', title: 'ABCD 版本发布',
description: description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
'冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务',
extra: '进行中', extra: '进行中',
status: 'processing', status: 'processing',
type: 'event', type: 'event',

63
mock/requestRecord.mock.js

@ -2,8 +2,7 @@ module.exports = {
'GET /api/currentUser': { 'GET /api/currentUser': {
data: { data: {
name: 'Serati Ma', name: 'Serati Ma',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
userid: '00000001', userid: '00000001',
email: 'antdesign@alipay.com', email: 'antdesign@alipay.com',
signature: '海纳百川,有容乃大', signature: '海纳百川,有容乃大',
@ -34,8 +33,7 @@ module.exports = {
key: 99, key: 99,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 99', name: 'TradeCode 99',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -49,8 +47,7 @@ module.exports = {
key: 98, key: 98,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 98', name: 'TradeCode 98',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -64,8 +61,7 @@ module.exports = {
key: 97, key: 97,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 97', name: 'TradeCode 97',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -79,8 +75,7 @@ module.exports = {
key: 96, key: 96,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 96', name: 'TradeCode 96',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -94,8 +89,7 @@ module.exports = {
key: 95, key: 95,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 95', name: 'TradeCode 95',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -109,8 +103,7 @@ module.exports = {
key: 94, key: 94,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 94', name: 'TradeCode 94',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -124,8 +117,7 @@ module.exports = {
key: 93, key: 93,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 93', name: 'TradeCode 93',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -139,8 +131,7 @@ module.exports = {
key: 92, key: 92,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 92', name: 'TradeCode 92',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -154,8 +145,7 @@ module.exports = {
key: 91, key: 91,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 91', name: 'TradeCode 91',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -169,8 +159,7 @@ module.exports = {
key: 90, key: 90,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 90', name: 'TradeCode 90',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -184,8 +173,7 @@ module.exports = {
key: 89, key: 89,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 89', name: 'TradeCode 89',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -199,8 +187,7 @@ module.exports = {
key: 88, key: 88,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 88', name: 'TradeCode 88',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -214,8 +201,7 @@ module.exports = {
key: 87, key: 87,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 87', name: 'TradeCode 87',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -229,8 +215,7 @@ module.exports = {
key: 86, key: 86,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 86', name: 'TradeCode 86',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -244,8 +229,7 @@ module.exports = {
key: 85, key: 85,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 85', name: 'TradeCode 85',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -259,8 +243,7 @@ module.exports = {
key: 84, key: 84,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 84', name: 'TradeCode 84',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -274,8 +257,7 @@ module.exports = {
key: 83, key: 83,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 83', name: 'TradeCode 83',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -289,8 +271,7 @@ module.exports = {
key: 82, key: 82,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 82', name: 'TradeCode 82',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -304,8 +285,7 @@ module.exports = {
key: 81, key: 81,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 81', name: 'TradeCode 81',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -319,8 +299,7 @@ module.exports = {
key: 80, key: 80,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 80', name: 'TradeCode 80',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',

6
mock/user.ts

@ -20,8 +20,7 @@ const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process.env;
* current user access if is '', user need login * current user access if is '', user need login
* pro * pro
*/ */
let access = let access = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ? 'admin' : '';
ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ? 'admin' : '';
const getAccess = () => { const getAccess = () => {
return access; return access;
@ -46,8 +45,7 @@ export default {
success: true, success: true,
data: { data: {
name: 'Serati Ma', name: 'Serati Ma',
avatar: avatar: 'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png',
'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png',
userid: '00000001', userid: '00000001',
email: 'antdesign@alipay.com', email: 'antdesign@alipay.com',
signature: '海纳百川,有容乃大', signature: '海纳百川,有容乃大',

1
package.json

@ -16,6 +16,7 @@
"lint": "npm run biome:lint && npm run tsc", "lint": "npm run biome:lint && npm run tsc",
"lint-staged": "lint-staged", "lint-staged": "lint-staged",
"biome:lint": "npx @biomejs/biome lint", "biome:lint": "npx @biomejs/biome lint",
"biome": "biome check --write",
"openapi": "max openapi", "openapi": "max openapi",
"prepare": "husky", "prepare": "husky",
"preview": "npm run build && max preview --port 8000", "preview": "npm run build && max preview --port 8000",

2
public/scripts/loading.js

@ -2,7 +2,7 @@
* loading 占位 * loading 占位
* 解决首次加载时白屏的问题 * 解决首次加载时白屏的问题
*/ */
(function () { (() => {
const _root = document.querySelector('#root'); const _root = document.querySelector('#root');
if (_root && _root.innerHTML === '') { if (_root && _root.innerHTML === '') {
_root.innerHTML = ` _root.innerHTML = `

3
src/app.tsx

@ -16,8 +16,7 @@ import defaultSettings from '../config/defaultSettings';
import { errorConfig } from './requestErrorConfig'; import { errorConfig } from './requestErrorConfig';
import '@ant-design/v5-patch-for-react-19'; import '@ant-design/v5-patch-for-react-19';
const isDev = const isDev = process.env.NODE_ENV === 'development' || process.env.CI;
process.env.NODE_ENV === 'development' || process.env.CI;
const loginPath = '/user/login'; const loginPath = '/user/login';
/** /**

30
src/pages/account/center/components/Applications/index.tsx

@ -11,6 +11,7 @@ import React from 'react';
import type { ListItemDataType } from '../../data.d'; import type { ListItemDataType } from '../../data.d';
import { queryFakeList } from '../../service'; import { queryFakeList } from '../../service';
import useStyles from './index.style'; import useStyles from './index.style';
export function formatWan(val: number) { export function formatWan(val: number) {
const v = val * 1; const v = val * 1;
if (!v || Number.isNaN(v)) return ''; if (!v || Number.isNaN(v)) return '';
@ -35,19 +36,13 @@ export function formatWan(val: number) {
} }
return result; return result;
} }
const Applications: React.FC = () => {
const { styles: stylesApplications } = useStyles();
// 获取tab列表数据
const { data: listData } = useRequest(() => {
return queryFakeList({
count: 30,
});
});
const CardInfo: React.FC<{ const CardInfo: React.FC<{
activeUser: React.ReactNode; activeUser: React.ReactNode;
newUser: React.ReactNode; newUser: React.ReactNode;
}> = ({ activeUser, newUser }) => ( }> = ({ activeUser, newUser }) => {
const { styles: stylesApplications } = useStyles();
return (
<div className={stylesApplications.cardInfo}> <div className={stylesApplications.cardInfo}>
<div> <div>
<p></p> <p></p>
@ -59,6 +54,17 @@ const Applications: React.FC = () => {
</div> </div>
</div> </div>
); );
};
const Applications: React.FC = () => {
const { styles: stylesApplications } = useStyles();
// 获取tab列表数据
const { data: listData } = useRequest(() => {
return queryFakeList({
count: 30,
});
});
return ( return (
<List<ListItemDataType> <List<ListItemDataType>
rowKey="id" rowKey="id"

17
src/pages/account/center/components/Articles/index.tsx

@ -7,16 +7,17 @@ import { queryFakeList } from '../../service';
import ArticleListContent from '../ArticleListContent'; import ArticleListContent from '../ArticleListContent';
import useStyles from './index.style'; import useStyles from './index.style';
const IconText: React.FC<{
icon: React.ReactNode;
text: React.ReactNode;
}> = ({ icon, text }) => (
<span>
{icon} {text}
</span>
);
const Articles: React.FC = () => { const Articles: React.FC = () => {
const { styles } = useStyles(); const { styles } = useStyles();
const IconText: React.FC<{
icon: React.ReactNode;
text: React.ReactNode;
}> = ({ icon, text }) => (
<span>
{icon} {text}
</span>
);
// 获取tab列表数据 // 获取tab列表数据
const { data: listData } = useRequest(() => { const { data: listData } = useRequest(() => {

39
src/pages/account/settings/components/base.tsx

@ -29,23 +29,7 @@ const validatorPhone = (
const BaseView: React.FC = () => { const BaseView: React.FC = () => {
const { styles } = useStyles(); const { styles } = useStyles();
// 头像组件 方便以后独立,增加裁剪之类的功能
const AvatarView = ({ avatar }: { avatar: string }) => (
<>
<div className={styles.avatar_title}></div>
<div className={styles.avatar}>
<img src={avatar} alt="avatar" />
</div>
<Upload showUploadList={false}>
<div className={styles.button_view}>
<Button>
<UploadOutlined />
</Button>
</div>
</Upload>
</>
);
const { data: currentUser, loading } = useRequest(() => { const { data: currentUser, loading } = useRequest(() => {
return queryCurrent(); return queryCurrent();
}); });
@ -232,3 +216,24 @@ const BaseView: React.FC = () => {
); );
}; };
export default BaseView; export default BaseView;
const AvatarView = ({ avatar }: { avatar: string }) => {
const { styles } = useStyles();
return (
<>
<div className={styles.avatar_title}></div>
<div className={styles.avatar}>
<img src={avatar} alt="avatar" />
</div>
<Upload showUploadList={false}>
<div className={styles.button_view}>
<Button>
<UploadOutlined />
</Button>
</div>
</Upload>
</>
);
};

50
src/pages/list/basic-list/index.tsx

@ -154,29 +154,31 @@ export const BasicList: FC = () => {
/> />
</div> </div>
); );
const MoreBtn: React.FC<{
item: BasicListItemDataType; const renderMoreBtn = (item: BasicListItemDataType) => {
}> = ({ item }) => ( return (
<Dropdown <Dropdown
menu={{ menu={{
onClick: ({ key }) => editAndDelete(key, item), onClick: ({ key }) => editAndDelete(key, item),
items: [ items: [
{ {
key: 'edit', key: 'edit',
label: '编辑', label: '编辑',
}, },
{ {
key: 'delete', key: 'delete',
label: '删除', label: '删除',
}, },
], ],
}} }}
> >
<a> <a>
<DownOutlined /> <DownOutlined />
</a> </a>
</Dropdown> </Dropdown>
); );
};
const handleDone = () => { const handleDone = () => {
setDone(false); setDone(false);
setVisible(false); setVisible(false);
@ -237,7 +239,7 @@ export const BasicList: FC = () => {
> >
</a>, </a>,
<MoreBtn key="more" item={item} />, renderMoreBtn(item),
]} ]}
> >
<List.Item.Meta <List.Item.Meta

2
src/pages/list/mock/index.ts

@ -1,4 +1,4 @@
import { DefaultOptionType } from 'antd/es/select'; import type { DefaultOptionType } from 'antd/es/select';
export const categoryOptions: DefaultOptionType[] = Array.from({ length: 12 }).map((_, index) => ({ export const categoryOptions: DefaultOptionType[] = Array.from({ length: 12 }).map((_, index) => ({
value: `cat${index + 1}`, value: `cat${index + 1}`,

62
src/pages/list/search/articles/index.tsx

@ -21,6 +21,37 @@ const FormItem = Form.Item;
const pageSize = 5; const pageSize = 5;
const IconText: React.FC<{
type: string;
text: React.ReactNode;
}> = ({ type, text }) => {
switch (type) {
case 'star-o':
return (
<span>
<StarOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
case 'like-o':
return (
<span>
<LikeOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
case 'message':
return (
<span>
<MessageOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
default:
return null;
}
};
const Articles: FC = () => { const Articles: FC = () => {
const [form] = Form.useForm(); const [form] = Form.useForm();
@ -68,37 +99,6 @@ const Articles: FC = () => {
}, },
]; ];
const IconText: React.FC<{
type: string;
text: React.ReactNode;
}> = ({ type, text }) => {
switch (type) {
case 'star-o':
return (
<span>
<StarOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
case 'like-o':
return (
<span>
<LikeOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
case 'message':
return (
<span>
<MessageOutlined style={{ marginRight: 8 }} />
{text}
</span>
);
default:
return null;
}
};
const formItemLayout = { const formItemLayout = {
wrapperCol: { wrapperCol: {
xs: { span: 24 }, xs: { span: 24 },

2
src/pages/list/table-list/service.ts

@ -1,5 +1,3 @@
// @ts-ignore
/* eslint-disable */
import { request } from '@umijs/max'; import { request } from '@umijs/max';
import type { TableListItem } from './data'; import type { TableListItem } from './data';

63
types/cache/mock/login.mock.cache.js

@ -2,8 +2,7 @@ module.exports = {
'GET /api/currentUser': { 'GET /api/currentUser': {
data: { data: {
name: 'Serati Ma', name: 'Serati Ma',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png',
userid: '00000001', userid: '00000001',
email: 'antdesign@alipay.com', email: 'antdesign@alipay.com',
signature: '海纳百川,有容乃大', signature: '海纳百川,有容乃大',
@ -34,8 +33,7 @@ module.exports = {
key: 99, key: 99,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 99', name: 'TradeCode 99',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -49,8 +47,7 @@ module.exports = {
key: 98, key: 98,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 98', name: 'TradeCode 98',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -64,8 +61,7 @@ module.exports = {
key: 97, key: 97,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 97', name: 'TradeCode 97',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -79,8 +75,7 @@ module.exports = {
key: 96, key: 96,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 96', name: 'TradeCode 96',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -94,8 +89,7 @@ module.exports = {
key: 95, key: 95,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 95', name: 'TradeCode 95',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -109,8 +103,7 @@ module.exports = {
key: 94, key: 94,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 94', name: 'TradeCode 94',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -124,8 +117,7 @@ module.exports = {
key: 93, key: 93,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 93', name: 'TradeCode 93',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -139,8 +131,7 @@ module.exports = {
key: 92, key: 92,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 92', name: 'TradeCode 92',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -154,8 +145,7 @@ module.exports = {
key: 91, key: 91,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 91', name: 'TradeCode 91',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -169,8 +159,7 @@ module.exports = {
key: 90, key: 90,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 90', name: 'TradeCode 90',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -184,8 +173,7 @@ module.exports = {
key: 89, key: 89,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 89', name: 'TradeCode 89',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -199,8 +187,7 @@ module.exports = {
key: 88, key: 88,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 88', name: 'TradeCode 88',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -214,8 +201,7 @@ module.exports = {
key: 87, key: 87,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 87', name: 'TradeCode 87',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -229,8 +215,7 @@ module.exports = {
key: 86, key: 86,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 86', name: 'TradeCode 86',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -244,8 +229,7 @@ module.exports = {
key: 85, key: 85,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 85', name: 'TradeCode 85',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -259,8 +243,7 @@ module.exports = {
key: 84, key: 84,
disabled: true, disabled: true,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 84', name: 'TradeCode 84',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -274,8 +257,7 @@ module.exports = {
key: 83, key: 83,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 83', name: 'TradeCode 83',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -289,8 +271,7 @@ module.exports = {
key: 82, key: 82,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 82', name: 'TradeCode 82',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -304,8 +285,7 @@ module.exports = {
key: 81, key: 81,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
name: 'TradeCode 81', name: 'TradeCode 81',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',
@ -319,8 +299,7 @@ module.exports = {
key: 80, key: 80,
disabled: false, disabled: false,
href: 'https://ant.design', href: 'https://ant.design',
avatar: avatar: 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
name: 'TradeCode 80', name: 'TradeCode 80',
owner: '曲丽丽', owner: '曲丽丽',
desc: '这是一段描述', desc: '这是一段描述',

Loading…
Cancel
Save