From 8f5057969ef0943cd4ee68fa8770aeb3e4737b67 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 22 十二月 2021 16:55:42 +0800
Subject: [PATCH] refactor: reviews / userReviews page (add ReviewRecords feature component)

---
 PAMapp/pages/userReviewsRecord/index.vue          |   47 +----------
 PAMapp/components/ReviewRecords/ReviewRecords.vue |  110 +++++++++++++++++++++++++++
 PAMapp/pages/record/index.vue                     |   62 ++------------
 PAMapp/shared/services/auth.service.ts            |    6 -
 4 files changed, 127 insertions(+), 98 deletions(-)

diff --git a/PAMapp/components/ReviewRecords/ReviewRecords.vue b/PAMapp/components/ReviewRecords/ReviewRecords.vue
new file mode 100644
index 0000000..2c4ed02
--- /dev/null
+++ b/PAMapp/components/ReviewRecords/ReviewRecords.vue
@@ -0,0 +1,110 @@
+<template>
+<div class="user-reviews-page">
+    <section class="mdTxt">
+        �������
+    </section>
+
+    <section class="user-reviews-header">
+        <div class="header-title mdTxt">
+            皛踵�漲蝝����
+        </div>
+    </section>
+    <div class="user-reviews-page">
+
+        <section class="user-reviews-content">
+            <div
+                class="user-reviews-card"
+                v-for="(appointmentLog, index) in myAppointmentReviewLogList"
+                :key="index">
+                <div class="user-reviews-card-content" v-if="isUserLogin">
+                    �撠�<span class="mdTxt">{{ ` ${appointmentLog.agentName} ` }}</span>���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
+                </div>
+                <div class="user-reviews-card-content" v-else>
+                    {{ `${appointmentLog.customerName} `}} 撠���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
+                </div>
+                <div class="user-reviews-card-date">
+                    <div class="date">
+                        <UiDateFormat
+                            :date="appointmentLog.lastModifiedDate"
+                            onlyShowSection="DAY" />
+                    </div>
+                    <div class="time">
+                        <UiDateFormat
+                            :date="appointmentLog.lastModifiedDate"
+                            onlyShowSection="TIME" />
+                    </div>
+                </div>
+            </div>
+        </section>
+
+    </div>
+</div>
+
+</template>
+<script lang="ts">
+import { Vue, Component, Prop } from 'nuxt-property-decorator';
+
+import authService from '~/shared/services/auth.service';
+import { AppointmentLog } from '~/shared/models/appointment.model';
+
+@Component
+export default  class ReviewRecords extends Vue{
+
+    @Prop()
+    myAppointmentReviewLogList!: AppointmentLog[];
+
+    isUserLogin = false;
+
+    mounted() {
+      this.isUserLogin = authService.isUserLogin();
+    }
+
+}
+</script>
+
+<style lang="scss" scoped>
+.user-reviews-page{
+    margin-bottom:155px;
+    .user-reviews-header{
+        height: 43px;
+        margin-top: 28px;
+        display: flex;
+        justify-content: center;
+        border-bottom: 2px solid black;
+    }
+    .user-reviews-content{
+        .user-reviews-card{
+            display: flex;
+            justify-content: space-between;
+            margin-top: 26px;
+            border-bottom: 1px solid #707070;
+            height: 54px;
+            padding-bottom: 15px;
+            .user-reviews-card-content{
+                width: 242px;
+                padding-right:50px;
+                line-height: 1.2;
+                font-size: 20px;
+                margin-left: 15px;
+            }
+            .user-reviews-card-date{
+                font-size: 12px;
+                display: flex;
+                flex-direction: column;
+                align-items: flex-end;
+                margin-right: 15px;
+                width:52px;
+                .date{
+                    margin-bottom: 2px;
+
+                }
+            }
+        }
+    }
+}
+@include desktop{
+    .user-reviews-card-content{
+        flex: 1;
+    }
+}
+</style>
diff --git a/PAMapp/pages/record/index.vue b/PAMapp/pages/record/index.vue
index db7ac04..de16eb0 100644
--- a/PAMapp/pages/record/index.vue
+++ b/PAMapp/pages/record/index.vue
@@ -1,69 +1,29 @@
 <template>
-
-<div class="user-reviews-page">
-    <section class="mdTxt">
-        �������
-    </section>
-
-    <section class="user-reviews-header">
-        <div class="header-title mdTxt">
-            皛踵�漲蝝����
-        </div>
-    </section>
-
-    <section class="user-reviews-content">
-        <div
-            class="user-reviews-card"
-            v-for="(appointmentLog, index) in myAppointmentReviewLogList"
-            :key="index">
-            <div class="user-reviews-card-content" v-if="currentRole === 'user'">
-                �撠�<span class="mdTxt">{{ ` ${appointmentLog.agentName} ` }}</span>���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
-            </div>
-            <div class="user-reviews-card-content" v-else>
-                {{ `${appointmentLog.customerName} `}} 撠���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
-            </div>
-            <div class="user-reviews-card-date">
-                <div class="date">
-                    <UiDateFormat
-                        :date="appointmentLog.lastModifiedDate"
-                        onlyShowSection="DAY" />
-                </div>
-                <div class="time">
-                    <UiDateFormat
-                        :date="appointmentLog.lastModifiedDate"
-                        onlyShowSection="TIME" />
-                </div>
-            </div>
-        </div>
-    </section>
-
+<div>
+    <ReviewRecords
+      :myAppointmentReviewLogList="myAppointmentReviewLogList"
+    ></ReviewRecords>
 </div>
