| | |
| | | <template> |
| | | <div> |
| | | <div class="pb-10 mdTxt">您的性別</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="pb-10 mdTxt required">顧問所在地區</div> |
| | | <div class="job-pick cursor--pointer" |
| | | @click="showAddress = true"> |
| | | <input class="fz-20 input cursor--pointer pl-10" |
| | |
| | | <i class="icon-down down-icon"></i> |
| | | </div> |
| | | <PopUpFrame :isOpen.sync="showAddress" |
| | | :drawerSize="'45%'"> |
| | | <AddressPicker @close="showAddress = false" |
| | | @change="area => strictQueryDto.area = area" /> |
| | | :drawerSize="'65%'"> |
| | | <AddressPicker |
| | | @confirm="confirmAddress" /> |
| | | </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> |
| | | <i class="icon-information text--bold fix-chrome-click--issue" @click="showDialog = true"></i> |
| | | </div> |
| | | <MultiSelectBtn :mutiSelect.sync="strictQueryDto.requirements" :options="requirementOptions" /> |
| | | <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"/> |
| | | <SingleSelectBtn :singleSelected.sync="strictQueryDto.seniority" :options="seniorityOptions"/> |
| | | </div> |
| | | <div class="rate-consultant pam-paragraph"> |
| | | <div class="pam-paragraph"> |
| | | <div class="pb-10 mdTxt">保險顧問滿意度</div> |
| | | <el-rate v-model="strictQueryDto.avgScore" |
| | | :colors="elRateColors" |
| | | class="rate"> |
| | | <el-rate class="pam-consultant-rate" v-model="strictQueryDto.avgScore"> |
| | | </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 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" /> |
| | | :nameOfOtherOption="'#其他'" :otherSelect.sync="strictQueryDto.otherPopularTags" class="rec-pop-options"/> |
| | | </div> |
| | | </div> |
| | | <div class="rec-footer pam-paragraph"> |
| | | <el-button type="primary" |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="qa-dialog-footer mdTxt" |
| | | @click="showDialog = false"> |
| | | <p>我知道了</p> |
| | | <div class="text--center mdTxt mt-30 mb-30"> |
| | | <el-button type="primary" @click="showDialog = false">我知道了</el-button> |
| | | </div> |
| | | </PopUpFrame> |
| | | |
| | | <PopUpFrame :isOpen.sync="isVisiblePopUp"> |
| | | <div class="text--center mdTxt"> |
| | | <p class="mb-50">尚無推薦資料</p> |
| | | <div class="text--center mdTxt"> |
| | | <el-button type="primary" @click="isVisiblePopUp = false">我知道了</el-button> |
| | | </div> |
| | | </div> |
| | | </PopUpFrame> |
| | | </div> |
| | | </template> |
| | | <script lang="ts"> |
| | | import { |
| | | Vue, |
| | | Component |
| | | } from 'vue-property-decorator'; |
| | | Component, |
| | | Mutation |
| | | } from 'nuxt-property-decorator'; |
| | | import {strictQuery} from '~/assets/ts/api/consultant'; |
| | | import * as _ from 'lodash'; |
| | | @Component |
| | | export default class RecommendConsultant extends Vue { |
| | | isVisiblePopUp = false; |
| | | strictQueryDto={ |
| | | gender:'', |
| | | area:'', |
| | |
| | | ]; |
| | | 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.$router.push('/recommendConsultant/result'); |
| | | this.updateStrictQueryList(res.data); |
| | | if (res.data.length === 0) { |
| | | this.isVisiblePopUp = true; |
| | | return; |
| | | } |
| | | this.$router.push('/recommendConsultant/result'); |
| | | }); |
| | | } |
| | | get notFinishByRequireRules():boolean{ |
| | |
| | | const requirementLength = this.strictQueryDto.requirements.length; |
| | | return !(area && requirementLength >0) |
| | | } |
| | | |
| | | confirmAddress(area: string) { |
| | | this.strictQueryDto.area = area; |
| | | this.showAddress = false; |
| | | } |
| | | |
| | | } |
| | | enum Gender{ |
| | | MALE="male", |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | <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; |
| | |
| | | |
| | | .qa-dialog { |
| | | overflow-y: auto; |
| | | height: auto; |
| | | height: 500px; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | |
| | | justify-content: center; |
| | | margin-bottom: 81px; |
| | | color: #ED1B2E; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .el-drawer__container ::-webkit-scrollbar { |
| | |
| | | height: 47px; |
| | | } |
| | | |
| | | .rate-consultant { |
| | | |
| | | .el-rate__icon { |
| | | font-size: 35px |
| | | } |
| | | } |
| | | |
| | | .el-progress__text { |
| | | display: none; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | .area-txt { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | 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> |