UNPKG

flexbiz-server

Version:

Flexible Server

10 lines (9 loc) 4.4 kB
const ngcompile=require("ng-node-compile"),ejs=require("ejs"),rpt=global.getModel("rpt"),{evalute,prepareParameters}=require("../libs/utils"),utils=require("../libs/utils"),moment=require("moment"),numeral=require("numeral"); module.exports=async function($html_template_page$$,$_data_data_result$$){var $func_string_rptConfig_str_row_vt_cell_1$$;$_data_data_result$$={...$_data_data_result$$};if(global.mongoose.Types.ObjectId.isValid($html_template_page$$)&&($func_string_rptConfig_str_row_vt_cell_1$$=await rpt.findOne({_id:$html_template_page$$}).lean())){if(($html_template_page$$=$func_string_rptConfig_str_row_vt_cell_1$$.html_template)&&$func_string_rptConfig_str_row_vt_cell_1$$.handle_data_expression&&$func_string_rptConfig_str_row_vt_cell_1$$.handle_data_expression.indexOf("async ")< 0){$_data_data_result$$.details&&($_data_data_result$$.details=$_data_data_result$$.details.map($d$$=>$d$$.toObject?$d$$.toObject():{...$d$$}));var $func_string$$=`return (async ()=>${$func_string_rptConfig_str_row_vt_cell_1$$.handle_data_expression})`;try{await evalute($func_string$$,{data:$_data_data_result$$,moment,numeral,utils})()}catch($e$$){Logger.error("[htmlReport] [handle_data_expression]",$e$$,$func_string$$)}}$html_template_page$$&&$func_string_rptConfig_str_row_vt_cell_1$$.parameters&& await prepareParameters($func_string_rptConfig_str_row_vt_cell_1$$.parameters,$_data_data_result$$,$_data_data_result$$)}if(!$html_template_page$$)return"";$func_string_rptConfig_str_row_vt_cell_1$$="return `"+$html_template_page$$+"`";try{Logger.info("[htmlReport] render html use string template...");$html_template_page$$=evalute($func_string_rptConfig_str_row_vt_cell_1$$,{data:$_data_data_result$$,moment,numeral,utils});var $key_for_find_result$$=utils.sanitizeHtm($html_template_page$$);if(!$key_for_find_result$$.safe)return Logger.info("HTML ch\u1ee9a n\u1ed9i dung nguy hi\u1ec3m, \u0111\u00e3 \u0111\u01b0\u1ee3c l\u00e0m s\u1ea1ch:", $key_for_find_result$$.cleaned),"<div style='color:red;padding:20px'>Kh\u00f4ng th\u1ec3 hi\u1ec7n th\u1ecb \u0111\u01b0\u1ee3c m\u1eabu in. L\u1ed7i: HTML ch\u1ee9a n\u1ed9i dung nguy hi\u1ec3m</div>"}catch($e$$){return Logger.error("[htmlReport] [render html use string template]",$e$$),`<div style='color:red;padding:20px'>Kh\u00f4ng th\u1ec3 hi\u1ec7n th\u1ecb \u0111\u01b0\u1ee3c m\u1eabu in. L\u1ed7i: ${$e$$.message||$e$$.error}</div>${$html_template_page$$}`}for(let $field$$ in $_data_data_result$$)Array.isArray($_data_data_result$$[$field$$])&& ($key_for_find_result$$=`{{tb:${$field$$}.`,$func_string_rptConfig_str_row_vt_cell_1$$=$html_template_page$$.indexOf($key_for_find_result$$),$func_string_rptConfig_str_row_vt_cell_1$$>0&&($func_string_rptConfig_str_row_vt_cell_1$$=$html_template_page$$.substring(0,$func_string_rptConfig_str_row_vt_cell_1$$),$func_string$$=$func_string_rptConfig_str_row_vt_cell_1$$.split("<tr"),$func_string$$.length>0&&($func_string$$[$func_string$$.length-1]=` ng-repeat='_${$field$$} in ${$field$$}'${$func_string$$[$func_string$$.length- 1]}`,$func_string$$=$func_string$$.join("<tr"),$html_template_page$$=$html_template_page$$.replace($func_string_rptConfig_str_row_vt_cell_1$$,$func_string$$))),$html_template_page$$=$html_template_page$$.split($key_for_find_result$$).join(`{{_${$field$$}.`));$html_template_page$$.indexOf("print-content")<0&&($html_template_page$$=`<div id="print-content">${$html_template_page$$}</div>`);$html_template_page$$=unescape($html_template_page$$);if($html_template_page$$.indexOf("ng-")>=0||$html_template_page$$.indexOf("{{")>= 0)try{$html_template_page$$=(new ngcompile([])).$compile($html_template_page$$)($_data_data_result$$)}catch($e$$){Logger.error($e$$)}if($html_template_page$$.indexOf("&lt;%")>=0||$html_template_page$$.indexOf("%&gt;")>=0||$html_template_page$$.indexOf("<%")>=0||$html_template_page$$.indexOf("%>")>=0)try{$html_template_page$$=ejs.render($html_template_page$$,$_data_data_result$$)}catch($e$$){Logger.error($e$$)}$_data_data_result$$=utils.sanitizeHtm($html_template_page$$);return $_data_data_result$$.safe? $html_template_page$$:(Logger.info("HTML ch\u1ee9a n\u1ed9i dung nguy hi\u1ec3m, \u0111\u00e3 \u0111\u01b0\u1ee3c l\u00e0m s\u1ea1ch:",$_data_data_result$$.cleaned),"<div style='color:red;padding:20px'>Kh\u00f4ng th\u1ec3 hi\u1ec7n th\u1ecb \u0111\u01b0\u1ee3c m\u1eabu in. L\u1ed7i: HTML ch\u1ee9a n\u1ed9i dung nguy hi\u1ec3m</div>")};