import type { EditableFormInstance, ProColumns } from '@ant-design/pro-components'; import { baseFun, EditType, SDButton, SDEditableTable, SDLayout, SDModal } from '@sundata/ui-frame'; import { useEffect, useRef, useState } from 'react'; import { getImpSqlConfigList, ImpSqlConfigModel, saveImpSqlConfigList } from '../../../services/idataMng/excelMng'; export type ImportSqlConfigProp = { editType?: EditType; mType?: string;//模板代码 visible: boolean; onCancelfun?: (e: React.MouseEvent) => void; }; const ImportSqlConfig: React.FC = (props) => { const sqlTableRef = useRef(); const [sqlConfigList, setSqlConfigList] = useState(); const [max,setMax] = useState(2000); useEffect(() => { getImpSqlConfigList({mtype: props.mType}).then((data) => { setSqlConfigList(data?.data); }); }, []); const saveSqlConfig = async () => { const editingRows = sqlTableRef.current?.getRowsData?.(); if (editingRows && editingRows.length > 0) { baseFun.warning('列表中有正在编辑的参数,请确认或取消修改后再保存'); return; } // if(sqlConfigList?.length==0){ // baseFun.warning('列表中没有数据,请新增后再保存'); // return; // } sqlConfigList?.forEach((data: ImpSqlConfigModel)=>{ data.mtype = props.mType; }) await saveImpSqlConfigList(sqlConfigList || []); baseFun.info('处理完成'); }; const sqlColumns: ProColumns[] = [ { title: '处理类型', dataIndex: 'methodtype', width: '15%', valueType:'select', valueEnum: { "SQL": { text: 'SQL' }, "JAVA": { text: 'JAVA' }, }, formItemProps: () => { return { rules: [{ required: true }], }; }, fieldProps: () => { return { onChange: (methodtype: string) => { if(methodtype=="JAVA"){ setMax(30); }else{ setMax(2000); } } } } }, { title: '逻辑体', dataIndex: 'lbody', valueType: 'textarea', tooltip:'处理类型为SQL时,配置sql语句;处理类型为JAVA时,配置java接口方法所在类配置bean的name', width: '65%', ellipsis:true, formItemProps: () => { return { rules: [ { required: true, message: '此项为必填项' }, { max: max, message: `最多输入 [${max}] 个字符` }, ], }; }, }, ] return ( 保存 : undefined} > { setSqlConfigList(value); }} dragable editable={props.editType != 'display'} /> ); }; export default ImportSqlConfig;