| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- import { DataModel, transformArrayDataModel } from '@imengyu/js-request-transform';
- import { AppServerRequestModule } from '../RequestModules';
- import { transformSomeToArray } from '../Utils';
- export class VillageListItem extends DataModel<VillageListItem> {
- constructor() {
- super(VillageListItem, "活动列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- isLight: { clientSide: 'boolean' },
- }
- this._convertKeyType = (key, direction) => {
- if (key.endsWith('At'))
- return {
- clientSide: 'date',
- serverSide: 'string',
- };
- return undefined;
- };
- this._afterSolveServer = () => {
- this.address =
- (this.province || '') +
- (this.city || '') +
- (this.district || '') +
- (this.township || '');
- if (this.images && this.images && this.images.length > 0 ) {
- this.image = this.images[0]
- }
- this.thumbnail = this.image;
- }
- }
- id !: number;
- province = '' as string|null;
- city = '' as string|null;
- district = '' as string|null;
- township = '' as string|null;
- address = '';
- isLight = false;
- isLightText = '';
- lightValue = Math.random();
- villageVolunteerId = null as number|null;
- villageId !:number;
- claimReason = '';
- status = '';
- statusText = '';
- createdAt = null as Date|null;
- updatedAt = null as Date|null;
- deleteAt = null as Date|null;
- image = '';
- thumbnail = '';
- images = [] as string[];
- name = '';
- title = '';
- volunteerName = '';
- }
- export class LightVillageApi extends AppServerRequestModule<DataModel> {
- constructor() {
- super();
- }
- /**
- * 志愿者排行榜
- * POST /village/volunteer/getRanklist
- */
- async getVolunteerRankList(params?: {
- /** 地区(区域内所有村社) */
- region_id?: number;
- /** 数量:显示前几名(默认10) */
- num?: number;
- /** 村社ID */
- village_id?: number;
- }) {
- const res = await this.post<{
- id: number;
- name: string;
- mobile: string;
- points: number;
- level: number;
- type: string;
- type_text?: string;
- sex_text?: string;
- status_text?: string;
- image?: string;
- }[]>('/village/volunteer/getRanklist', '志愿者排行榜', params);
- return res.requireData();
- }
- /**
- * 村社排行榜
- * POST /village/village/getRanklist
- */
- async getVillageRankList(params?: {
- /** 地区(区域内所有村社) */
- region_id?: number;
- /** 数量:显示前几名(默认10) */
- num?: number;
- /** 点亮状态:0=未点亮,1=已点亮 */
- is_light?: number;
- }) {
- const res = await this.post<{
- id: number;
- name: string;
- points: number;
- region: number;
- status?: string;
- is_light: number | string;
- status_text?: string;
- region_text?: string;
- is_light_text?: string;
- image?: string;
- }[]>('/village/village/getRanklist', '村社排行榜', params);
- return res.requireData();
- }
- async getVillageList(level?: number, region?: number, status?: number, page?: number, pageSize?: number) {
- const res = await this.get<{
- data: any[],
- total: number,
- }>('/village/village/list', '乡源村落列表', {
- history_level: level,
- status,
- region: region,
- page: page,
- pageSize: pageSize,
- });
- return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.requireData().data), `村落`, true);
- }
-
- async getVillageDetails(id: number) {
- const res = await this.get<VillageListItem>('/village/village/getInfo', '村社详情', {
- id: id,
- }, VillageListItem);
- return res.requireData();
- }
- async getIpAddress() {
- const res = await this.get<{
- address: string,
- address_detail:{
- adcode: string,
- city: string,
- city_code: number,
- district: string,
- province: string,
- street: string,
- street_number: string,
- },
- point: {
- x: string,
- y: string,
- },
- }>('/village/volunteer/getIpArea', '获取IP地址');
- return res.requireData();
- }
- async getMessages(page: number, pageSize: number, keywords?: string) {
- const res = await this.get<{
- data: {
- id: number;
- user_id: number;
- village_id: number;
- title: string;
- content: string | null;
- images: string;
- image: string;
- msgid: string;
- jump_url: string;
- send_time: string;
- like_count: number;
- village_name: string | null;
- username: string | null;
- nick_name: string | null;
- }[],
- total: number,
- }>('/village/collect/wechatContentList', '获取微信贴图列表', {
- page,
- pageSize,
- keywords,
- });
- return res.requireData();
- }
- }
- export default new LightVillageApi();
|