|
@@ -0,0 +1,208 @@
|
|
|
+import React, { useEffect, useRef, useState } from "react";
|
|
|
+import { type ProColumns, type ActionType, type ProFormInstance, EditableProTable } from '@ant-design/pro-components';
|
|
|
+import type {FormInstance} from 'antd'
|
|
|
+import { SDPage,SDFormText,SDModalForm,SDTable,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun, validateFun, SDFormDict, } from "@sundata/ui-frame";
|
|
|
+import type { RiskControlStrategyModel } from '@/services/internalEvaluation/configuration/riskcontrolstrategy';
|
|
|
+import { WomanOutlined } from "@ant-design/icons";
|
|
|
+import { ProductProps } from "@/sundataImport";
|
|
|
+import { deleteRows, getDataList, selectDetailData, updateExistData, createData } from "@/services/internalEvaluation/configuration/riskcontrolstrategy";
|
|
|
+import { countChineseChars, firstCharIsNotNumber } from "../utils/rwacheckutils";
|
|
|
+import { useModel } from '@umijs/max';
|
|
|
+
|
|
|
+type widowRush = {
|
|
|
+ onCancel: () => void;
|
|
|
+ onChangeVisible(visible: boolean, type: string): unknown;
|
|
|
+ onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
|
|
|
+}& ProductProps;
|
|
|
+const riskcontrolstrategy : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
+
|
|
|
+ /** 编辑方式,查看、修改、新增按钮时设置,详细信息表单中使用 */
|
|
|
+ const [editType, setEditType] = useState<EditType>(prop.editType || 'display');
|
|
|
+ /** 是否显示详细信息窗口 */
|
|
|
+ const [detailVisible, setDetailVisible] = useState<boolean>(false);
|
|
|
+ const [currentRow, setCurrentRow] = useState<RiskControlStrategyModel>();
|
|
|
+ /** 表格引用对象,刷新表格使用 */
|
|
|
+ const actionRef = useRef<ActionType>();
|
|
|
+ const formRef = useRef<FormInstance<any>>();
|
|
|
+
|
|
|
+ const { fetchDict } = useModel('dict');
|
|
|
+
|
|
|
+ // 页面数据
|
|
|
+ var formDataList = new Array<RiskControlStrategyModel>;
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ // 修改查询查询
|
|
|
+ const selectData = async (formdata : RiskControlStrategyModel) => {
|
|
|
+ const data = await selectDetailData(formdata);
|
|
|
+ formRef.current?.setFieldsValue(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除
|
|
|
+ const delRows =async(record:any)=>{
|
|
|
+ baseFun.confirm('确认删除?',async() =>{
|
|
|
+ await deleteRows(record);
|
|
|
+ baseFun.info("删除成功");
|
|
|
+ closeAndRefresh();
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //关闭窗口刷新父页面
|
|
|
+ const closeAndRefresh = ()=>{
|
|
|
+ actionRef.current?.reloadAndRest?.();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 插入或者更新数据
|
|
|
+ const handleSave = async(data: RiskControlStrategyModel) => {
|
|
|
+
|
|
|
+ if (editType == 'update' ) {
|
|
|
+ await updateExistData(data);
|
|
|
+ closeAndRefresh();
|
|
|
+ }
|
|
|
+ else if (editType == 'create' ) {
|
|
|
+ await createData(data);
|
|
|
+ closeAndRefresh();
|
|
|
+ }
|
|
|
+ setDetailVisible(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 页面展示元素
|
|
|
+ const columns: ProColumns<RiskControlStrategyModel>[] = [
|
|
|
+ {
|
|
|
+ title: '风控策略编号',
|
|
|
+ dataIndex: 'riskControlStrategyNo',
|
|
|
+ hideInTable:false
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '风控策略名称',
|
|
|
+ dataIndex: 'riskControlStrategyName',
|
|
|
+ hideInTable:false
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // title: '指标清单',
|
|
|
+ // dataIndex: 'indexListNo',
|
|
|
+ // search: false,
|
|
|
+ // request:()=>fetchDict('@selectAllIndexToDict'),
|
|
|
+ // fieldProps: {
|
|
|
+ // treeDefaultExpandAll: true,
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // title: '规则集',
|
|
|
+ // dataIndex: 'rulesNo',
|
|
|
+ // search: false,
|
|
|
+ // request:()=>fetchDict('@selectRulesToDictContent'),
|
|
|
+ // fieldProps: {
|
|
|
+ // treeDefaultExpandAll: true,
|
|
|
+ // },
|
|
|
+ // },
|
|
|
+ {
|
|
|
+ title: '操作',
|
|
|
+ dataIndex: 'operate',
|
|
|
+ valueType: 'option',
|
|
|
+ render: (_, record) => [
|
|
|
+ <SDOperate
|
|
|
+ key="roleCfg"
|
|
|
+ icon={<WomanOutlined />}
|
|
|
+ successMessage=""
|
|
|
+ onClick={
|
|
|
+ ()=>{
|
|
|
+ selectData(record);
|
|
|
+ setDetailVisible(true);
|
|
|
+ setEditType('update');
|
|
|
+ } }
|
|
|
+ >
|
|
|
+ 修改
|
|
|
+ </SDOperate>,
|
|
|
+ <SDOperate
|
|
|
+ key="roleCfg"
|
|
|
+ icon={<WomanOutlined />}
|
|
|
+ successMessage=""
|
|
|
+ onClick={()=>{delRows(record) } }
|
|
|
+ >
|
|
|
+ 删除
|
|
|
+ </SDOperate>,
|
|
|
+
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ ];
|
|
|
+
|
|
|
+
|
|
|
+ return (
|
|
|
+ <SDPage>
|
|
|
+ <SDTable
|
|
|
+ title="查询表格"
|
|
|
+ rowKey="indexListNo"
|
|
|
+ request={async (formdata:RiskControlStrategyModel) =>{
|
|
|
+ const formDatas = await getDataList(formdata);
|
|
|
+ // 解构数组(导出用)
|
|
|
+ formDataList=[...formDatas];
|
|
|
+ return {data: formDatas}
|
|
|
+ } }
|
|
|
+ columns={columns}
|
|
|
+ actionRef={actionRef}
|
|
|
+ toolBarRender={(_: any, { selectedRows }: any) => [
|
|
|
+ <SDButton
|
|
|
+ successMessage=""
|
|
|
+ onClick={()=>{
|
|
|
+ setEditType('create');
|
|
|
+ setDetailVisible(true);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 新增
|
|
|
+ </SDButton>
|
|
|
+ ]}
|
|
|
+ formRef={formRef}
|
|
|
+ setDetailVisible={() => {setDetailVisible(true)}}
|
|
|
+ setEditType={setEditType}
|
|
|
+ setCurrentRow={setCurrentRow}
|
|
|
+ />
|
|
|
+
|
|
|
+ {detailVisible && (
|
|
|
+ <SDModalForm
|
|
|
+ title={'详细信息'}
|
|
|
+ editType={editType}
|
|
|
+ params={currentRow}
|
|
|
+ visible={detailVisible}
|
|
|
+ onVisibleChange={() => {setDetailVisible(false)}}
|
|
|
+ footer={[
|
|
|
+ <SDSubmitButton editType={editType} formRef={formRef} doSubmit={handleSave} >保存</SDSubmitButton>,
|
|
|
+ <SDButton
|
|
|
+ key="closeUpdate"
|
|
|
+ successMessage=''
|
|
|
+ onClick={() => {
|
|
|
+ setDetailVisible(false);
|
|
|
+ }}>关闭</SDButton>
|
|
|
+ ]}
|
|
|
+ tableRef={actionRef}
|
|
|
+ formRef={formRef}
|
|
|
+ >
|
|
|
+ <SDAreaTtile title='指标清单'/>
|
|
|
+ <SDFormText name="riskControlStrategyNo" readonlyCond="update" rules={[ { required: true, message: '请输入编号' },
|
|
|
+ {
|
|
|
+ validator:validateFun.account
|
|
|
+ },
|
|
|
+ {
|
|
|
+ validator: (_rule, value, callback)=> {
|
|
|
+ if (firstCharIsNotNumber(value)>0) {
|
|
|
+ callback('编号不能以数字开头');
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }]} label="风控策略编号"/>
|
|
|
+ <SDFormText name="riskControlStrategyName" required={true} rules={[{validator:validateFun.chineseRex,message:'请输入中文'}]} label="风控策略名称"/>
|
|
|
+ <SDFormText name="riskControlStrategyDescribe" type="textarea" label="风控策略描述"/>
|
|
|
+ <SDFormDict dictKey="@selectAllIndexListToDict" name="indexListNos" multiple={true} rules={[{required:true}]} label="指标清单"/>
|
|
|
+ <SDFormDict dictKey="@selectRulesToDictContent" name="rulesNos" multiple={true} rules={[{required:true}]} label="规则集"/>
|
|
|
+ </SDModalForm>
|
|
|
+ )}
|
|
|
+ </SDPage>
|
|
|
+
|
|
|
+ );
|
|
|
+}
|
|
|
+export default riskcontrolstrategy;
|