| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <template>
- <div class="input-area">
- <el-select ref="select" v-model="code" @change="change" slot="prepend" placeholder="请选择">
- <div slot="prefix" class="code" @click="$refs.select.focus()">{{code}}</div>
- <el-option v-for="(area, index) of areas" :key="index" :label="area.name" :value="area.pre"></el-option>
- </el-select>
- <el-input v-model="mobile" @change="change" placeholder="请输入手机号"></el-input>
- </div>
- </template>
- <script>
- export default {
- data() {
- return {
- areas: [],
- code: '+86',
- mobile: '',
- }
- },
- computed: {
- fullMobile() {
- return `${this.code}-${this.mobile}`
- }
- },
- mounted() {
- this.getAreas()
- },
- methods: {
- async getAreas() {
- let res = await this.$axios.$post('/api/user/get_mobile_pre_arr')
- if(res) {
- this.areas = res.data.mobilePreArr
- }
- },
- change() {
- this.$emit('change', this.fullMobile)
- },
- }
- }
- </script>
- <style scoped>
- .input-area {
- position: relative;
- display: flex;
- align-items: center;
- }
- .el-select {
- width: 120px;
- }
- .code {
- position: absolute;
- top: 2px;
- left: 10px;
- width: 50px;
- line-height: 36px;
- background: white;
- cursor: pointer;
- text-align: center;
- color: #333;
- }
- </style>
|