Quellcode durchsuchen

新增产品参数配置-表外项目分类规则查看,新增表外项目分类认定

zhang_qk vor 6 Monaten
Ursprung
Commit
47d0bf0515

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

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

+ 456 - 0
Procedure/frontend/projectb/src/pages/rwa_calc_config_002offbalanceprotype/info_list.tsx

@@ -0,0 +1,456 @@
+import React, { useEffect, useRef, useState } from 'react';
+import { Button, Form, FormInstance, Input, Space, Tooltip, Upload } from 'antd';
+import { ActionType, EditableFormInstance, ProColumns, ProFormInstance, ProTable } from '@ant-design/pro-components';
+import { baseFun, ContextMenu, DictTree, EditType, SDAreaTtile, SDButton, SDForm, SDFormDict, SDFormText, SDLayout, SDModalForm, SDOperate, SDPage, SDSubmitButton, SDTree } from '@sundata/ui-frame';
+import { SysFunButtonInfoModel } from '@/services/authMng/funcMng';
+import {  getDetail1, getFunTree1,save, rules_addone, rules_list, rwaCalcConfOffbalanceprotypeModel, rwaCalcConfOffbalanceprotyperuleModel, shunxu, save2, rules_modifyone, rules_deleteone, info_deleteone, jiaoyan } from '@/services/rwa/info_list';
+import { DataNode } from 'antd/lib/tree';
+import { MenuInfo } from 'rc-menu/lib/interface';
+import { WomanOutlined } from '@ant-design/icons';
+import { conforms, isNull } from 'lodash';
+import { number } from 'echarts';
+//const tableRef = useRef<EditableFormInstance>();
+
+type aaa ={
+  ismini ?:any;
+  offobjectNo ?:any;
+}
+
+const infolist: React.FC<aaa> = (prop :aaa) => {
+
+      /** 编辑方式,查看、修改、新增按钮时设置,详细信息表单中使用 */
+  const [editType, setEditType] = useState<EditType>('update');
+  const formRef = useRef<FormInstance<any>>();
+  const [treeData, setTreeData] = useState<DictTree[]>();
+  
+  const formRef1 = useRef<FormInstance<any>>();
+  const formRef3 = useRef<FormInstance<any>>();
+  const [visible1,setVisible1] = useState<boolean>(false);//弹窗是否显示
+  const [visible2,setVisible2] = useState<boolean>(false);//弹窗是否显示
+
+  const [editType1, setEditType1] = useState<EditType>('update');
+  const [ismini1,setIsmini1] =useState<boolean>(false);
+
+  const [count1,setCount1] = useState<string>();
+
+//   const leaf = useRef('1');
+//   const levelcode = useRef(0);
+
+const actionRef1 = useRef<ActionType>();
+
+const formRef2 = useRef<FormInstance<any>>();
+const [state1,setState1] = useState<String>();
+
+const [dataSource, setDataSource] = useState<any>() ;
+  const [mockData, setMockData] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
+  let runtimeEditType: EditType;
+
+  const [count,setCount] = useState<number>(0);
+  useEffect(() => {
+    refreshTree().then((data) => {
+        console.log(data);
+      formInit(data[0].value);
+    });
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, []);
+
+
+  const closeAndRefresh1 = ()=>{
+    setVisible1(false);
+    actionRef1.current?.reloadAndRest?.();
+  }
+
+  const formInit = async (offobjectNo?: string) => {
+    const data = await getDetail1({offobjectNo});
+    if (!data.buttonList) data.buttonList = [];
+    let i = 0;
+    data.buttonList = data.buttonList.map((item) => {
+      i += 1;
+      return { ...item, id: i };
+    });
+    setMockData(data.buttonList);
+    setState1(data.offobjectNo);
+  formRef.current?.setFieldsValue(data);
+    if(data.ismini=='0'){
+      setIsmini1(false);
+      setVisible2(false);
+    }else{
+      setIsmini1(true);
+      setVisible2(true);}
+    //leaf.current = data.leaf || '1';
+   // levelcode.current = data.levelcode || 0;
+  };
+
+  const fontColor = { color: '#ff0000' };  // 红色
+  const refreshTree = async () => {
+    const newTree = await getFunTree1();
+   setTreeData(newTree);
+   return newTree;
+  };
+  
+
+  const inst2 = async(formDate:rwaCalcConfOffbalanceprotyperuleModel)=>{
+    const res =await rules_addone(formDate);
+    actionRef1.current?.reloadAndRest?.();
+    const res1 =await rules_list(state1);
+    setMockData(res1)
+    
+    setVisible1(false);
+  }
+
+  const selectdata =async(record:any)=>{
+    setVisible1(true);
+    const sd = await rules_modifyone(record.ruleNo)
+   formRef2.current?.setFieldsValue(sd);
+  }
+
+  const deldata1 =async(record:any)=>{
+baseFun.confirm("请确认是否继续操作",async()=>{
+  const sd = await rules_deleteone(record.ruleNo)
+  setEditType1('update');
+//   refreshTree().then((data) => {
+  const sd1=await rules_list(state1);
+  setMockData(sd1);
+// });;
+})
+  }
+
+
+const menu: ContextMenu[] = [
+    {
+      key: 'create',
+      label: '新建',
+      method: async (node) => {
+        const offobjectNo = node.key as string;
+        console.log('-----')
+       // const data = await getDetail1({ offobjectNo });
+     //   levelcode.current = data.levelcode || 0;
+       // 点击右键菜单后,会先执行 onRightClick 获取所选菜单信息,这里直接使用即可
+      setEditType('create');
+      runtimeEditType = 'create';
+      // 设置新增初始值
+      formRef.current?.setFieldsValue({
+        offobjectNo: '',
+        offobjectName: '',
+        offobjectSuper: offobjectNo,
+        offobjectSuperName: node.title?.toString(),
+        offobjectStageId:'',
+        offobjectIndex:'',
+        defaultOut:'',
+        ismini:'' ,
+        ccf: '',
+        yesorno:'1'
+      });
+      if(editType =='create'){
+        setMockData([]);
+      }
+    //   leaf.current = '1';
+    //   levelcode.current = levelcode.current + 1;
+      },
+    },
+    {
+      key: 'delete',
+      label: '删除',
+      method: async (node) => {
+        const funccode = node.key as string;
+        if (node.children) {
+          baseFun.warning('请先删除所有下级节点');
+          return;
+        }
+        if (treeData?.length === 1 && !treeData[0].children) {
+          baseFun.warning('不能删除根节点');
+          return;
+        }
+        await info_deleteone(funccode);
+        refreshTree();
+      },
+    },
+  
+  ];
+
+  const btnColumns: ProColumns<rwaCalcConfOffbalanceprotyperuleModel>[] = [
+    { title : '计算实例号',
+    dataIndex : 'calcindex',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '起始数据日期',
+    dataIndex : 'sdate',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '截止数据日期',
+    dataIndex : 'edate',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '年月',
+    dataIndex : 'term',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '数据日期',
+    dataIndex : 'dataDate',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '表外项目编号',
+    dataIndex : 'offobjectNo',
+    hideInTable:true,
+    width : 150
+    },
+    
+    { title : '规则名称',
+    dataIndex : 'ruleName',
+    width : 150
+    },
+    
+    { title : '规则编号',
+    dataIndex : 'ruleNo',
+    width : 150
+    },
+    
+    { title : '规则序号',
+    dataIndex : 'ruleIndex',
+    width : 150
+    },
+    
+    { title : '所属产品',
+    dataIndex : 'ruleProductNo',
+    width : 150
+    },
+    
+    { title : '分类规则',
+    dataIndex : 'ruleGetdata',
+    width : 150
+    },
+    
+    { title : '输入',
+    dataIndex : 'ruleIn',
+    width : 150
+    },
+    
+    { title : '输出',
+    dataIndex : 'ruleOut',
+    width : 150
+    }, {
+            title: '操作',
+            dataIndex: 'operate',
+            valueType: 'option',
+            width:130,
+            render: (_, record) => [
+              <span style={editType.length==7 ?{display:'none'}:{}}>
+              <SDOperate
+                key="roleCfg"
+                icon={<WomanOutlined />}
+                successMessage=""
+                
+                onClick={()=>{ 
+                  selectdata(record);
+                setVisible1(true);
+                setEditType('update')
+                 } }
+              >
+                修改
+              </SDOperate>   
+               <SDOperate
+               key="roleCfg"
+               icon={<WomanOutlined />}
+               successMessage=""
+               onClick={()=>{ 
+                deldata1(record);
+                } }
+             >
+               删除
+             </SDOperate>
+             </span>
+            ]}
+
+  ]
+    const handleSave =async(formData:rwaCalcConfOffbalanceprotypeModel)=>{
+    // formData.buttonList=mockData
+    if(mockData.length<=0){
+      baseFun.warning("表外项目分类认定规则列表中至少有一条记录");
+    }else{
+      if(editType=='update'){
+        await save({...formData})
+        save1(formData.offobjectNo);
+        refreshTree().then((data) => {
+        formInit(data[0].value);
+      });
+        setEditType('update');
+        baseFun.info('保存成功');
+       // actionRef.current?.reloadAndRest?.();
+      }else{
+    const sd =await jiaoyan (formData.offobjectNo)
+    if(sd>='1'){
+      baseFun.warning("表外项目代码已存在,请重新输入");
+      formRef.current?.setFieldValue('offobjectNo',null)
+    }else{
+      await save({...formData})
+      save1(formData.offobjectNo);
+      refreshTree().then((data) => {
+      formInit(data[0].value);
+    });
+      setEditType('update');
+      baseFun.info('保存成功');
+    }
+  }
+}
+    }
+
+    const save1 =async(formData:any)=>{
+      await save2(mockData,formData)  
+    }
+
+    const xuhao = async(state1:any) => {
+      const sd = state1;
+      let aa = await shunxu(sd);
+      console.log(aa);
+      formRef2.current?.setFieldValue('ruleNo',aa)
+     // return setCount1(aa);
+      
+    }
+
+    
+
+
+    const handleSelect =async(node: DataNode)=>{
+      // const editingRows = tableRef.current?.getRowsData?.();
+      // if (editingRows && editingRows.length > 0) {
+      //   baseFun.warning('参数列表中有正在编辑的参数,请确认或取消修改后再切换');
+      //   return;
+      // }
+      const funccode = node.key as string;
+      // 右键菜单点击新增按钮后,再点击树节点时,需要重置editType
+      setEditType('update');
+      // formRef.current?.resetFields(); TODO 尝试配合request解决表单内容不刷新问题
+      formRef.current?.setFieldsValue(await  formInit(funccode));
+    }
+    return(
+        <SDPage footer={[<SDSubmitButton successMessage='' editType={editType}   formRef={formRef} doSubmit={handleSave} >保存</SDSubmitButton>]}> 
+        <SDLayout subLayout='horizontal' >
+        <SDLayout
+         title='菜单列表'
+         colSpan='25%'
+         fixHeight
+       >
+         <SDTree treeData={treeData} handleSelect={handleSelect} contextMenus={menu}  />
+        </SDLayout>
+        <SDLayout
+         title='表外项目分类信息维护'
+         colSpan='75%'
+         fixHeight        
+       >
+         
+         <SDForm
+    formRef={formRef}
+     editType={editType}
+     initialValues={{state:'1',ismini:prop.ismini,offobjectNo:prop.offobjectNo}}
+     onValuesChange={(changedValues,value)=>{
+      if(value.ismini!='' && value.ismini!=undefined){
+        if(value.ismini=='0'){
+          setIsmini1(false);
+          setVisible2(false);
+        }else{
+          setIsmini1(true);
+          setVisible2(true);
+        }
+      }
+      setState1(value.offobjectNo)
+     }}
+  >
+<SDFormText name="offobjectNo" label="表外项目代码" readonlyCond='update' required max={128} width='md'/>
+<SDFormText name="offobjectName" label="表外项目名称" required />
+<SDFormText name="offobjectSuper" label="上级表外项目代码" required readonlyCond='both' />
+<SDFormText name="offobjectSuperName" label="上级表外项目名称" required readonlyCond='both' />
+<SDFormDict name="ismini" label="是否最细一级" required  dictKey='YESORNO'/>
+{ismini1&&(<SDFormText name="ccf" label="转换系数(%)" required={ismini1} />)}
+<SDFormText name="defaultOut" label="默认输出数据源" required />
+<SDFormText name="offobjectStageId" label="所属阶段" required />
+<SDFormText name="offobjectIndex" label="认定顺序号" required />
+<SDFormText name="yesorno" label="状态"  readonlyCond='both'/>
+  </SDForm>
+  <SDAreaTtile  title="表外项目分类认定规则列表"/>
+  { visible2 &&(  <ProTable
+                    //editable={true}
+                    formRef={formRef1}
+                    search={false} 
+                    columns={btnColumns}
+                    actionRef={actionRef1}
+                    dataSource={mockData}    
+                    onChange={setDataSource}
+                    request={(async (state1:any)=>{
+                      // if(editType!='create' ){
+                      //   const res1 =await rules_list(state1);
+                      //   setMockData(res1)
+                      //   return {data:res1};
+                      // }else{
+                        return {data:mockData};
+                      // }
+                    })}
+                    toolBarRender={(_, { selectedRowKeys }) => {
+                      return[ 
+                        <span style={editType=='display'?{display:'none'}:{}}>   
+                        <SDButton
+                        key="create"
+                        successMessage=''
+                        icon={<WomanOutlined />}
+                        onClick={async() => {
+                           xuhao(state1)
+                          setVisible1(true);
+                          setEditType1('create');
+                         // formRef2.current?.setFieldValue("ruleNo",count1)
+                        }}
+                        >
+                          新增
+                        </SDButton>,  
+                        </span>
+                   ] 
+                    }}
+                    //value={dataSource || []}
+                    //={setDataSource}
+                     />
+                    ) }
+    </SDLayout>
+    </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}    >
+  <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="offobjectNo"   label="表外项目编号"  />
+</span>
+<SDFormText name="ruleNo"   label="规则编号" readonlyCond='both'  />
+<SDFormText name="ruleName"   label="规则名称"  />
+<SDFormDict name="ruleProductNo"   label="产品名称"  dictKey='@ruleProductNo' />
+<SDFormText name="ruleIn"   label="输入数据源 "  />
+<SDFormText name="ruleOut"   label="输出数据源"  />
+<SDFormText name="ruleIndex"   label="规则序号"  />
+<SDFormText name="ruleGetdata"   label="表外项目分类认定规则"  />
+  </SDForm>
+  </SDLayout>
+</SDModalForm>
+    )
+
+    }
+     </SDPage>
+
+    )
+  
+
+}
+export default infolist;

