module.interface.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { Rule, RuleType } from '@midwayjs/validate';
  2. import { ApiProperty } from '@midwayjs/swagger';
  3. import { SearchBase } from 'free-midway-component';
  4. import get = require('lodash/get');
  5. const dealVO = (cla, data) => {
  6. for (const key in cla) {
  7. const val = get(data, key);
  8. if (val || val === 0) cla[key] = val;
  9. }
  10. };
  11. export class FVO_module {
  12. constructor(data: object) {
  13. dealVO(this, data);
  14. }
  15. @ApiProperty({ description: '数据id' })
  16. _id: string = undefined;
  17. @ApiProperty({ description: '标题' })
  18. 'title': string = undefined;
  19. @ApiProperty({ description: '图片' })
  20. 'file': Array<any> = undefined;
  21. @ApiProperty({ description: '简介' })
  22. 'brief': string = undefined;
  23. @ApiProperty({ description: '路由' })
  24. 'route': string = undefined;
  25. @ApiProperty({ description: '排序' })
  26. 'sort': number = undefined;
  27. @ApiProperty({ description: '是否使用' })
  28. 'is_use': string = undefined;
  29. }
  30. export class QDTO_module extends SearchBase {
  31. constructor() {
  32. const like_prop = [];
  33. const props = ['title', 'is_use'];
  34. const mapping = [];
  35. super({ like_prop, props, mapping });
  36. }
  37. @ApiProperty({ description: '标题' })
  38. 'title': string = undefined;
  39. @ApiProperty({ description: '排序' })
  40. 'sort': number = undefined;
  41. @ApiProperty({ description: '是否使用' })
  42. 'is_use': string = undefined;
  43. }
  44. export class QVO_module extends FVO_module {
  45. constructor(data: object) {
  46. super(data);
  47. dealVO(this, data);
  48. }
  49. }
  50. export class CDTO_module {
  51. @ApiProperty({ description: '标题' })
  52. @Rule(RuleType['string']().empty(''))
  53. 'title': string = undefined;
  54. @ApiProperty({ description: '图片' })
  55. @Rule(RuleType['array']().empty(''))
  56. 'file': Array<any> = undefined;
  57. @ApiProperty({ description: '简介' })
  58. @Rule(RuleType['string']().empty(''))
  59. 'brief': string = undefined;
  60. @ApiProperty({ description: '路由' })
  61. @Rule(RuleType['string']().empty(''))
  62. 'route': string = undefined;
  63. @ApiProperty({ description: '排序' })
  64. @Rule(RuleType['number']().empty(''))
  65. 'sort': number = undefined;
  66. @ApiProperty({ description: '是否使用' })
  67. @Rule(RuleType['string']().empty(''))
  68. 'is_use': string = undefined;
  69. }
  70. export class CVO_module extends FVO_module {
  71. constructor(data: object) {
  72. super(data);
  73. dealVO(this, data);
  74. }
  75. }
  76. export class UDTO_module extends CDTO_module {
  77. @ApiProperty({ description: '数据id' })
  78. @Rule(RuleType['string']().empty(''))
  79. _id: string = undefined;
  80. }
  81. export class UVAO_module extends FVO_module {
  82. constructor(data: object) {
  83. super(data);
  84. dealVO(this, data);
  85. }
  86. }