tpl_tree_node.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * Created by Tony on 2017/5/31.
  3. * 不同的用户会有一套自己的模板结构列表
  4. */
  5. const mongoose = require('mongoose');
  6. let Schema = mongoose.Schema;
  7. // let TreeNodeSchema = new Schema({
  8. // ID:Number,
  9. // ParentID:Number,
  10. // NextSiblingID:Number,
  11. // grpType: Number, //建筑(const : 1)/公路(const 2)/其他 etc...
  12. // nodeType: Number, //节点类型:树节点(枝) 或 模板节点(叶)
  13. // tplType: Number, //概算、预算、招投标 etc...
  14. // userId: String, //用户自定义模板用
  15. // refId: Number, //引用报表模板id (引用 collection: rpt_templates)
  16. // released: Boolean,//是否已发布, refId > -1 时才有意义
  17. // name: String,
  18. // isDeleted: Boolean
  19. // });
  20. let TplNodeSchema = new Schema({
  21. nodeType: Number, //节点类型:树节点(枝) 或 模板节点(叶), 统一结构
  22. ID: Number, //template节点ID,只有在nodeType是模板节点有效
  23. refId: Number, //引用报表模板id (引用 collection: rpt_templates)
  24. name: String, //显示名称
  25. released: Boolean, //是否已发布
  26. items: [] //子节点
  27. });
  28. let RptTplTreeSchema = new Schema({
  29. compilationId: String, //编办的ObjectId
  30. // engineerId: Number, //工程专业Id(参考 /modules/common/const/engineering.js)
  31. userId: String, //用户名的object_id串
  32. properties: [], //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
  33. name: String, //显示名称
  34. released: Boolean, //是否已发布
  35. isDeleted: Boolean, //删除标记
  36. flags: Schema.Types.Mixed, //额外标记集合(这些标记可能会影响到前端显示,如‘计税方式’等)
  37. items: [] //TplNodeSchema entity
  38. });
  39. RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
  40. return this.collection.findAndModify(query, sort, doc, options, callback);
  41. };
  42. mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
  43. /*
  44. let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
  45. /*/
  46. // let TreeNodeModel = mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
  47. //*/
  48. // export {TreeNodeModel as default};