route.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  4. // 线路
  5. const route = {
  6. item: {
  7. type: String,
  8. required: true,
  9. maxLength: 200,
  10. field: { label: '项目', filter: 'select', required: true },
  11. },
  12. s_p: {
  13. type: String,
  14. required: true,
  15. maxLength: 200,
  16. field: { label: '起始地省份', filter: true, required: true },
  17. },
  18. s_c: {
  19. type: String,
  20. maxLength: 200,
  21. field: { label: '起始地城市', filter: true, required: true },
  22. },
  23. e_p: {
  24. type: String,
  25. maxLength: 200,
  26. field: { label: '目的地省份', filter: true, required: true },
  27. }, // 存储内容
  28. e_c: {
  29. type: String,
  30. maxLength: 200,
  31. field: { label: '目的地城市', filter: true, required: true },
  32. },
  33. name: {
  34. type: String,
  35. maxLength: 200,
  36. field: { label: '线路名称', filter: true, required: true },
  37. },
  38. start: {
  39. type: String,
  40. maxLength: 200,
  41. field: { label: '起始地地点' },
  42. },
  43. end: {
  44. type: String,
  45. maxLength: 200,
  46. field: { label: '目的地地点' },
  47. },
  48. status: {
  49. type: String,
  50. maxLength: 200,
  51. default: '0',
  52. field: {
  53. label: '状态',
  54. filter: 'select',
  55. type: 'select',
  56. format: (i => (i === '0' ? '使用' : '禁用')).toString(),
  57. list: [
  58. { label: '使用', value: '0' },
  59. { label: '禁用', value: '1' },
  60. ],
  61. },
  62. }, // 状态:0=>使用;1禁用
  63. owner: { type: String, required: true }, // 创建人
  64. };
  65. const schema = new Schema(route, { toJSON: { virtuals: true } });
  66. schema.index({ id: 1 });
  67. schema.index({ s_p: 1 });
  68. schema.index({ s_c: 1 });
  69. schema.index({ e_p: 1 });
  70. schema.index({ e_c: 1 });
  71. schema.index({ name: 1 });
  72. schema.index({ start: 1 });
  73. schema.index({ end: 1 });
  74. schema.index({ status: 1 });
  75. schema.index({ owner: 1 });
  76. schema.plugin(metaPlugin);
  77. module.exports = app => {
  78. const { mongoose } = app;
  79. return mongoose.model('Route', schema, 'route');
  80. };