保誠-保戶業務員媒合平台
Mila
2021-12-23 c20a0f1a1dbaa23d1b073f9a9377cac5d572f277
PAMapp/components/careerSelect.vue
@@ -1,6 +1,6 @@
<template>
  <div>
    <div class="mdTxt pt-10 pb-10">職業</div>
    <div class="mdTxt pt-10 pb-10">您的職業</div>
      <div class="ques-career__select" @click="openPopUp">
        <div class="ques-career__select-input">
          <span v-if="!syncCareerSelect">請選擇</span>
@@ -10,40 +10,43 @@
          <i class="icon-down down-icon"></i>
        </div>
      </div>
      <PopUpFrame :isOpen.sync="showJobDrawer" drawerSize='60%'>
      <PopUpFrame :isOpen.sync="showJobDrawer" :dialogWidth="'400px'">
        <div class="pam-career">
          <div class="subTitle">職業</div>
          <div class="subTitle">您的職業</div>
          <el-radio-group class="pam-single__select--col" v-model="career" @change="handleChange">
            <el-radio-button v-for="(career,index) in options"
              :key="index"
            <el-radio-button v-for="(career,index) in options"
              :key="index"
              :label="career.label">
              {{career.title}}
            </el-radio-button>
          </el-radio-group>
          <div class="mt-10" v-if="career === '其他'">
            <input class="pam-career__other-input"
          <div class="mt-20 h-50 pam-career__other">
            <input
              v-if="career === '其他'"
              class="pam-career__other-input"
              :class="{'warning':!career_Other}"
              v-model="career_Other" >
              v-model="career_Other" >
          </div>
          <el-button type="primary"
          <el-button type="primary"
            class="pam-career__confirm"
            :disabled="isCareerVerifyFailed"
            :disabled="isCareerVerifyFailed"
            @click="patchCareer">
              確定
          </el-button>
        </div>
      </PopUpFrame>
  </div>
</template>
<script lang="ts">
  import { Component , PropSync , Vue} from "vue-property-decorator";
  import * as _ from 'lodash';
  @Component
  export default class CareerSelect extends Vue {
    @PropSync('careerSelect',{ type: String, default :''}) syncCareerSelect :string;
    @PropSync('careerSelect',{ type: String, default :''}) syncCareerSelect! :string;
    showJobDrawer = false;
    career='';
    career_Other='';
@@ -62,7 +65,7 @@
      }
    ];
    get isCareerVerifyFailed():boolean{
      return !this.career || (_.isEqual(this.career,'其他')&&!this.career_Other) ;
      return !this.career || (_.isEqual(this.career,'其他')&&!this.career_Other) ;
    }
    handleChange(event:any):void{
      if(event !== '其他'){
@@ -83,7 +86,7 @@
          this.career = '其他';
          this.career_Other = this.syncCareerSelect;
        }
      }
      }
    }
    patchCareer():boolean {
@@ -127,23 +130,29 @@
      }
    }
  }
  .pam-career__other-input{
  .h-50 {
    height: 50px;
  }
  .pam-career__other {
    width: 100%;
    border: 1px #CCCCCC solid;
    width: 300px;
    padding-left: 15px;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    &.warning{
      border: 1px $PRIMARY_RED solid;
    .pam-career__other-input {
      height: 50px;
      border: 1px #CCCCCC solid;
      width: 100%;
      padding-left: 15px;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      &.warning{
        border: 1px $PRIMARY_RED solid;
      }
    }
  }
  .pam-career__confirm{
    width: 120px;
    height: 50px;
    margin-top: 30px;
    margin-top: 20px;
  }
</style>
</style>