場景:后台返回最近醫保年 5個年份的數據 [2019,2018,2017,2016,2015],將數據以props形式傳入 searchForm組件 並以select形式作為搜索條件展示,默認選中最近一年
情況一:已知select options數組 如下設置:
export default { data() { return { options: [{ value: '選項1', label: '黃金糕' }, { value: '選項2', label: '雙皮奶' }, { value: '選項3', label: '蚵仔煎' }, { value: '選項4', label: '龍須面' }, { value: '選項5', label: '北京烤鴨' }], value: '選項1' } } }
情況二:回到開始的場景
處理數據
=>將[2019,2018,2017,2016,2015] 轉為符合 options的數據格式
=>[{label:2019,value:2019},{label:2018,value:2018},{label:2017,value:2017},{label:2016,value:2016},{label:2015,value:2015}],
=>子組件接收 options ,並設置v-model="value" 的value = this.options[0].value;
父組件 <template> <div class="hello"> <item :options="resArr"></item> </div> </template> <script> import item from './a'; export default { name: 'HelloWorld', components:{ item }, data () { return { optionArr:[2019,2018,2017,2016,2015], resArr:[] } }, created() { this.init(); }, methods: { init(){ for(var val of this.optionArr){ this.resArr.push({label:val,value:val}) } } }, } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> </style> 子組件 <template> <div> <el-select v-model="value" style="width:240px;" placeholder="請選擇"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> </div> </template> <script> export default { name:'item', props:{ options:{ type:Array, default:()=>{ return []; } } }, data() { return { value:'' } }, created() { this.value = this.options[0].value; }, } </script> <style scoped> </style>