From c9d2d22041079a8d5db3777cc8beaa2e209da40e Mon Sep 17 00:00:00 2001
From: HelenHuang <LinHuang@pollex.com.tw>
Date: 星期五, 12 十一月 2021 10:22:15 +0800
Subject: [PATCH] Merge branch 'master' of https://192.168.0.10:8443/r/pcalife/PAM

---
 PAMapp/pages/recommendConsultant/index.vue |  743 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 380 insertions(+), 363 deletions(-)

diff --git a/PAMapp/pages/recommendConsultant/index.vue b/PAMapp/pages/recommendConsultant/index.vue
index 106a164..09310fa 100644
--- a/PAMapp/pages/recommendConsultant/index.vue
+++ b/PAMapp/pages/recommendConsultant/index.vue
@@ -1,442 +1,459 @@
- <template>
-<div  class="pam-page">
+<template>
+  <div class="pam-page">
     <div class="pb-10 mdTxt">����批</div>
-    <div class="mb-30 pam-tags ">
-            <el-button style="margin-right:10px" @click="gender = 'male'" :class="{ 'active': gender ==='male'}">���</el-button>
-            <el-button  @click="gender = 'female'" :class="{'active': gender === 'female'}">憟單��</el-button>  
+    <SingleSelectBtn :singleSelected.sync="strictQueryDto.gender" :options="genderOptions"/>
+    <div class="mt-30">
+      <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="mb-30">
-        <div class="pb-10 mdTxt required">������</div>
-        <div class="job-pick" @click="showAddress = true">      
-            <input class="fz-20 pl-18 input" 
-                style="outline:none margin-right:-18px"
-                :value="district"
-                placeholder="隢���">
-            <i class="icon-down down-icon " style="margin-right:18px"></i>
-        </div> 
-        <PopUpFrame :isOpen.sync="showAddress" :drawerSize=" '45%' ">
-            <AddressPicker 
-            @close="showAddress = false"
-            @change="selectedDistrict"/>
-        </PopUpFrame>
+    <div class="mt-30">
+      <div class="pb-10 mdTxt required" @click="showDialog = true">
+        �閬岷������
+        <span class="hint text--bold">
+          <i class="icon-information text--bold"></i>�銴
+        </span>
+      </div>
+      <MultiSelectBtn :mutiSelect.sync="strictQueryDto.requirements" :options="requirementOptions" />
+    </div>
+    <div class="mt-30 pam-tags">
+      <div class="pb-10 mdTxt">憿批�僑鞈�</div>
+       <SingleSelectBtn :singleSelected.sync="strictQueryDto.seniority" :options="seniorityOptions"/>
+    </div>
+    <div class="rate-consultant mt-30">
+      <div class="pb-10 mdTxt">靽憿批�遛��漲</div>
+      <el-rate v-model="strictQueryDto.avgScore"
+        :colors="elRateColors"
+        class="rate">
+      </el-rate>
+    </div>
+    <div class="mt-30">
+      <div class="rec-popular">
+        <div class="pb-10 mdTxt">���瑼Y揣</div>
+        <div class="hint text--bold ml-10">�銴</div>
+      </div>
+      <MultiSelectBtn :mutiSelect.sync="strictQueryDto.popularTags"
+        :options="popularOptions"
+        :nameOfOtherOption="'#�隞�'" :otherSelect.sync="strictQueryDto.otherPopularTags" />
+    </div>
+    <div class="rec-footer mt-30">
+      <el-button type="primary"
+        :disabled="notFinishByRequireRules"
+        @click="makePair">擐砌����</el-button>
     </div>
 
