Ver código fonte

Copy模板bug + 套用计算式

TonyKang 7 anos atrás
pai
commit
5a087c451f

+ 5 - 1
modules/reports/rpt_component/jpc_ex.js

@@ -222,7 +222,11 @@ JpcExSrv.prototype.createNew = function(){
                 if (expression) {
                     let $ME = me.formulas[i];
                     // console.log(expression);
-                    eval(expression);
+                    try {
+                        eval(expression);
+                    } catch (ex) {
+                        console.log(ex);
+                    }
                 }
             }
         }

+ 16 - 0
web/maintain/report/js/rpt_tpl_calculation.js

@@ -2,6 +2,12 @@
  * Created by Tony on 2017/7/7.
  */
 
+let expr_templates = [
+    {Name: "整理序号", Expression: "let destField = $JE.F(/*指标ID*/,$CURRENT_RPT);\n  destField[JV.PROP_AD_HOC_DATA] = [];\n  for (let innerFmlIdx = 0; innerFmlIdx < $CURRENT_DATA[JV.DATA_DETAIL_DATA][0].length; innerFmlIdx++) {\n    $JE.setFieldValue(destField, $CURRENT_DATA, innerFmlIdx, (innerFmlIdx + 1));\n}"},
+    {Name: "转换大写金额", Expression: "let capF = $JE.F(/*目标指标ID*/, $CURRENT_RPT), orgF = $JE.F(/*原始指标ID*/, $CURRENT_RPT);\n $JE.setFieldValue(capF, $CURRENT_DATA, 0, $JE.$STR_UTIL.convertToCaptionNum(parseFloat($JE.getFieldValue(orgF, $CURRENT_DATA, 0, 0)).toFixed(2), true, true));"},
+    {Name: "总计汇总", Expression: "let totalFee = $JE.F(/*目标指标ID*/,$CURRENT_RPT), bill1 = $JE.F(/*原始指标ID*/,$CURRENT_RPT);\n let sumValue = 0.0;\n sumValue += parseFloat($JE.getFieldValue(bill1,$CURRENT_DATA,0,0));\n $JE.setFieldValue(totalFee,$CURRENT_DATA,0,sumValue);"}
+];
+
 let calculationTreeOprObj = {
     treeObj : null,
     currentNode: null,
@@ -14,6 +20,12 @@ let calculationTreeOprObj = {
         // $("#exprFormat").get(0).value = "";
         // $("#exprContent").get(0).value = "";
     },
+    buildExprTemplates: function () {
+        let et = $("#exprTemplatesSelect");
+        for (let i = 0; i < expr_templates.length; i++) {
+            et.append("<option>" + expr_templates[i].Name + "</option>");
+        }
+    },
     buildRunType: function() {
         let et = $("#exprRunType");
         et.append("<option value='" + JV.RUN_TYPE_BEFORE_PAGING + "'>预运行</option>");
@@ -46,6 +58,10 @@ let calculationTreeOprObj = {
             me.currentNode[JV.PROP_RUN_TYPE] = dom.value;
         }
     },
+    setTemplateExpression: function (dom) {
+        let selIdx = $("#exprTemplatesSelect")[0].selectedIndex;
+        $("#exprContent")[0].value = expr_templates[selIdx].Expression;
+    },
     changeFormat: function (dom) {
         let me = calculationTreeOprObj;
         if (me.currentNode) {

+ 12 - 12
web/maintain/report/js/rpt_tpl_main.js

@@ -8,6 +8,7 @@ let rptTplObj = {
         selectableFiledTreeOprObj.iniTree();
         preview_util.drawBorder($("#tplCanvas")[0]);
         calculationTreeOprObj.buildRunType();
+        calculationTreeOprObj.buildExprTemplates();
         preHandleObj.buildTypeData();
     }
 }
@@ -62,9 +63,9 @@ let zTreeOprObj = {
         params.isPhysically = true;
         CommonAjax.postEx("report_tpl_api/removeTreeRootNode", params, 5000, isAsync, callback, failCallback, null);
     },
-    copyReportTemplate: function(rawNode, newID, isAsync, callback, failCallback) {
+    copyReportTemplate: function(orgID, newID, isAsync, callback, failCallback) {
         let params = {};
-        params.orgRptTplId = rawNode.ID;
+        params.orgRptTplId = orgID;
         params.newRptTplId = newID;
         CommonAjax.postEx("report_tpl_api/copyRptTpl", params, 5000, isAsync, callback, failCallback, null);
     },
@@ -313,19 +314,18 @@ let zTreeOprObj = {
         let canContinue = false;
         if (isCopy) {
             me.getNewNodeID(1, function (newNodeID) {
+                let orgID = treeNodes[0].ID;
                 treeNodes[0].ID = newNodeID;
                 treeNodes[0].refId = newNodeID;
                 newTopNode = me.buildRootNodeDoc(targetTopNode);
-                me.copyReportTemplate(treeNodes[0], newNodeID, true, function(goodResult){
-                    me.updateTreeRootNode(newTopNode, false, function(rst){
-                        if (!(rst)) {
-                            displayMessage("移动请求失败!", "red", 1000);
-                        } else {
-                            canContinue = true;
-                        }
+                me.copyReportTemplate(orgID, newNodeID, true, function(goodResult){
+                    me.updateTreeRootNode(newTopNode, false, function(goodRst){
+                        canContinue = true;
+                    }, function(badRst){
+                        displayMessage("更新模板节点失败!", "red", 2000);
                     });
                 }, function(badResult){
-                    displayMessage("Copy请求失败!", "red", 1000);
+                    displayMessage("Copy请求失败!", "red", 2000);
                 });
             });
         } else {
@@ -333,7 +333,7 @@ let zTreeOprObj = {
             me.updateTreeRootNode(newTopNode, false, function(rst){
                 canContinue = true;
             }, function(badResult){
-                displayMessage("移动请求失败!", "red", 1000);
+                displayMessage("移动请求失败!", "red", 2000);
                 canContinue = false;
             });
             if (canContinue && !isCopy && me.moveSrcTopNode) {
@@ -341,7 +341,7 @@ let zTreeOprObj = {
                 me.updateTreeRootNode(newSrcTopNode, true, function(rst){
                     // canContinue = true;
                 }, function(badResult){
-                    displayMessage("移动请求失败!", "red", 1000);
+                    displayMessage("移动请求失败!", "red", 2000);
                     canContinue = true;
                 });
             }

+ 12 - 2
web/maintain/report/rpt_tpl_detail_calculation.html

@@ -9,16 +9,26 @@
         <div class="p-3" id="exprDetail">
             <div class="row">
                 <div class="form-group col-md-3">
+                    <label></label>
+                    <select class="form-control" id="exprTemplatesSelect"></select>
+                </div>
+                <div class="form-group col-md-1">
+                    <label></label>
+                    <button class="btn btn-primary" id="expr_tpl_select_btn" onclick="calculationTreeOprObj.setTemplateExpression(this)">套用</button>
+                </div>
+            </div>
+            <div class="row">
+                <div class="form-group col-md-3">
                     <label>计算式执行点</label>
                     <select class="form-control" id="exprRunType" onchange="calculationTreeOprObj.changeRunType(this)"></select>
                 </div>
-                <div class="form-group col-md-9">
+                <div class="form-group col-md-4">
                     <label>格式串(format)</label>
                     <input class="form-control" id="exprFormat" value="" onkeyup="calculationTreeOprObj.changeFormat(this)">
                 </div>
             </div>
             <div class="form-group">
-                <textarea rows="16" cols="98" id="exprContent" onkeyup="calculationTreeOprObj.changeExpression(this)"></textarea>
+                <textarea rows="16" cols="118" id="exprContent" onkeyup="calculationTreeOprObj.changeExpression(this)"></textarea>
             </div>
         </div>
     </div>