daily.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. 'use strict';
  2. const moment = require('moment');
  3. const Schema = require('mongoose').Schema;
  4. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  5. // 车辆日常维护
  6. const daily = {
  7. car_no: {
  8. type: String,
  9. required: true,
  10. maxLength: 200,
  11. field: { label: '车牌号', filter: 'select', required: true, type: 'select', format: true },
  12. row: 1,
  13. },
  14. money: {
  15. type: Number,
  16. required: true,
  17. maxLength: 200,
  18. field: { label: '金额', filter: true, required: true, type: 'number' },
  19. row: 2,
  20. },
  21. item: {
  22. type: String,
  23. required: true,
  24. maxLength: 200,
  25. field: { label: '项目', filter: true, required: true },
  26. row: 3,
  27. },
  28. date: {
  29. type: String,
  30. maxLength: 200,
  31. default: moment().format('YYYY-MM-DD'),
  32. field: { label: '维护时间', type: 'date', required: true, filter: 'date' },
  33. row: 4,
  34. },
  35. remark: {
  36. type: String,
  37. required: false,
  38. maxLength: 200,
  39. field: {
  40. label: '备注',
  41. type: 'textarea',
  42. options: { autosize: { minRows: 3, maxRows: 5 } },
  43. },
  44. row: 5,
  45. },
  46. status: {
  47. type: String,
  48. maxLength: 200,
  49. default: '0',
  50. field: {
  51. label: '状态',
  52. filter: 'select',
  53. type: 'radio',
  54. format: (i => (i === '0' ? '未结算' : '已结算')).toString(),
  55. list: [
  56. { label: '未结算', value: '0' },
  57. { label: '已结算', value: '1' },
  58. ],
  59. },
  60. row: 6,
  61. },
  62. };
  63. const schema = new Schema(daily, { toJSON: { virtuals: true } });
  64. schema.index({ id: 1 });
  65. schema.index({ car_no: 1 });
  66. schema.index({ money: 1 });
  67. schema.index({ item: 1 });
  68. schema.index({ date: 1 });
  69. schema.index({ status: 1 });
  70. schema.plugin(metaPlugin);
  71. module.exports = app => {
  72. const { mongoose } = app;
  73. return mongoose.model('Daily', schema, 'daily');
  74. };