+ 108 - 17
Procedure/frontend/projectb/src/pages/rwa_calc_config_dataparam/product_list.tsx

@@ -2,7 +2,7 @@ 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 { 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 { productlist, productListModel, product_addone, product_addone1, product_addone2, product_deleteone, product_deleteone1, product_modifyone, product_modifyone1, product_modifyone2, product_querylist,  rwaCalcConfOffbalanceprotyperuleModel,  rwaCalcConfProductrulesModel, select } from '@/services/rwa/product_list';
 import { fetchDictList } from '@/services/sysMng/nounMng';
 import { useModel } from '@umijs/max';
 import { WomanOutlined } from '@ant-design/icons';
@@ -15,6 +15,7 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
 
     const [visible,setVisible] = useState<boolean>(false);//弹窗是否显示
     const [visible1,setVisible1] = useState<boolean>(false);//弹窗是否显示
+    const [visible3,setVisible3] = useState<boolean>(false);//弹窗是否显示
     const [count,setCount] = useState<number>(0);
     const [count1,setCount1] = useState<string>();
     const formRef = useRef<FormInstance<any>>();
@@ -30,10 +31,13 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
     const [state1,setState1] = useState<String>();
         const [dataSource, setDataSource] = useState<any>() ;
         const [currentRow, setCurrentRow] = useState<productListModel>();
+        const [currentRow1, setCurrentRow1] = useState<string>();
     var formDataList = new Array<productListModel>;
     var formDataList1 = new Array<rwaCalcConfProductrulesModel>;
+    var formDataList2 = new Array<rwaCalcConfOffbalanceprotyperuleModel>;
  
     const [mockData, setMockData] = useState<rwaCalcConfProductrulesModel[]>([]);
+    const [mockData1, setMockData1] = useState<rwaCalcConfOffbalanceprotyperuleModel[]>([]);
     const closeAndRefresh = ()=>{
         setVisible(false);
         actionRef.current?.reloadAndRest?.();
@@ -105,15 +109,18 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
         setState1(record);
          console.log(sd);
          formDataList1 =[...sd];
-         // 是这里?对后端最后走到这里
-        setMockData(formDataList1);
-         return {data :sd};
+       // count1(formDataList1);
+       setMockData(formDataList1);         
+       return {data :sd};
+      }
 
-      //  return formRef3.current?.setFieldsValue(sd);
-      //   const obg ={...sd}
-      //  // return {data:obg};
-      //  console.log(obg);
-        
+      const select3 =async(currentRow:any)=>{
+        const sd =await select(currentRow.productNo);
+        setCurrentRow1(currentRow.productNo);
+        console.log(currentRow1);
+        formDataList2 = [...sd]
+        setMockData1(formDataList2);
+        return {data :sd}
       }
 
       
@@ -275,7 +282,10 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
            icon={<WomanOutlined />}
            successMessage=""
            onClick={()=>{ 
-           // state(record);
+            //setCurrentRow1(record)
+            select3(record);
+           setVisible3(true)
+          
             } }
          >
            表外项目分类规则
@@ -403,12 +413,82 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
             ]}
     ]
  
