treaty.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 'use strict';
  2. const Schema = require('mongoose').Schema;
  3. const moment = require('moment');
  4. const metaPlugin = require('naf-framework-mongoose/lib/model/meta-plugin');
  5. // 合同
  6. const treaty = {
  7. client: {
  8. type: String,
  9. required: true,
  10. maxLength: 200,
  11. field: { label: '客户', filter: 'select', required: true },
  12. },
  13. number: {
  14. type: String,
  15. required: true,
  16. maxLength: 200,
  17. field: { label: '合同编号', filter: true, required: true },
  18. },
  19. jf: {
  20. type: String,
  21. maxLength: 200,
  22. field: { label: '甲方', filter: true },
  23. },
  24. yf: {
  25. type: String,
  26. maxLength: 200,
  27. field: { label: '乙方' },
  28. }, // 存储内容
  29. period: {
  30. type: String,
  31. maxLength: 200,
  32. field: { label: '周期' },
  33. },
  34. settle_up: { type: String, maxLength: 200, field: { label: '结算方式' } },
  35. settle_up_period: {
  36. type: String,
  37. maxLength: 200,
  38. field: { label: '结算周期' },
  39. },
  40. expiry_date: { type: String, required: true, maxLength: 200, field: { label: '截止日期', type: 'date' } },
  41. status: {
  42. type: String,
  43. maxLength: 200,
  44. default: '0',
  45. field: {
  46. label: '状态',
  47. filter: 'select',
  48. type: 'select',
  49. format: (i => (i === '0' ? '使用' : '禁用')).toString(),
  50. list: [
  51. { label: '使用', value: '0' },
  52. { label: '禁用', value: '1' },
  53. ],
  54. },
  55. }, // 状态:0=>使用;1禁用
  56. owner: { type: String, required: true }, // 创建人
  57. create_date: { type: String, default: moment().format('YYYY-MM-DD') },
  58. };
  59. const schema = new Schema(treaty, { toJSON: { virtuals: true } });
  60. schema.index({ id: 1 });
  61. schema.index({ client: 1 });
  62. schema.index({ number: 1 });
  63. schema.index({ jf: 1 });
  64. schema.index({ status: 1 });
  65. schema.index({ owner: 1 });
  66. schema.plugin(metaPlugin);
  67. module.exports = app => {
  68. const { mongoose } = app;
  69. return mongoose.model('Treaty', schema, 'treaty');
  70. };