This commit is contained in:
孙景学
2025-07-15 17:05:05 +08:00
9 changed files with 101 additions and 61 deletions

View File

@ -340,7 +340,6 @@ const EvaluateTemplateTable: React.FC<EvaluateTemplateTableProps> = ({
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<EvaluateTemplateTableProps> = ({
// 处理输入变化
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) {
@ -839,11 +837,11 @@ const EvaluateTemplateTable: React.FC<EvaluateTemplateTableProps> = ({
}
return (
<InputNumber
min={0}
min={1}
max={100}
disabled={record.scoreEditST === '1' || record.indicatorStEditST === '1'}
value={parseFloat(cellContent) || 0}
onChange={(val) => handleInputChange(val?.toString() || '0', record, 'stScore')}
value={parseFloat(cellContent) || 1}
onChange={(val) => handleInputChange(val?.toString() || '1', record, 'stScore')}
style={{ width: '100%' }}
/>
);
@ -987,11 +985,11 @@ const EvaluateTemplateTable: React.FC<EvaluateTemplateTableProps> = ({
}
return (
<InputNumber
min={0}
min={1}
max={100}
disabled={record.disabledNd}
value={parseFloat(text) || 0}
onChange={(val) => handleInputChange(val?.toString() || '0', record, 'ndScore')}
value={parseFloat(text) || 1}
onChange={(val) => handleInputChange(val?.toString() || '1', record, 'ndScore')}
style={{ width: '100%' }}
/>
);

View File

@ -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 <div>SupplierDetail</div>;
};
export default SupplierDetail;

View File

@ -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<string | null>(null);
const showSupplierDetail = (id: string) => {
setSupplierId(id);
setVisible(true);
};
return (
<SupplierDetailModalContext.Provider value={showSupplierDetail}>
{children}
<Modal visible={visible} onCancel={() => setVisible(false)} footer={null}>
<SupplierDetail supplierId={supplierId} />
</Modal>
</SupplierDetailModalContext.Provider>
);
};

View File

@ -0,0 +1,3 @@
// 任何页面/组件
const showSupplierDetail = useSupplierDetailModal();
<span onClick={() => showSupplierDetail(supplier.id)}>{supplier.name}</span>

View File

@ -233,6 +233,11 @@ const SupplierSelector: React.FC<SupplierSelectorProps> = ({
}));
};
// 显示供应商详情
const showSupplierDetail = (record: SupplierItem) => {
console.log(record);
};
// 表格列定义
const columns = [
{
@ -240,9 +245,9 @@ const SupplierSelector: React.FC<SupplierSelectorProps> = ({
dataIndex: 'supplierName',
width: 120,
ellipsis: true,
render: (supplierName: string) => (
render: (supplierName: string, record: SupplierItem) => (
<Tooltip placement="topLeft" title={supplierName}>
{supplierName}
<span onClick={()=>showSupplierDetail(record)}>{supplierName}</span>
</Tooltip>
),
},