| | |
| | | <template> |
| | | <div>recommendConsultant</div> |
| | | <div class="pam-rec-cosultant-page"> |
| | | <div class="pb-10 mdTxt">您的性別</div> |
| | | <SingleSelectBtn :singleSelected.sync="strictQueryDto.gender" :options="genderOptions"/> |
| | | <div class="pam-paragraph"> |
| | | <div class="pb-10 mdTxt required">所在地區</div> |
| | | <div class="job-pick cursor--pointer" |
| | | @click="showAddress = true"> |
| | | <input class="fz-20 input cursor--pointer pl-10" |
| | | :value="strictQueryDto.area" |
| | | placeholder="請選擇"> |
| | | <i class="icon-down down-icon"></i> |
| | | </div> |
| | | <PopUpFrame :isOpen.sync="showAddress" |
| | | :drawerSize="'45%'"> |
| | | <AddressPicker @close="showAddress = false" |
| | | @change="area => strictQueryDto.area = area" /> |
| | | </PopUpFrame> |
| | | </div> |
| | | <div class="pam-paragraph"> |
| | | <div class="pb-10 mdTxt required"> |
| | | 想要詢問的問題 |
| | | <span class="hint text--bold"> |
| | | <i class="icon-information text--bold" @click="showDialog = true"></i>可複選 |
| | | </span> |
| | | </div> |
| | | <MultiSelectBtn :mutiSelect.sync="strictQueryDto.requirements" :options="requirementOptions" class="rec-multi-select" /> |
| | | </div> |
| | | <div class="pam-paragraph pam-tags"> |
| | | <div class="pb-10 mdTxt">顧問年資</div> |
| | | <SingleSelectBtn :singleSelected.sync="strictQueryDto.seniority" :options="seniorityOptions"/> |
| | | </div> |
| | | <div class="rate-consultant pam-paragraph"> |
| | | <div class="pb-10 mdTxt">保險顧問滿意度</div> |
| | | <el-rate v-model="strictQueryDto.avgScore" |
| | | :colors="elRateColors" |
| | | class="rate"> |
| | | </el-rate> |
| | | </div> |
| | | <div class="pam-paragraph"> |
| | | <div class="rec-popular"> |
| | | <div class="pb-10 mdTxt">熱門檢索</div> |
| | | <div class="hint text--bold ml-10">可複選</div> |
| | | </div> |
| | | <div class="rec-pop-container"> |
| | | <MultiSelectBtn :mutiSelect.sync="strictQueryDto.popularTags" |
| | | :options="popularOptions" |
| | | :nameOfOtherOption="'#其他'" :otherSelect.sync="strictQueryDto.otherPopularTags" class="rec-pop-options"/> |
| | | </div> |
| | | </div> |
| | | <div class="rec-footer pam-paragraph"> |
| | | <el-button type="primary" |
| | | :disabled="notFinishByRequireRules" |
| | | @click="makePair">馬上配對</el-button> |
| | | </div> |
| | | |
| | | <PopUpFrame :isOpen.sync="showDialog" |
| | | :drawerSize=" '95%' "> |
| | | <div class="qaTextTitle mdTxt"> |
| | | <strong>想要詢問的問題</strong> |
| | | </div> |
| | | <div class="qa-dialog"> |
| | | <div v-for="(qaText,index) in queaAboutList" |
| | | :key="index"> |
| | | <div class="pt-10"> |
| | | <p class=" p bold">{{qaText.title}}</p> |
| | | <p class="p">{{qaText.content}}</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="qa-dialog-footer mdTxt" |
| | | @click="showDialog = false"> |
| | | <p>我知道了</p> |
| | | </div> |
| | | </PopUpFrame> |
| | | |
| | | </div> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { |
| | | Vue, |
| | | Component, |
| | | Mutation |
| | | } from 'nuxt-property-decorator'; |
| | | import {strictQuery} from '~/assets/ts/api/consultant'; |
| | | import * as _ from 'lodash'; |
| | | @Component |
| | | export default class RecommendConsultant extends Vue { |
| | | strictQueryDto={ |
| | | gender:'', |
| | | area:'', |
| | | status:'', |
| | | requirements:[], |
| | | otherRequirement:'', |
| | | seniority:'', |
| | | avgScore:0, |
| | | popularTags:[], |
| | | otherPopularTags:'', |
| | | }; |
| | | genderOptions=[ |
| | | { |
| | | title:'男性', |
| | | label:Gender.MALE, |
| | | }, |
| | | { |
| | | title:'女性', |
| | | label:Gender.FEMALE, |
| | | } |
| | | ]; |
| | | requirementOptions=[ |
| | | { |
| | | title:'健康與保障', |
| | | label:'健康與保障', |
| | | }, |
| | | { |
| | | title:'子女教育', |
| | | label:'子女教育', |
| | | }, |
| | | { |
| | | title:'資產規劃', |
| | | label:'資產規劃', |
| | | }, |
| | | { |
| | | title:'樂活退休', |
| | | label:'樂活退休', |
| | | }, |
| | | { |
| | | title:'保單健檢/規劃', |
| | | label:'保單健檢/規劃', |
| | | }, |
| | | { |
| | | title:'分紅保單相關', |
| | | label:'分紅保單相關', |
| | | }, |
| | | ]; |
| | | seniorityOptions=[ |
| | | { |
| | | title:'不限', |
| | | subTitle:'年齡不是問題', |
| | | label:'不限', |
| | | }, |
| | | { |
| | | title:'年輕', |
| | | subTitle:'給年輕人一個機會', |
| | | label:'年輕', |
| | | }, |
| | | { |
| | | title:'資深', |
| | | subTitle:'薑是老的辣', |
| | | label:'資深', |
| | | } |
| | | ]; |
| | | popularOptions=[ |
| | | { |
| | | title: '#防疫', |
| | | label:'' |
| | | }, |
| | | { |
| | | title: '#失能', |
| | | label:'失能' |
| | | }, |
| | | { |
| | | title: '#防癌', |
| | | label:'防癌' |
| | | }, |
| | | { |
| | | title: '#醫療', |
| | | label:'醫療' |
| | | }, |
| | | { |
| | | title: '#壽險', |
| | | label: '壽險' |
| | | }, |
| | | { |
| | | title: '#儲蓄', |
| | | label:'儲蓄' |
| | | }, |
| | | { |
| | | title: '#投資', |
| | | label:'投資' |
| | | }, |
| | | { |
| | | title: '#意外', |
| | | label:'意外' |
| | | } |
| | | ]; |
| | | queaAboutList = [ |
| | | { |
| | | title: '健康與保障', |
| | | content: '突發的意外或疾病,往往造成個人或家庭沉重的經濟負擔,周全的保險才能擁有一個無憂的未來。' |
| | | }, |
| | | { |
| | | title: '子女教育', |
| | | content: '利用分紅保單,規劃教育基金 提早為子女作準備,讓生活更有保障!' |
| | | }, |
| | | { |
| | | title: '資產規劃', |
| | | content: '當財務責任加重時,規劃充足的保障、提供經濟上的庇護,是人生最堅強的後盾。' |
| | | }, |
| | | { |
| | | title: '樂活退休', |
| | | content: '兼具保險與投資雙重功能,可靈活搭配各種附約,順應人生不同階段的靈活需要。' |
| | | }, |
| | | { |
| | | title: '保單健檢/規劃', |
| | | content: '全面檢視自己的保障結構是否符合現在或未來的風險移轉需求,透過「斷、捨、離」把錢花在刀口上。' |
| | | }, |
| | | { |
| | | title: '防疫保單', |
| | | content: '匹配度是透過嚴選配對或快速篩選後,將每一位保險顧問資料進行比對後排序推薦給您的媒合數值,您可以作為選擇適合顧問的參考值。' |
| | | }, |
| | | { |
| | | title: '其他', |
| | | content: '匹配度是透過嚴選配對或快速篩選後,將每一位保險顧問資料進行比對後排序推薦給您的媒合數值,您可以作為選擇適合顧問的參考值。' |
| | | }, |
| | | ]; |
| | | showDialog = false; |
| | | showAddress = false; |
| | | elRateColors = ['#ED1B2E', '#ED1B2E', '#ED1B2E']; |
| | | |
| | | @Mutation updateStrictQueryList!: (data: any) => void; |
| | | |
| | | makePair():void{ |
| | | strictQuery(this.strictQueryDto).then(res=>{ |
| | | console.log('resultData',res.data); |
| | | this.updateStrictQueryList(res.data); |
| | | this.$router.push('/recommendConsultant/result'); |
| | | }); |
| | | } |
| | | get notFinishByRequireRules():boolean{ |
| | | const area = this.strictQueryDto.area; |
| | | const requirementLength = this.strictQueryDto.requirements.length; |
| | | return !(area && requirementLength >0) |
| | | } |
| | | } |
| | | enum Gender{ |
| | | MALE="male", |
| | | FEMALE="female", |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" > |
| | | |
| | | .pam-rec-cosultant-page { |
| | | .rec-pop-container{ |
| | | width:310px; |
| | | .rec-pop-options{ |
| | | .el-checkbox-group{ |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | flex-direction: row; |
| | | .el-checkbox{ |
| | | width:90px; |
| | | height: 50px; |
| | | padding:0; |
| | | .el-checkbox__label{ |
| | | justify-content: center; |
| | | align-items: center; |
| | | display: flex; |
| | | padding:15px 20px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .pam-selectAll-btn{ |
| | | margin-top: 60px; |
| | | margin-left:-203px; |
| | | height: 50px; |
| | | width: 90px; |
| | | padding: 10px; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | .rec-multi-select{ |
| | | .el-checkbox-group { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: flex-start; |
| | | } |
| | | } |
| | | |
| | | input:focus, |
| | | textarea:focus { |
| | | outline: none; |
| | | } |
| | | |
| | | .input { |
| | | border: none; |
| | | width: 90%; |
| | | border-radius: 10px; |
| | | } |
| | | |
| | | .job-pick { |
| | | height: 50px; |
| | | border-radius: 10px; |
| | | border: 1px solid #D0D0CE; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #FFFFFF; |
| | | } |
| | | |
| | | .down-icon { |
| | | color: #ED1B2E; |
| | | font-size: 25px; |
| | | align-self: center; |
| | | margin-right: 15px; |
| | | } |
| | | |
| | | .popOtherBtn { |
| | | margin-left: -190px; |
| | | margin-top: 45px; |
| | | } |
| | | |
| | | .genderBtn { |
| | | width: 80px; |
| | | height: 47px; |
| | | display: contents; |
| | | } |
| | | |
| | | .qa-dialog { |
| | | overflow-y: auto; |
| | | height: 500px; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .qaTextTitle { |
| | | margin-top: 30px |
| | | } |
| | | |
| | | .qa-dialog-footer { |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-bottom: 81px; |
| | | color: #ED1B2E; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .el-drawer__container ::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | .el-button+.el-button { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | .seniority-choice { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .area-choice { |
| | | height: 50px; |
| | | border-radius: 10px; |
| | | border: 1px solid #D0D0CE; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | background-color: #FFFFFF; |
| | | } |
| | | |
| | | .area-icon { |
| | | color: #ED1B2E; |
| | | font-size: 25px; |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding-right: 16px; |
| | | padding-top: 11px; |
| | | } |
| | | |
| | | input::-webkit-input-placeholder { |
| | | font-size: 20px; |
| | | padding-left: 10px; |
| | | } |
| | | |
| | | .el-button.is-disabled { |
| | | font-size: 20px; |
| | | border-radius: 20px; |
| | | color: #FFFFFF; |
| | | background-color: #A7A8AA; |
| | | border: 1px solid #A7A8AA; |
| | | } |
| | | |
| | | .rec-footer { |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | |
| | | .other-PopBtn { |
| | | width: 90px; |
| | | height: 47px; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | |
| | | |
| | | .rec-ques-location { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .pop-tag { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin: -10px; |
| | | |
| | | } |
| | | |
| | | .rec-popular { |
| | | display: flex; |
| | | align-items: baseline; |
| | | padding-top: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .rec-btn-type { |
| | | padding-bottom: 10px; |
| | | } |
| | | |
| | | .rec-question { |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | } |
| | | |
| | | .rec-banner { |
| | | height: 120px; |
| | | background-color: #D0D0CE; |
| | | |
| | | } |
| | | |
| | | .rec-btn { |
| | | font-size: 20px; |
| | | border-radius: 20px; |
| | | color: black; |
| | | border: 1px solid #D0D0CE; |
| | | } |
| | | |
| | | .rec-pop-btn { |
| | | font-size: 20px; |
| | | border-radius: 20px; |
| | | color: black; |
| | | margin: 0px 0px 10px 10px; |
| | | border: 1px solid #D0D0CE; |
| | | width: 90px; |
| | | height: 47px; |
| | | } |
| | | |
| | | .rate-consultant { |
| | | |
| | | .el-rate__icon { |
| | | font-size: 35px |
| | | } |
| | | } |
| | | |
| | | .el-progress__text { |
| | | display: none; |
| | | } |
| | | |
| | | .el-progress-bar { |
| | | padding-right: 0; |
| | | } |
| | | |
| | | .el-progress-bar__inner { |
| | | background-color: #ED1B2E; |
| | | } |
| | | |
| | | .required { |
| | | position: relative; |
| | | |
| | | &::before { |
| | | content: '*'; |
| | | position: absolute; |
| | | color: #FF0000; |
| | | transform: translate(-12px, 0); |
| | | z-index: 5; |
| | | } |
| | | } |
| | | |
| | | .hint { |
| | | font-size: 16px; |
| | | color: #ED1B2E; |
| | | font-weight: bold; |
| | | |
| | | .icon-information { |
| | | padding: 0 5px; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | |
| | | |
| | | .area-txt { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-left: 18px; |
| | | } |
| | | |
| | | @include desktop { |
| | | |
| | | .desktopBtn { |
| | | margin-right: 10px; |
| | | height: 47px |
| | | } |
| | | |
| | | .popOtherBtn { |
| | | margin-left: 10px; |
| | | margin-top: -10px; |
| | | } |
| | | |
| | | .rec-pop-container{ |
| | | width:auto; |
| | | .rec-pop-options{ |
| | | .el-checkbox-group{ |
| | | display: flex; |
| | | flex-wrap:wrap; |
| | | flex-direction: none; |
| | | .el-checkbox{ |
| | | width:90px; |
| | | height: 50px; |
| | | padding:0; |
| | | .el-checkbox__label{ |
| | | justify-content: center; |
| | | align-items: center; |
| | | display: flex; |
| | | padding:15px 20px; |
| | | text-align: center; |
| | | } |
| | | } |
| | | .pam-selectAll-btn{ |
| | | margin-top:0px; |
| | | margin-left:0px; |
| | | height: 50px; |
| | | width: 90px; |
| | | padding: 10px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | .rec-multi-select{ |
| | | .el-checkbox-group { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: flex-start; |
| | | flex-wrap: wrap; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | </style> |