保誠-保戶業務員媒合平台
Mila
2021-11-30 84efab848d77c44a7b46e06a12cbfee64e13e9c5
PAMapp/components/Consultant/ConsultantCard.vue
@@ -46,6 +46,7 @@
        <Ui-Dialog
            :isVisible.sync="isVisibleDialog"
            :width="width"
            class="pam-myDemand-dialog"
        >
            <div v-if="appointmentDetail">
                <h5 class="subTitle text--center mb-30">預約成功</h5>
@@ -57,11 +58,11 @@
                    <p>性別:{{gender}}</p>
                    <p>年齡:{{appointmentDetail.age}}</p>
                    <p>職業:{{appointmentDetail.job}}</p>
                    <p>需求:{{appointmentDetail.requirement.replace(',', '、')}}</p>
                    <p>需求:{{appointmentDetail.requirement.split(',').join('、')}}</p>
                    <p
                        v-for="(item, index) in hopeContactTime"
                        :key="index"
                    >連絡時段{{index + 1 | formatNumber}}:{{item}}</p>
                    >連絡時段{{index + 1 | formatNumber}}:{{ item | formatHopeContactTime }}</p>
                </div>
            </div>
        </Ui-Dialog>
@@ -69,8 +70,9 @@
</template>
<script lang="ts">
import { Vue, Component, Prop, Emit } from 'nuxt-property-decorator';
import { AppointmentDetail, Consultants, getAppointmentDetail } from '~/assets/ts/api/consultant';
import { Vue, Component, Prop, Emit, Action } from 'nuxt-property-decorator';
import { Consultants, getAppointmentDetail } from '~/assets/ts/api/consultant';
import { AppointmentDetail } from '~/assets/ts/models/AppointmentDetail';
import { isLogin } from '~/assets/ts/auth';
import { isMobileDevice } from '~/assets/ts/device';
@@ -81,10 +83,21 @@
                const upperNumber = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']
                return upperNumber[index];
            }
        },
        formatHopeContactTime(item: string): string {
          if (item) {
            const [hopeDay, hopeTime] = item.split('、');
            const day = hopeDay.split(',').length > 6 ? '不限日期' : hopeDay;
            const time = hopeTime.split(',').length > 3 ? '不限時間' : hopeTime;
            return `${day}、${time}`;
          }
          return '';
        }
    }
})
export default class ConsultantCard extends Vue {
    @Action removeFromMyConsultantList!: (agentNo: string) => Promise<boolean>;
    @Prop() agentInfo!: Consultants;
    isVisibleDialog = false;
    width: string = '';
@@ -107,7 +120,6 @@
    };
    get avatarFileName() {
        console.log('avatarFileName')
        return this.agentInfo.img ? this.agentInfo.img : this.agentInfo.image;
    }
@@ -136,8 +148,8 @@
    get hopeContactTime() {
        const contactList = this.appointmentDetail.hopeContactTime
            .split("'").map(item => item.slice(0, item.length - 1));
        return contactList.filter(item => !!item)
            .split("'").map(item => item.slice(0, item.length));
        return contactList.filter(item => !!item && item !== ",")
    }
    reserveCommunication() {
        const contactStatus = this.agentInfo.contactStatus;
@@ -158,8 +170,10 @@
        });
    }
    @Emit('removeAgent') removeAgent() {
        return this.agentInfo.agentNo;
    removeAgent() {
        this.removeFromMyConsultantList(this.agentInfo.agentNo).then((removeOk) => {
            console.log('removeOk?', removeOk);
        });
    }
    showAgentDetail(agentNo: string): void {
@@ -249,6 +263,8 @@
    .dialogInfo {
        font-size: 20px;
        overflow-y:scroll;
        height: 400px;
    }
</style>
</style>