From 9eecdadaf965aed1b1ed48c9d0d3b3298dcfb2d4 Mon Sep 17 00:00:00 2001 From: zsqtony <450952271@qq.com> Date: Thu, 21 Aug 2025 18:01:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=8E=BB=E6=8E=89NewMyS2Table?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .umirc.ts | 4 +- package.json | 3 - src/common/index.tsx | 3 +- .../pages/NewMyS2Table/MyS2TableComponent.tsx | 51 -------- .../pages/NewMyS2Table/MyS2TableExtra.tsx | 106 ---------------- .../pages/NewMyS2Table/MySwitcherFields.tsx | 73 ----------- src/common/pages/NewMyS2Table/Query.tsx | 22 ---- src/common/pages/NewMyS2Table/index.tsx | 116 ------------------ 8 files changed, 3 insertions(+), 375 deletions(-) delete mode 100644 src/common/pages/NewMyS2Table/MyS2TableComponent.tsx delete mode 100644 src/common/pages/NewMyS2Table/MyS2TableExtra.tsx delete mode 100644 src/common/pages/NewMyS2Table/MySwitcherFields.tsx delete mode 100644 src/common/pages/NewMyS2Table/Query.tsx delete mode 100644 src/common/pages/NewMyS2Table/index.tsx diff --git a/.umirc.ts b/.umirc.ts index 4edb548..594e7bb 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -14,8 +14,8 @@ export default defineConfig({ }, proxy: { '/api/': { - // target: 'http://yt:8003', - target: 'http://10.39.13.80:8001', + target: 'http://yt:8001', + // target: 'http://10.39.13.80:8001', // target: 'http://we6f9c65.natappfree.cc', // target: 'https://loanos-test.nchl.net/', changeOrigin: true, diff --git a/package.json b/package.json index 4758e7f..8bccefa 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,6 @@ "dependencies": { "@ant-design/icons": "^5.0.1", "@ant-design/pro-components": "^2.8.10", - "@antv/g2": "^5.3.5", - "@antv/s2": "^2.0.0-next.25", - "@antv/s2-react": "^2.0.0-next.24", "@umijs/max": "^4.3.10", "antd": "^5.4.0", "axios": "^1.7.2", diff --git a/src/common/index.tsx b/src/common/index.tsx index eb28007..6cc2566 100644 --- a/src/common/index.tsx +++ b/src/common/index.tsx @@ -10,8 +10,8 @@ export * from './components/layout/MyCommonModal'; export * from './components/layout/MyImportModal'; export * from './components/layout/MyPageContainer'; export * from './components/layout/MyRootContainer'; -export * from './components/layout/usePageTabs'; export * from './components/layout/TabsExample'; +export * from './components/layout/usePageTabs'; export * from './components/props/MyDrawerProps'; export * from './components/props/MyModalFormProps'; @@ -33,7 +33,6 @@ export * from './libs/valtio/state'; // pages export * from './pages/MyLoginPage1'; -export * from './pages/NewMyS2Table'; // utils export * from './utils/renderTextHelper'; diff --git a/src/common/pages/NewMyS2Table/MyS2TableComponent.tsx b/src/common/pages/NewMyS2Table/MyS2TableComponent.tsx deleted file mode 100644 index 3b873bc..0000000 --- a/src/common/pages/NewMyS2Table/MyS2TableComponent.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { SheetComponent } from '@antv/s2-react'; -import { DataType } from '.'; - -export function MyS2TableComponent(props: DataType) { - return ( - - ); -} diff --git a/src/common/pages/NewMyS2Table/MyS2TableExtra.tsx b/src/common/pages/NewMyS2Table/MyS2TableExtra.tsx deleted file mode 100644 index 5af23f1..0000000 --- a/src/common/pages/NewMyS2Table/MyS2TableExtra.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import { Button, Radio, Space, Switch, Typography } from 'antd'; -import { DataType } from '.'; - -function downloadCSV(json: any) { - if (json === undefined) return; - // 提取表头 - const headers = Object.keys(json[0]); - // 提取数据行 - const rows = json.map((item: any) => Object.values(item)); - - // 构建CSV内容 - let csvContent = ''; - // 添加表头 - csvContent += headers.join(',') + '\r\n'; - // 添加数据行 - rows.forEach((row: any) => { - csvContent += row.join(',') + '\r\n'; - }); - - // 创建一个Blob对象,使用CSV内容,并设置类型为text/csv - const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); - - // 创建一个链接元素 - const link = document.createElement('a'); - // 设置下载的文件名,默认为'download.csv' - if (link.download !== undefined) { - const url = URL.createObjectURL(blob); - link.setAttribute('href', url); - link.setAttribute('download', 'download.csv'); - // 触发点击事件以下载文件 - document.body.appendChild(link); - link.click(); - // 清理DOM - document.body.removeChild(link); - } -} - -export function MyS2TableExtra({ - config, - data, - setConfig, -}: { - config: DataType['config']; - data: DataType['data']; - setConfig: (config: DataType['config']) => void; -}) { - return ( - - 行小计: - { - setConfig({ ...config, rowSubTotals: Boolean(e) }); - }} - /> - 行总计: - { - setConfig({ ...config, rowGrandTotals: Boolean(e) }); - }} - /> - 列小计: - { - setConfig({ ...config, colSubTotals: Boolean(e) }); - }} - /> - 列总计: - { - setConfig({ ...config, colGrandTotals: Boolean(e) }); - }} - /> - 类型: - - setConfig({ - ...config, - hierarchyType: e.target.value, - }) - } - optionType="button" - buttonStyle="solid" - style={{ marginRight: 20 }} - /> - - - - ); -} diff --git a/src/common/pages/NewMyS2Table/MySwitcherFields.tsx b/src/common/pages/NewMyS2Table/MySwitcherFields.tsx deleted file mode 100644 index c7f92be..0000000 --- a/src/common/pages/NewMyS2Table/MySwitcherFields.tsx +++ /dev/null @@ -1,73 +0,0 @@ -import { Switcher } from '@antv/s2-react'; -import { useSetState } from 'react-use'; -import { DataType } from '.'; - -export function MySwitcherFields({ - fields, - setFields, -}: { - fields: DataType['fields']; - setFields: (fields: DataType['fields']) => void; -}) { - const [switcherFields, setSwitcherFields] = useSetState(() => { - return { - rows: { - selectable: true, - allowEmpty: false, - items: fields.rows?.map((item) => { - return { id: item }; - }), - }, - columns: { - selectable: true, - allowEmpty: true, - items: fields.columns?.map((item) => { - return { id: item }; - }), - }, - values: { - selectable: true, - allowEmpty: false, - items: fields.values?.map((item) => { - return { id: item }; - }), - }, - }; - }); - - function onSwitcherChange(result: any): void { - const fields = { - rows: result.rows.items - .filter((item: { checked?: boolean }) => item.checked ?? true) - .map((item: { id: string }) => item.id), - columns: result.columns.items - .filter((item: { checked?: boolean }) => item.checked ?? true) - .map((item: { id: string }) => item.id), - values: result.values.items - .filter((item: { checked?: boolean }) => item.checked ?? true) - .map((item: { id: string }) => item.id), - }; - - setSwitcherFields({ - rows: { - selectable: true, - allowEmpty: false, - items: result.rows.items, - }, - columns: { - selectable: true, - allowEmpty: true, - items: result.columns.items, - }, - values: { - selectable: true, - allowEmpty: false, - items: result.values.items, - }, - }); - - setFields?.(fields); - } - - return ; -} diff --git a/src/common/pages/NewMyS2Table/Query.tsx b/src/common/pages/NewMyS2Table/Query.tsx deleted file mode 100644 index a5b8305..0000000 --- a/src/common/pages/NewMyS2Table/Query.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { BetaSchemaForm, ProCard } from '@ant-design/pro-components'; -import { PropsType } from '.'; - -export default function Query({ - columns, - doRequest, -}: { - columns?: PropsType['columns']; - doRequest: (values: any) => void; -}) { - return ( - - ) => { - doRequest(values); - }} - columns={columns as any} - /> - - ); -} diff --git a/src/common/pages/NewMyS2Table/index.tsx b/src/common/pages/NewMyS2Table/index.tsx deleted file mode 100644 index daf9bdd..0000000 --- a/src/common/pages/NewMyS2Table/index.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import { MyPageContainer } from '@/common'; -import { MyResponseType } from '@/common/typings'; -import { ProCard, ProFormColumnsType } from '@ant-design/pro-components'; -import { Fields, HierarchyType, Meta, RawData } from '@antv/s2'; -import { Flex, Space } from 'antd'; -import { useEffect } from 'react'; -import { useSetState } from 'react-use'; -import { MyS2TableComponent } from './MyS2TableComponent'; -import { MyS2TableExtra } from './MyS2TableExtra'; -import { MySwitcherFields } from './MySwitcherFields'; -import Query from './Query'; - -export type PropsType = { - title: string; - api: (values?: any) => Promise; - defaultParams?: Record; - columns?: ProFormColumnsType, 'text'>[] | undefined; -}; - -export type DataType = { - config: { - hierarchyType: HierarchyType | undefined; - rowGrandTotals: boolean; - rowSubTotals: boolean; - colGrandTotals: boolean; - colSubTotals: boolean; - }; - data: RawData[]; - fields: Fields; - meta?: Meta[]; - query?: Record; -}; - -export function NewMyS2Table(props: PropsType) { - const [data, setData] = useSetState(undefined); - - // 请求数据 - function doRequest() { - props - .api?.({ ...props.defaultParams, ...data.query, fields: data.fields }) - .then((resp) => { - if (!data.config) - setData({ - config: resp.data.config, - data: resp.data.data, - fields: resp.data.fields, - meta: resp.data.meta, - }); - else setData({ data: resp.data.data }); - }); - } - - // // 如果没有columns,直接发起请求 - // useEffect(() => { - // if (props.columns === undefined) doRequest({}); - // }, []); - - useEffect(() => { - console.log('useEffect query', data.query, data.fields); - if (!data.query && !data.fields) { - if (props.columns === undefined) { - doRequest(); - } - } else { - doRequest(); - } - }, [data.query, data.fields]); - - return ( - - {props.columns && ( - { - setData({ query: values }); - }} - /> - )} - - - - {data.fields && ( - { - console.log('fields', fields); - setData({ fields }); - }} - /> - )} - {data.config && ( - { - setData({ config }); - }} - data={data.data} - /> - )} - - {data.config && ( - - )} - - - - ); -}