-    
-    <div class="mb-10">
-        <div class="pb-10 mdTxt required">�閬岷������<span class="hint text--bold" @click="showDialog = true"><i class="icon-information text--bold" @click="showDialog = true"></i>�銴</span></div>
-        
-    </div>
-        <ConsultantQues @change="selectedQuestion = $event" class="mb-30"/>
-    
-
-    <div class="mb-30 pam-tags">
-        <div class= "pb-10 mdTxt">憿批�僑鞈�</div>
-        <div>
-            <el-button class="mb-10" @click="seniority = 'unlimited'" :class="{'active':seniority === 'unlimited'}">
-                <span class="text--bold">銝�� </span><span>撟湧翩銝����</span>
-            </el-button>
-            <el-button style="margin-left:-0.5px" class="mb-10 " @click="seniority = 'junior'" :class="{'active':seniority === 'junior'}">
-                <span class="text--bold">撟渲�� </span><span>蝯血僑頛犖銝�����</span>
-            </el-button>
-            <el-button style="margin-left:-0.5px" class="mb-10" @click="seniority = 'senior'" :class="{'active':seniority === 'senior'}">                
-                <span class="text--bold">鞈楛 </span><span>����麾</span>
-            </el-button>
+    <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>
-
-    <div class="rate-consultant mb-30">
-        <div>
-            <div  class="pb-10 mdTxt">靽憿批�遛��漲</div>
-        </div>
-        <el-rate v-model="ratevalue" :colors="elRateColors" class="rate" @change="selected"></el-rate>
-    </div>
-
-    <div class="mb-30">
-        <div class="rec-popular">
-            <div class="pb-10 mdTxt">���瑼Y揣</div>
-            <div class="hint text--bold ml-10">�銴</div>
-        </div>
-        <div class="pop-tag pam-tags">
-            <div v-for="(popularItem,index) in popularList" :key="index">
-                <el-button class="rec-pop-btn" :class="{'active': popularItem.reversation}" 
-                @click="popularTarget(index)">{{'#'+popularItem.name}}
-                </el-button>
-            </div> 
-            <div class="pam-tags popOtherBtn">
-                <el-button class="other-PopBtn " @click="popOther=!popOther" :class="{'active':popOther=popOther}">#�隞�</el-button>                      
-            </div>
-        </div>
-            <div>
-                <input v-if="popOther" class="other-input " placeholder="隢撓�,��摮�">    
-            </div>
-    </div>
-
-    <div class="rec-footer">
-        <el-button
-        type="primary"
-        
-            :disabled="!district || !selectedQuestion.length"
-            @click="$router.push('/recommendConsultant/result')">擐砌����</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>
+  </div>
 </template>
 <script lang="ts">
