export const Appointment = (props: Model) => {
let { specialappointmentA, specialClick } = props; console.log(specialappointmentA, 'specialappointmentAspecialappointmentA'); const [showStar, setShowStar] = useState(false) // 默认选择的时候增加星星 const [editableKeys, setEditableRowKeys] = useState<React.Key[]>([]); const [dataSource, setDataSource] = useState<SetData[]>(specialappointmentA); const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>([]) // const columns: ProColumns<SetData>[] = [ { title: '序列号', dataIndex: 'specId', key: 'specId', formItemProps: (form, { rowIndex }) => { // 设置哪列能编辑 return { rules: rowIndex > 2 ? [{ required: true, message: '此项为必填项' }] : [], }; }, // 第二行不允许编辑 editable: (text, record, index) => { return false // 控制哪行能编写 控制所有序列号都不能更改 }, width: '30%', }, { title: '特约内容', key: 'content', dataIndex: 'content', }, { title: '操作', valueType: 'option', width: 200, render: (text, record, _, action) => [ record.isModify == 2? <div key='1'> // 根据数据返回 判断 哪行能编辑 增加动态操作按钮 <Space> <a key="editable" onClick={() => { console.log(text, record, 'action'); action?.startEditable?.(record.key); }} > 编辑 </a> <a key="delete" onClick={() => { setDataSource(dataSource.filter((item) => item.key !== record.key)); }} > 删除 </a> </Space> </div> : <div key='2'></div> ], }, ] useEffect(() => { let key:React.Key[] = [] specialappointmentA.map(item => { if (item.useFlag == '1') { key.push(item.key) } }) setSelectedRowKeys(key) // 当页面初始化的时候 遍历传入数据的数组 判断当useFlag 为1 的时候 把 值为1的选项默认选择 }, []) const rowSelection = { selectedRowKeys: selectedRowKeys, onChange: (selectedRowKeys: React.Key[], selectedRows: SetData[]) => { setSelectedRowKeys(selectedRowKeys) }, getCheckboxProps: (record: SetData) => ({ disabled: record.useFlag == '1' , // name: record.name, }), };
return ( <> <EditableProTable<SetData> rowSelection={{ ...rowSelection, }} rowClassName={(record, index) => { console.log(record, index); if (record.useFlag == '1') { return styles.inputStar } }} // style={{minHeight: '250px'}} headerTitle="" // className={styles.inputStar} columns={columns} rowKey="key" controlled={true} value={dataSource} recordCreatorProps={false} // 关闭新建 tableAlertRender={false} onChange={setDataSource} editable={{ type: 'multiple', editableKeys, onSave: async (rowKey, data, row) => { specialappointmentA.forEach(item => { if (item.key == rowKey) { item = data let message = [] message.push(item) specialClick(message) } }) }, onChange: setEditableRowKeys, }} /> </> ); };
export default Appointment;