|
@@ -1,13 +1,16 @@
|
|
|
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 { type ProColumns, type ActionType, type ProFormInstance, ProTable, EditableProTable, ProFormSelect, CheckCard, editableRowByKey, recordKeyToString } from '@ant-design/pro-components';
|
|
|
+import {FormInstance, Input, Select} from 'antd'
|
|
|
import {Upload} from 'antd'
|
|
|
-import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, } from "@sundata/ui-frame";
|
|
|
-import type { TableRelationDefineModel, FieldRelationDefineModel } from '@/services/rwa/product/dataquality/datascopemanage';
|
|
|
+import { SDPage,SDFormText,SDModalForm,SDTable,SDFormItem,SDButton,SDSubmitButton,EditType, SDAreaTtile, SDOperate, baseFun,SDModal, validateFun, SDLayout, SDFormDict, } from "@sundata/ui-frame";
|
|
|
+import { TableRelationDefineModel, FieldRelationDefineModel, selectchineseSourceTableName, selecFieldName, selectenglishSourceField } from '@/services/rwa/product/dataquality/datascopemanage';
|
|
|
import {getDataList,deleteRows,createRowData,updateRowData,selectDetailData,getFieldDataList,createFieldRowData} from '@/services/rwa/product/dataquality/datascopemanage';
|
|
|
import { PlusSquareTwoTone, WomanOutlined } from "@ant-design/icons";
|
|
|
import { ProductProps } from "@/sundataImport";
|
|
|
import { ReportCalculationModel } from "@/services/rwa/product/report_form_config_reportcreater/reportfillingconfig";
|
|
|
+import { fetchDictList } from "@/services/sysMng/nounMng";
|
|
|
+import { useModel } from "@umijs/max";
|
|
|
+import { indexOf, keys, keysIn, mapKeys, values } from "lodash";
|
|
|
type widowRush = {
|
|
|
onCancel: () => void;
|
|
|
onChangeVisible(visible: boolean, type: string): unknown;
|
|
@@ -20,12 +23,15 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
/** 是否显示详细信息窗口 */
|
|
|
const [detailVisible, setDetailVisible] = useState<boolean>(false);
|
|
|
const [currentRow, setCurrentRow] = useState<TableRelationDefineModel>();
|
|
|
+
|
|
|
+ const editorFormRef = useRef<any>();
|
|
|
/** 表格引用对象,刷新表格使用 */
|
|
|
const actionRef = useRef<ActionType>();
|
|
|
const formRef = useRef<FormInstance<any>>();
|
|
|
const templateRef = useRef<FormInstance<any>>();
|
|
|
/** 字段关系列表数据 */
|
|
|
const [fieldRelationData, setFieldRelationData] = useState<FieldRelationDefineModel[]>([]);
|
|
|
+ const [fieldRelationData1, setFieldRelationData1] = useState<FieldRelationDefineModel>();
|
|
|
// 页面数据
|
|
|
var formDataList = new Array<TableRelationDefineModel>;
|
|
|
|
|
@@ -35,6 +41,14 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
|
|
|
const fillInActionRef = useRef<ActionType>();
|
|
|
|
|
|
+ const { fetchDict } = useModel('dict');
|
|
|
+
|
|
|
+ const [englishSourceTableName,setEnglishSourceTableName] = useState<any>();
|
|
|
+ const [englishTargetTableName,setEnglishTargetTableName] = useState<any>();
|
|
|
+ const [englishSourceFieldNames,setEnglishSourceFieldNames] = useState<any>();
|
|
|
+ const [englishField,setEnglishField] = useState<any>();
|
|
|
+ const [a1,setA1]=useState<any>();
|
|
|
+
|
|
|
/** 字段关系序号编辑 */
|
|
|
var paramIndex = 0;
|
|
|
|
|
@@ -42,16 +56,25 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
var dataIndex = 1;
|
|
|
|
|
|
useEffect(() => {
|
|
|
- }, []);
|
|
|
+ select1();
|
|
|
+
|
|
|
+ select2();
|
|
|
+ select3();
|
|
|
+
|
|
|
+ }, [englishSourceTableName,englishTargetTableName]);
|
|
|
|
|
|
// 修改查询查询
|
|
|
const selectData = async (formdata : TableRelationDefineModel) => {
|
|
|
const data = await selectDetailData(formdata);
|
|
|
- formRef.current?.setFieldsValue(data);
|
|
|
+ formRef.current?.setFieldValue("englishSourceTableName",data.englishSourceTableNames);
|
|
|
+ formRef.current?.setFieldValue("englishTargetTableName",data.englishTargetTableNames);
|
|
|
+ formRef.current?.setFieldValue("riskCategorys",data.riskCategory);
|
|
|
+ console.log(data.englishSourceTableName);
|
|
|
+ const {englishSourceTableName,englishTargetTableName,riskCategorys,...data1}=data;
|
|
|
+ formRef.current?.setFieldsValue(data1);
|
|
|
const fieldData = await getFieldDataList(formdata);
|
|
|
setFieldRelationData(fieldData);
|
|
|
}
|
|
|
-
|
|
|
// 删除
|
|
|
const delRows =async(record:any)=>{
|
|
|
baseFun.confirm('确认删除?',async() =>{
|
|
@@ -88,6 +111,35 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
setDetailVisible(false);
|
|
|
}
|
|
|
|
|
|
+ const select1 =async()=>{
|
|
|
+ if(englishSourceTableName!=null || englishSourceTableName!=undefined)
|
|
|
+ {const sd = await selecFieldName(englishSourceTableName)
|
|
|
+ console.log(sd)
|
|
|
+ return setA1(sd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const select3 =async()=>{
|
|
|
+ if(englishTargetTableName!=null || englishTargetTableName!=undefined)
|
|
|
+ {const sd = await selecFieldName(englishTargetTableName)
|
|
|
+ console.log(sd)
|
|
|
+ return setA1(sd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ const select2 =async()=>{
|
|
|
+ if(englishField != undefined ||englishField !=null){
|
|
|
+ // console.log(englishField)
|
|
|
+ // const a =englishField.indexOf('.');
|
|
|
+ // const a1 = englishField.slice(0,a);
|
|
|
+ // const a2 = englishField.slice(a+1)
|
|
|
+ const a3 = await selectenglishSourceField(englishField)
|
|
|
+ return setEnglishSourceFieldNames(a3);
|
|
|
+ }else(
|
|
|
+ console.log('2222')
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
// 页面展示元素
|
|
@@ -96,7 +148,7 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
title: '序号',
|
|
|
dataIndex: 'index',
|
|
|
search: false,
|
|
|
- render: (text, record, index) => { index = index + 1;dataIndex = index; return index},
|
|
|
+ render: (_text, _record, index) => { index = index + 1;dataIndex = index; return index},
|
|
|
width:100,
|
|
|
ellipsis:true
|
|
|
},
|
|
@@ -128,11 +180,13 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
title: '来源系统',
|
|
|
dataIndex: 'sourceSystem',
|
|
|
hideInTable: false,
|
|
|
+ valueType:'select',
|
|
|
+ request:()=>fetchDict({dictKey:"PRODUCTFROMSYSTEM"}),
|
|
|
order:-6
|
|
|
},
|
|
|
{
|
|
|
title: '源表英文名',
|
|
|
- dataIndex: 'englishSourceTableName',
|
|
|
+ dataIndex: 'englishSourceTableNames',
|
|
|
hideInTable: false,
|
|
|
order:-1
|
|
|
},
|
|
@@ -144,7 +198,7 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
},
|
|
|
{
|
|
|
title: '目标表英文名',
|
|
|
- dataIndex: 'englishTargetTableName',
|
|
|
+ dataIndex: 'englishTargetTableNames',
|
|
|
hideInTable: false,
|
|
|
order:-3
|
|
|
},
|
|
@@ -154,11 +208,27 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
hideInTable: false,
|
|
|
order:-4
|
|
|
},
|
|
|
+ {
|
|
|
+ title: '风险类别',
|
|
|
+ dataIndex: 'riskCategorys',
|
|
|
+ valueType:'treeSelect',
|
|
|
+ request:()=>fetchDict({dictKey :'riskCategory'}),
|
|
|
+ fieldProps:{
|
|
|
+ treeDefaultExpandAll:true,
|
|
|
+ treeCheckable:true,
|
|
|
+ },
|
|
|
+ hideInTable: true,
|
|
|
+ order:-5
|
|
|
+ },
|
|
|
{
|
|
|
title: '风险类别',
|
|
|
dataIndex: 'riskCategory',
|
|
|
+ valueType:'select',
|
|
|
+ request:()=>fetchDict({dictKey :'riskCategory'}),
|
|
|
hideInTable: false,
|
|
|
- order:-5
|
|
|
+ search:false,
|
|
|
+ order:-5,
|
|
|
+ //search:true,
|
|
|
},
|
|
|
{
|
|
|
title: '操作',
|
|
@@ -219,13 +289,33 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
hideInTable: false,
|
|
|
search: false,
|
|
|
editable:false,
|
|
|
- render: (text, record, index) => {(index = index + 1);paramIndex = index ; return index},
|
|
|
+ render: (_text, _record, index) => {(index = index + 1);paramIndex = index ; return index},
|
|
|
},
|
|
|
{
|
|
|
title: '源表字段英文名',
|
|
|
dataIndex: 'englishSourceFieldName',
|
|
|
- search: false,
|
|
|
- hideInTable: false,
|
|
|
+ valueType:'select',
|
|
|
+ // render:()=>{return englishField},
|
|
|
+ // request:()=>fetchDict({dictKey: '@selecFieldName',dictParam:`{"englishSourceField":"${englishSourceTableName}"}`}),
|
|
|
+ renderFormItem:( { index }, { record })=>{
|
|
|
+ return(
|
|
|
+ <Select
|
|
|
+ style={{ width: 300 }}
|
|
|
+ // value={recordKey}
|
|
|
+ // onChange={(EnglishSourceFieldNames) => editorFormRef.current.setRowData(index,{chineseSourceFieldName:EnglishSourceFieldNames})}
|
|
|
+ options={
|
|
|
+ a1
|
|
|
+ }
|
|
|
+
|
|
|
+ />
|
|
|
+ )
|
|
|
+ },
|
|
|
+ fieldProps:{
|
|
|
+ popupMatchSelectWidth:300
|
|
|
+ },
|
|
|
+ search: false,
|
|
|
+ hideInTable: false,
|
|
|
+ // renderFormItem: ({ index }: any) => <ParamValue value={englishField} index={index} />
|
|
|
},
|
|
|
{
|
|
|
title: '源表字段中文名',
|
|
@@ -233,15 +323,31 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
search: false,
|
|
|
hideInTable: false,
|
|
|
},
|
|
|
+
|
|
|
{
|
|
|
title: '源表字段是否主键',
|
|
|
dataIndex: 'tableSourceFieldIspk',
|
|
|
+ valueType:'select',
|
|
|
+ request:()=>fetchDict({dictKey :'YESORNO'}),
|
|
|
search: false,
|
|
|
hideInTable: false,
|
|
|
},
|
|
|
{
|
|
|
title: '目标字段英文名',
|
|
|
dataIndex: 'englishTargetFieldName',
|
|
|
+ valueType:'select',
|
|
|
+ renderFormItem:( { index }, { record })=>{
|
|
|
+ return(
|
|
|
+ <Select
|
|
|
+ style={{ width: 300 }}
|
|
|
+ // value={recordKey}
|
|
|
+ // onChange={(EnglishSourceFieldNames) => editorFormRef.current.setRowData(index,{chineseSourceFieldName:EnglishSourceFieldNames})}
|
|
|
+ options={
|
|
|
+ a1
|
|
|
+ }
|
|
|
+ />
|
|
|
+ )
|
|
|
+ },
|
|
|
search: false,
|
|
|
hideInTable: false,
|
|
|
},
|
|
@@ -268,7 +374,7 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
successMessage=""
|
|
|
onClick={
|
|
|
()=>{
|
|
|
- // fillInActionRef.current?.cancelEditable(paramIndex);
|
|
|
+ // fillInActionRef.current?.cancelEditable(paramIndex);
|
|
|
fillInActionRef.current?.startEditable(record.fieldRelationNo);
|
|
|
} }
|
|
|
>
|
|
@@ -278,6 +384,7 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
},
|
|
|
];
|
|
|
|
|
|
+
|
|
|
return (
|
|
|
<SDPage>
|
|
|
<SDTable
|
|
@@ -318,6 +425,22 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
params={currentRow}
|
|
|
visible={detailVisible}
|
|
|
onVisibleChange={() => {setDetailVisible(false)}}
|
|
|
+ onValuesChange={async(_changedValues,Values)=>{
|
|
|
+ if(Values.englishSourceTableName!=undefined && Values.englishSourceTableName!=''){
|
|
|
+ setEnglishSourceTableName(Values.englishSourceTableName);
|
|
|
+ const sd = await selectchineseSourceTableName(Values.englishSourceTableName);
|
|
|
+ formRef.current?.setFieldValue("chineseSourceTableName",sd)
|
|
|
+ }else{
|
|
|
+ formRef.current?.setFieldValue("chineseSourceTableName","");
|
|
|
+ }
|
|
|
+ if(Values.englishTargetTableName!=undefined && Values.englishTargetTableName!=''){
|
|
|
+ setEnglishTargetTableName(Values.englishTargetTableName);
|
|
|
+ const sd = await selectchineseSourceTableName(Values.englishTargetTableName);
|
|
|
+ formRef.current?.setFieldValue("chineseTargetTableName",sd)
|
|
|
+ }else{
|
|
|
+ formRef.current?.setFieldValue("chineseTargetTableName","")
|
|
|
+ }
|
|
|
+ }}
|
|
|
footer={[
|
|
|
<SDSubmitButton editType={editType} formRef={formRef} doSubmit={handleSave} >保存</SDSubmitButton>,
|
|
|
<SDButton
|
|
@@ -330,13 +453,13 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
tableRef={actionRef}
|
|
|
formRef={formRef}
|
|
|
>
|
|
|
- <SDAreaTtile title='源数据信息'/>
|
|
|
- <SDFormText name="englishSourceTableName" readonlyCond="update" required={true} label="源表英文名"/>
|
|
|
- <SDFormText name="chineseSourceTableName" label="源表中文名"/>
|
|
|
- <SDFormText name="englishTargetTableName" label="目标表英文名" />
|
|
|
+ <SDAreaTtile title='源数据信息' />
|
|
|
+ <SDFormDict name="englishSourceTableName" width='md' readonlyCond="update" multiple={true} required={true} label="源表英文名" dictKey="@englishSourceTable"/>
|
|
|
+ <SDFormText name="chineseSourceTableName" label="源表中文名" />
|
|
|
+ <SDFormDict name="englishTargetTableName" label="目标表英文名" multiple={true} required={true} dictKey="@englishSourceTable"/>
|
|
|
<SDFormText name="chineseTargetTableName" label="目标表中文名" width={380}/>
|
|
|
- <SDFormText name="riskCategory" label="风险类别" width={380}/>
|
|
|
- <SDFormText name="sourceSystem" label="来源系统"/>
|
|
|
+ <SDFormDict name="riskCategorys" label="风险类别" width={380} multiple={true} dictKey='riskCategory'/>
|
|
|
+ <SDFormDict name="sourceSystem" label="来源系统" dictKey="PRODUCTFROMSYSTEM" />
|
|
|
|
|
|
<SDLayout>
|
|
|
<SDAreaTtile title='表格单元计算结果详情'/>
|
|
@@ -347,15 +470,34 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
actionRef={fillInActionRef}
|
|
|
value={fieldRelationData}
|
|
|
dataSource={fieldRelationData}
|
|
|
+ editableFormRef={editorFormRef}
|
|
|
editable={{
|
|
|
- actionRender: (row,config,defaultDoms)=>{
|
|
|
+ actionRender: (_row,_config,defaultDoms)=>{
|
|
|
return [defaultDoms.save,defaultDoms.cancel]
|
|
|
+ },
|
|
|
+ onValuesChange: async (changedValues, Values) => {
|
|
|
+ console.log(changedValues);
|
|
|
+ console.log(Values);
|
|
|
+ if(changedValues !=undefined && changedValues.englishSourceFieldName!=undefined){
|
|
|
+ const a3 = await selectenglishSourceField(changedValues.englishSourceFieldName)
|
|
|
+ const {fieldRelationNo,...res} = changedValues;
|
|
|
+ if('englishSourceFieldName' in res){
|
|
|
+ editorFormRef.current.setRowData(fieldRelationNo,{chineseSourceFieldName:a3})
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(changedValues !=undefined && changedValues.englishTargetFieldName!=undefined) {
|
|
|
+ const a4 = await selectenglishSourceField(changedValues.englishTargetFieldName)
|
|
|
+ const {fieldRelationNo,...res} = changedValues;
|
|
|
+ if('englishTargetFieldName' in res){
|
|
|
+ editorFormRef.current.setRowData(fieldRelationNo,{chineseTargetFieldName:a4})
|
|
|
+ }
|
|
|
}
|
|
|
+ },
|
|
|
}}
|
|
|
rowSelection={{
|
|
|
type:'radio',
|
|
|
selectedRowKeys:oldRowKeys,
|
|
|
- onSelect:(selectedRowKeys, selectedRows) => {
|
|
|
+ onSelect:(selectedRowKeys, _selectedRows) => {
|
|
|
setSelectRowData(selectedRowKeys);
|
|
|
}
|
|
|
}}
|
|
@@ -376,8 +518,8 @@ const datascopemanage : React.FC<widowRush> = (prop:widowRush) => {
|
|
|
successMessage=''
|
|
|
onClick={() => {
|
|
|
if (selectRowData.fieldRelationNo) {
|
|
|
- setFieldRelationData(...[fieldRelationData.filter((item)=>{
|
|
|
- return item.fieldRelationNo !== selectRowData.fieldRelationNo})]);
|
|
|
+ setFieldRelationData(fieldRelationData.filter((item)=>{
|
|
|
+ return item.fieldRelationNo !== selectRowData.fieldRelationNo}));
|
|
|
fillInActionRef.current?.reload();
|
|
|
}
|
|
|
}}
|