From e912d42c4a9d806c2a498fef458ef8cb4e9ba405 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 23 二月 2022 15:54:12 +0800
Subject: [PATCH] update#135494: [ 客戶端 ] 加入顧問到我的顧問清單後,未顯示加入日期

---
 PAMapp/pages/questionnaire/_agentNo.vue |   60 +++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 47 insertions(+), 13 deletions(-)

diff --git a/PAMapp/pages/questionnaire/_agentNo.vue b/PAMapp/pages/questionnaire/_agentNo.vue
index 95e375e..7134a4d 100644
--- a/PAMapp/pages/questionnaire/_agentNo.vue
+++ b/PAMapp/pages/questionnaire/_agentNo.vue
@@ -121,24 +121,19 @@
     <PopUpFrame :isOpen.sync="sendReserve" @update:isOpen="closeReservePopUp">
         <div class="mdTxt mt-30 sendReserve-txt">�������</div>
         <div class="mdTxt sendReserve-txt mb-30">�����“�������蝯∴��</div>
-        <!-- TODO: �銝脫 api, ���像�皛踵�漲 -->
-        <!-- <div class="pam-app-review mb-10">
+        <div class="pam-app-review mb-10">
           <div class="mdTxt mb-10">撠
                 <span class="mdTxt text--primary text--bold ">������</span>
                 撟喳��擃����
             </div>
           <div class="mdTxt">�蝯虫�嗾憿��嚗�</div>
         </div>
-        <el-rate v-model="score" class="pam-satisfaction-rate fix-chrome-click--issue"></el-rate> -->
+        <el-rate v-model="score" class="pam-satisfaction-rate fix-chrome-click--issue"></el-rate>
         <div class="text--center mdTxt">
-          <!-- <el-button @click="closeReservePopUp">����</el-button>
+          <el-button @click="closeReservePopUp">����</el-button>
           <el-button type="primary"
-            @click="closeReservePopUp">
+            @click="reviewPlatform">
             �
-          </el-button> -->
-          <el-button type="primary"
-            @click="closeReservePopUp">
-            ������
           </el-button>
         </div>
     </PopUpFrame>
@@ -161,14 +156,19 @@
 import { getRequestsFromStorage, removeRequestQuestionFromStorage, setRequestsToStorage } from '~/shared/storageRequests';
 import _ from 'lodash';
 
+import accountSettingService from '~/shared/services/account-setting.service';
 import appointmentService from '~/shared/services/appointment.service';
 import authService from '~/shared/services/auth.service';
 import queryConsultantService from '~/shared/services/query-consultant.service';
+import reviewsService from '~/shared/services/reviews.service';
 import { Consultant } from '~/shared/models/consultant.model';
 import { ContactType } from '~/shared/models/enum/ContactType';
 import { Gender } from '~/shared/models/enum/Gender';
 import { RegisterInfo } from '~/shared/models/registerInfo';
 import { AppointmentParams, AppointmentRequests } from '~/shared/models/appointment.model';
+import { UserSetting } from '~/shared/models/account.model';
+import { SatisfactionType } from '~/shared/models/enum/satisfaction-type';
+import { UserReviewParams } from '~/shared/models/reviews.model';
 
   const roleStorage = namespace('localStorage');
   @Component
@@ -185,7 +185,10 @@
     @roleStorage.State
     recommendConsultantItem!:string;
 
-    score ="" ;
+    @roleStorage.Mutation
+    storageUserInfo!: (params: RegisterInfo) => void;
+
+    score = 0;
 
     genderOptions=[
       {
@@ -284,8 +287,9 @@
     ];
 
     myRequest: AppointmentRequests = {
-      phone          : this.userInfo?.phone ? this.userInfo.phone                               : '',
-      email          : this.userInfo?.email ? this.userInfo.email                               : '',
+      name           : '',
+      phone          : '',
+      email          : '',
       contactType    : _.isEqual(this.userInfo?.contactType,ContactType.SMS) ? ContactType.PHONE: ContactType.EMAIL,
       gender         : '',
       age            : '',
@@ -332,6 +336,7 @@
     private setMyRequest(): void {
       const storageMyRequest = getRequestsFromStorage();
       const storageMyRequirement = this.recommendConsultantItem ? JSON.parse(this.recommendConsultantItem).requirements:[];
+      const contactTypePromise = accountSettingService.getUserAccountSetting();
 
       if (storageMyRequest) {
         this.myRequest = {
@@ -352,6 +357,14 @@
         }
         removeRequestQuestionFromStorage();
       }
+
+      contactTypePromise.then((contactTypeDetail) => {
+            this.myRequest = {
+              ...this.myRequest,
+              ...contactTypeDetail
+            }
+      })
+
     }
 
     ////////////////////////////////////////////////////////////////////////////
@@ -420,8 +433,17 @@
       if (this.isEditBtn) {
         this.editAppointmentDemand();
       } else {
-        queryConsultantService.addFavoriteConsultant([this.$route.params.agentNo]).then(res => this.sentAppointmentDemand());
+        queryConsultantService.addFavoriteConsultant([{ agentNo: this.$route.params.agentNo, createdTime: new Date().toString()}]).then(res => this.sentAppointmentDemand());
       }
+       const editSettingInfo: UserSetting = {
+          name: this.myRequest.name,
+          phone: this.myRequest.phone,
+          email: this.myRequest.email,
+      }
+
+      accountSettingService.updateAccountSetting(editSettingInfo).then((_) => {
+          this.storageUserInfo(this.userInfo);
+      });
     }
 
     private editAppointmentDemand() {
@@ -450,6 +472,7 @@
         queryConsultantService.appointmentDemand(data).then(res => {
             this.sendReserve = true;
             this.myRequest.hopeContactTime = [];
+            this.appointmentId = res['id'];
             setRequestsToStorage(this.myRequest);
         });
     }
@@ -461,6 +484,17 @@
         ).toString();
     }
 
+    reviewPlatform(): void {
+      const reviewPlatformParams: UserReviewParams = {
+        appointmentId: this.appointmentId,
+        score: this.score,
+        type: SatisfactionType.SYSTEM
+      };
+      reviewsService.reviewPlatform(reviewPlatformParams).then((_) => {
+        this.closeReservePopUp();
+      });
+    }
+
     closeReservePopUp() {
         this.sendReserve = false;
         this.$router.push('/')

--
Gitblit v1.8.0