tpl_tree_node.js 2.0 KB

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