| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 |
- import { CONVERTER_ADD_DEFAULT, DataModel, transformArrayDataModel } from '@imengyu/js-request-transform';
- import { AppServerRequestModule } from '../RequestModules';
- import { findAProp, transformSomeToArray } from '../Utils';
- import { LoginResult } from '../auth/UserApi';
- import AppCofig from '@/common/config/AppCofig';
- export class VillageListItem extends DataModel<VillageListItem> {
- constructor() {
- super(VillageListItem, "活动列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- }
- this._nameMapperServer = {
- name: 'villageName',
- };
- 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;
- this.title = this.villageName
- }
- }
- id !: number;
- province = '' as string|null;
- city = '' as string|null;
- district = '' as string|null;
- township = '' as string|null;
- address = '';
- 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[];
- villageName = '';
- title = '';
- volunteerName = '';
- }
- export class VolunteerRanklistItem extends DataModel<VolunteerRanklistItem> {
- constructor() {
- super(VolunteerRanklistItem, "活动列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- points: [{ clientSide: 'number', serverSide: 'number' }, { clientSide: CONVERTER_ADD_DEFAULT, clientSideParam: { defaultValue: 0 } }],
- level: [{ clientSide: 'number', serverSide: 'number' }, { clientSide: CONVERTER_ADD_DEFAULT, clientSideParam: { defaultValue: 0 } }],
- }
- }
- id !: number;
- name = '';
- mobile = '';
- points = 0;
- level = 0;
- typeText = '';
- sexText = '';
- statusText = '';
- image = '';
- }
- export class VolunteerInfo extends DataModel<VolunteerInfo> {
- constructor() {
- super(VolunteerInfo, "活动列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- points: [{ clientSide: 'number', serverSide: 'number' }, { clientSide: CONVERTER_ADD_DEFAULT, clientSideParam: { defaultValue: 0 } }],
- level: [{ clientSide: 'number', serverSide: 'number' }, { clientSide: CONVERTER_ADD_DEFAULT, clientSideParam: { defaultValue: 0 } }],
- collectModule: [
- { clientSide: 'splitCommaArray',serverSide: 'commaArrayMerge' },
- { clientSide: 'array', clientSideChildDataModel: 'number', serverSide: 'original' },
- ],
- birthday: { clientSide: 'date', serverSide: 'undefined' },
- catalogIds: [
- { clientSide: 'splitCommaArray', serverSide: 'commaArrayMerge' },
- { clientSide: 'array', clientSideChildDataModel: 'number', serverSide: 'original' },
- ],
- }
- }
- static STATUS_APPROVED = 1;
- static STATUS_PENDING = 0;
- static STATUS_REJECTED = -1;
- id !: number;
- mainBodyId !: number;
- type = '';
- name = '';
- sex = 0;
- mobile = '';
- regionId = null as number|null;
- address = '';
- image = '';
- birthday = new Date();
- points = 0;
- level = 0;
- status = '';
- createdAt = '';
- updatedAt = '';
- typeText = '';
- sexText = '';
- statusText = '';
- catalogIds = [] as number[];
- collectModule = [] as number[];
- collectModuleText = '';
- }
- export class VillageMenuListItem extends DataModel<VillageMenuListItem> {
- constructor() {
- super(VillageMenuListItem, "村落菜单列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- }
- this._nameMapperServer = {
- };
- this._convertKeyType = (key, direction) => {
- if (key.endsWith('At'))
- return {
- clientSide: 'date',
- serverSide: 'string',
- };
- return undefined;
- };
- }
- name = '';
- logo = '';
- }
- export class VillageCatalogListItem extends DataModel<VillageCatalogListItem> {
- constructor() {
- super(VillageCatalogListItem, "村落目录列表");
- this.setNameMapperCase('Camel', 'Snake');
- this._convertTable = {
- id: { clientSide: 'number', serverSide: 'number', clientSideRequired: true },
- }
- this._nameMapperServer = {
- };
- this._afterSolveServer = () => {
- this.haschild = (this.childlist as any[]).length > 0;
- if (this.otherParams) {
- this.typeId = findAProp(this.otherParams, [
- { type: 'endWith', name: 'type' },
- { type: 'match', name: 'nature' },
- { type: 'match', name: 'cultural' },
- { type: 'selectAtLestOne' },
- ]);
- }
- }
- this._convertKeyType = (key, direction) => {
- if (key.endsWith('At'))
- return {
- clientSide: 'date',
- serverSide: 'string',
- };
- return undefined;
- };
- }
- id !: number;
- name = '';
- title = '';
- icon = '';
- desc = '';
- pid = 0;
- collectModuleId = 0;
- collectModuleName = '';
- villageName = '';
- spacer = '';
- haschild = false;
- typeId = -1;
- total = -1;
- }
- export class VillageApi extends AppServerRequestModule<DataModel> {
- constructor() {
- super();
- }
- async getClaimedVallageList(volunteerId?: string) {
- const res = await this.get('/village/village/getVillageList', '获取已认领村落', {
- village_volunteer_id: volunteerId,
- });
- return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
- }
- async getCanClaimVallageList() {
- const res = await this.get('/village/village/getClaimList', '可认领村落列表', {
- main_body_id: 2,
- });
- return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
- }
- async claimVallage(data: any) {
- return this.post('/village/village/addVillageClaim', '认领村落', data);
- }
- async getVallageList(level?: number, status?: number) {
- const res = await this.get('/village/village/getList', '村落列表', {
- history_level: level,
- status,
- });
- return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
- }
- async getVolunteerInfo() {
- const res = await this.post('/village/volunteer/getInfo', '获取志愿者信息', {}, undefined, VolunteerInfo);
- return res.data as VolunteerInfo;
- }
- async getVolunteerRanklist(category?: number) {
- const res = await this.post('/village/volunteer/getRanklist', '志愿者排行榜', {
- category,
- });
- return transformArrayDataModel<VolunteerRanklistItem>(VolunteerRanklistItem, res.data2, ``, true);
- }
-
- async addVolunteer(data: VolunteerInfo) {
- return this.post('/village/volunteer/add', '添加志愿者', data.toServerSide());
- }
- async updateVolunteer(data: VolunteerInfo) {
- console.log('updateVolunteer', data.toServerSide());
- return this.post('/village/volunteer/save', '更新志愿者', data.toServerSide());
- }
- async deleteVolunteer(id: number, villageId: number) {
- return this.post('/village/volunteer/del', '删除志愿者', {
- id,
- village_id: villageId,
- });
- }
- async shareAddVolunteer(data: VolunteerInfo) {
- const res = await this.post('/village/volunteer/shareAdd', '分享添加志愿者', data.toServerSide(), undefined, LoginResult);
- return res.data as LoginResult;
- }
- async bindVolunteer(data: {
- account: string,
- password: string
- }) {
- const res = await this.post('/village/volunteer/bindVolunteer', '绑定志愿者', data, undefined, LoginResult);
- return res.data as LoginResult;
- }
- async bindWechat(data: { code: string }) {
- return this.post('/village/volunteer/bindWechat', '绑定微信', {
- code: data.code,
- appid: AppCofig.appId
- });
- }
- async getVolunteerInfoByIdAdmin(id: number) {
- const res = await this.post('/village/volunteer/info', '管理员获取志愿者信息', {
- id,
- }, undefined, VolunteerInfo);
- return res.data as VolunteerInfo;
- }
- async getVolunteerInfoById(id: number) {
- const res = await this.post('/village/volunteer/getInfo', '获取志愿者信息', {
- id,
- }, undefined, VolunteerInfo);
- return res.data as VolunteerInfo;
- }
- async getVillageVolunteerList(villageId?: number, status?: number) {
- const res = await this.post('/village/volunteer/getList', '获取志愿者列表', {
- village_id: villageId,
- status,
- });
- return transformArrayDataModel<VolunteerInfo>(VolunteerInfo, res.data2 || [], ``, true);
- }
- async reviewVillageVolunteer(villageId: number, volunteerId: number, status: number) {
- return this.post('/village/village/claimReview', '审核志愿者', {
- village_id: villageId,
- village_volunteer_id: volunteerId,
- status,
- });
- }
- async getCollectModuleList() {
- const res = await this.get('/village/volunteer/getCollectModuleList', '获取采集版块列表', {});
- const result = [] as {
- value: string,
- label: string,
- }[];
- for (const key in res.data2) {
- result.push({
- value: key,
- label: res.data2[key],
- });
- }
- return result;
- }
- async getCollectModuleMap() {
- const res = await this.post('/village/volunteer/getCollectModuleList', '采集板块列表', {});
- const map = new Map<string, number>();
- if (!res.data2 || typeof res.data2 !== 'object')
- return map;
- for (const key in res.data2) {
- if (typeof res.data2[key] !== 'string')
- throw new Error(`采集板块列表键值对值不是字符串: ${key} -> ${res.data2[key]}`);
- if (isNaN(Number(key)))
- throw new Error(`采集板块列表键值对键不是数字: ${key}`);
- map.set(res.data2[key], Number(key));
- }
- return map;
- }
- async getCatalogList(villageId?: number, volunteerId?: number, pid?: number) {
- const res = await this.get('/village/village/getCatalogList', '村落目录列表', {
- village_id: villageId,
- village_volunteer_id: volunteerId,
- pid: pid === 0 ? undefined : pid,
- });
- return transformArrayDataModel<VillageCatalogListItem>(VillageCatalogListItem, res.data2, `村落目录列表`, true);
- }
- async getVillageMenuList(id: number) {
- const res = await this.get('/village/menu/getList', '村落菜单列表', {
- village_id: id,
- });
- return transformArrayDataModel<VillageMenuListItem>(VillageMenuListItem, res.data2, `村落菜单`, true);
- }
- }
- export default new VillageApi();
|