+
+    const columns3: ProColumns<rwaCalcConfOffbalanceprotyperuleModel>[] = [
+      { 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 : 'ruleNo',
+      width : 150
+      },
+      { title : '规则说明',
+      dataIndex : 'ruleName',
+      width : 150
+      },
+      
+      { title : '表外项目编号',
+      dataIndex : 'offobjectNo',
+      search:false,
+      width : 150
+      },
+      
+      { title : '表外项目分类名称',
+      dataIndex : 'offobjectName',
+      search:false,
+      width : 150
+      },
+      
+      { title : '信用转换系数%',
+      dataIndex : 'ccf',
+      search:false,
+      width : 150
+      },
+         { title : '分类规则',
+      dataIndex : 'ruleGetdata',
+      width : 150
+      },
+    ]
+
   function counter(counts:number) {
       counts = counts+1;
       setCount(counts);
-      `${(counts)}`.padStart(3, '0');
+    //  `${(counts)}`.padStart(3, '0');
     // count++; // 每次调用时自增
-      return counts;
+      return `${(counts)}`.padStart(3, '0');
   };
 
 
@@ -557,15 +637,26 @@ const product_list: React.FC<aaa>= (prop : aaa) => {
           </SDForm>
         </SDLayout>
         </SDModalForm>
-        
       )
       }  
 </SDModalForm>
