flexbiz-server
Version:
Flexible Server
10 lines (9 loc) • 4.4 kB
JavaScript
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("<%")>=0||$html_template_page$$.indexOf("%>")>=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>")};