tpl_tree_node.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * Created by Tony on 2017/5/31.
  3. * 不同的用户会有一套自己的模板结构列表
  4. */
  5. import mongoose from "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. refId: Number, //引用报表模板id (引用 collection: rpt_templates)
  23. name: String, //显示名称
  24. items: [] //子节点
  25. });
  26. let RptTplTreeSchema = new Schema({
  27. compilationId: String, //编办的ObjectId
  28. engineerId: Number, //工程专业Id(参考 /modules/common/const/engineering.js)
  29. userId: Number, //userId,如果是标准模板,则为-100
  30. properties: [], //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
  31. name: String, //显示名称
  32. released: Boolean, //是否已发布
  33. isDeleted: Boolean, //删除标记
  34. items: [] //TplNodeSchema entity
  35. });
  36. RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
  37. return this.collection.findAndModify(query, sort, doc, options, callback);
  38. };
  39. /*
  40. let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
  41. /*/
  42. let TreeNodeModel = mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
  43. //*/
  44. export {TreeNodeModel as default};