tpl_tree_node.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. 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: Number, //userId,如果是标准模板,则为-100
  32. properties: [], //这是一个预留的属性,假定未来还会有不同的划分细节(如:招标/投标/清单 ... etc)
  33. name: String, //显示名称
  34. released: Boolean, //是否已发布
  35. isDeleted: Boolean, //删除标记
  36. items: [] //TplNodeSchema entity
  37. });
  38. RptTplTreeSchema.statics.findAndModify = function (query, sort, doc, options, callback) {
  39. return this.collection.findAndModify(query, sort, doc, options, callback);
  40. };
  41. /*
  42. let TreeNodeModel = mongoose.model("rpt_tpl_tree", TreeNodeSchema, "rpt_tpl_tree");
  43. /*/
  44. let TreeNodeModel = mongoose.model("rpt_tpl_tree", RptTplTreeSchema, "rpt_tpl_tree");
  45. //*/
  46. export {TreeNodeModel as default};