TonyKang 7 anos atrás
pai
commit
5c9f6002ab

+ 11 - 10
modules/all_models/tpl_tree_node.js

@@ -28,14 +28,15 @@ let TplNodeSchema = new Schema({
 });
 
 let RptTplTreeSchema = new Schema({
-    compilationId: String,  //编办的ObjectId
-    // engineerId: Number,     //工程专业Id(参考 /modules/common/const/engineering.js)
-    userId: String,        //用户名的object_id串
-    properties: [],         //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
-    name: String,           //显示名称
-    released: Boolean,      //是否已发布
-    isDeleted: Boolean,     //删除标记
-    items: []               //TplNodeSchema entity
+    compilationId: String,      //编办的ObjectId
+    // engineerId: Number,         //工程专业Id(参考 /modules/common/const/engineering.js)
+    userId: String,             //用户名的object_id串
+    properties: [],             //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
+    name: String,               //显示名称
+    released: Boolean,          //是否已发布
+    isDeleted: Boolean,         //删除标记
+    flags: Schema.Types.Mixed,  //额外标记集合(这些标记可能会影响到前端显示,如‘计税方式’等)
+    items: []                   //TplNodeSchema entity
 });
 RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
     return this.collection.findAndModify(query, sort, doc, options, callback);
@@ -43,8 +44,8 @@ RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, ca
 
 mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
 /*
-let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
-/*/
+ let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
+ /*/
 // let TreeNodeModel = mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
 //*/
 

+ 6 - 0
web/maintain/report/html/rpt_tpl_dtl_info.html

@@ -45,6 +45,12 @@
                     <input class="form-control input-sm" id="element_content_width" type="number" value="4.0" step="0.1" min="0" max="50" onchange="zTreeOprObj.changeProperty(`流水式表_信息.流水式表_数据.CommonWidth`, this)" disabled>
                 </div>
             </div>
+            <div class="row" id="element_adhoc_flags" style="display: none">
+                <div class="input-group col-2">
+                    <div class="input-group-addon">计税方式</div>
+                    <select class="form-control input-sm" id="element_flags_select" onchange="zTreeOprObj.onChangeFlag('taxType', this)"><option value ="NA">N/A</option><option value ="1">一般计税</option><option value ="2">简易计税</option></select>
+                </div>
+            </div>
         </div>
     </div>
 </div>

+ 36 - 1
web/maintain/report/js/rpt_tpl_main.js

@@ -143,6 +143,9 @@ let zTreeOprObj = {
                 items: me.private_build_items(subNode.items, null),
                 name: subNode.name
             };
+            if (subNode.hasOwnProperty('flags')) {
+                rst.flags = subNode.flags;
+            }
         }
         return rst;
     },
@@ -163,6 +166,9 @@ let zTreeOprObj = {
                     ir.name = item.name;
                     ir.ID = item.ID;
                     ir.released = isReleased;
+                    if (item.hasOwnProperty('flags')) {
+                        ir.flags = item.flags;
+                    }
                     ir.items = me.private_build_items(item.items);
                     itemRst.push(ir);
                 }
@@ -538,7 +544,8 @@ let zTreeOprObj = {
                 // tplNode.style = "background:url(/lib/ztree/css/img/diy/3.png) 0 0 no-repeat;"
             } else {
                 //设置白板
-                if (!tplNode.isParent) tplNode.icon = "/lib/ztree/css/img/diy/10.png";
+                // if (!tplNode.isParent) tplNode.icon = "/lib/ztree/css/img/diy/10.png";
+                if (!tplNode.isParent) tplNode.className = "button ico_docu";
             }
             if (tplNode.items && tplNode.items.length > 0) {
                 for (let subTplNode of tplNode.items) {
@@ -736,6 +743,23 @@ let zTreeOprObj = {
             }
         }
     },
+    onChangeFlag: function(flagProp, flagDom){
+        let me = zTreeOprObj;
+        if (me.currentNode && me.currentNode.nodeType === RT.NodeType.TEMPLATE) {
+            if (!me.currentNode.hasOwnProperty("flags")) {
+                me.currentNode.flags = {};
+            }
+            me.currentNode.flags[flagProp] = flagDom.selectedOptions[0].value;
+            let subTopNode = me.getParentNodeByNodeLevel(me.currentNode, NODE_LEVEL_COMPILATION_NEW + 1);
+            let topPNode = subTopNode.getParentNode();
+            let rawNode = me.buildSubRootNodeDoc(subTopNode);
+            me.updateSubNode(topPNode, rawNode, true, function(rst){
+                if (!(rst)) {
+                    alert('修改标记:[' + flagProp + '] 失败!');
+                }
+            });
+        }
+    },
 
     createNewTpl: function () {
         let me = zTreeOprObj, params = {};
@@ -825,6 +849,17 @@ let zTreeOprObj = {
                             me.currentNode.rptTpl["GROUP_KEY"] = grp_keys.join("_");
                         }
                         tplHelper.refreshTplView(me.currentNode.rptTpl);
+                        if (me.currentNode.hasOwnProperty('flags')) {
+                            if (me.currentNode.flags.hasOwnProperty('taxType')) {
+                                let val = parseInt(me.currentNode.flags['taxType']);
+                                $("#element_flags_select")[0].selectedIndex = val;
+                            } else {
+                                $("#element_flags_select")[0].selectedIndex = 0;
+                            }
+                        } else {
+                            $("#element_flags_select")[0].selectedIndex = 0;
+                        }
+
                         if ($("#rpt_tpl_visual_tab")[0].className === "nav-link p-1 active") {
                             setTimeout(function(){visualJumbo.iniSpreadJs(); visualJumbo.setupTpl()}, 50)
                         }