-import { Vue, Component } from 'vue-property-decorator';
-@Component
-    export default class RecommendConsultant extends Vue {
-        
-        ratevalue = null;
-        showDialog = false;
-        showAddress=false;
-        district = '';
-        selectedQuestion = [];
-        elRateColors=['#ED1B2E','#ED1B2E','#ED1B2E'];
-        gender: 'male'|'female' = 'male';
-        seniority:'unlimited'|'junior'|'senior' = 'unlimited' ;
-        popOther = '';     
-        yearList=[
-            {
-                title:'銝�� ',
-                subTitle:'撟湧翩銝����',
-                reversation:false
-            },
-            {
-                title:'撟渲�� ',
-                subTitle:'蝯血僑頛犖銝�����',
-                reversation:false
-            },
-            {
-                title:'鞈楛 ',
-                subTitle:'����麾',
-                reversation:false
-            },
-        ]
-        popularList=[
-            {
-                name:'��',
-                reversation:false
-            },
-            {
-                name:'憭梯',
-                reversation:false
-            },
-            {
-                name:'����',
-                reversation:false
-            },
-            {
-                name:'����',
-                reversation:false
-            },
-            {
-                name:'憯賡',
-                reversation:false
-            },
-            {
-                name:'����',
-                reversation:false
-            },
-            {
-                name:'����',
-                reversation:false
-            },
-            {
-                name:'����',
-                reversation:false
-            }
-        ];
-        queaAboutList=[
-                    {
-                        title:'�摨瑁����',
-                        content:'蝒���������敺����犖��振摨剜����������������������靘��'
-                    },
-                    {
-                        title:'摮戊��',
-                        content:'������嚗������� ���摮戊雿�����暑�������'
-                    },
-                    {
-                        title:'鞈閬��',
-                        content:'�鞎∪�痊隞餃�������雲������������風嚗鈭箇����撥�����'
-                    },
-                    {
-                        title:'璅暑��隡�',
-                        content:'��靽�������嚗��暑����車������犖�����挾���暑��閬��'
-                    },
-                    {
-                        title:'靽�瑼�/閬��',
-                        content:'��瑼Z�撌梁������蝚血����靘�◢�蝘餉��瘙�������������銝��'
-                    },
-                    {
-                        title:'��靽',
-                        content:'���漲��������翰�祟�敺����雿�憿批����脰�������蝯行�����潘��隞乩������“������潦��'
-                    },
-                    {
-                        title:'�隞�',
-                        content:'���漲��������翰�祟�敺����雿�憿批����脰�������蝯行�����潘��隞乩������“������潦��'
-                    },
-                ];
-        ageTarget(index: any){
-            this.yearList[index].reversation = !this.yearList[index].reversation ;
-        }
-        popularTarget(index: any){
-            this.popularList[index].reversation = !this.popularList[index].reversation ;
-        }
+  import {
+    Vue,
+    Component
+  } from 'vue-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:'��靽����',
+      },
+    ];
+    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: '��瑼Z�撌梁������蝚血����靘�◢�蝘餉��瘙�������������銝��'
+      },
+      {
+        title: '��靽',
+        content: '���漲��������翰�祟�敺����雿�憿批����脰�������蝯行�����潘��隞乩������“������潦��'
+      },
+      {
+        title: '�隞�',
+        content: '���漲��������翰�祟�敺����雿�憿批����脰�������蝯行�����潘��隞乩������“������潦��'
+      },
+    ];
+    showDialog = false;
+    showAddress = false;
+    elRateColors = ['#ED1B2E', '#ED1B2E', '#ED1B2E'];
 
