From 1b57ac5bea14a750b5ddf961c3a8510da18f3637 Mon Sep 17 00:00:00 2001 From: 劉鈞霖 <benson@gmail.com> Date: 星期二, 23 十一月 2021 12:07:02 +0800 Subject: [PATCH] [ Update ] 串接顧問登入 完成 50% (驗證碼以及忘記密碼 尚未 ) 、 新增 api 錯誤訊息 。 --- PAMapp/assets/ts/api/consultant.ts | 144 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 108 insertions(+), 36 deletions(-) diff --git a/PAMapp/assets/ts/api/consultant.ts b/PAMapp/assets/ts/api/consultant.ts index cfdfdb7..d0299bb 100644 --- a/PAMapp/assets/ts/api/consultant.ts +++ b/PAMapp/assets/ts/api/consultant.ts @@ -1,27 +1,7 @@ -import axios from 'axios'; -import { AxiosRequestConfig, AxiosError, AxiosResponse } from 'axios'; -import { MessageBox } from 'element-ui'; -import { functionsIn } from 'lodash'; -import Router from 'vue-router'; - -export const service = axios.create({ - baseURL: 'http://localhost:8080/api', - headers: { - Authorization: 'Bearer ' + localStorage.getItem('id_token') - } -}) - -service.interceptors.request.use(function (config: AxiosRequestConfig) { - return config; -}, function (error: AxiosError) { - return Promise.reject(error); -}); - -service.interceptors.response.use(function (response: AxiosResponse) { - return response; -}, function (error: AxiosError) { - return Promise.reject(error); -}); +import { service } from '~/assets/ts/api/share'; +import { AxiosResponse } from 'axios'; +import { AppointmentDetail } from '../models/AppointmentDetail'; +import { ConsultantLoginInfo } from '../models/ConsultantLoginInfo'; // 憿批恥��(TODO: OTP隤����� ���蝙�) export function login(user: any) { @@ -30,12 +10,17 @@ // ��靽憿批�� export function recommend() { - return service.get('/consultant/recommend') + return service.get<Consultants[]>('/consultant/recommend') + .then(res => res.data); } // ���“��� export function getFavoriteConsultant() { - return service.get('/consultant/favorite'); + const headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } + return service.get<Consultants[]>('/consultant/favorite', {headers}) + .then(res => res.data); } // 敹恍�祟� @@ -43,14 +28,65 @@ return service.post('/consultant/fastQuery', data) } +// ������ +export function strictQuery(data:StrictQueryParams):Promise<AxiosResponse<AgentOfStrictQuery[]>>{ + return service.post('/consultant/strictQuery', data) +} + // ��憿批�� export function addFavoriteConsultant(agentNoList: string[]) { - return service.post('/consultant/favorite', {agentNoList}) + const headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } + return service.post('/consultant/favorite', {agentNoList}, {headers}) } // ����岷��� export function appointmentDemand(data: AppointmentParams) { - return service.post('/appointment/customer/create', data) + const headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } + return service.post('/appointment/customer/create', data, {headers}) +} + +//憿批�底蝝啗��� +export function getConsultantDetail(agentNo:string){ + return service.get('/consultant/detail', {params:{agentNo:agentNo}}) +} + +// 蝘駁憿批�� +export function deleteConsultant(agentId: string) { + const headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } + return service.delete('/consultant/favorite/'+agentId, {headers}) +} + +// 敹��Ⅳ蝬脣� +export function getForgotPasswordLink():Promise<string>{ + return new Promise((resolve, reject)=>{ + resolve('https://www.google.com/'); + }) +} + +// �����Ⅳ���� +export function getVerificationCodeImg():Promise<string>{ + return new Promise((resolve, reject)=>{ + resolve(''); + }) +} + +// 憿批�� +export function logInToConsultant(consultantDto:ConsultantLoginInfo):Promise<AxiosResponse<RequestOfLoginSuccess>>{ + return service.post('/eService/authenticate',consultantDto); +} + +// �����蝝啁� +export function getAppointmentDetail(apointmentId: number):Promise<AxiosResponse<AppointmentDetail>> { + const headers = { + Authorization: 'Bearer ' + localStorage.getItem('id_token') + } + return service.get('/appointment/getDetail/'+apointmentId, {headers}) } export interface Consultants { agentNo: string, @@ -62,6 +98,10 @@ updateTime: Date, seniority: string, contactStatus?: string; + latestAppointmentId: number; + role: string; + image?: string; + expertises?: string; } export interface FastQueryParams { @@ -71,15 +111,47 @@ status: string } +export interface AppointmentRequests { + connectDevices: any[], + hopeContactTime: any, + email?: string, + job?: string, + otherJob?: string, + gender?: string, + myQuestion: any[], + age?: string, +} export interface AppointmentParams { - phone: string, - email: string, + phone?: string, + email?: string, contactType: string, - gender: string, - age: string, - job: string, + gender?: string, + age?: string, + job?: string, requirement: string, - hopeContactTime: string, - otherRequirement: string, + hopeContactTime?: string, agentNo: string -} \ No newline at end of file +} +export interface StrictQueryParams{ + gender: string; + avgScore: number; + status: string; //phase 1 disable + area: string; + requirements: string[]; + otherRequirement: string; + seniority: string; + popularTags: string[]; + otherPopularTags: string; +} +export interface AgentOfStrictQuery { + agentNo: string; + name: string; + img: string; + expertise: string[]; + avgScore: number; + contactStatus: null; + updateTime: null; + seniority: string; + new: boolean; +} + -- Gitblit v1.8.0