VillageApi.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { CONVERTER_ADD_DEFAULT, DataModel, transformArrayDataModel } from '@imengyu/js-request-transform';
  2. import { AppServerRequestModule } from '../RequestModules';
  3. import ApiCofig from '@/common/config/ApiCofig';
  4. export class VillageListItem extends DataModel<VillageListItem> {
  5. constructor() {
  6. super(VillageListItem, "村落列表");
  7. this.setNameMapperCase('Camel', 'Snake');
  8. this._convertTable = {
  9. id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  10. images: { clientSide: 'forceArray' }
  11. }
  12. this._nameMapperServer = {
  13. name: 'villageName',
  14. };
  15. this._convertKeyType = (key, direction) => {
  16. if (key.endsWith('At'))
  17. return {
  18. clientSide: 'date',
  19. serverSide: 'string',
  20. };
  21. return undefined;
  22. };
  23. this._afterSolveServer = () => {
  24. if (this.images && this.images && this.images.length > 0 ) {
  25. this.image = this.images[0]
  26. }
  27. }
  28. }
  29. id !: number;
  30. villageVolunteerId = null as number|null;
  31. villageId = null as number|null;
  32. claimReason = '';
  33. status = '';
  34. statusText = '';
  35. createdAt = null as Date|null;
  36. updatedAt = null as Date|null;
  37. deleteAt = null as Date|null;
  38. image = '';
  39. images = [] as string[];
  40. villageName = '';
  41. volunteerName = '';
  42. }
  43. export class VillageMenuListItem extends DataModel<VillageMenuListItem> {
  44. constructor() {
  45. super(VillageMenuListItem, "村落菜单列表");
  46. this.setNameMapperCase('Camel', 'Snake');
  47. this._convertTable = {
  48. id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
  49. }
  50. this._nameMapperServer = {
  51. };
  52. this._convertKeyType = (key, direction) => {
  53. if (key.endsWith('At'))
  54. return {
  55. clientSide: 'date',
  56. serverSide: 'string',
  57. };
  58. return undefined;
  59. };
  60. }
  61. id = 0;
  62. name = '';
  63. logo = '';
  64. region = 0;
  65. modelId = 0;
  66. mainBodyColumnId = 0;
  67. }
  68. export class VillageApi extends AppServerRequestModule<DataModel> {
  69. constructor() {
  70. super();
  71. }
  72. async getVillageList(level?: number) {
  73. return (this.get('/village/village/getList', '村落列表', {
  74. history_level: level,
  75. }))
  76. .then(res => transformArrayDataModel<VillageListItem>(VillageListItem, res.data2, `村落`, true))
  77. .catch(e => { throw e });
  78. }
  79. async getVillageMenuList(id: number) {
  80. return (this.get('/village/menu/getList', '村落菜单列表', {
  81. platform: 1,
  82. village_id: id,
  83. }))
  84. .then(res => transformArrayDataModel<VillageMenuListItem>(VillageMenuListItem, res.data2, `村落菜单`, true))
  85. .catch(e => { throw e });
  86. }
  87. }
  88. export default new VillageApi();