-
 </template>
 <script lang="ts">
-import { Vue, Component, Action, State, namespace } from 'nuxt-property-decorator';
-import { AppointmentLog } from '~/shared/models/appointment.model';
+import { Vue, Component, Action, State } from 'nuxt-property-decorator';
 
-const roleStorage = namespace('localStorage');
+import { AppointmentLog } from '~/shared/models/appointment.model';
 
 @Component
 export default  class Reviews extends Vue{
 
-    today = new Date();
+    @State('myAppointmentReviewLogList')
+    myAppointmentReviewLogList!: AppointmentLog[];
 
-    @roleStorage.Getter currentRole!:string;
+    @Action
+    storeMyAppointmentReviewLog!: any;
 
-    @State('myAppointmentReviewLogList') myAppointmentReviewLogList!: AppointmentLog[];
-
-    @Action storeMyAppointmentReviewLog!: any;
-
-    appointmentLogList: AppointmentLog[] = [];
+    //////////////////////////////////////////////////////////////////////
 
     mounted() {
         this.storeMyAppointmentReviewLog();
     }
-
-
 
 }
 </script>
diff --git a/PAMapp/pages/userReviewsRecord/index.vue b/PAMapp/pages/userReviewsRecord/index.vue
index c6029e8..5f3e26e 100644
--- a/PAMapp/pages/userReviewsRecord/index.vue
+++ b/PAMapp/pages/userReviewsRecord/index.vue
@@ -1,49 +1,14 @@
 <template>
-
-<div class="user-reviews-page">
-    <section class="mdTxt">
-        �������
-    </section>
-
-    <section class="user-reviews-header">
-        <div class="header-title mdTxt">
-            皛踵�漲蝝����
-        </div>
-    </section>
-
-    <section class="user-reviews-content">
-        <div
-            class="user-reviews-card"
-            v-for="(appointmentLog, index) in myAppointmentReviewLogList"
-            :key="index">
-            <div class="user-reviews-card-content" v-if="isUserLogin">
-                �撠�<span class="mdTxt">{{ ` ${appointmentLog.agentName} ` }}</span>���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
-            </div>
-            <div class="user-reviews-card-content" v-else>
-                {{ `${appointmentLog.clientName} `}} 撠���� <UiReviewScore :score="appointmentLog.score" /> 閰嚗�
-            </div>
-            <div class="user-reviews-card-date">
-                <div class="date">
-                    <UiDateFormat
-                        :date="appointmentLog.lastModifiedDate"
-                        onlyShowSection="DAY" />
-                </div>
-                <div class="time">
-                    <UiDateFormat
-                        :date="appointmentLog.lastModifiedDate"
-                        onlyShowSection="TIME" />
-                </div>
-            </div>
-        </div>
-    </section>
-
+<div>
+    <ReviewRecords
+      :myAppointmentReviewLogList="myAppointmentReviewLogList"
+    ></ReviewRecords>
 </div>
 
 </template>
 <script lang="ts">
 import { Vue, Component, Action, State } from 'nuxt-property-decorator';
 
-import authService from '~/shared/services/auth.service';
 import { AppointmentLog } from '~/shared/models/appointment.model';
 
 @Component
@@ -55,13 +20,9 @@
     @Action
     storeMyAppointmentReviewLog!: any;
 
-    appointmentLogList: AppointmentLog[] = [];
-    isUserLogin = false;
-
     //////////////////////////////////////////////////////////////////////
 
     mounted() {
-      this.isUserLogin = authService.isUserLogin();
       this.storeMyAppointmentReviewLog();
     }
 
diff --git a/PAMapp/shared/services/auth.service.ts b/PAMapp/shared/services/auth.service.ts
index 6c10d47..469bace 100644
--- a/PAMapp/shared/services/auth.service.ts
+++ b/PAMapp/shared/services/auth.service.ts
@@ -1,15 +1,13 @@
 import { Role } from "../models/enum/role";
 
 class AuthService {
-  private idToken = localStorage.getItem('id_token');
-  private currentRole = localStorage.getItem('current_role');
 
   isAdminLogin(): boolean {
-    return this.currentRole === Role.ADMIN;
+    return localStorage.getItem('current_role') === Role.ADMIN;
   }
 
   isUserLogin(): boolean {
-    return this.currentRole === Role.USER;
+    return localStorage.getItem('current_role') === Role.USER;
   }
 }
 

--
Gitblit v1.8.0