提交 191a6af6 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 7d895a24
......@@ -47,6 +47,69 @@ const usePattern = (type = 'horizontal', color = '#5470C6') => {
}
}
const transformData = (data: any[], yField: string[], yRule: string, ySort: string) => {
let transformedData = [...data]
// Apply calculation rule
if (yRule) {
transformedData = transformedData.map((item) => {
const newItem = { ...item }
yField.forEach((field) => {
const values = data.map((d) => parseFloat(d[field]) || 0)
let result = 0
switch (yRule) {
case 'sum':
result = values.reduce((a, b) => a + b, 0)
break
case 'avg':
result = values.reduce((a, b) => a + b, 0) / values.length
break
case 'count':
result = values.length
break
case 'max':
result = Math.max(...values)
break
case 'min':
result = Math.min(...values)
break
case 'median': {
const sorted = [...values].sort((a, b) => a - b)
const mid = Math.floor(sorted.length / 2)
result = sorted.length % 2 === 0 ? (sorted[mid - 1] + sorted[mid]) / 2 : sorted[mid]
break
}
case 'variance': {
const mean = values.reduce((a, b) => a + b, 0) / values.length
result = values.reduce((a, b) => a + Math.pow(b - mean, 2), 0) / values.length
break
}
}
newItem[field] = result
})
return newItem
})
}
// Apply sorting rule
if (ySort) {
const [sortType, topN] = ySort.split('Top')
if (sortType) {
transformedData.sort((a, b) => {
const aValue = parseFloat(a[yField[0]]) || 0
const bValue = parseFloat(b[yField[0]]) || 0
return sortType === 'asc' ? aValue - bValue : bValue - aValue
})
}
if (topN) {
const n = parseInt(topN)
transformedData = transformedData.slice(0, n)
}
}
return transformedData
}
export default function Chart({
type = '1',
labelField = '',
......@@ -56,6 +119,8 @@ export default function Chart({
color = 'auto',
fillPattern = 'solid',
style = { height: '400px', width: '100%' },
yRule = '',
ySort = '',
...props
}) {
const { data } = useDataQuery()
......@@ -66,7 +131,9 @@ export default function Chart({
return null
}
const dataset = { dimensions: [xField, ...yField].filter(Boolean), source: data.list }
const datalist = transformData(data.list, yField, yRule, ySort)
const dataset = { dimensions: [xField, ...yField].filter(Boolean), source: datalist }
let defaultOptions: any = {
legend: {},
tooltip: {},
......@@ -89,7 +156,7 @@ export default function Chart({
position: 'top',
formatter: (params: any) => {
console.log(params.dataIndex)
return data.list[params.dataIndex][labelField]
return datalist[params.dataIndex][labelField]
},
},
itemStyle: { borderRadius, color: itemStyleColor },
......@@ -107,7 +174,7 @@ export default function Chart({
label: {
show: !!labelField,
position: 'top',
formatter: (params: any) => data.list[params.dataIndex][labelField],
formatter: (params: any) => datalist[params.dataIndex][labelField],
},
})),
})
......@@ -123,7 +190,7 @@ export default function Chart({
label: {
show: !!labelField,
position: 'outside',
formatter: (params: any) => data.list[params.dataIndex][labelField],
formatter: (params: any) => datalist[params.dataIndex][labelField],
},
})),
})
......@@ -135,7 +202,7 @@ export default function Chart({
yAxis: { show: false },
radar: {
shape: 'polygon',
indicator: data.list.map((item: any) => ({
indicator: datalist.map((item: any) => ({
name: item[xField],
max: Math.max(...yField.map((field) => item[field])) + 100,
})),
......@@ -146,11 +213,11 @@ export default function Chart({
label: {
show: !!labelField,
formatter(params: any) {
return data.list[params.dataIndex][labelField]
return datalist[params.dataIndex][labelField]
},
},
data: yField.map((field) => ({
value: data.list.map((item: any) => item[field]),
value: datalist.map((item: any) => item[field]),
name: getFieldName(field),
})),
},
......@@ -170,7 +237,7 @@ export default function Chart({
label: {
show: !!labelField,
position: 'top',
formatter: (params: any) => data.list[params.dataIndex][labelField],
formatter: (params: any) => datalist[params.dataIndex][labelField],
},
})),
})
......@@ -189,8 +256,8 @@ export default function Chart({
},
},
series: yField.map((field) => {
const maxVal = Math.max(...data.list.map((item: any) => item[field]))
const minVal = Math.min(...data.list.map((item: any) => item[field]))
const maxVal = Math.max(...datalist.map((item: any) => item[field]))
const minVal = Math.min(...datalist.map((item: any) => item[field]))
return {
type: 'graph',
layout: 'force',
......@@ -200,7 +267,7 @@ export default function Chart({
gravity: 0.05,
edgeLength: 20,
},
data: data.list.map((item: any) => {
data: datalist.map((item: any) => {
const size = 20 + ((parseFloat(item[field]) - minVal) / (maxVal - minVal || 1)) * 60 // 字体大小映射
const value = item[field] || 10
const name = item[xField]
......@@ -212,7 +279,7 @@ export default function Chart({
show: !!labelField,
position: 'inside',
fontSize: size / 4,
formatter: (params: any) => data.list[params.dataIndex][labelField],
formatter: (params: any) => datalist[params.dataIndex][labelField],
},
}
}),
......@@ -228,7 +295,7 @@ export default function Chart({
{
type: 'wordCloud',
shape: 'circle',
data: data.list.map((item: any) => ({
data: datalist.map((item: any) => ({
name: item[labelField],
value: item[yField[0]],
})),
......@@ -242,7 +309,7 @@ export default function Chart({
break
// 指标卡
case '9': {
const count = data.list.reduce((acc: any, item: any) => acc + parseFloat(item[yField[0]]), 0).toFixed(2)
const count = datalist.reduce((acc: any, item: any) => acc + parseFloat(item[yField[0]]), 0).toFixed(2)
defaultOptions = merge(defaultOptions, {
graphic: {
elements: [
......@@ -277,7 +344,7 @@ export default function Chart({
bottom: 60,
width: '80%',
min: 0,
max: Math.max(...data.list.map((item: any) => item[yField[0]] || 0)),
max: Math.max(...datalist.map((item: any) => item[yField[0]] || 0)),
minSize: '0%',
maxSize: '100%',
sort: 'descending',
......@@ -285,7 +352,7 @@ export default function Chart({
label: {
show: !!labelField,
position: 'inside',
formatter: (params: any) => data.list[params.dataIndex][labelField],
formatter: (params: any) => datalist[params.dataIndex][labelField],
},
},
],
......@@ -305,7 +372,7 @@ export default function Chart({
position: 'top',
formatter: (params: any) => {
console.log(params.dataIndex)
return data.list[params.dataIndex][labelField]
return datalist[params.dataIndex][labelField]
},
},
itemStyle: { borderRadius, color: itemStyleColor },
......@@ -315,11 +382,11 @@ export default function Chart({
// 表格
case '12': {
const columns = yField.map((field) => ({ title: getFieldName(field), dataIndex: field }))
return <Table rowKey="pk_id" dataSource={data.list} columns={columns} />
return <Table rowKey="pk_id" dataSource={datalist} columns={columns} />
}
// 帕累托图
case '13': {
const paretoData = [...data.list].sort((a, b) => b[yField[0]] - a[yField[0]])
const paretoData = [...datalist].sort((a, b) => b[yField[0]] - a[yField[0]])
const total = paretoData.reduce((sum, item) => sum + parseFloat(item[yField[0]]), 0)
let cumulative = 0
const cumulativeData = paretoData.map((item) => {
......@@ -391,8 +458,8 @@ export default function Chart({
series: yField.map((field) => ({
name: getFieldName(field),
type: 'treemap',
label: { show: !!labelField, formatter: (params: any) => data.list[params.dataIndex - 1]?.[labelField] },
data: data.list.map((item: any) => ({ name: item[xField], value: item[field] || 0 })),
label: { show: !!labelField, formatter: (params: any) => datalist[params.dataIndex - 1]?.[labelField] },
data: datalist.map((item: any) => ({ name: item[xField], value: item[field] || 0 })),
})),
})
break
......@@ -401,6 +468,6 @@ export default function Chart({
defaultOptions.series = [{ type: 'bar' }]
}
const options = merge(props, defaultOptions)
console.log(options)
return <ReactECharts option={options} notMerge={true} lazyUpdate={true} style={style} />
}
......@@ -12,22 +12,22 @@ interface Props {
}
const ruleOptions = [
{ label: '无计算', value: '无计算' },
{ label: '求和', value: '求和' },
{ label: '求平均值', value: '求平均值' },
{ label: '计数', value: '计数' },
{ label: '求最大值', value: '求最大值' },
{ label: '求最小值', value: '求最小值' },
{ label: '求中位数', value: '求中位数' },
{ label: '求方差', value: '求方差' },
{ label: '无计算', value: '' },
{ label: '求和', value: 'sum' },
{ label: '求平均值', value: 'avg' },
{ label: '计数', value: 'count' },
{ label: '求最大值', value: 'max' },
{ label: '求最小值', value: 'min' },
{ label: '求中位数', value: 'median' },
{ label: '求方差', value: 'variance' },
]
const sortOptions = [
{ label: '无排序', value: '无排序' },
{ label: '数值顺序', value: '数值顺序' },
{ label: '数值倒序', value: '数值倒序' },
{ label: '数值顺序Top N', value: '数值顺序Top N' },
{ label: '数值倒序Top N', value: '数值倒序Top N' },
{ label: '无排序', value: '' },
{ label: '数值顺序', value: 'asc' },
{ label: '数值倒序', value: 'desc' },
{ label: '数值顺序Top N', value: 'ascTop10' },
{ label: '数值倒序Top N', value: 'descTop10' },
]
const showOptions = [
......@@ -50,12 +50,12 @@ const Step1 = ({ fieldOptions, getFieldOptions, type }: any) => {
</Col>
<Col span={8}>
<Form.Item label="计算规则" name="yRule">
<Select options={ruleOptions} placeholder="请选择"></Select>
<Select options={ruleOptions} placeholder="请选择" allowClear></Select>
</Form.Item>
</Col>
<Col span={8}>
<Form.Item label="排序规则" name="ySort">
<Select options={sortOptions} placeholder="请选择"></Select>
<Select options={sortOptions} placeholder="请选择" allowClear></Select>
</Form.Item>
</Col>
</Row>
......@@ -315,6 +315,8 @@ const ModalContent = ({ setOpen, type, id = '' }: Props) => {
const color = Form.useWatch('color', form)
const borderRadius = Form.useWatch('borderRadius', form)
const fillPattern = Form.useWatch('fillPattern', form)
const yRule = Form.useWatch('yRule', form)
const ySort = Form.useWatch('ySort', form)
const config = {
title: { show: showTitle, text: title },
legend: { show: showLegend },
......@@ -326,6 +328,8 @@ const ModalContent = ({ setOpen, type, id = '' }: Props) => {
color,
borderRadius,
fillPattern,
yRule,
ySort,
...results,
}
......@@ -423,6 +427,8 @@ const ModalContent = ({ setOpen, type, id = '' }: Props) => {
showLegend: true,
showTitle: false,
fillPattern: 'solid',
yRule: '',
ySort: '',
}}>
<Form.Item label="组件名称" name="name" rules={[{ required: true, message: '请输入组件名称' }]}>
<Input placeholder="请输入" />
......
import { useEffect, useState } from 'react'
import { useCallback, useEffect, useState } from 'react'
import { useQuery, useQueryClient } from '@tanstack/react-query'
import { getUser, getMapList, getMyList, getMyField, getProcessProgress } from '@/api/base'
import { useUserStore } from '@/stores/user'
......@@ -147,9 +147,10 @@ export function useProcessProgressQuery(params: { function_name: string }) {
}
// 结束轮询的方法
const stop = () => {
const stop = useCallback(() => {
setEnabled(false)
}
queryClient.invalidateQueries({ queryKey: ['data'] })
}, [queryClient])
// 组件卸载时清理
useEffect(() => {
if (query.data?.result === 'SUCCESS' || query.data?.result === 'FAIL') {
......@@ -158,7 +159,7 @@ export function useProcessProgressQuery(params: { function_name: string }) {
return () => {
stop()
}
}, [query.data, enabled])
}, [query.data, enabled, stop])
return { ...query, start, stop, remove }
}
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -285,10 +285,10 @@ ${action === '固定步长分箱' ? `最小值 ${min}、最大值 ${max}、步
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '数据分箱处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '数据分箱处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -265,10 +265,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '日期计算处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '日期计算处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -274,10 +274,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '数据脱敏处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '数据脱敏处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -236,10 +236,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '数据分组处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: <>{message[1]}</> },
{ title: '复制数据', description: <>{message[2]}</> },
{ title: '数据分组处理', description: <>{message[3]}</> },
{ title: '处理结果', description: <>{message[4]}</> },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -154,10 +154,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '逻辑计算处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '逻辑计算处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -199,10 +199,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '值映射处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '值映射处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -162,10 +162,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '数值计算处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '数值计算处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
......@@ -164,10 +164,10 @@ export default function ButtonModal() {
<AppProgressSteps
current={progress}
items={[
{ title: '新建字段' },
{ title: '复制数据' },
{ title: '文本计算处理' },
{ title: '处理结果', description: <>{message[3]}</> },
{ title: '新建字段', description: message[1] },
{ title: '复制数据', description: message[2] },
{ title: '文本计算处理', description: message[3] },
{ title: '处理结果', description: message[4] },
]}
/>
</Flex>
......
import { useMutation, useQueryClient } from '@tanstack/react-query'
import { message } from 'antd'
import { processData } from './api'
import type { ProcessDataParams } from './types'
import { useProcessProgressQuery } from '@/hooks/useQuery'
......@@ -11,11 +10,10 @@ export function useProcessData() {
const query = useMutation({
mutationFn: (data: ProcessDataParams) => {
start()
return processData(data)
},
onSuccess: () => {
message.success('处理完成')
start()
queryClient.invalidateQueries({ queryKey: ['data'] })
},
})
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论