mode.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  4. // 方式
  5. const mode = {
  6. name: {
  7. type: String,
  8. required: true,
  9. maxLength: 200,
  10. field: { label: '方式名称', filter: true, required: true },
  11. },
  12. route: {
  13. type: String,
  14. required: true,
  15. maxLength: 200,
  16. field: { label: '线路', required: true },
  17. },
  18. price: {
  19. type: String,
  20. required: true,
  21. maxLength: 200,
  22. field: { label: '价格', filter: true, required: true },
  23. },
  24. is_lf: {
  25. type: Boolean,
  26. required: true,
  27. field: {
  28. label: '是否量份收费',
  29. required: true,
  30. format: (i => (i ? '是' : '否')).toString(),
  31. type: 'radio',
  32. list: [
  33. { label: '是', value: true },
  34. { label: '否', value: false },
  35. ],
  36. },
  37. },
  38. send_type: {
  39. type: String,
  40. maxLength: 200,
  41. field: {
  42. label: '发货方式',
  43. type: 'radio',
  44. list: [
  45. { label: '整车', value: '整车' },
  46. { label: '零担', value: '零担' },
  47. ],
  48. },
  49. },
  50. computed_type: {
  51. type: String,
  52. maxLength: 200,
  53. field: {
  54. label: '计费方式',
  55. type: 'radio',
  56. list: [
  57. { label: '按体积', value: '按体积' },
  58. { label: '按重量', value: '按重量' },
  59. ],
  60. },
  61. },
  62. status: {
  63. type: String,
  64. maxLength: 200,
  65. default: '0',
  66. field: {
  67. label: '状态',
  68. filter: 'select',
  69. type: 'select',
  70. format: (i => (i === '0' ? '使用' : '禁用')).toString(),
  71. list: [
  72. { label: '使用', value: '0' },
  73. { label: '禁用', value: '1' },
  74. ],
  75. },
  76. }, // 状态:0=>使用;1禁用
  77. owner: { type: String, required: true }, // 创建人
  78. };
  79. const schema = new Schema(mode, { toJSON: { virtuals: true } });
  80. schema.index({ id: 1 });
  81. schema.index({ name: 1 });
  82. schema.index({ route: 1 });
  83. schema.index({ price: 1 });
  84. schema.index({ owner: 1 });
  85. schema.plugin(metaPlugin);
  86. module.exports = app => {
  87. const { mongoose } = app;
  88. return mongoose.model('Mode', schema, 'mode');
  89. };