-
-
        )}
-        
-
+       {visible3 &&(
+        <SDModalForm  title={''} onValuesChange={() => { setVisible3(false); } } visible={true} onVisibleChange={()=>{setVisible3(false); }  }  >
+       <SDLayout>
+        <ProTable
+      rowKey="productNo"
+      columns={columns3}
+      search={false}
+     actionRef={actionRef}
+     formRef={formRef}
+     dataSource={mockData1}
+     //setCurrentRow={setCurrentRow1}
+       />
+       </SDLayout>
+       </SDModalForm> 
+       )
+    }
         </SDPage>
     )
 

+ 152 - 0
Procedure/frontend/projectb/src/services/rwa/info_list.ts

@@ -0,0 +1,152 @@
+import { baseFun, BaseModel, DictTree, TableData } from "@sundata/ui-frame"
+
+/** 功能按钮信息 */
+export type SysFunButtonInfoModel = {
+    id: number;
+    buttondescr?: string;
+    buttonid?: string;
+    buttonname?: string;
+    buttonurl?: string;
+    funccode?: string;
+    offobjectNo?: string;
+  } & BaseModel;
+export type rwaCalcConfOffbalanceprotyperuleModel={
+//计算实例号
+calcindex : string;
+//起始数据日期
+sdate : string;
+//截止数据日期
+edate : string;
+//年月
+term : string;
+//数据日期
+dataDate : string;
+//表外项目编号
+offobjectNo : string;
+//规则名称
+ruleName : string;
+//规则编号
+ruleNo : string;
+//规则序号
+ruleIndex : number;
+//所属产品
+ruleProductNo : string;
+//分类规则
+ruleGetdata : string;
+//输入
+ruleIn : string;
+//输出
+ruleOut : string;
+}
+
+export type rwaCalcConfOffbalanceprotypeModel={
+    buttonList?:  rwaCalcConfOffbalanceprotyperuleModel[];
+//计算实例号
+calcindex : string;
+//起始数据日期
+sdate : string;
+//截止数据日期
+edate : string;
+//年月
+term : string;
+//数据日期
+dataDate : string;
+//表外项目编号
+offobjectNo : string;
+//表外项目名称
+offobjectName : string;
+//所属阶段
+offobjectStageId : string;
+//项目序号
+offobjectIndex : number;
+//默认输出
+defaultOut?: string;
+//上级项目代码
+offobjectSuper : string;
+//是否最细一级
+ismini : string;
+//转换系数(%)
+ccf : number;
+offobjectSuperName: string;
+yesorno :string;
+}& BaseModel;
+
+
+/** 获取菜单及按钮详情 POST /api/admin/funmanage/getDetail.do */
+export function getDetail1(body: rwaCalcConfOffbalanceprotypeModel) {
+    return baseFun.request<rwaCalcConfOffbalanceprotypeModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/getDetail1', {
+      data: body,
+    });
+  }
+
+  /** 获取菜单树 POST /api/admin/funmanage/getFunTree.do */
+export function getFunTree1() {
+    return baseFun.request<DictTree[]>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/getFunTree1', {});
+  }
+
+  export function shunxu(offobjectNo:String){
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/shunxu',{
+      params:{offobjectNo}
+    })
+  }
+  
+  export function rules_addone(body: rwaCalcConfOffbalanceprotyperuleModel) {
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/rules_addone', {
+      data: body,
+    });
+  }
+
+
+  export function rules_list(offobjectNo:any){
+    return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel[]>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/rules_list',{
+      params:{offobjectNo}
+    })
+  }
+  
+
+  /** 保存 POST /api/admin/funmanage/save.do */
+export async function save(body: rwaCalcConfOffbalanceprotypeModel) {
+  return baseFun.request<void>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/save', {
+    data: body,
+  });
+}
+  
+  /** 保存 POST /api/admin/funmanage/save.do */
+  export async function save2(body: rwaCalcConfOffbalanceprotyperuleModel[],offobjectNo:String) {
+    return baseFun.request<any>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/save2', {
+      data: body,
+      params:{offobjectNo}
+    });
+  }
+
+  //修改科目取数规则页面的查询
+export async function rules_modifyone(ruleNo:String){
+  return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/rules_modifyone',{
+     params:{ruleNo}
+  })
+  ;
+}
+
+  //修改科目取数规则页面的查询
+  export async function rules_deleteone(ruleNo:String){
+    return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/rules_deleteone',{
+       params:{ruleNo}
+    })
+    ;
+  }
+  
+ //修改科目取数规则页面的查询
+ export async function info_deleteone(offobjectNo:String){
+  return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/info_deleteone',{
+     params:{offobjectNo}
+  })
+  ;
+}
+  //修改科目取数规则页面的查询
+ export async function jiaoyan(offobjectNo:String){
+  return baseFun.request<String>('/api/product/rwa/rwaCalcConfig002offbalanceprotype/InfoListAction/jiaoyan',{
+     params:{offobjectNo}
+  })
+  ;
+}
+

