PAMapp/assets/ts/models/UserReviewsConsultantsParams.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/agentOfStrictQuery.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/appointmentParams.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/clientInfo.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/editAppointmentParams.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/fastQueryParams.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/loginRequest.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/loginSuccessToken.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/loginVerify.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/otpInfo.model.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/registerInfo.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/models/strictQueryParams.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 | |
PAMapp/assets/ts/services/pamService.service.ts | ●●●●● 修補檔 | 檢視 | 原始 | 究查 | 歷程 |
PAMapp/assets/ts/models/UserReviewsConsultantsParams.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,4 @@ export interface UserReviewsConsultantsParams{ appointmentId:number, score:number, } PAMapp/assets/ts/models/agentOfStrictQuery.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,12 @@ export interface AgentOfStrictQuery { agentNo: string; name: string; img: string; expertise: string[]; avgScore: number; contactStatus: null; updateTime: null; seniority: string; new: boolean; } PAMapp/assets/ts/models/appointmentParams.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,12 @@ export interface AppointmentParams { phone: string; email: string; contactType: string; gender: string; age: string; job: string; requirement: string; hopeContactTime: string; agentNo: string; } PAMapp/assets/ts/models/clientInfo.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,18 @@ export interface ClientInfo { id: number; phone: string; email: string; contactType: string; gender: string; age: string; job: string; requirement: string; communicateStatus: string; hopeContactTime: string; otherRequirement: string; appointmentDate: Date; agentNo: string; customerId: number; name: string; } PAMapp/assets/ts/models/editAppointmentParams.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,12 @@ export interface editAppointmentParams { id: number, phone: string, email: string, contactType: string, gender: string, age: string, job: string, requirement: string, hopeContactTime: string, otherRequirement: null } PAMapp/assets/ts/models/fastQueryParams.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,7 @@ export interface FastQueryParams { gender: string; communicationStyles: string[]; avgScore: number; status: string; } PAMapp/assets/ts/models/loginRequest.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,7 @@ export interface LoginRequest { /** "SMS"=ææ©ï¼"EMAIL"=email */ loginType: string; /** è¥loginTypeå¡«SMSå該æ¬å¸¶å ¥ææ©ãEMAILåå¸¶å ¥éµä»¶ä¿¡ç®± */ account: string; } PAMapp/assets/ts/models/loginSuccessToken.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,4 @@ export interface LoginSuccessToken { id_token: string; } PAMapp/assets/ts/models/loginVerify.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,9 @@ export interface LoginVerify { /** å¯å¸¶å ¥ææ©æemail */ account: string; /** ç±otpçapiåçindex key */ indexKey: string; /** ç±ææ©æä¿¡ç®±æ¶å°çèªè碼 */ otpCode: string; } PAMapp/assets/ts/models/otpInfo.model.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,9 @@ export interface OtpInfo { /** ç¨æ¼å¸¶å ¥otpèªèæ */ indexKey: string; /** Otpæ¯å¦ææåç¼é */ success: boolean; failCode: string; failReason: string; } PAMapp/assets/ts/models/registerInfo.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,10 @@ export interface RegisterInfo { phone?: string; email?: string; indexKey: string; otpCode: string; name: string; /** "SMS"ï¼Otpç¼éææ©ï¼"EMAIL":Otpç¼email */ contactType: string; } PAMapp/assets/ts/models/strictQueryParams.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,12 @@ export interface StrictQueryParams { gender: string; avgScore: number; status: string; //phase 1 disable area: string; requirements: string[]; otherRequirement: string; seniority: string; popularTags: string[]; otherPopularTags: string; } PAMapp/assets/ts/services/pamService.service.ts
¤ñ¹ï·sÀÉ®× @@ -0,0 +1,132 @@ import { AxiosResponse } from 'axios'; import { http } from "./httpClient"; import { editAppointmentParams } from '../models/editAppointmentParams.model'; import { AppointmentDetail } from '../models/AppointmentDetail'; import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo'; import { UserSetting } from '../models/account.model'; import { FastQueryParams } from '../models/quickFilter.model'; import { LoginRequest } from "../models/loginRequest.model"; import { OtpInfo } from "../models/otpInfo.model"; import { Consultant } from '../models/consultant.model'; import { RegisterInfo } from '../models/registerInfo'; import { LoginVerify } from '../models/loginVerify.model'; import { StrictQueryParams } from '../models/strictQueryParams'; import { AppointmentParams } from '../models/appointmentParams'; import { UserReviewsConsultantsParams } from '../models/UserReviewsConsultantsParams'; import { LoginSuccessToken } from '../models/loginSuccessToken.model'; import { AgentOfStrictQuery } from '../models/agentOfStrictQuery'; import _ from "lodash"; class PamService { constructor() {} /** 顧客ç»å ¥-ç¼éOTP **/ sendOtp(loginInfo: LoginRequest):Promise<AxiosResponse<OtpInfo>> { return http.post('/otp/sendOtp', loginInfo).then( res => res.data ); } /** 顧客ç»å ¥-é©èOTP **/ loginVerify(loginVerify: LoginVerify):Promise<AxiosResponse<any>>{ return http.post('/otp/verify', loginVerify); } /** 顧客註å **/ register(registerInfo: RegisterInfo):Promise<AxiosResponse<any>>{ return http.post('/otp/register', registerInfo); } /** æ¨è¦ä¿éªé¡§å **/ recommend():Promise<AxiosResponse<Consultant[]>>{ return http.get('/consultant/recommend'); } /** å¿«éç¯©é¸ **/ fastQuery(data: FastQueryParams):Promise<AxiosResponse<Consultant[]>>{ return http.post('/consultant/fastQuery', data) } /** å´é¸é å° **/ strictQuery(data:StrictQueryParams):Promise<AxiosResponse<AgentOfStrictQuery[]>>{ return http.post('/consultant/strictQuery', data) } /** å å ¥é¡§å **/ addFavoriteConsultant(agentNoList: string[]):Promise<AxiosResponse<any>>{ return http.post('/consultant/favorite', {agentNoList}) } /** é ç´åè©¢å **/ appointmentDemand(data: AppointmentParams):Promise<AxiosResponse<any>> { return http.post('/appointment/customer/create', data) } /** é¡§å詳細è³è¨ **/ getConsultantDetail(agentNo:string):Promise<AxiosResponse<any>>{ return http.get('/consultant/detail', {params:{agentNo:agentNo}}) } /** ç§»é¤é¡§å **/ deleteConsultant(agentId: string):Promise<AxiosResponse<any>>{ return http.delete('/consultant/favorite/'+agentId); } /** åå¾é©è碼åç **/ getImgOfVerification():Promise<string>{ return http.get('/login/validate/get_img_code',{ responseType : 'arraybuffer' }) .then( response => { const toBase64 = window.btoa( _.reduce( new Uint8Array(response.data),(data,byte) => data + String.fromCharCode(byte),'') ); const imgSrc = `data:image/jpeg;base64,${toBase64}`; return imgSrc; }); } /** é©è碼-é©è **/ getVerificationStatus(imgCode:string):Promise<AxiosResponse<boolean>>{ return http.get('/login/validate/verify_img_code/'+imgCode); } /** é¡§åç»å ¥ **/ logInToConsultant(consultantDto:ConsultantLoginInfo):Promise<AxiosResponse<LoginSuccessToken>>{ return http.post('/ehttp/authenticate',consultantDto); } /** åå¾é ç´å®ç´°ç¯ **/ getAppointmentDetail(apointmentId: number):Promise<AxiosResponse<AppointmentDetail>> { return http.get('/appointment/getDetail/'+apointmentId) } /** åå¾ä½¿ç¨è 帳èè³è¨ **/ getUserAccountSetting():Promise<AxiosResponse<UserSetting>>{ return http.get<UserSetting>('/customer/info'); } /** æ´æ°ä½¿ç¨è 帳èè³è¨ **/ updateAccountSetting(params: any):Promise<AxiosResponse<any>> { return http.put('/customer/info', params); } //客æ¶é²è¡æ»¿æåº¦è©å userReviewsConsultants(data: UserReviewsConsultantsParams):Promise<AxiosResponse<any>> { return http.post('/satisfaction/create', data); } // åæ¶é ç´ cancelAppointment(appointment: number):Promise<AxiosResponse<any>>{ return http.delete('/appointment/'+appointment); } // 編輯é ç´ editAppointment(editAppointmentParams:editAppointmentParams):Promise<AxiosResponse<any>>{ return http.put('/appointment', editAppointmentParams); } } export default new PamService();