From 14c6dd9040072026d9f5fb1ea3856b0539facfa5 Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Tue, 15 Jul 2025 16:39:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=AD=E6=8C=87=E6=A0=87=E4=BF=A1=E6=81=AF=E5=88=86=E5=80=BC?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E7=BB=991?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluateTemplateTable/EvaluateTemplateTable.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx b/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx index 5c61e1c..3282641 100644 --- a/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx +++ b/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx @@ -839,11 +839,11 @@ const EvaluateTemplateTable: React.FC = ({ } return ( handleInputChange(val?.toString() || '0', record, 'stScore')} + value={parseFloat(cellContent) || 1} + onChange={(val) => handleInputChange(val?.toString() || '1', record, 'stScore')} style={{ width: '100%' }} /> ); @@ -987,11 +987,11 @@ const EvaluateTemplateTable: React.FC = ({ } return ( handleInputChange(val?.toString() || '0', record, 'ndScore')} + value={parseFloat(text) || 1} + onChange={(val) => handleInputChange(val?.toString() || '1', record, 'ndScore')} style={{ width: '100%' }} /> ); From afeb2fb89909154b1eb49d3eb73ce6788920fc5a Mon Sep 17 00:00:00 2001 From: linxd <544554903@qq.com> Date: Tue, 15 Jul 2025 16:58:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=B0=81=E8=A3=85=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E5=BC=B9=E6=A1=86=E8=AF=A6=E6=83=85=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EvaluateTemplateTable.tsx | 2 - .../SupplierDetail.tsx | 12 +++ .../SupplierDetailModalContext.tsx | 25 +++++ .../SupplierDetailModalContext/readme.md | 3 + .../SupplierSelector/SupplierSelector.tsx | 9 +- src/layouts/BasicLayout.tsx | 96 +++++++++---------- src/models/supplierAnnualTaskManage.ts | 1 - src/models/supplierTaskManage.ts | 1 - .../supplierTemplateManageAdd.tsx | 1 - 9 files changed, 95 insertions(+), 55 deletions(-) create mode 100644 src/components/SupplierDetailModalContext/SupplierDetail.tsx create mode 100644 src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx create mode 100644 src/components/SupplierDetailModalContext/readme.md diff --git a/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx b/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx index 3282641..a9364e0 100644 --- a/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx +++ b/src/components/EvaluateTemplateTable/EvaluateTemplateTable.tsx @@ -340,7 +340,6 @@ const EvaluateTemplateTable: React.FC = ({ const updateDataSource = (newData: TableRowItem[]) => { // 确保每行都有唯一稳定的key const finalData = ensureUniqueKeys(newData); - console.log('finalData', finalData); setDataSource(finalData); if (onChange) { // 转换回API格式再传递给父组件 @@ -369,7 +368,6 @@ const EvaluateTemplateTable: React.FC = ({ // 处理输入变化 const handleInputChange = (val: any, record: TableRowItem, field: string) => { - console.log('handleInputChange', val, record, field); const newData = [...dataSource]; const index = newData.findIndex((item) => item.key === record.key); if (index > -1) { diff --git a/src/components/SupplierDetailModalContext/SupplierDetail.tsx b/src/components/SupplierDetailModalContext/SupplierDetail.tsx new file mode 100644 index 0000000..922f788 --- /dev/null +++ b/src/components/SupplierDetailModalContext/SupplierDetail.tsx @@ -0,0 +1,12 @@ +import React, { useState, useEffect } from 'react'; + +const SupplierDetail = ({ supplierId }: { supplierId: string | null }) => { + const [supplierDetail, setSupplierDetail] = useState(null); + + useEffect(() => { + console.log(supplierId); + }, [supplierId]); + return
SupplierDetail
; +}; + +export default SupplierDetail; diff --git a/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx b/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx new file mode 100644 index 0000000..1b902fe --- /dev/null +++ b/src/components/SupplierDetailModalContext/SupplierDetailModalContext.tsx @@ -0,0 +1,25 @@ +import React, { useState } from 'react'; +import { Modal } from 'antd'; +import SupplierDetail from './SupplierDetail'; + +const SupplierDetailModalContext = React.createContext<((id: string) => void) | null>(null); +export const useSupplierDetailModal = () => React.useContext(SupplierDetailModalContext); + +export const SupplierDetailModalProvider = ({ children }: { children: React.ReactNode }) => { + const [visible, setVisible] = useState(false); + const [supplierId, setSupplierId] = useState(null); + + const showSupplierDetail = (id: string) => { + setSupplierId(id); + setVisible(true); + }; + + return ( + + {children} + setVisible(false)} footer={null}> + + + + ); +}; diff --git a/src/components/SupplierDetailModalContext/readme.md b/src/components/SupplierDetailModalContext/readme.md new file mode 100644 index 0000000..eff0276 --- /dev/null +++ b/src/components/SupplierDetailModalContext/readme.md @@ -0,0 +1,3 @@ +// 任何页面/组件 +const showSupplierDetail = useSupplierDetailModal(); + showSupplierDetail(supplier.id)}>{supplier.name} diff --git a/src/components/SupplierSelector/SupplierSelector.tsx b/src/components/SupplierSelector/SupplierSelector.tsx index c81b366..3a79966 100644 --- a/src/components/SupplierSelector/SupplierSelector.tsx +++ b/src/components/SupplierSelector/SupplierSelector.tsx @@ -233,6 +233,11 @@ const SupplierSelector: React.FC = ({ })); }; + // 显示供应商详情 + const showSupplierDetail = (record: SupplierItem) => { + console.log(record); + }; + // 表格列定义 const columns = [ { @@ -240,9 +245,9 @@ const SupplierSelector: React.FC = ({ dataIndex: 'supplierName', width: 120, ellipsis: true, - render: (supplierName: string) => ( + render: (supplierName: string, record: SupplierItem) => ( - {supplierName} + showSupplierDetail(record)}>{supplierName} ), }, diff --git a/src/layouts/BasicLayout.tsx b/src/layouts/BasicLayout.tsx index ca2a136..c25799d 100644 --- a/src/layouts/BasicLayout.tsx +++ b/src/layouts/BasicLayout.tsx @@ -8,8 +8,8 @@ import routes from '../../config/router.config'; // 引入你的自定义路由 import { ConfigProvider, Breadcrumb } from 'antd'; import HeaderComponent from './Header'; import IconFont from '@/components/IconFont/IconFont'; -import { BreadcrumbState } from '@/models/breadcrumb'; - +import type { BreadcrumbState } from '@/models/breadcrumb'; +import { SupplierDetailModalProvider } from '@/components/SupplierDetailModalContext/SupplierDetailModalContext'; const MenuRender = (item: any, isSubMenu: boolean) => { const intl = useIntl(); @@ -35,10 +35,10 @@ const MenuRender = (item: any, isSubMenu: boolean) => { }; // 递归交集过滤函数 -function filterMenuByRouter(routes:any, menuRoutes:any) { - return routes.reduce((result:any, route:any) => { +function filterMenuByRouter(routes: any, menuRoutes: any) { + return routes.reduce((result: any, route: any) => { // 只看有 name 的节点 - const menu = menuRoutes.find(m => m.name === route.name); + const menu = menuRoutes.find((m) => m.name === route.name); if (menu) { // 匹配到后,递归处理 children let children = []; @@ -56,7 +56,12 @@ function filterMenuByRouter(routes:any, menuRoutes:any) { }, []); } -const BreadcrumbRender = (routeBreadcrumb: any, intl: any, history: any, dynamicBreadcrumbName: string | null) => { +const BreadcrumbRender = ( + routeBreadcrumb: any, + intl: any, + history: any, + dynamicBreadcrumbName: string | null, +) => { const breadcrumbRoutes = routeBreadcrumb?.routes; return ( @@ -65,22 +70,17 @@ const BreadcrumbRender = (routeBreadcrumb: any, intl: any, history: any, dynamic history.push('/'); }} > - - {intl.formatMessage({ id: 'menu.首页' })} - + {intl.formatMessage({ id: 'menu.首页' })} {breadcrumbRoutes?.map((item: any, index: number) => { // 判断是否是最后一个面包屑项且存在动态名称 - const isLastItem = index === (breadcrumbRoutes.length - 1); - const displayName = (isLastItem && dynamicBreadcrumbName) - ? dynamicBreadcrumbName - : intl.formatMessage({ id: `menu.${item.breadcrumbName}` || '' }); + const isLastItem = index === breadcrumbRoutes.length - 1; + const displayName = + isLastItem && dynamicBreadcrumbName + ? dynamicBreadcrumbName + : intl.formatMessage({ id: `menu.${item.breadcrumbName}` || '' }); - return ( - - {displayName} - - ); + return {displayName}; })} ); @@ -106,47 +106,47 @@ const BasicLayout: React.FC = (props) => { // routes是本地静态路由,menusFromApi是接口菜单 const finalMenus = filterMenuByRouter(routes, menusFromApi); console.log(finalMenus); - + setMenuRoutes(finalMenus); } }, []); - return ( - { - return MenuRender(menuItemProps, true); - }} - menuItemRender={(item, dom) => { - return MenuRender(item, false); - }} - location={location} - fixSiderbar - layout="mix" - headerRender={() => { - return ; - }} - > - - BreadcrumbRender(routeBreadcrumb, intl, history, breadcrumb.breadcrumbName), + + { + return MenuRender(menuItemProps, true); + }} + menuItemRender={(item, dom) => { + return MenuRender(item, false); + }} + location={location} + fixSiderbar + layout="mix" + headerRender={() => { + return ; }} > - {children} - - + + BreadcrumbRender(routeBreadcrumb, intl, history, breadcrumb.breadcrumbName), + }} + > + {children} + + + ); }; export default connect(({ breadcrumb }: { breadcrumb: BreadcrumbState }) => ({ - breadcrumb + breadcrumb, }))(BasicLayout); - diff --git a/src/models/supplierAnnualTaskManage.ts b/src/models/supplierAnnualTaskManage.ts index 5943ad2..86db832 100644 --- a/src/models/supplierAnnualTaskManage.ts +++ b/src/models/supplierAnnualTaskManage.ts @@ -203,7 +203,6 @@ const supplierAnnualTaskManage: SupplierTaskModelType = { } // 处理评价人员更新 - 更新后要保留原有对象中的indicatorIds - console.log(updatedFormData) // 保存更新后的表单数据 yield put({ type: 'saveTaskFormData', payload: updatedFormData }); diff --git a/src/models/supplierTaskManage.ts b/src/models/supplierTaskManage.ts index 3d70c47..5612a94 100644 --- a/src/models/supplierTaskManage.ts +++ b/src/models/supplierTaskManage.ts @@ -263,7 +263,6 @@ const SupplierTaskModel: SupplierTaskModelType = { if (payload.taskDeptWeightList) { updatedFormData.taskDeptWeightList = payload.taskDeptWeightList; } - console.log(updatedFormData) // 保存更新后的表单数据 yield put({ type: 'saveTaskFormData', payload: updatedFormData }); diff --git a/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManageAdd.tsx b/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManageAdd.tsx index 93a3b36..d8a7779 100644 --- a/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManageAdd.tsx +++ b/src/pages/supplierEvaluateManage/supplierTemplateManage/supplierTemplateManageAdd.tsx @@ -310,7 +310,6 @@ const SupplierTemplateManageAdd: React.FC = ({ breadcrumb, dispatch } // 处理指标数据变更 const handleTemplateDataChange = (data: SupplierTemplateManage.IndicatorSt[]) => { - console.log('handleTemplateDataChange', data); setTemplateData(data); };