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