ソースを参照

财务报表明细

huangbin 4 年 前
コミット
30f85ea091

+ 2 - 2
src/common/components/description/index.vue

@@ -55,8 +55,8 @@ export default defineComponent({
     setup(props, context) {
         const show = ref<boolean>(true);
         // 切换明细
-        function changeTab(index: number) {
-            context.emit('changeTab', index);
+        function changeTab(index: number, current: TabList) {
+            context.emit('changeTab', index, current);
         }
         function close() {
             show.value = false;

+ 1 - 1
src/common/components/thirdMenu/index.vue

@@ -40,7 +40,7 @@ export default defineComponent({
             current.value = props.selectedKey;
         });
         function menuClick(value: string) {
-            context.emit('selectMenu', +value);
+            context.emit('selectMenu', +value, current);
         }
         return {
             current,

+ 11 - 2
src/common/setup/table/compose.ts

@@ -4,9 +4,9 @@ import { handleContextMenu } from "@/common/components/contextMenu/setup";
 import { getTableColumns, getTableEvent, initData } from "@/common/export/table";
 import { handleModalComponent } from '@/common/setup/asyncComponent';
 import { onUnmounted, ref, Ref } from "vue";
-import { getBtnList_ } from "./button";
+import { getBtnList_, getThirdMenuData } from "./button";
 import { handleTableDrawer } from "./drawer";
-import { ComposeTableDetailParam, ComposeTableParam, TableEventCB } from "./interface";
+import { ComposeTableDetailParam, ComposeTableParam, TableEventCB, TabList } from "./interface";
 
 export type { ComposeTableParam, ComposeTableDetailParam };
 
@@ -85,6 +85,14 @@ export function handleComposeTable_detail<T>({ queryFn, tableName, tableFilterKe
     // 表格事件
     const { expandedRowKeys, selectedRow, Rowclick } = getTableEvent<T>(events);
     cacheSelectedRow = selectedRow as Ref<T>
+    // 明细tab 列表
+    const list = getThirdMenuData()
+    const tabList = ref<TabList[]>([])
+    list[0]?.children.forEach(el => {
+        const { code, title } = el
+        tabList.value.push({ lable: title, code })
+    })
+
     initData(() => {
         queryFn();
         registerColumn(tableName, tableFilterKey);
@@ -94,5 +102,6 @@ export function handleComposeTable_detail<T>({ queryFn, tableName, tableFilterKe
         columns, registerColumn, updateColumn,  //  表头数据
         columnsDetail, registerColumnDetail, updateColumnDetail, detailTableList,// 明细表头数据
         expandedRowKeys, selectedRow, Rowclick, // 表格事件
+        tabList,
     }
 }

+ 5 - 0
src/common/setup/table/interface.ts

@@ -32,6 +32,11 @@ export interface ComposeTableDetailParam {
     tableName: keyof TableKey, // 表头key
     tableFilterKey: string[], // 表格过滤字段
 }
+
+export interface TabList {
+    lable: string,
+    code: string
+}
 export interface ButtonListKey {
     custom_info_normal: string; // 客户资料 正常
     custom_info_disabled: string; // 客户资料 停用

+ 173 - 172
src/services/go/ermcp/report/interface.ts

@@ -210,6 +210,7 @@ export interface FinanceReportReq {
     cycletype: number//      周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
     cycletime: string//      周期时间 日(YYYYMMDD) 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYMMDD周内任意一天) 全(0)【原值】
     currencyid?: number//    币种id(日报表明细)
+    sumfields?: string // 汇总维度(逗号隔开) 1-品种 2-品类 3-品牌
 }
 
 /**
@@ -271,34 +272,34 @@ export interface QryAreaSumPLReq {
  * 查询汇总损益表返回
  */
 export interface Ermcp3ArealSumPL {
-    accountname	:string;//机构名称
-    areauserid	:number;//所属机构\交易用户ID
-    begindate	:string;//开始交易日
-    currencyid	:number;//结算币种ID
-    currencyname	:string;//币种名称
-    cycletime	:string;//周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(number;
-//)【原值】
-    cycletype	:number;//周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
-    enddate	:string;//结束交易日
-    enumdicname	:string;//单位名称(套保品种)
-    futureactualpl	:number;//期货损益
-    futurefloatpl	:number;//期货浮动损益
-    goodsunitid	:number;//套保品种单位id
-    middlegoodscode	:string;//套保品种代码
-    middlegoodsid	:number;//套保品种ID(SEQ_ERMS_MIDDLEGOODS)
-    middlegoodsname	:string;//套保品种名称
-    reckondate	:string;//日照时期(yyyyMMdd)
-    spotactualpl	:number;//现货损益
-    spotfloatpl	:number;//现货浮动损益
-    sumactualpl	:number;//实际损益 = (ActualPL + FutureActualPL)
-    sumpl	:number;//汇总损益
-    updatetime	:string;//更新时间
+    accountname: string;//机构名称
+    areauserid: number;//所属机构\交易用户ID
+    begindate: string;//开始交易日
+    currencyid: number;//结算币种ID
+    currencyname: string;//币种名称
+    cycletime: string;//周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(number;
+    //)【原值】
+    cycletype: number;//周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
+    enddate: string;//结束交易日
+    enumdicname: string;//单位名称(套保品种)
+    futureactualpl: number;//期货损益
+    futurefloatpl: number;//期货浮动损益
+    goodsunitid: number;//套保品种单位id
+    middlegoodscode: string;//套保品种代码
+    middlegoodsid: number;//套保品种ID(SEQ_ERMS_MIDDLEGOODS)
+    middlegoodsname: string;//套保品种名称
+    reckondate: string;//日照时期(yyyyMMdd)
+    spotactualpl: number;//现货损益
+    spotfloatpl: number;//现货浮动损益
+    sumactualpl: number;//实际损益 = (ActualPL + FutureActualPL)
+    sumpl: number;//汇总损益
+    updatetime: string;//更新时间
 }
 
 /**
  * 查询期货报表请求
  */
-export interface QryTaFutureDataReportReq{
+export interface QryTaFutureDataReportReq {
     userid: number  //  用户ID
     querytype: number // 查询类型 1-报表 2-报表明细
     cycletype: number // 周期类型 - 0:日 1:月 2:季 3:年 4:周 5:全报表【原值】
@@ -312,50 +313,50 @@ export interface QryTaFutureDataReportReq{
 /**
  * 查询期货报表返回
  */
-export interface Ermcp3TaFutuReDataReport{
-    accountid	:number;//交易账户
-    accountname	:string;//交易账号名称
-    begindate	:string;//开始交易日
-    buyorsell	:number;//持仓方向
-    charge	:number;//手续费
-    closepl	:number;//平仓损益
-    currencyid	:number;//结算币种ID
-    cycletime	:string;//周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(number;
-//)【原值】
-    cycletype	:number;//周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
-    enddate	:string;//结束交易日
-    enumdicname	:string;//单位名称(现货商品)
-    floatpl	:number;//浮动损益
-    goodscode	:string;//交易合约代码
-    goodsgroupid	:number;//交易品种
-    goodsgroupname	:string;//交易品种名称
-    goodsgroupspotqty	:number;//交易品种期末量 (= 期末持仓量  合约乘数)
-    goodsid	:number;//交易合约
-    goodsname	:string;//交易合约名称
-    goodunitid	:number;//交易合约单位id
-    holdamount	:number;//期末持仓额
-    holdqty	:number;//期末持仓量
-    lastholdamount	:number;//当前持仓额
-    lastprice	:number;//最新价
-    middlegoodsqty	:number;//套保品种期末量 (=交易品种期末量  期货品种折算系数)
-    openamount	:number;//期末开仓额
-    oriholdamount	:number;//期初持仓额
-    oriholdqty	:number;//期初持仓量
-    oriopenamount	:number;//期初开仓额
-    outergroupcode	:string;//交易品种代码
-    reckondate	:string;//日照时期(yyyyMMdd)
-    reckonholdamount	:number;//结算持仓额
-    reckonpl	:number;//结算损益
-    reckonpl2	:number;//结算逐笔盈亏
-    reckonprice	:number;//结算价
-    relateduserid	:number;//账户关联用户ID
-    todaycloseamount	:number;//今平仓额
-    todaycloseqty	:number;//今平仓量
-    todaygoodsgroupspotqty	:number;//交易品种变化量 (=(期末持仓量 - 期初持仓量) 合约乘数)
-    todaymiddlegoodsqty	:number;//套保品种变化量 (= 交易品种变化量期货品种折算系数)
-    todayopenamount	:number;//今开仓额
-    todayopenqty	:number;//今开仓量
-    userid	:number;//账户所属用户ID
+export interface Ermcp3TaFutuReDataReport {
+    accountid: number;//交易账户
+    accountname: string;//交易账号名称
+    begindate: string;//开始交易日
+    buyorsell: number;//持仓方向
+    charge: number;//手续费
+    closepl: number;//平仓损益
+    currencyid: number;//结算币种ID
+    cycletime: string;//周期时间 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYIW) 全(number;
+    //)【原值】
+    cycletype: number;//周期类型 - 1:月 2:季 3:年 4:周 5:全报表【原值】
+    enddate: string;//结束交易日
+    enumdicname: string;//单位名称(现货商品)
+    floatpl: number;//浮动损益
+    goodscode: string;//交易合约代码
+    goodsgroupid: number;//交易品种
+    goodsgroupname: string;//交易品种名称
+    goodsgroupspotqty: number;//交易品种期末量 (= 期末持仓量  合约乘数)
+    goodsid: number;//交易合约
+    goodsname: string;//交易合约名称
+    goodunitid: number;//交易合约单位id
+    holdamount: number;//期末持仓额
+    holdqty: number;//期末持仓量
+    lastholdamount: number;//当前持仓额
+    lastprice: number;//最新价
+    middlegoodsqty: number;//套保品种期末量 (=交易品种期末量  期货品种折算系数)
+    openamount: number;//期末开仓额
+    oriholdamount: number;//期初持仓额
+    oriholdqty: number;//期初持仓量
+    oriopenamount: number;//期初开仓额
+    outergroupcode: string;//交易品种代码
+    reckondate: string;//日照时期(yyyyMMdd)
+    reckonholdamount: number;//结算持仓额
+    reckonpl: number;//结算损益
+    reckonpl2: number;//结算逐笔盈亏
+    reckonprice: number;//结算价
+    relateduserid: number;//账户关联用户ID
+    todaycloseamount: number;//今平仓额
+    todaycloseqty: number;//今平仓量
+    todaygoodsgroupspotqty: number;//交易品种变化量 (=(期末持仓量 - 期初持仓量) 合约乘数)
+    todaymiddlegoodsqty: number;//套保品种变化量 (= 交易品种变化量期货品种折算系数)
+    todayopenamount: number;//今开仓额
+    todayopenqty: number;//今开仓量
+    userid: number;//账户所属用户ID
 }
 
 /**
@@ -372,39 +373,39 @@ export interface QryAreaExpourseContractDetailReq {
  * 查询敞口合同明细(敞口报表/现货合同明细)返回
  */
 export interface Ermcp3ExposureContractDetail {
-    biztype	:number;//业务类型 1-套保 2-套利
-    brandname	:string;//品牌名称
-    buyuserid	:number;//采购方id
-    buyusername	:string;//采购方名称
-    contractno	:string;//合同编号
-    contracttype	:number;//现货合同类型 - 1:采购 -1:销售
-    convertfactor	:number;//标仓系数
-    convertratio	:number;//折算系数(套保品种)
-    curqty	:number;//今定价量
-    deliverygoodscode	:string;//现货商品代码
-    deliverygoodsid	:number;//现货商品id
-    deliverygoodsname	:string;//现货商品名称
-    diffhedgeqty	:number;//套保变动量
-    diffneedhedgeqty	:number;//应套保变动量
-    diffqty	:number;//套保品种今变动量
-    enumdicname	:string;//单位名称
-    middlegoodscode	:string;//套保品种代码
-    middlegoodsid	:number;//套保品种id
-    middlegoodsname	:string;//套保品种名称
-    needarbitrageratio	:number;//应套利比例
-    needhedgeratio	:number;//应套保比例
-    pricedqty	:number;//已定价量
-    qty	:number;//合同量
-    selluserid	:number;//销售方id
-    sellusername	:string;//销售方名称
-    spotcontractid	:string;//合同id
-    todaypricedqty	:number;//今定价量
-    tradedate	:string;//交易日
-    unitid	:number;//品类单位id
-    userid	:number;//机构id
-    wrstandardcode	:string;//品类代码
-    wrstandardid	:number;//品类id
-    wrstandardname	:string;//品类名称
+    biztype: number;//业务类型 1-套保 2-套利
+    brandname: string;//品牌名称
+    buyuserid: number;//采购方id
+    buyusername: string;//采购方名称
+    contractno: string;//合同编号
+    contracttype: number;//现货合同类型 - 1:采购 -1:销售
+    convertfactor: number;//标仓系数
+    convertratio: number;//折算系数(套保品种)
+    curqty: number;//今定价量
+    deliverygoodscode: string;//现货商品代码
+    deliverygoodsid: number;//现货商品id
+    deliverygoodsname: string;//现货商品名称
+    diffhedgeqty: number;//套保变动量
+    diffneedhedgeqty: number;//应套保变动量
+    diffqty: number;//套保品种今变动量
+    enumdicname: string;//单位名称
+    middlegoodscode: string;//套保品种代码
+    middlegoodsid: number;//套保品种id
+    middlegoodsname: string;//套保品种名称
+    needarbitrageratio: number;//应套利比例
+    needhedgeratio: number;//应套保比例
+    pricedqty: number;//已定价量
+    qty: number;//合同量
+    selluserid: number;//销售方id
+    sellusername: string;//销售方名称
+    spotcontractid: string;//合同id
+    todaypricedqty: number;//今定价量
+    tradedate: string;//交易日
+    unitid: number;//品类单位id
+    userid: number;//机构id
+    wrstandardcode: string;//品类代码
+    wrstandardid: number;//品类id
+    wrstandardname: string;//品类名称
 }
 
 /**
@@ -417,28 +418,28 @@ export interface QryAreaExpourseFutuDetailReq {
     cycletime: string           //  周期时间 日(YYYYMMDD) 月(YYYYMM) 季(YYYYQ) 年(YYYY) 周(YYYYMMDD周内任意一天) 全(0)【原值】
 }
 
-export interface Ermcp3ExposureFutuDetail{
-    accountid       :number;//交易账户id
-    accountname     :string;//交易账户
-    begindate       :string;//开始交易日
-    buyorsell       :number;//方向 number;
-//-买 1-卖
-    diffmgqty       :number;//套保品种今变化量
-    diffneedqty     :number;//应套保总量变化量
-    difftradeqty    :number;//交易品种今变化量
-    enddate :string;//结束交易日
-    enumdicname     :string;//单位名称
-    goodscode       :string;//商品代码
-    goodsid :number;//商品id
-    goodsname       :string;//商品名称
-    holdqty :number;//期末持仓量
-    middlegoodscode :string;//套保商品代码
-    middlegoodsid   :number;//套保商品id
-    middlegoodsname :string;//套保商品名称
-    oriholdqty      :number;//期初持仓量
-    todaycloseqty   :number;//今平仓量
-    todayopenqty    :number;//今开仓量
-    tradedate       :string;//交易日
+export interface Ermcp3ExposureFutuDetail {
+    accountid: number;//交易账户id
+    accountname: string;//交易账户
+    begindate: string;//开始交易日
+    buyorsell: number;//方向 number;
+    //-买 1-卖
+    diffmgqty: number;//套保品种今变化量
+    diffneedqty: number;//应套保总量变化量
+    difftradeqty: number;//交易品种今变化量
+    enddate: string;//结束交易日
+    enumdicname: string;//单位名称
+    goodscode: string;//商品代码
+    goodsid: number;//商品id
+    goodsname: string;//商品名称
+    holdqty: number;//期末持仓量
+    middlegoodscode: string;//套保商品代码
+    middlegoodsid: number;//套保商品id
+    middlegoodsname: string;//套保商品名称
+    oriholdqty: number;//期初持仓量
+    todaycloseqty: number;//今平仓量
+    todayopenqty: number;//今开仓量
+    tradedate: string;//交易日
 }
 
 
@@ -458,35 +459,35 @@ export interface QryAreaExpourseHedgeplanDetailReq {
  * 查询敞口套保计划明细(敞口报表/套保计划明细)返回
  */
 export interface Ermcp3ExposureHedgeplanDetail {
-    biztype	:number;//业务类型(期现用途,业务类型就是期现用途) 1-套保 2-套利
-    changqty	:number;//应套保总量变化量
-    contracttype	:number;//计划类型 - 1:采购 -1:销售
-    convertratio	:number;//折算系数(套保品种)
-    deliverygoodscode	:string;//现货商品代码
-    deliverygoodsid	:number;//现货商品id
-    deliverygoodsname	:string;//现货商吕名称
-    dgunitid	:number;//现货商品单位id
-    dgunitidname	:string;//单位名称(现货商品)
-    diffqty	:number;//套保品种今变动量
-    enumdicname	:string;//单位名称(品类)
-    hedgeplanid	:string;//套保计划id
-    hedgeplanno	:string;//套保计划名称
-    hedgeplanstatus	:number;//套保计划状态 - number;
-//:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
-    mgunitidname	:string;//单位名称(套保商品)
-    middlegoodscode	:string;//套保品种代码
-    middlegoodsid	:number;//套保品种id
-    middlegoodsname	:string;//套保品种名称
-    needarbitrageratio	:number;//应套利比例
-    needhedgeratio	:number;//应套保比例
-    pricedqty	:number;//已定价量
-    qty	:number;//合同量
-    tradedate	:string;//交易日(登记日)
-    unitid	:number;//品类单位id
-    userid	:number;//机构id
-    wrstandardcode	:string;//品类代码
-    wrstandardid	:number;//品类id
-    wrstandardname	:string;//品类名称
+    biztype: number;//业务类型(期现用途,业务类型就是期现用途) 1-套保 2-套利
+    changqty: number;//应套保总量变化量
+    contracttype: number;//计划类型 - 1:采购 -1:销售
+    convertratio: number;//折算系数(套保品种)
+    deliverygoodscode: string;//现货商品代码
+    deliverygoodsid: number;//现货商品id
+    deliverygoodsname: string;//现货商吕名称
+    dgunitid: number;//现货商品单位id
+    dgunitidname: string;//单位名称(现货商品)
+    diffqty: number;//套保品种今变动量
+    enumdicname: string;//单位名称(品类)
+    hedgeplanid: string;//套保计划id
+    hedgeplanno: string;//套保计划名称
+    hedgeplanstatus: number;//套保计划状态 - number;
+    //:未提交 1:待审核 2:执行中 3:正常完结 4:审核拒绝 5:异常完结 6:已撤回
+    mgunitidname: string;//单位名称(套保商品)
+    middlegoodscode: string;//套保品种代码
+    middlegoodsid: number;//套保品种id
+    middlegoodsname: string;//套保品种名称
+    needarbitrageratio: number;//应套利比例
+    needhedgeratio: number;//应套保比例
+    pricedqty: number;//已定价量
+    qty: number;//合同量
+    tradedate: string;//交易日(登记日)
+    unitid: number;//品类单位id
+    userid: number;//机构id
+    wrstandardcode: string;//品类代码
+    wrstandardid: number;//品类id
+    wrstandardname: string;//品类名称
 }
 
 /**
@@ -502,27 +503,27 @@ export interface QryAreaExpourseParamChLogDetailReq {
 /**
  * 查询敞口参数调整明细(敞口报表/参数调整明细)返回
  */
-export interface Ermcp3ExposureParamChLog{
-    accountid	:number;//期货账户ID (作废, 默认为number;
-//)
-    aftervalue	:number;//应套保\套利量变更后(调整后应套保总量)
-    areauserid	:number;//所属机构\交易用户ID
-    beforevalue	:number;//应套保\套利量变更前(调整前应套保总量)
-    begindate	:string;//开始交易日
-    changelogtype	:number;//变更流水类型 - 1:套保比率变更 2:套利比率变更
-    curvalue	:number;//当前套保\套利量(套保总量|套利总量)
-    diffvalue	:number;//应套保总量变化量
-    enddate	:string;//结束交易日
-    logdatetime	:string;//流水日期
-    logid	:string;//流水ID(6number;
-//9+Unix秒时间戳(1number;
-//位)+xxxxxx)
-    middlegoodscode	:string;//套保品种代码
-    middlegoodsid	:number;//套保品种
-    middlegoodsname	:string;//套保品种名称
-    paramaftervalue	:number;//参数变更后(调整后参数值)
-    parambeforevalue	:number;//参数变更前(调整前参数值)
-    tradedate	:string;//交易日(yyyyMMdd)
+export interface Ermcp3ExposureParamChLog {
+    accountid: number;//期货账户ID (作废, 默认为number;
+    //)
+    aftervalue: number;//应套保\套利量变更后(调整后应套保总量)
+    areauserid: number;//所属机构\交易用户ID
+    beforevalue: number;//应套保\套利量变更前(调整前应套保总量)
+    begindate: string;//开始交易日
+    changelogtype: number;//变更流水类型 - 1:套保比率变更 2:套利比率变更
+    curvalue: number;//当前套保\套利量(套保总量|套利总量)
+    diffvalue: number;//应套保总量变化量
+    enddate: string;//结束交易日
+    logdatetime: string;//流水日期
+    logid: string;//流水ID(6number;
+    //9+Unix秒时间戳(1number;
+    //位)+xxxxxx)
+    middlegoodscode: string;//套保品种代码
+    middlegoodsid: number;//套保品种
+    middlegoodsname: string;//套保品种名称
+    paramaftervalue: number;//参数变更后(调整后参数值)
+    parambeforevalue: number;//参数变更前(调整前参数值)
+    tradedate: string;//交易日(yyyyMMdd)
 }
 
 

+ 98 - 43
src/views/report/finance-report/list/finance_report_finance/index.vue

@@ -1,31 +1,39 @@
 <template>
   <!-- 财务报表 -->
-  <div class="finance-report"
+  <div class="finance-report table-height"
        :loading="loading">
-    <Filter @update="update"></Filter>
-    <contextMenu :contextMenuList="forDataBtn">
-      <a-table :columns="columns"
-               class="topOrderTable"
-               :pagination="false"
-               :expandedRowKeys="expandedRowKeys"
-               :customRow="Rowclick"
-               rowKey="key"
-               :data-source="tableList"
-               :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
-      </a-table>
-    </contextMenu>
+    <Filter @update="search"></Filter>
+    <a-table :columns="columns"
+             class="topOrderTable"
+             :pagination="false"
+             :expandedRowKeys="expandedRowKeys"
+             :customRow="Rowclick"
+             rowKey="key"
+             :data-source="tableList"
+             :scroll="{ x: '100%', y: 'calc(100vh - 163px)' }">
+    </a-table>
+    <!-- 明细 -->
+    <Description v-if="visible"
+                 @close="closeDrawer"
+                 @changeTab="changeTab"
+                 :columns="columnsDetail"
+                 :tabList="tabList"
+                 :tableList="detailTableList" />
   </div>
 </template>
 
 <script lang="ts">
 import Filter from '../../components/filterTable/index.vue';
-import { defineComponent, initData, getTableColumns, getTableEvent, getBtnList, contextMenu, BtnList } from '@/common/export/table';
-import { queryTableList } from '../../../setup';
+import { defineComponent, contextMenu, BtnList, queryTableList } from '@/common/export/table';
 import { TypeAndTime } from '@/views/report/interface';
 import { handleInitTypeAndTime } from '@/views/report/setup';
-import { Ermcp3FinanceReport } from '@/services/go/ermcp/report/interface';
+import { Ermcp3FinanceReport, FinanceReportReq } from '@/services/go/ermcp/report/interface';
 import { qryFinanceReport } from '@/services/go/ermcp/report';
-import { getAoletype_string } from '@/services/bus/user';
+import { ComposeTableDetailParam, handleComposeTable_detail } from '@/common/setup/table/compose';
+import Description from '@/common/components/description/index.vue';
+import { TabList } from '@/common/setup/table/interface';
+import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
+import { watchEffect } from 'vue';
 
 export default defineComponent({
     name: 'finance-report',
@@ -33,45 +41,92 @@ export default defineComponent({
         Filter,
         contextMenu,
         BtnList,
+        Description,
     },
     setup() {
-        // 表头数据
-        const { columns, registerColumn, updateColumn } = getTableColumns();
-        // 表格事件
-        const { expandedRowKeys, selectedRow, Rowclick, btnClick } = getTableEvent<Ermcp3FinanceReport>({});
-        // // 表格操作按钮列表
-        // const { commonBtn, forDataBtn } = getBtnList('warehouse_info_normal', true);
         // 表格列表数据
-        const { loading, tableList, queryTable } = queryTableList<Ermcp3FinanceReport>(qryFinanceReport);
-        initData(() => {
+        const { loading, tableList, queryTable } = queryTableList<Ermcp3FinanceReport>();
+        // 获取列表数据
+        const queryTableAction = () => {
             const { getInitTime, getInitType } = handleInitTypeAndTime();
-
+            const param: FinanceReportReq = {
+                cycletype: getInitType(),
+                cycletime: getInitTime(),
+                querytype: 1,
+            };
             // 获取列表数据
-            queryTable({ cycletype: getInitType(), cycletime: getInitTime() });
-            // 注册表头信息 过滤
-            registerColumn('table_pcweb_finance_report', []);
-        });
-        function update(value: TypeAndTime) {
-            queryTable(value);
-        }
-
-        return {
+            queryTable(qryFinanceReport, param);
+        };
+        const param: ComposeTableDetailParam = {
+            queryFn: queryTableAction, // 查询表格数据
+            tableName: 'table_pcweb_finance_report', // 表头key
+            tableFilterKey: [], // 表格过滤字段
+        };
+        const {
+            visible,
+            closeDrawer, // 控制 drawer 组件是否显示
             columns,
-
+            updateColumn, //  表头数据
+            columnsDetail,
+            registerColumnDetail,
+            detailTableList, // 明细表头数据
             expandedRowKeys,
             selectedRow,
-            Rowclick,
-            loading,
-            tableList,
-            queryTable,
-            btnClick,
-            update,
-        };
+            Rowclick, // 表格事件
+            tabList,
+        } = handleComposeTable_detail<Ermcp3FinanceReport>(param);
+
+        // 切换明细
+        function changeTab(index: number, current: TabList) {
+            const { code } = current;
+            const data = selectedRow.value as Ermcp3FinanceReport;
+            const { cycletype, cycletime, currencyid } = data;
+            const param: FinanceReportReq = {
+                querytype: 2,
+                cycletype,
+                cycletime,
+                currencyid,
+                sumfields: '2',
+            };
+            if (code === 'finance_report_finance_category_breakdown') {
+                // 品类明细
+                // 注册表头
+                registerColumnDetail('table_pcweb_financial_statement_category_breakdown', []);
+                param.sumfields = '2';
+            } else if (code === 'finance_report_finance_brand_details') {
+                // 品牌明细
+                // 注册表头
+                registerColumnDetail('table_pcweb_inventory_commodity_report_brand_details', []);
+                param.sumfields = '3';
+            } else {
+                console.warn('财务报表 新增明细,请开发人员配置');
+                return;
+            }
+            // 查询明细数据
+            queryResultLoadingAndInfo(qryFinanceReport, loading, param).then((res) => {
+                detailTableList.value = res;
+            });
+        }
+        watchEffect(() => {
+            if (visible.value) {
+                if (tabList.value.length) {
+                    changeTab(0, tabList.value[0]);
+                }
+            }
+        });
+        function search(value: TypeAndTime) {
+            const obj = Object.assign(value, { querytype: 1 });
+            queryTable(qryFinanceReport, obj);
+        }
+
+        return { loading, tableList, visible, closeDrawer, columns, updateColumn, search, columnsDetail, detailTableList, expandedRowKeys, selectedRow, Rowclick, tabList, changeTab };
     },
 });
 </script>
 
 <style lang="less">
 .finance-report {
+    position: relative;
+    overflow: hidden;
 }
 </style>;