Bläddra i källkod

Merge remote-tracking branch 'origin/master'

JoeLazy 4 månader sedan
förälder
incheckning
18173a3d3f

+ 2 - 1
config/config.ts

@@ -99,7 +99,8 @@ export default defineConfig({
     { path: '/internalEvaluation/modelconfig', component: './internalEvaluation/configuration/modelconfig' },
     { path: '/internalEvaluation/InterfacePage', component: './internalEvaluation/configuration/InterfacePage' },
     { path: '/internalEvaluation/RulePage', component: './internalEvaluation/configuration/RulePage' },
-
+    { path: '/internalEvaluation/indexlistconfig', component: './internalEvaluation/configuration/indexlistconfig' },
+    { path: '/internalEvaluation/riskcontrolstrategy', component: './internalEvaluation/configuration/riskcontrolstrategy' },
     
   ],
   /**

+ 0 - 6
src/pages/internalEvaluation/configuration/datasetconfig.tsx

@@ -80,12 +80,6 @@ const datasetconfig : React.FC<widowRush> = (prop:widowRush) => {
           search: false,
           hideInTable: false,
         },
-        {
-          title: '数据源编号', 
-          dataIndex: 'dataSourcesNo',
-          search: false,
-          hideInTable: false,
-        },
         {
           title: '操作',
           dataIndex: 'operate',

+ 1 - 1
src/pages/internalEvaluation/configuration/datasources.tsx

@@ -465,7 +465,7 @@ const datasources: React.FC<widowRush> = (prop: widowRush) => {
           <SDFormText name="dataSourcesName"
                       rules={[{validator: validateFun.chineseRex, message: '请输入中文'}]} label="数据来源名称"/>
           <SDFormDict dictKey="DATASOURCETYPE" name="dataSourcesType" rules={[{required: true}]} label="数据来源类型"/>
-          { typeStatus === 2 &&  <SDFormDict dictKey="@selectInterFaceData" multiple={true} name="requestInterfaces" rules={[{required: true}]}
+          { typeStatus === 2 &&  <SDFormDict dictKey="@selectInterFaceData" name="requestInterfaces" rules={[{required: true}]}
                       label="数据源(请求接口)"/> }
 
           {typeStatus === 2 && <>

+ 188 - 0
src/pages/internalEvaluation/configuration/indexlistconfig.tsx

@@ -0,0 +1,188 @@
+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 { IndexListModel } from '@/services/internalEvaluation/configuration/indexlistconfig';
+import { WomanOutlined } from "@ant-design/icons";
+import { ProductProps } from "@/sundataImport";
+import { deleteRows, getDataList, selectDetailData, updateExistData, createData } from "@/services/internalEvaluation/configuration/indexlistconfig";
+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 indexlistconfig : React.FC<widowRush> = (prop:widowRush) => {
+
+    /** 编辑方式,查看、修改、新增按钮时设置,详细信息表单中使用 */
+    const [editType, setEditType] = useState<EditType>(prop.editType || 'display');
+    /** 是否显示详细信息窗口 */
+    const [detailVisible, setDetailVisible] = useState<boolean>(false);
+    const [currentRow, setCurrentRow] = useState<IndexListModel>();
+    /** 表格引用对象,刷新表格使用   */
+    const actionRef = useRef<ActionType>();
+    const formRef = useRef<FormInstance<any>>();
+
+    const { fetchDict } = useModel('dict');
+
+    // 页面数据
+    var formDataList = new Array<IndexListModel>;
+ 
+    useEffect(() => {
+
+      }, []);
+    
+    // 修改查询查询
+    const selectData = async (formdata : IndexListModel) => {
+      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: IndexListModel) => {
+
+    if (editType == 'update' ) {
+       await updateExistData(data);
+       closeAndRefresh();
+    }
+    else if (editType == 'create' ) {
+      await createData(data);
+      closeAndRefresh();
+    }
+    setDetailVisible(false);
+  }
+     
+    // 页面展示元素
+    const columns: ProColumns<IndexListModel>[] = [
+      {
+        title: '指标清单编号', 
+        dataIndex: 'indexListNo',
+        hideInTable:false
+      },
+      {
+        title: '指标清单名称', 
+        dataIndex: 'indexListName',
+        hideInTable:false
+      },
+      {
+        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:IndexListModel) =>{
+           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="indexListNo" readonlyCond="update" rules={[ { required: true, message: '请输入编号' },
+              {
+                validator:validateFun.account
+              },
+              {
+                validator: (_rule, value, callback)=> {
+                  if (firstCharIsNotNumber(value)>0) {
+                    callback('编号不能以数字开头');
+                  } else {
+                    callback();
+                  }
+    
+                }
+              }]} label="指标清单编号"/>
+            <SDFormText name="indexListName" required={true} rules={[{validator:validateFun.chineseRex,message:'请输入中文'}]} label="指标清单名称"/>
+            <SDFormDict dictKey="@selectAllIndexToDict" name="indexNos" multiple={true} rules={[{required:true}]} label="指标"/>
+        </SDModalForm>
+      )}
+        </SDPage>
+        
+    );
+}
+export default indexlistconfig;

