在vue中的.ts文件是带类型的,开发时有自动提示信息很方便的,开发完毕后,将其中的类型去掉就可以转换成.js文件,例如函数:function GetList(rows: Row[]) 在 js中的写法就是:function GetList(rows)

    下面的代码实现了根据要求将提供的数据进行加工并计算出统计行数据

    import`` ``_`` ``from`` ``"lodash"``;

    import`` ``moment`` ``from`` ``"moment"``;``

    const`` ``cols`` = [

    ``"客群"``,

    ``"凭证序号"``,

    ``"凭证日期"``,

    ``"过帐日期"``,

    ``"过账期间"``,

    ``"参照"``,

    ``"凭证类型"``,

    ``"公司代码"``,

    ``"币别"``,

    ``"抬头文本"``,

    ``"记帐代码"``,

    ``"科目"``,

    ``"资产号"``,

    ``"金额"``,

    ``"分配号"``,

    ``"行项目文本"``,

    ``"到期日"``,

    ``"特别总账标识"``,

    ``"资产业务类型"``,

    ``"反记账"``,

    ``"成本中心"``,

    ``"利润中心"``,

    ``"内部订单"``,

    ``"贸易伙伴"``,

    ``"自动计算税额"``,

    ``"税码"``,

    ``"行业"``,

    ``"行业现金流量"``,

    ``"关联交易编码"``,

    ``"起息日"``,

    ``"付款条件"``,

    ``"付款基准日期"``,

    ``"付款参考"``,

    ``"合同号"``,

    ``"合同类型"``,

    ``"流类型"

    `];``

    `

    let`` ``dataRows`` = [{``"GROUPS"``:``"个人"``,``"ACCOUNTTIME"``:``"2018-09-26"``,``"RSVCOUNT"``:``1.0``,``"AREANAME"``:``"T3国内"``,``"RSVTYPE"``:``1``,``"SERVICEAIRPORT"``:``"PEK"``,``"KEMU"``:``"房间"``,``"SALEAMT"``:``6400.0``},{``"GROUPS"``:``"个人"``,``"ACCOUNTTIME"``:``"2018-09-26"``,``"RSVCOUNT"``:``1.0``,``"AREANAME"``:``"T3国内"``,``"RSVTYPE"``:``1``,``"SERVICEAIRPORT"``:``"PEK"``,``"KEMU"``:``"服务"``,``"SALEAMT"``:``0.0``}];``

    export`` ``default`` ``function`` ``GetList``(``rows``: ``Row``[]) {

    ``const`` ``glist`` = ``_``.``groupBy``(``rows``, ``row`` ``=>`` {

    ``return`` `````${``row``.``GROUPS``}``_``${``row``.``AREANAME``}`````;

    });``

    ``const`` ``list1`` = ``Object``.``keys``(``glist``).``map``(``key`` ``=>`` {

    ``const`` ``rows`` = ``glist``[``key``];``

    ``const`` ``keys`` = ``key``.``split``(``"_"``);``

    ``return`` ``GetRows``(``rows``, ``keys``[``0``], ``keys``[``1``]);

    });``

    ``const`` ``crows`` = ``_``.``flatten``(``list1``).``map``(``t`` ``=>`` ``ObjToRow``(``t``));

    ``return`` [``cols``, ...``crows``];

    }``

    function`` ``GetRows``(``rows``: ``Row``[], ``gname``: ``string``, ``aname``: ``string``) {

    ``let`` ``arr`` = ``rows``.``map``(``t`` ``=>`` ``GetRowObj``(``t``, ``gname``, ``aname``));

    ``const`` ``row`` = ``rows``[``0``];``

    ``let`` ``sumRow``: ``any`` = ``Object``.``assign``({}, ``row``);``

    ``sumRow``[``"客群"``] = ``row``.``GROUPS``;

    ``sumRow``[``"凭证序号"``] = ``""``;

    ``sumRow``[``"凭证日期"``] = ``row``.``ACCOUNTTIME``;

    ``sumRow``[``"过帐日期"``] = ``row``.``ACCOUNTTIME``;

    ``sumRow``[``"过账期间"``] = ``moment``(``row``.``ACCOUNTTIME``).``format``(``"YYYY-MM"``);

    ``sumRow``[``"参照"``] = ``row``.``RSVCOUNT``;

    ``sumRow``[``"凭证类型"``] = ``"SA"``;

    ``sumRow``[``"公司代码"``] = ``"3004"``;

    ``sumRow``[``"币别"``] = ``"CNY"``;

    ``sumRow``[``"抬头文本"``] = ``row``.``ACCOUNTTIME`` + ``row``.``GROUPS`` + ``row``.``SALEAMT``; ``//年月日+卡类型+消费收入``

    ``sumRow``[``"记帐代码"``] = ``"09"``;

    ``//大客户、公务,个人,政务,标准,次卡,测试

    ``if`` (``row``.``GROUPS`` == ``"政务"``) {

    ``sumRow``[``"科目"``] = ``"3004000147"``;

    } ``else`` ``if`` (``row``.``GROUPS`` == ``"次卡"``) {

    ``sumRow``[``"科目"``] = ``"3004000144"``;

    } ``else`` {

    ``sumRow``[``"科目"``] = ``"3004000120"``;

    }``

    ``sumRow``[``"资产号"``] = ``""``;

    ``sumRow``[``"金额"``] = ``rows``.``reduce``((``a``, ``b``) ``=>`` ``a`` + ``b``.``SALEAMT``, ``0``);

    ``//政务卡消费

    ``sumRow``[``"分配号"``] = ``row``.``GROUPS`` + ``"消费"``;

    ``sumRow``[``"行项目文本"``] = ``row``.``ACCOUNTTIME`` + ``row``.``GROUPS`` + ``row``.``SALEAMT``; ``//年月日+卡类型+消费收入

    ``sumRow``[``"到期日"``] = ``moment``(``row``.``ACCOUNTTIME``).``format``(``"YYYY-12-31"``);

    ``sumRow``[``"特别总账标识"``] = ``"A"``;

    ``sumRow``[``"资产业务类型"``] = ``""``;

    ``sumRow``[``"反记账"``] = ``""``;

    ``sumRow``[``"成本中心"``] = ``""``;

    ``//T1国内:3004300201/T2国内:3004300202/T2国际:3004300203/T3国内:3004300301/T3国际:3004300302

    ``if`` (``row``.``AREANAME`` == ``"T1国内"``) {

    ``sumRow``[``"利润中心"``] = ``"3004300201"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T2国内"``) {

    ``sumRow``[``"利润中心"``] = ``"3004300202"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T2国际"``) {

    ``sumRow``[``"利润中心"``] = ``"3004300203"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T3国内"``) {

    ``sumRow``[``"利润中心"``] = ``"3004300301"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T3国际"``) {

    ``sumRow``[``"利润中心"``] = ``"3004300302"``;

    }``

    ``sumRow``[``"内部订单"``] = ``""``;

    ``sumRow``[``"贸易伙伴"``] = ``""``;

    ``//贷为X 借 为空

    ``sumRow``[``"自动计算税额"``] = ``"X"``;

    ``//服务、房间X4 商品X8

    ``if`` (``row``.``KEMU`` == ``"服务"`` || ``row``.``KEMU`` == ``"房间"``) {

    ``sumRow``[``"税码"``] = ``"X4"``;

    } ``else`` {

    ``sumRow``[``"税码"``] = ``"X8"``;

    }``

    ``sumRow``[``"行业"``] = ``""``;

    ``sumRow``[``"行业现金流量"``] = ``""``;

    ``sumRow``[``"关联交易编码"``] = ``""``;

    ``sumRow``[``"起息日"``] = ``""``;

    ``sumRow``[``"付款条件"``] = ``""``;

    ``sumRow``[``"付款基准日期"``] = ``""``;

    ``sumRow``[``"付款参考"``] = ``""``;

    ``sumRow``[``"合同号"``] = ``""``;

    ``sumRow``[``"合同类型"``] = ``""``;

    ``sumRow``[``"流类型"``] = ``""``;``

    ``arr``.``push``(``sumRow``);``

    ``return`` ``arr``;``

    }``

    function`` ``GetRowObj``(``row``: ``Row``, ``gname``: ``string``, ``aname``: ``string``) {

    ``let`` ``tempRow`` = {};

    ``tempRow``[``"客群"``] = ``row``.``GROUPS``;

    ``tempRow``[``"凭证序号"``] = ``""``;

    ``tempRow``[``"凭证日期"``] = ``row``.``ACCOUNTTIME``;

    ``tempRow``[``"过帐日期"``] = ``row``.``ACCOUNTTIME``;

    ``tempRow``[``"过账期间"``] = ``moment``(``row``.``ACCOUNTTIME``).``format``(``"YYYY-MM"``);

    ``tempRow``[``"参照"``] = ``row``.``RSVCOUNT``;

    ``tempRow``[``"凭证类型"``] = ``"SA"``;

    ``tempRow``[``"公司代码"``] = ``"3004"``;

    ``tempRow``[``"币别"``] = ``"CNY"``;

    ``tempRow``[``"抬头文本"``] = ``row``.``ACCOUNTTIME`` + ``row``.``GROUPS`` + ``row``.``SALEAMT``; ``//年月日+卡类型+消费收入

    ``tempRow``[``"记帐代码"``] = ``"50"``;

    ``//服务5101112008 房间5101112001 商品(其他/其他烟酒/茅台酒)5101112018

    ``if`` (``row``.``KEMU`` == ``"服务"``) {

    ``tempRow``[``"科目"``] = ``"5101112008"``;

    } ``else`` ``if`` (``row``.``KEMU`` == ``"房间"``) {

    ``tempRow``[``"科目"``] = ``"5101112001"``;

    } ``else`` {

    ``tempRow``[``"科目"``] = ``"5101112018"``;

    }``

    ``tempRow``[``"资产号"``] = ``""``;

    ``tempRow``[``"金额"``] = ``row``.``SALEAMT``;

    ``//商品:政务(茅台酒)/政务(其他烟酒)/政务(其他商品)

    ``tempRow``[``"分配号"``] = ``row``.``GROUPS`` + ``"("`` + ``row``.``KEMU`` + ``")"``;

    ``tempRow``[``"行项目文本"``] = ``row``.``ACCOUNTTIME`` + ``row``.``GROUPS`` + ``row``.``SALEAMT``; ``//年月日+卡类型+消费收入

    ``tempRow``[``"到期日"``] = ``""``;

    ``tempRow``[``"特别总账标识"``] = ``""``;

    ``tempRow``[``"资产业务类型"``] = ``""``;

    ``tempRow``[``"反记账"``] = ``""``;

    ``tempRow``[``"成本中心"``] = ``""``;

    ``//T1国内:3004300201/T2国内:3004300202/T2国际:3004300203/T3国内:3004300301/T3国际:3004300302

    ``if`` (``row``.``AREANAME`` == ``"T1国内"``) {

    ``tempRow``[``"利润中心"``] = ``"3004300201"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T2国内"``) {

    ``tempRow``[``"利润中心"``] = ``"3004300202"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T2国际"``) {

    ``tempRow``[``"利润中心"``] = ``"3004300203"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T3国内"``) {

    ``tempRow``[``"利润中心"``] = ``"3004300301"``;

    } ``else`` ``if`` (``row``.``AREANAME`` == ``"T3国际"``) {

    ``tempRow``[``"利润中心"``] = ``"3004300302"``;

    }``

    ``tempRow``[``"内部订单"``] = ``""``;

    ``tempRow``[``"贸易伙伴"``] = ``""``;

    ``//贷为X 借 为空

    ``tempRow``[``"自动计算税额"``] = ``"X"``;

    ``//服务、房间X4 商品X8

    ``if`` (``row``.``KEMU`` == ``"服务"`` || ``row``.``KEMU`` == ``"房间"``) {

    ``tempRow``[``"税码"``] = ``"X4"``;

    } ``else`` {

    ``tempRow``[``"税码"``] = ``"X8"``;

    }``

    ``tempRow``[``"行业"``] = ``""``;

    ``tempRow``[``"行业现金流量"``] = ``""``;

    ``tempRow``[``"关联交易编码"``] = ``""``;

    ``tempRow``[``"起息日"``] = ``""``;

    ``tempRow``[``"付款条件"``] = ``""``;

    ``tempRow``[``"付款基准日期"``] = ``""``;

    ``tempRow``[``"付款参考"``] = ``""``;

    ``tempRow``[``"合同号"``] = ``""``;

    ``tempRow``[``"合同类型"``] = ``""``;

    ``tempRow``[``"流类型"``] = ``""``;``

    ``return`` ``tempRow``;

    }``

    function`` ``ObjToRow``(``tempRow``) {

    ``const`` ``row_arr`` = ``new`` ``Array``(``cols``.``length``);``

    ``for`` (``let`` ``i`` = ``0``; ``i`` < ``cols``.``length``; ``i``++) {

    ``const`` ``key`` = ``cols``[``i``];

    ``row_arr``[``i``] = ``tempRow``[``key``];

    }``

    ``return`` ``row_arr``;

    }``

    interface`` ``Row`` {

    ``GROUPS``: ``string``;

    ``ACCOUNTTIME``: ``string``;

    ``RSVCOUNT``: ``number``;

    ``AREANAME``: ``string``;

    ``RSVTYPE``: ``number``;

    ``SERVICEAIRPORT``: ``string``;

    ``KEMU``: ``string``;

    ``SALEAMT``: ``number``;

    }``