From 4ffc0db28966ad106ded6ff0058c2dad7850bf78 Mon Sep 17 00:00:00 2001 From: HelenHuang <LinHuang@pollex.com.tw> Date: 星期五, 12 十一月 2021 16:19:03 +0800 Subject: [PATCH] TODO#130024 [顧問細節] API 串接 --- PAMapp/components/Consultant/ConsultantCard.vue | 35 ++++++++++++++++++++++++----------- 1 files changed, 24 insertions(+), 11 deletions(-) diff --git a/PAMapp/components/Consultant/ConsultantCard.vue b/PAMapp/components/Consultant/ConsultantCard.vue index 88b44c4..46be292 100644 --- a/PAMapp/components/Consultant/ConsultantCard.vue +++ b/PAMapp/components/Consultant/ConsultantCard.vue @@ -9,11 +9,11 @@ :size="50" :src="agentInfo.img" class="cursor--pointer" - @click.native="$router.push('/agentInfo')" + @click.native="showAgentDetail(agentInfo.agentNo);" ></el-avatar> <div class="satisfaction"> <i class="icon-star pam-icon icon--yellow satisfaction"></i> - <span>{{agentInfo.satisfaction}}</span> + <span>{{agentInfo.avgScore }}</span> </div> </el-col> <el-col :xs="10" :sm="15"> @@ -21,13 +21,14 @@ <div class="professionals"> <span class="professionalsTxt" - v-for="(professional, index) in agentInfo.professionals" + v-for="(expertise, index) in agentInfo.expertise" :key="index" - >#{{professional}}</span> + >#{{expertise}}</span> </div> <div class="delete" - v-if="agentInfo.contactStatus === 'picked'" + v-if="agentInfo.contactStatus !== 'reserved' + || agentInfo.contactStatus !== 'contacted'" @click="removeAgent" >蝘駁</div> </el-col> @@ -43,7 +44,10 @@ </el-col> </el-row> - <Ui-Dialog :isVisible.sync="isVisibleDialog"> + <Ui-Dialog + :isVisible.sync="isVisibleDialog" + :width="width" + > <h5 class="subTitle text--center mb-30">������</h5> <p class="smTxt">隞予 10:00</p> <div class="dialogInfo"> @@ -62,12 +66,15 @@ <script lang="ts"> import { Vue, Component, Prop, Emit } from 'nuxt-property-decorator'; -import { Agents } from '~/plugins/api/home'; +import { Consultants } from '~/assets/ts/api/consultant'; +import { isLogin } from '~/assets/ts/auth'; +import { isMobileDevice } from '~/assets/ts/device'; @Component export default class ConsultantCard extends Vue { - @Prop() agentInfo!: Agents; + @Prop() agentInfo!: Consultants; isVisibleDialog = false; + width: string = ''; get contactTxt() { if (this.agentInfo.contactStatus === 'contacted') { @@ -86,13 +93,15 @@ let date = newDate.getDate(); let hours = newDate.getHours(); let minutes = newDate.getMinutes(); - return `${year}/${month}/${date} ${hours} : ${minutes}` + return isLogin() ? `${year}/${month}/${date} ${hours} : ${minutes}` : '' } reserveCommunication() { - if (this.agentInfo.contactStatus === 'picked') { - this.$router.push('/communication/myDemand') + const contactStatus = this.agentInfo.contactStatus; + if (contactStatus !== 'reserved' && contactStatus !== 'contacted') { + isLogin() ? this.$router.push(`/questionnaire/${this.agentInfo.agentNo}`) : this.$router.push('/login'); } else { + this.width = isMobileDevice() ? '80%' : ''; this.isVisibleDialog = true; } } @@ -100,6 +109,10 @@ @Emit('removeAgent') removeAgent() { return this.agentInfo.agentNo; } + + showAgentDetail(agentNo: string): void { + this.$router.push(`/agentInfo/${agentNo}`); + } } </script> -- Gitblit v1.8.0