+ 208 - 0
src/pages/internalEvaluation/configuration/riskcontrolstrategy.tsx

@@ -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;

+ 45 - 0
src/services/internalEvaluation/configuration/indexlistconfig.ts

@@ -0,0 +1,45 @@
+import type { BasePageModel, TableData } from '@sundata/ui-frame';
+import { baseFun } from '@sundata/ui-frame';
+
+  // 指标清单
+  export type IndexListModel = {
+    // 指标清单编号
+    indexListNo: string;
+    // 指标清单名称
+    indexListName?: string;
+    // 指标
+    indexNo?: string;
+    // 指标
+    indexNos?: string;
+
+  } & BasePageModel;
+
+
+
+
+  /** 获取页面初始化查询 POST*/
+export async function getDataList(body:IndexListModel) {
+    return baseFun.request<IndexListModel[]>('/api/internalevaluation/configuration/IndexListConfigAction/getDataList.do',{data: body});
+  }
+
+  /** 新建数据 POST*/
+export async function createData(body: IndexListModel) {
+    return baseFun.request<TableData<IndexListModel>>('/api/internalevaluation/configuration/IndexListConfigAction/createData.do',{data: body});
+  }
+
+  /** 更新数据 POST*/
+export async function updateExistData(body: IndexListModel) {
+    return baseFun.request<TableData<IndexListModel>>('/api/internalevaluation/configuration/IndexListConfigAction/updateExistData.do',{data: body});
+  }
+
+  /** 删除当前行数据 POST*/
+export async function deleteRows(body: IndexListModel) {
+    return baseFun.request<void>('/api/internalevaluation/configuration/IndexListConfigAction/deleteRows.do?',{data: body});
+  }
+
+  /** 查询当前行详细数据 POST*/
+export async function selectDetailData(body: any) {
+    return baseFun.request<IndexListModel>('/api/internalevaluation/configuration/IndexListConfigAction/selectDetailData.do',{data: body});
+  }
+
+  

+ 50 - 0
src/services/internalEvaluation/configuration/riskcontrolstrategy.ts

@@ -0,0 +1,50 @@
+import type { BasePageModel, TableData } from '@sundata/ui-frame';
+import { baseFun } from '@sundata/ui-frame';
+
+  // 指标清单
+  export type RiskControlStrategyModel = {
+    // 风控策略编号
+    riskControlStrategyNo: string;
+    // 风控策略名称
+    riskControlStrategyName?: string;
+    // 风控策略描述
+    riskControlStrategyDescribe?: string;
+    // 指标清单
+    indexListNo?: string;
+    // 指标清单
+    indexListNos?: string;
+    // 规则集
+    rulesNo?: string;
+    // 规则集
+    rulesNos?: string;
+  } & BasePageModel;
+
+
+
+
+  /** 获取页面初始化查询 POST*/
+export async function getDataList(body:RiskControlStrategyModel) {
+    return baseFun.request<RiskControlStrategyModel[]>('/api/internalevaluation/configuration/RiskControlStrategyAction/getDataList.do',{data: body});
+  }
+
+  /** 新建数据 POST*/
+export async function createData(body: RiskControlStrategyModel) {
+    return baseFun.request<TableData<RiskControlStrategyModel>>('/api/internalevaluation/configuration/RiskControlStrategyAction/createData.do',{data: body});
+  }
+
+  /** 更新数据 POST*/
+export async function updateExistData(body: RiskControlStrategyModel) {
+    return baseFun.request<TableData<RiskControlStrategyModel>>('/api/internalevaluation/configuration/RiskControlStrategyAction/updateExistData.do',{data: body});
+  }
+
+  /** 删除当前行数据 POST*/
+export async function deleteRows(body: RiskControlStrategyModel) {
+    return baseFun.request<void>('/api/internalevaluation/configuration/RiskControlStrategyAction/deleteRows.do?',{data: body});
+  }
+
+  /** 查询当前行详细数据 POST*/
+export async function selectDetailData(body: any) {
+    return baseFun.request<RiskControlStrategyModel>('/api/internalevaluation/configuration/RiskControlStrategyAction/selectDetailData.do',{data: body});
+  }
+
+