From abfd26bb700d93a92da6a04703b0187d4acaaeb5 Mon Sep 17 00:00:00 2001
From: Tomas <tomasysh@gmail.com>
Date: 星期三, 22 十二月 2021 10:13:02 +0800
Subject: [PATCH] refactor: move ts folder to shared folder

---
 PAMapp/pages/recommendConsultant/index.vue |  512 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 499 insertions(+), 13 deletions(-)

diff --git a/PAMapp/pages/recommendConsultant/index.vue b/PAMapp/pages/recommendConsultant/index.vue
index 305c56d..0d0eb55 100644
--- a/PAMapp/pages/recommendConsultant/index.vue
+++ b/PAMapp/pages/recommendConsultant/index.vue
@@ -1,18 +1,19 @@
 <template>
-  <div class="pam-rec-consultant-page">
+  <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"
+      <div class="pb-10 mdTxt required">憿批�����</div>
+      <div class="job-pick"
         @click="showAddress = true">
-        <input class="text--middle  input cursor--pointer pl-10"
+        <input class="text--middle cursor--pointer input pl-10"
           :value="strictQueryDto.area"
-          placeholder="隢���">
+          placeholder="隢���"
+          readonly>
         <i class="icon-down down-icon"></i>
       </div>
       <PopUpFrame :isOpen.sync="showAddress"
-        :drawerSize="'65%'">
+      >
         <AddressPicker
           @confirm="confirmAddress" />
       </PopUpFrame>
@@ -31,11 +32,12 @@
       <div class="pb-10 mdTxt">憿批�僑鞈�</div>
         <SingleSelectBtn :singleSelected.sync="strictQueryDto.seniority" :options="seniorityOptions"/>
     </div>
-    <div class="pam-paragraph">
-      <div class="pb-10 mdTxt">靽憿批�遛��漲</div>
+    <!-- <div class="pam-paragraph">
+      TODO:���遛��漲
+      <div class="pb-10 mdTxt">憿批�遛��漲</div>
       <el-rate class="pam-consultant-rate" v-model="strictQueryDto.avgScore">
       </el-rate>
-    </div>
+    </div> -->
     <div class="pam-paragraph">
       <div class="rec-popular">
         <div class="pb-10 mdTxt">���瑼Y揣</div>
@@ -54,7 +56,7 @@
     </div>
 
     <PopUpFrame :isOpen.sync="showDialog"
-      :drawerSize=" '95%' ">
+    >
       <div class="qaTextTitle mdTxt">
         <strong>�閬岷������</strong>
       </div>
@@ -67,7 +69,7 @@
           </div>
         </div>
       </div>
-      <div class="text--center mdTxt mt-30 mb-30">
+      <div class="text--center mdTxt mt-30">
         <el-button type="primary" @click="showDialog = false">������</el-button>
       </div>
     </PopUpFrame>
@@ -83,8 +85,492 @@
   </div>
 </template>
 
-<script src="./recommend-consultant.component.ts"></script>
+<script lang="ts">
+  import {
+    Vue,
+    Component,
+    Mutation,
+    namespace,
+    Action,
+    State
+  } from 'nuxt-property-decorator';
+  import * as _ from 'lodash';
+  import { Seniority } from '~/shared/models/enum/seniority';
+
+  const localStorage = namespace('localStorage');
+
+  @Component
+  export default class RecommendConsultant extends Vue {
+    isVisiblePopUp = false;
+    strictQueryDto: 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:Seniority.UNLIMITED,
+      },
+      {
+        title:'撟渲��',
+        subTitle:'蝯血僑頛犖銝�����',
+        label:Seniority.YOUNG,
+      },
+      {
+        title:'鞈楛',
+        subTitle:'����麾',
+        label:Seniority.SENIOR,
+      }
+    ];
+    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: '���������憸券�����鈭怒�����嚗���摰帘摰漲嚗��隞亙��澈��ˊ�靽���嚗�'
+      }
+    ];
+    showDialog = false;
+    showAddress = false;
+
+    @Mutation updateStrictQueryList!: (data: any) => void;
+    @Action storeStrictQueryList!: (data: any) => Promise<number>;
+    @State strictQueryList!: any;
+    @localStorage.State recommendConsultantItem!: string;
+
+    mounted() {
+      if (!!this.recommendConsultantItem) {
+        this.strictQueryDto = JSON.parse(this.recommendConsultantItem);
+      }
+    }
+    async makePair() {
+      await this.storeStrictQueryList(this.strictQueryDto).then(dataLength => {
+        if (dataLength === 0) {
+          this.isVisiblePopUp = true;
+          return;
+        }
+        this.$router.push('/recommendConsultant/result');
+      });
+    }
+    get notFinishByRequireRules():boolean{
+      const area = this.strictQueryDto.area;
+      const requirementLength = this.strictQueryDto.requirements
+        ? this.strictQueryDto.requirements.length
+        : 0;
+      return !(area && requirementLength >0)
+    }
+
+    confirmAddress(area: string) {
+      this.strictQueryDto.area = area;
+      this.showAddress = false;
+    }
+
+  }
+  enum Gender{
+    MALE="male",
+    FEMALE="female",
+  }
+
+  export interface StrictQueryDto {
+    gender: string,
+    area: string,
+    status: string,
+    requirements: string[],
+    otherRequirement: string,
+    seniority: string,
+    avgScore: number,
+    popularTags: string[],
+    otherPopularTags: string
+  }
+</script>
 
 <style lang="scss">
-  @import "./recommend-consultant.component.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: 60vh;
+    margin-top: 20px;
+    text-align: justify;
+  }
+
+  .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;
+  }
+
+  .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;
+    }
+  }
+
+  .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>

--
Gitblit v1.8.0