在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``;
}``