import React, { useEffect, useRef, useState } from "react"; import { type ProColumns, type ActionType, type ProFormInstance, ProTable, EditableProTable } from '@ant-design/pro-components'; import type {FormInstance} from 'antd' import {Upload} from 'antd' import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, SDFormDict, } from "@sundata/ui-frame"; import { DataQualityRuleDefineModel, isNotExist } from '@/services/rwa/product/dataquality/dataqualityruledefine'; import {getDataList,deleteRows,createRowData,updateRowData,selectDetailData} from '@/services/rwa/product/dataquality/dataqualityruledefine'; import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons"; import { ProductProps } from "@/sundataImport"; import { ReportCalculationModel } from "@/services/rwa/product/report_form_config_reportcreater/reportfillingconfig"; import { useModel } from "@umijs/max"; import { countChineseChars } from "@/services/rwa/product/rwacheckutils"; type widowRush = { onCancel: () => void; onChangeVisible(visible: boolean, type: string): unknown; onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void; }& ProductProps; const dataqualityruledefine : React.FC = (prop:widowRush) => { /** 编辑方式,查看、修改、新增按钮时设置,详细信息表单中使用 */ const [editType, setEditType] = useState(prop.editType || 'display'); /** 是否显示详细信息窗口 */ const [detailVisible, setDetailVisible] = useState(false); const [currentRow, setCurrentRow] = useState(); /** 表格引用对象,刷新表格使用 */ const actionRef = useRef(); const formRef = useRef>(); const templateRef = useRef>(); // 页面数据 var formDataList = new Array; /** 字段关系序号编辑 */ var dataIndex = 1; useEffect(() => { }, []); const { fetchDict } = useModel('dict'); // 修改查询查询 const selectData = async (formdata : DataQualityRuleDefineModel) => { const data = await selectDetailData(formdata); formRef.current?.setFieldValue("checkTableName",data.checkTableNames); const {checkTableName,...data1} =data formRef.current?.setFieldsValue(data1); } // 删除 const delRows =async(record:any)=>{ baseFun.confirm('请确认是否继续操作?',async() =>{ await deleteRows(record); baseFun.info("删除成功"); closeAndRefresh(); }); } //关闭窗口刷新父页面 const closeAndRefresh = ()=>{ actionRef.current?.reloadAndRest?.(); } // 插入或者更新数据 const handleSave = async(data: DataQualityRuleDefineModel,) => { if (editType == 'update' ) { await updateRowData(data); closeAndRefresh(); setDetailVisible(false); baseFun.info("保存成功") } else if (editType == 'create' ) { const sd = await isNotExist(data.checkRuleNo); if(Number(sd)>1){ await createRowData(data); closeAndRefresh(); setDetailVisible(false); baseFun.info("保存成功") }else{ baseFun.warning("规则编号已存在,请重新输入!"); } } } // 页面展示元素 const columns: ProColumns[] = [ { title: '序号', dataIndex: 'index', search: false, render: (text, record, index) => { index = index + 1;dataIndex = index; return index}, width:100, ellipsis:true }, { title: '计算实例号', dataIndex: 'calcIndex', search: false, hideInTable: true, }, { title: '起始数据日期', dataIndex: 'startDate', search: false, hideInTable: true, }, { title: '截止数据日期', dataIndex: 'endDate', search: false, hideInTable: true, }, { title: '规则编号', dataIndex: 'checkRuleNo', hideInTable: false, }, { title: '规则名称', dataIndex: 'checkRuleName', hideInTable: false, }, { title: '被检查表', dataIndex: 'checkTableNames', // request:()=>fetchDict({dictKey:'@checkTableName'}), hideInTable: false, }, { title: '状态', dataIndex: 'checkStates', hideInTable: true, valueType:'treeSelect', request:()=>fetchDict("YESORNO"), fieldProps:{ treeCheckable:true, } }, { title: '状态', dataIndex: 'checkState', hideInTable: false, search:false, valueType:'treeSelect', request:()=>fetchDict("YESORNO"), fieldProps:{ treeCheckable:true, } }, { title: '操作', dataIndex: 'operate', valueType: 'option', render: (_, record) => [ } successMessage="" onClick={ ()=>{ selectData(record); setCurrentRow(record); setDetailVisible(true); setEditType('update'); } } > 修改 , } successMessage="" onClick={()=>{delRows(record) } } > 废止 , } successMessage="" onClick={()=>{ selectData(record); setDetailVisible(true); setEditType('display'); } } > 查看 , ], }, ]; return ( { const formDatas = await getDataList(formdata); // 解构数组(导出用) formDataList=[...formDatas]; return {data: formDatas} } } columns={columns} toolBarRender={(_, { selectedRows }) => [ } successMessage='' onClick={() => { setEditType('create'); setDetailVisible(true); }} > 新增 , ]} actionRef={actionRef} formRef={formRef} setDetailVisible={() => {setDetailVisible(true)}} setEditType={setEditType} setCurrentRow={setCurrentRow} /> {detailVisible && ( {setDetailVisible(false)}} footer={[ 保存, { setDetailVisible(false); }}>关闭 ]} tableRef={actionRef} formRef={formRef} > { let chineseCount = countChineseChars(value); if (chineseCount > 30) { callback('最多30个汉字'); } else if (chineseCount<=0) { callback('请输入汉字'); } else{ callback(); } }}]}/> { let chineseCount = countChineseChars(value); if (chineseCount > 200) { callback('最多200个汉字'); } else if (chineseCount<=0) { callback('请输入汉字'); } else{ callback(); } }}]}/> { let chineseCount = countChineseChars(value); if (chineseCount > 200) { callback('最多200个汉字'); } else if (chineseCount<=0) { callback('请输入汉字'); } else{ callback(); } }}]}/> )} ); } export default dataqualityruledefine;