From 2961569ad7a13d74bd55b33c588d22a7bb1f705d Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期三, 15 十二月 2021 13:09:16 +0800 Subject: [PATCH] Merge branch 'master' of https://dev.pollex.com.tw:8443/r/pcalife/PAM --- PAMapp/components/multiSelectBtn.vue | 44 +++++++++++++++++++++++++++++++++++++------- 1 files changed, 37 insertions(+), 7 deletions(-) diff --git a/PAMapp/components/multiSelectBtn.vue b/PAMapp/components/multiSelectBtn.vue index af57166..93faa28 100644 --- a/PAMapp/components/multiSelectBtn.vue +++ b/PAMapp/components/multiSelectBtn.vue @@ -4,13 +4,21 @@ <el-checkbox v-for="(option, index) in options" :key="index" - :label="option" - :name="option" - ></el-checkbox> + :label="option.label"> + {{option.title}} + </el-checkbox> <template v-if="nameOfSelectAll"> - <button class="pam-selectAll-btn cursor--pointer" :class="{'selected':isSelectAll}" :model="isSelectAll" @click="selectAll"> + <button class="pam-selectAll-btn cursor--pointer fix-chrome-click--issue" :class="{'selected':isSelectAll}" :model="isSelectAll" @click="selectAll"> <span>{{nameOfSelectAll}}</span> </button> + </template> + <template v-if="nameOfOtherOption"> + <button class="pam-selectAll-btn cursor--pointer fix-chrome-click--issue" :class="{'selected':isSelectOtherOption}" :model="isSelectOtherOption" @click="selectOther"> + {{nameOfOtherOption}} + </button> + <div> + <input class="pam-muti-select-other cursor--pointer " v-if="isSelectOtherOption" v-model="syncOtherSelect" placeholder="隢撓�,���20摮�"> + </div> </template> </el-checkbox-group> </div> @@ -18,12 +26,16 @@ <script lang="ts"> import { Vue, Component, Prop, PropSync} from 'vue-property-decorator'; + import { OptionBtnDto } from './singleSelectBtn.vue'; @Component export default class MultiSelectBtn extends Vue { @PropSync('mutiSelect',{type:Array,default:()=>[]}) syncMutiSelect!:string[]; + @Prop({default:()=>[]}) options!:OptionBtnDto[]; @Prop({default:''}) nameOfSelectAll!:string; - @Prop({default:()=>[]}) options!:string[]|[]; + @PropSync('otherSelect',{default:''}) syncOtherSelect!:string; + @Prop({type:String,default:''}) nameOfOtherOption!:string; + isSelectOtherOption=false; isSelectAll=false; updated() { @@ -32,9 +44,17 @@ selectAll():void{ this.isSelectAll= !this.isSelectAll; - this.syncMutiSelect = this.isSelectAll ? this.options:[]; + this.syncMutiSelect = this.isSelectAll ? this.optionsFormat(this.options):[]; } - + optionsFormat(optios:OptionBtnDto[]):string[]{ + return optios.map(o=>o.title); + } + selectOther():void{ + this.isSelectOtherOption = !this.isSelectOtherOption; + if(!this.isSelectOtherOption){ + this.syncOtherSelect = ''; + } + } } </script> @@ -44,6 +64,7 @@ border: 1px $LIGHT_GREY solid; background-color: $PRIMARY_WHITE; border-radius: 30px; + color: $PRIMARY_BLACK; font-size: 20px; margin-right: 10px; margin-bottom: 10px; @@ -52,4 +73,13 @@ color: $PRIMARY_WHITE; } } + .pam-muti-select-other { + height: 50px; + padding: 5px; + -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */ + -moz-box-sizing: border-box; /* Firefox, other Gecko */ + box-sizing: border-box; + width: 316px; + border: 1px solid #CCCCCC; + } </style> -- Gitblit v1.8.0