phoneAddressSelect.vue 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <template>
  2. <div class="phone-address">
  3. <div class="search-w">
  4. <input class="search-input" placeholder="搜索" type="text" v-model="keyword">
  5. <h-icon type="sousuo" class="sousuo-icon" />
  6. </div>
  7. <ul class="num-list">
  8. <li class="num-item" v-for="(item, index) in selectCall" :key="index" @click="selectPhone(item)">{{`${item[1]}(${item[0]})`}}</li>
  9. </ul>
  10. </div>
  11. </template>
  12. <script>
  13. import selectCall from '@/util/country.js'
  14. export default {
  15. data () {
  16. return {
  17. keyword: ''
  18. }
  19. },
  20. computed: {
  21. selectCall () {
  22. return selectCall.filter(item => `${item[1]}(${item[0]})`.indexOf(this.keyword) > -1)
  23. }
  24. },
  25. methods: {
  26. selectPhone (item) {
  27. this.$emit('select', item)
  28. }
  29. }
  30. }
  31. </script>
  32. <style lang="scss" scoped>
  33. .phone-address {
  34. padding: 20px 20px 10px;
  35. border:1px solid rgba(144,144,144,1);
  36. border-radius: 3px;
  37. font-size: 14px;
  38. color: #202020;
  39. height: 224px;
  40. width: 240px;
  41. overflow: auto;
  42. position: absolute;
  43. background: #fff;
  44. left: 0;
  45. .search-w {
  46. position: relative;
  47. }
  48. .search-input {
  49. height: 26px;
  50. line-height: 24px;
  51. background:rgba(247,247,247,1);
  52. border:1px solid rgba(144,144,144,1);
  53. border-radius:3px;
  54. width: 100%;
  55. padding-right: 27px;
  56. &::placeholder {
  57. text-align: right;
  58. }
  59. }
  60. .sousuo-icon {
  61. position: absolute;
  62. right: 8px;
  63. top: 8px;
  64. line-height: 26px;
  65. color: #909090;
  66. display: inline;
  67. }
  68. li {
  69. cursor: pointer;
  70. border-bottom: 0.25px solid #707070;
  71. padding: 6px 0;
  72. line-height: 18px;
  73. color: #909090;
  74. &:hover {
  75. color: #202020;
  76. }
  77. }
  78. }
  79. </style>