menus.interface.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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_menus {
  12. constructor(data: object) {
  13. dealVO(this, data);
  14. }
  15. @ApiProperty({ description: '数据id' })
  16. _id: string = undefined;
  17. @ApiProperty({ description: '菜单名称' })
  18. 'name': string = undefined;
  19. @ApiProperty({ description: '路由名称' })
  20. 'route_name': string = undefined;
  21. @ApiProperty({ description: '国际化编码' })
  22. 'i18n_code': string = undefined;
  23. @ApiProperty({ description: '父级菜单' })
  24. 'parent_id': string = undefined;
  25. @ApiProperty({ description: '显示顺序' })
  26. 'order_num': number = undefined;
  27. @ApiProperty({ description: '路由地址' })
  28. 'path': string = undefined;
  29. @ApiProperty({ description: '组件地址' })
  30. 'component': string = undefined;
  31. @ApiProperty({ description: '菜单类型' })
  32. 'type': string = undefined;
  33. @ApiProperty({ description: '图标' })
  34. 'icon': string = undefined;
  35. @ApiProperty({ description: '功能列表' })
  36. 'config': Array<any> = undefined;
  37. @ApiProperty({ description: '是否为默认菜单' })
  38. 'is_default': string = undefined;
  39. @ApiProperty({ description: '备注' })
  40. 'remark': string = undefined;
  41. @ApiProperty({ description: '是否启用' })
  42. 'is_use': string = undefined;
  43. }
  44. export class QDTO_menus extends SearchBase {
  45. constructor() {
  46. const like_prop = [];
  47. const props = ['parent_id', 'type', 'is_use'];
  48. const mapping = [];
  49. super({ like_prop, props, mapping });
  50. }
  51. @ApiProperty({ description: '父级菜单' })
  52. 'parent_id': string = undefined;
  53. @ApiProperty({ description: '菜单类型' })
  54. 'type': string = undefined;
  55. @ApiProperty({ description: '是否启用' })
  56. 'is_use': string = undefined;
  57. }
  58. export class QVO_menus extends FVO_menus {
  59. constructor(data: object) {
  60. super(data);
  61. dealVO(this, data);
  62. }
  63. }
  64. export class CDTO_menus {
  65. @ApiProperty({ description: '菜单名称' })
  66. @Rule(RuleType['string']().empty(''))
  67. 'name': string = undefined;
  68. @ApiProperty({ description: '路由名称' })
  69. @Rule(RuleType['string']().empty(''))
  70. 'route_name': string = undefined;
  71. @ApiProperty({ description: '国际化编码' })
  72. @Rule(RuleType['string']().empty(''))
  73. 'i18n_code': string = undefined;
  74. @ApiProperty({ description: '父级菜单' })
  75. @Rule(RuleType['string']().empty(''))
  76. 'parent_id': string = undefined;
  77. @ApiProperty({ description: '显示顺序' })
  78. @Rule(RuleType['number']().empty(''))
  79. 'order_num': number = undefined;
  80. @ApiProperty({ description: '路由地址' })
  81. @Rule(RuleType['string']().empty(''))
  82. 'path': string = undefined;
  83. @ApiProperty({ description: '组件地址' })
  84. @Rule(RuleType['string']().empty(''))
  85. 'component': string = undefined;
  86. @ApiProperty({ description: '菜单类型' })
  87. @Rule(RuleType['string']().empty(''))
  88. 'type': string = undefined;
  89. @ApiProperty({ description: '图标' })
  90. @Rule(RuleType['string']().empty(''))
  91. 'icon': string = undefined;
  92. @ApiProperty({ description: '功能列表' })
  93. @Rule(RuleType['array']().empty(''))
  94. 'config': Array<any> = undefined;
  95. @ApiProperty({ description: '是否为默认菜单' })
  96. @Rule(RuleType['string']().empty(''))
  97. 'is_default': string = undefined;
  98. @ApiProperty({ description: '备注' })
  99. @Rule(RuleType['string']().empty(''))
  100. 'remark': string = undefined;
  101. @ApiProperty({ description: '是否启用' })
  102. @Rule(RuleType['string']().empty(''))
  103. 'is_use': string = undefined;
  104. }
  105. export class CVO_menus extends FVO_menus {
  106. constructor(data: object) {
  107. super(data);
  108. dealVO(this, data);
  109. }
  110. }
  111. export class UDTO_menus extends CDTO_menus {
  112. @ApiProperty({ description: '数据id' })
  113. @Rule(RuleType['string']().empty(''))
  114. _id: string = undefined;
  115. }
  116. export class UVAO_menus extends FVO_menus {
  117. constructor(data: object) {
  118. super(data);
  119. dealVO(this, data);
  120. }
  121. }