Parcourir la source

产品参数配置前端

zhang_qk il y a 6 mois
Parent
commit
09f18a6857

+ 2 - 0
Procedure/frontend/projectb/config/config.ts

@@ -100,6 +100,8 @@ export default defineConfig({
    { path: '/diffconfig_list' , component: './rwa_data_check/diffconfig_list' },
    { path: '/result_list' , component: './rwa_data_check/result_list' },
 
+   { path: '/product_list' , component: './rwa_calc_config_dataparam/product_list' },
+
    { path: '/CustomerTable' , component: './project/dataquality/CustomerTable'},
    { path: '/CollateralTable' , component: './project/dataquality/CollateralTable'},
    { path: '/GuaranteeTable' , component: './project/dataquality/GuaranteeTable'},

+ 553 - 7
Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx

@@ -1,32 +1,578 @@
 import React, { useEffect, useRef, useState } from 'react';
 import { Button, Form, FormInstance, Input, Space, Tooltip, Upload } from 'antd';
 import { ActionType, ProColumns, ProFormInstance, ProTable } from '@ant-design/pro-components';
-import { EditType, SDPage } from '@sundata/ui-frame';
-import { productListModel } from '@/services/rwa/product_list';
+import { baseFun, EditType, SDAreaTtile, SDButton, SDForm, SDFormText, SDLayout, SDModal, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTable } from '@sundata/ui-frame';
+import { productlist, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfProductrulesModel } from '@/services/rwa/product_list';
+import { fetchDictList } from '@/services/sysMng/nounMng';
+import { useModel } from '@umijs/max';
+import { WomanOutlined } from '@ant-design/icons';
 
 type aaa = {
-      onCancel:  () => void;
-      onChangeVisible(visible: boolean, type: string): unknown;
-      onChangeVisdible:(visible:boolean,type ?: 'none' | 'raload' )=>void;
-      formRef: React.MutableRefObject<ProFormInstance<any> | undefined>;
+    productNo :String;
     }
     
 const product_list: React.FC<aaa>= (prop : aaa) => {
 
     const [visible,setVisible] = useState<boolean>(false);//弹窗是否显示
+    const [visible1,setVisible1] = useState<boolean>(false);//弹窗是否显示
+    const [count,setCount] = useState<number>(0);
+    const [count1,setCount1] = useState<string>();
     const formRef = useRef<FormInstance<any>>();
     const [editType, setEditType] = useState<EditType>('update');
+    const [editType1, setEditType1] = useState<EditType>('create');
+    const [state,setState] = useState<String>();
+    const { fetchDict } = useModel('dict');
+    const actionRef = useRef<ActionType>();
+    const actionRef1 = useRef<ActionType>();
+    const formRef1 = useRef<FormInstance<any>>();
+    const formRef2 = useRef<FormInstance<any>>();
+    const formRef3 = useRef<FormInstance<any>>();
+    const [state1,setState1] = useState<String>();
+        const [dataSource, setDataSource] = useState<any>() ;
+        const [currentRow, setCurrentRow] = useState<productListModel>();
+    var formDataList = new Array<productListModel>;
+    var formDataList1 = new Array<rwaCalcConfProductrulesModel>;
+ 
+    const [mockData, setMockData] = useState<rwaCalcConfProductrulesModel[]>([]);
+    const closeAndRefresh = ()=>{
+        setVisible(false);
+        actionRef.current?.reloadAndRest?.();
+      }
+      const closeAndRefresh1 = ()=>{
+        setVisible1(false);
+        actionRef1.current?.reloadAndRest?.();
+      }
+      //初始页面删除
+      const deldata =async(record:any)=>{
+        const del =await product_deleteone(record.productNo)
+        actionRef.current?.reload();
+      }
+      //保存产品参数
+      const inst =async(formData1 : productListModel)=>{
+        console.log(formData1);
+        await product_addone(formData1);
+      const aa =formData1.productNo
+      console.log("11111111")
+        //科目取数规则
+            inst1(aa);
+      }
+      const inst1 =async(aa:any)=>{
+           await product_addone1(mockData,aa);
+           closeAndRefresh();
+        }
 
+        const inst2 =async(formData:rwaCalcConfProductrulesModel)=>{
+           const res = await product_addone2(formData);
+          // ,新增修改不是一个页面吗 是一个页面,参数不一样 datasource设的一样吧 
+          if (res=='新增成功') {
+            if(editType != 'update'){
+              const sd = await product_querylist(null);
+              setMockData(sd)
+            }
+          }
+          
+             actionRef1.current?.reloadAndRest?.();
+             setVisible1(false);
+        }
+ 
+    
+      const deldata1 =async(record:any)=>{
+        baseFun.confirm("请确认是否继续操作",async()=>{
+          await product_deleteone1(record.ruleCode);
+          actionRef1.current?.reloadAndRest?.();
+        } )
+      }
+
+      //修改科目取数规则页面的查询
+      const selectdata =async (record:any)=>{
+        setVisible1(true);
+        const sd = await product_modifyone(record.ruleCode)
+       formRef2.current?.setFieldsValue(sd);
+        
+      }
+      //产品参数页面点修改的查询
+      const data1 =async(record:any)=>{
+        const sd = await product_modifyone1(record.productNo);
+        formRef1.current?.setFieldsValue(sd);
+        setVisible(true)
+        data2(record.productNo)
+        
+      }
+      //产品参数页面点修改的科目取数规则列表的查询
+      const data2 =async(record:any)=>{
+        console.log(record);
+        const sd = await product_modifyone2(record);
+        setState1(record);
+         console.log(sd);
+         formDataList1 =[...sd];
+         // 是这里?对后端最后走到这里
+        setMockData(formDataList1);
+         return {data :sd};
+
+      //  return formRef3.current?.setFieldsValue(sd);
+      //   const obg ={...sd}
+      //  // return {data:obg};
+      //  console.log(obg);
+        
+      }
+
+      
 
     const columns: ProColumns<productListModel>[] = [
+        { title : '计算实例号',
+        dataIndex : 'calcindex',
+        hideInTable:true,
+        search:false,
+        width : 150
+        },
+        
+        { title : '起始数据日期',
+        dataIndex : 'sdate',
+        hideInTable:true,
+        search:false,
+        width : 150
+        },
+        
+        { title : '截止数据日期',
+        dataIndex : 'edate',
+        hideInTable:true,
+        search:false,
+        width : 150
+        },
+        
+        { title : '年月',
+        dataIndex : 'term',
+        hideInTable:true,
+        search:false,
+        width : 150
+        },
+        
+        { title : '数据日期',
+        dataIndex : 'dataDate',
+        hideInTable:true,
+        search:false,
+        width : 150
+        },
+        
+        { title : '产品代码',
+        dataIndex : 'productNo',
+        width : 150
+        },
+        
+        { title : '产品名称',
+        dataIndex : 'productName',
+        width : 150
+        },
+        
+        { title : '产品大类',
+        dataIndex : 'productType',
+        valueType:"select",
+        request:()=>fetchDict(''),
+        width : 150
+        },
+        
+        { title : '对应业务',
+        dataIndex : 'productBussinessCode',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '产品所属阶段',
+        dataIndex : 'productStageId',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '产品序号',
+        dataIndex : 'productIndex',
+        search:false,
+        hideInTable:false,
+        width : 150
+        },
+        
+        { title : '来源系统',
+        dataIndex : 'productFromSystem',
+        search:false,
+        hideInTable:false,
+        width : 150
+        },
+        
+        { title : '默认取数逻辑',
+        dataIndex : 'defaultGetdatarule',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '默认输出',
+        dataIndex : 'defaultOut',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },{
+            title: '操作',
+            dataIndex: 'operate',
+            valueType: 'option',
+            render: (_, record) => [
+              <SDOperate
+                key="roleCfg"
+                icon={<WomanOutlined />}
+                successMessage=""
+                onClick={()=>{ 
+                  data1(record);
+                  setState("3");
+                setVisible(true);
+                setCurrentRow(record);
+                setEditType('update')
+                 } }
+              >
+                修改
+              </SDOperate>,
+        
+             <SDOperate
+             key="roleCfg"
+             icon={<WomanOutlined />}
+             successMessage=""
+             onClick={()=>{ 
+             deldata(record);
+              closeAndRefresh();
+             //setVisible(true);
+            // setEditType('display')
+              } }
+           >
+             删除
+           </SDOperate>,
+            <SDOperate
+            key="roleCfg"
+            icon={<WomanOutlined />}
+            successMessage=""
+            onClick={()=>{ 
+            // disdata(record);
+             closeAndRefresh();
+            setVisible(true);
+            setEditType('display')
+             } }
+          >
+            查看
+          </SDOperate>,
+           <SDOperate
+           key="roleCfg"
+           icon={<WomanOutlined />}
+           successMessage=""
+           onClick={()=>{ 
+           // disdata(record);
+            closeAndRefresh();
+           setVisible(true);
+           setEditType('display')
+            } }
+         >
+           风险暴露分类规则
+         </SDOperate>,
+           <span style={record?.productBussinessCode==="作废" ? {display:'none'}: {}}>
+           <SDOperate
+           key="roleCfg"
+           icon={<WomanOutlined />}
+           successMessage=""
+           onClick={()=>{ 
+           // state(record);
+            } }
+         >
+           表外项目分类规则
+         </SDOperate>,
+         </span>
+            ],
+          },
+    ]
+
+    const columns1: ProColumns<rwaCalcConfProductrulesModel>[] = [
+        { title : '计算实例号',
+        dataIndex : 'calcindex',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '起始数据日期',
+        dataIndex : 'sdate',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '截止数据日期',
+        dataIndex : 'edate',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '年月',
+        dataIndex : 'term',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '数据日期',
+        dataIndex : 'dataDate',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '产品编号',
+        dataIndex : 'productNo',
+        search:false,
+        hideInTable:true,
+        width : 150
+        },
+        
+        { title : '规则编号',
+        dataIndex : 'ruleCode',
+        width : 150
+        },
+        
+        { title : '规则名称',
+        dataIndex : 'ruleName',
+        width : 150
+        },
 
+        { title : '数据类型',
+        dataIndex : 'dataType',
+        width : 150
+        },
+        
+        { title : '对应科目号',
+        dataIndex : 'ruleSubject',
+        width : 150
+        },
+        
+        { title : '输入数据源',
+        dataIndex : 'ruleIn',
+        width : 150
+        },
+        
+        { title : '输出数据源',
+        dataIndex : 'ruleOut',
+        width : 150
+        },
+        
+        { title : '科目取数规则',
+        dataIndex : 'ruleGetdata',
+        width : 150
+        },
+        { title : '规则序号',
+        dataIndex : 'ruleIndex',
+        width : 150
+        },
+        {
+            title: '操作',
+            dataIndex: 'operate',
+            valueType: 'option',
+            render: (_, record) => [
+        
+              <SDOperate
+                key="roleCfg"
+                icon={<WomanOutlined />}
+                successMessage=""
+                
+                onClick={()=>{ 
+                  selectdata(record);
+                setVisible(true);
+                
+                setEditType('update')
+                 } }
+              >
+                修改
+              </SDOperate>,
+               <SDOperate
+               key="roleCfg"
+               icon={<WomanOutlined />}
+               successMessage=""
+               onClick={()=>{ 
+                deldata1(record);
+               setVisible(true);
+               setEditType('update')
+                } }
+             >
+               删除
+             </SDOperate>,
+            ]}
     ]
+    // let seq =0;
+    // const  getSequence =()=>{ seq++; return `${(seq++)}`.padStart(3, '0');}
+
+  
+ 
+  function counter(counts:number) {
+ console.log("-----")
+      counts = counts+1;
+      setCount(counts);
+      `${(counts)}`.padStart(3, '0');
+    // count++; // 每次调用时自增
+      return counts;
+    
+ 
+  };
+
+
+
+    
 
     return(
         <SDPage>
+            <SDTable
+      title=""
+      rowKey="productNo"
+      request={async(formData : productListModel)=>{
+        const sd = await productlist(formData)
+        formDataList=[...sd]
+        return {data :sd}
+      }}
+      columns={columns}
+     actionRef={actionRef}
+     formRef={formRef}
+     setCurrentRow={setCurrentRow}
+      setEditType={setEditType}
+      toolBarRender={(_, { selectedRows }) => [
+        <SDButton
+          key="export"
+        //  successMessage='导出成功'
+          onClick={ () => {
+          //  exportExcelModel("fcLoan",formDataList);
+            //baseFun.info('处理完成');m
+            setVisible(true);
+            setEditType('create')
+            setState("1")
+           // mockData.reverse;
+          setMockData([]);
+          }}
+        >
+          新增
+        </SDButton>,
+        <SDButton
+          key="export"
+        //  successMessage='导出成功'
+          onClick={async () => {
+          //  exportExcelModel("fcLoan",formDataList);
+            //baseFun.info('处理完成');
+          }}
+        >
+          全部导出
+        </SDButton>,
+      ]}    
+      setDetailVisible={setVisible}   
+       />
+       {visible &&(
+        <SDModalForm title={''} visible={visible} editType={editType} onVisibleChange={() => {  setVisible(false);  }} 
+    footer={[<SDSubmitButton  editType={editType}   formRef={formRef1} successMessage=""  doSubmit={inst} >保存</SDSubmitButton>,
+  <SDButton     successMessage="" onClick={()=>closeAndRefresh()} >关闭</SDButton>]}>
+    <SDForm editType={editType} formRef={formRef1}          
+   onValuesChange={(changedValues,Values)=>{ 
+    const aa = Values.productNo;
+    console.log(aa);
+    setState1(Values.productNo)
+   }} 
+    >
+        <span style={{display:'none'}}>
+    <SDFormText name="calcindex"   label="计算实例号"  />
+    <SDFormText name="sdate"   label="起始数据日期"  />
+    <SDFormText name="edate"   label="截止数据日期"  />
+    <SDFormText name="term"   label="年月"  />
+    <SDFormText name="dataDate"   label="数据日期"  />
+    </span>
+    <SDFormText name="productNo"   label="产品代码"  />
+    <SDFormText name="productName"   label="产品名称"  />
+    <SDFormText name="productType"   label="产品大类"  />
+    <SDFormText name="productIndex"   label="产品序号"  />
+    <SDFormText name="productStageId"   label="所属阶段"  />
+    <SDFormText name="productFromSystem"   label="来源系统"  />
+    <SDFormText name="defaultOut"   label="默认输出数据源"  />
+    <SDFormText name="productBussinessCode"   label="所属业务"  />
+    <SDFormText name="defaultGetdatarule"   label="默认取数逻辑"  />
+    </SDForm>
+      <SDAreaTtile title='科目取数规则列表' />
+      <SDLayout>
+        <ProTable
+            rowKey="ruleCode"
+            search={false} 
+            actionRef={actionRef1}
+            formRef={formRef3}  
+            dataSource={mockData}
+            request={(async (formData1:rwaCalcConfProductrulesModel)=>{
+              if(editType==='create'){
+                const sd1 = await product_querylist(formData1)
+                  formDataList1 = [...sd1]
+                  return {data:sd1}
+              }else{
+                const sd1 = await product_querylist(mockData[0].productNo)
+                setMockData(sd1);
+                return {data:sd1}
+                }
+            })
+            }
+            columns={columns1}
+            
+            toolBarRender={(_, { selectedRowKeys }) => {
+                    return[  <SDButton
+                    key="create"
+                    successMessage=''
+                    icon={<WomanOutlined />}
+                    onClick={async() => {
+                      setVisible1(true);
+                      setEditType1('create');
+                      setCount1("PROD"+state1+counter(count) ) 
+                      formRef2.current?.setFieldValue("ruleCode",count1)
+                      //console.log(formRef1.current?.setFieldsValue(productNo));
+                    }}
+                    >
+                      新增
+                    </SDButton>,  
+               ] 
+            } }
+        />
+      </SDLayout>
+      {visible1 &&(
+        <SDModalForm title={''} visible={true} onValuesChange={() => { setVisible1(false); } }
+              footer={[<SDSubmitButton editType={editType1} formRef={formRef2} successMessage="" doSubmit={inst2}>保存</SDSubmitButton>,
+              <SDButton successMessage="" onClick={() => closeAndRefresh1()}>关闭</SDButton>]} onVisibleChange={()=>{setVisible1(false); }  } 
+              >
+        <SDLayout>
+<SDForm editType={editType1} formRef={formRef2}  initialValues={{ruleCode:count1}}  >
+         <span style={{display:'none'}}>
+          <SDFormText name="calcindex"   label="计算实例号"  />
+          <SDFormText name="sdate"   label="起始数据日期"  />
+          <SDFormText name="edate"   label="截止数据日期"  />
+          <SDFormText name="term"   label="年月"  />
+          <SDFormText name="dataDate"   label="数据日期"  />
+          <SDFormText name="productNo"   label="产品编号"  />
+          </span>
+          <SDFormText name="ruleCode"   label="规则编号"   readonlyCond ='update'/>
+          <SDFormText name="ruleName"   label="规则说明"  />
+          <SDFormText name="dataType"   label="数据类型"  />
+          <SDFormText name="ruleSubject"   label="对应科目"  />
+          <SDFormText name="ruleIn"   label="输入"  />
+          <SDFormText name="ruleOut"   label="输出"  />
+          <SDFormText name="ruleIndex"   label="规则序号"  />
+          <SDFormText name="ruleGetdata"   label="取数规则" type='textarea'  />
+          </SDForm>
+        </SDLayout>
+        </SDModalForm>
+        
+      )
+      }  
+</SDModalForm>
+
+
+       )}
+        
 
         </SDPage>
     )
 
 }
-export default product_list;
+export default product_list;
+
+

+ 143 - 1
Procedure/frontend/projectb/src/services/rwa/product_list.ts

@@ -1,5 +1,147 @@
 import { baseFun, TableData } from "@sundata/ui-frame"
+import { TreeProps } from "antd";
 
 export type productListModel={
-    
+    //计算实例号
+calcindex : String;
+//起始数据日期
+sdate : String;
+//截止数据日期
+edate : String;
+//年月
+term : String;
+//数据日期
+dataDate : String;
+//产品编号
+productNo : string;
+//产品名称
+productName : String;
+//产品分类
+productType : String;
+//对应业务
+productBussinessCode : String;
+//产品所属阶段
+productStageId : String;
+//产品序号
+productIndex : number;
+//来源系统
+productFromSystem : String;
+//默认取数逻辑
+defaultGetdatarule : String;
+//默认输出
+defaultOut : String; 
+}
+
+export type rwaCalcConfProductrulesModel={
+    //计算实例号
+calcindex : String;
+//起始数据日期
+sdate : String;
+//截止数据日期
+edate : String;
+//年月
+term : String;
+//数据日期
+dataDate : String;
+//产品编号
+productNo : any;
+//规则编号
+ruleCode : String;
+//规则名称
+ruleName : String;
+//规则序号
+ruleIndex : number;
+//数据类型
+dataType : String;
+//对应科目
+ruleSubject : String;
+//输入
+ruleIn : String;
+//输出
+ruleOut : String;
+//取数规则
+ruleGetdata : String;
+
+}
+
+//产品参数的查询
+export async function productlist(body:any){
+    return baseFun.request<productListModel[]>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/productlist',{
+        data:body
+    })
+    ;
+}
+
+
+ //初始页面删除
+export async function product_deleteone(productNo:String){
+    return baseFun.request<void>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_deleteone',{
+        params:{productNo}
+    })
+    ;
+}
+
+ //科目取数规则页面删除
+ export async function product_deleteone1(ruleCode:String){
+    return baseFun.request<void>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_deleteone1',{
+        params:{ruleCode}
+    })
+    ;
+}
+//科目取数规则列表的查询
+export async function product_querylist(productNo:any){
+    return baseFun.request<rwaCalcConfProductrulesModel[]>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/productlist1',{
+        params:{productNo}
+    })
+    ;
+}
+
+//修改科目取数规则页面的查询
+export async function product_modifyone(ruleCode:String){
+    return baseFun.request<rwaCalcConfProductrulesModel>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_modifyone',{
+       params:{ruleCode}
+    })
+    ;
+}
+
+//产品参数页面点修改的查询
+export async function product_modifyone1(productNo:String){
+    return baseFun.request<productListModel>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_modifyone1',{
+       params:{productNo}
+    })
+    ;
+}
+
+//产品参数页面点修改的科目取数规则列表的查询
+export async function product_modifyone2(productNo:String){
+    return baseFun.request<rwaCalcConfProductrulesModel[]>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_modifyone2',{
+       params:{productNo}
+    })
+    ;
+}
+
+//保存产品参数
+export async function product_addone(body:productListModel){
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_addone',{
+        data:body
+    })
+    ;
+}
+
+//科目取数规则
+export async function product_addone1(body:rwaCalcConfProductrulesModel[],productNo:String){
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_addone1',{
+        data:body,
+        params:{productNo}
+    })
+    ;
+}
+
+//科目取数规则
+export async function product_addone2(body:rwaCalcConfProductrulesModel){
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/product_addone2',{
+        data:body
+       
+    })
+    ;
 }