+ 42 - 0
Procedure/frontend/projectb/src/services/rwa/product_list.ts

@@ -64,6 +64,40 @@ ruleGetdata : String;
 
 }
 
+export type rwaCalcConfOffbalanceprotyperuleModel={
+//计算实例号,
+calcindex : String;
+//起始数据日期,
+sdate : String;
+//截止数据日期,
+edate : String;
+//年月,
+term : String;
+//数据日期,
+dataDate : String;
+//表外项目编号,
+offobjectNo : String;
+//规则名称,
+ruleName : String;
+//规则编号,
+ruleNo : String;
+//规则序号,
+ruleIndex : number;
+//所属产品,
+ruleProductNo : String;
+//分类规则,
+ruleGetdata : String;
+//输入,
+ruleIn : String;
+//输出,
+ruleOut : string;
+//表外项目名称
+offobjectName:string;
+//转换系数(%)
+ccf : number;
+//产品编号
+productNo : any;
+}
 //产品参数的查询
 export async function productlist(body:any){
     return baseFun.request<productListModel[]>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/productlist',{
@@ -144,4 +178,12 @@ export async function product_addone2(body:rwaCalcConfProductrulesModel){
        
     })
     ;
+}
+
+//科目取数规则
+export async function select(productNo:String){
+    return baseFun.request<rwaCalcConfOffbalanceprotyperuleModel[]>('/api/product/rwa/rwaCalcConfigDataparam/ProductListAction/select',{
+        params:{productNo}
+    })
+    ;
 }