index.vue 1.04 KB
Newer Older
1
<template>
dragondean@qq.com's avatar
dragondean@qq.com committed
2
    <selector v-model="valueSync" :options="countryList" value-field="tel" key-field="id" :label-field="item => $l(item, 'name') + ' +' + item.tel" filterable clearable :disabled="disabled"></selector>
3 4 5 6 7 8 9 10
</template>
<script>
import {getCountryListAll} from '@/api/ecw/country'
import selector from '@/components/Selector'
export default {
    components: {selector},
    props: {
        value: String,
dragondean@qq.com's avatar
dragondean@qq.com committed
11
        disabled: Boolean
12 13 14 15 16 17 18 19 20
    },
    data(){
        return {
            valueSync: '',
            countryList:[]
        }
    },
    watch:{
        valueSync(){
dragondean@qq.com's avatar
dragondean@qq.com committed
21
            this.$emit('input', this.valueSync.replace('+', ''))
22 23
        },
        value(){
dragondean@qq.com's avatar
dragondean@qq.com committed
24
            if(this.value)this.valueSync = this.value
25 26 27 28
        }
    },
    created(){
        if(this.value){
dragondean@qq.com's avatar
dragondean@qq.com committed
29
            this.valueSync = this.value
30 31
        }
        getCountryListAll().then(res => {
dragondean@qq.com's avatar
dragondean@qq.com committed
32 33 34 35
          this.countryList = res.data.map(item => {
            item.tel = item.tel.replace('+', '')
            return item
          })
36 37 38 39 40 41 42
        })
    },
    methods:{

    }
}
</script>