-        get disableActionButton(): boolean {
-            return true;
-        }
-
-
-
-
-        // @Prop() ilist
-
-        // remove() {
-
-        // }
-
-        // get agentList() {
-        //     return 
-        // }
-        selected() {
-            console.log(this.ratevalue);
-        }
-
-        selectedDistrict(selectDistrict: string): void {
-            console.log('sel', selectDistrict);
-            this.district = selectDistrict;
-            console.log('sel2', selectDistrict);
-
-            // this.showAddress = false;
-        }
+    makePair():void{
+      strictQuery(this.strictQueryDto).then(res=>{
+        console.log('resultData',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">
-
-input:focus,textarea:focus {
+  input:focus,
+  textarea:focus {
     outline: none;
-}
-.input{
-    border:none;
+  }
+
+  .input {
+    border: none;
+    width: 90%;
     border-radius: 10px;
-}
-.job-pick{
+  }
+
+  .job-pick {
     height: 50px;
-    border-radius:10px;
-    border:1px solid #D0D0CE ;
+    border-radius: 10px;
+    border: 1px solid #D0D0CE;
     display: flex;
     justify-content: space-between;
     background-color: #FFFFFF;
-}
-.down-icon{
-        color:#ED1B2E;
-        font-size: 25px;
-        display: flex;
-        justify-content: flex-end;
-        padding-top: 11px;
-        margin-left: -20px;
-    }
-.popOtherBtn{
+  }
 
+  .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;
+  }
+
+  .genderBtn {
+    width: 80px;
+    height: 47px;
     display: contents;
-}
-.qa-dialog{
-    overflow-y:auto;
-    height: 500px;
+  }
+
+  .qa-dialog {
+    overflow-y: auto;
+    height: auto;
     margin-top: 20px;
-}
-.qaTextTitle{
-    margin-top:30px
-}
-.qa-dialog-footer{
+  }
+
+  .qaTextTitle {
+    margin-top: 30px
+  }
+
+  .qa-dialog-footer {
     display: flex;
     justify-content: center;
     margin-bottom: 81px;
     color: #ED1B2E;
-}
-.el-drawer__container ::-webkit-scrollbar {
-        display: none;
-    }
-.el-button+.el-button{
+  }
+
+  .el-drawer__container ::-webkit-scrollbar {
+    display: none;
+  }
+
+  .el-button+.el-button {
     margin-left: 0;
-}
-.seniority-choice{
+  }
+
+  .seniority-choice {
     display: flex;
     flex-wrap: wrap;
-}
-.area-choice{
-    height:50px;
-    border-radius:10px;
-    border:1px solid #D0D0CE ;
+  }
+
+  .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{
+  }
+
+  .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{
+  }
+
+  .el-button.is-disabled {
     font-size: 20px;
     border-radius: 20px;
-    color:#FFFFFF;
-    background-color: #A7A8AA;  
-    border:1px solid #A7A8AA;
-}
-.rec-footer{  
-    height:70px;
+    color: #FFFFFF;
+    background-color: #A7A8AA;
+    border: 1px solid #A7A8AA;
+  }
+
+  .rec-footer {
+    height: 70px;
     display: flex;
     justify-content: center;
     align-items: center;
-    margin: -10px;
-}
-.other-PopBtn{
+  }
+
+  .other-PopBtn {
     width: 90px;
     height: 47px;
     margin-top: 10px;
-}
-.other-input{
-    margin-top: 20px;
-    height: 50px;
-    width:316px;
-    border:1px solid #CCCCCC;
-    ;
-}
-.rec-ques-location{
-    display:flex;
+  }
+
+
+
+  .rec-ques-location {
+    display: flex;
     align-items: center;
-}
-.pop-tag{
+  }
+
+  .pop-tag {
     display: flex;
     flex-wrap: wrap;
     margin: -10px;
 
-}
-.rec-popular{
+  }
+
+  .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{
+  .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{
+    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;
+    color: black;
+    margin: 0px 0px 10px 10px;
+    border: 1px solid #D0D0CE;
     width: 90px;
-    height:47px;
-}
-.rate-consultant{
-    
-    .el-rate__icon{
-        font-size:35px
+    height: 47px;
+  }
+
+  .rate-consultant {
+
+    .el-rate__icon {
+      font-size: 35px
     }
-}
-.el-progress__text{
+  }
+
+  .el-progress__text {
     display: none;
-}
-.el-progress-bar{
+  }
+
+  .el-progress-bar {
     padding-right: 0;
-}
-.el-progress-bar__inner{
-    background-color:#ED1B2E;
-}
+  }
 
-.required {
+  .el-progress-bar__inner {
+    background-color: #ED1B2E;
+  }
+
+  .required {
     position: relative;
-    &::before {
-        content: '*';
-        position: absolute;
-        color: #FF0000;
-        transform: translate(-12px, 0);
-    }
-}
 
-.hint {
+    &::before {
+      content: '*';
+      position: absolute;
+      color: #FF0000;
+      transform: translate(-12px, 0);
+    }
+  }
+
+  .hint {
     font-size: 16px;
     color: #ED1B2E;
     font-weight: bold;
+
     .icon-information {
-        padding: 0 5px;
+      padding: 0 5px;
     }
-}
+  }
 
 
-.area-txt{
+  .area-txt {
     display: flex;
     align-items: center;
     margin-left: 18px;
-}
+  }
 
-@include desktop {
-    .other-input{
-    height: 50px;
-    width:316px;
-    border:1px solid #CCCCCC;
-    margin-left: 10px;
-}
-    .desktopBtn{
-        margin-right: 10px;
-        height:47px
+  @include desktop {
 
+    .desktopBtn {
+      margin-right: 10px;
+      height: 47px
     }
-    .popOtherBtn{
-    margin-left:10px;
-    margin-top:-10px;
-}
-}
-</style>
 
+    .popOtherBtn {
+      margin-left: 10px;
+      margin-top: -10px;
+    }
+  }
+
+</style>

--
Gitblit v1.8.0