index.vue 792 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <template>
  2. <u-picker
  3. :show="show"
  4. :defaultIndex="defaultIndex"
  5. :columns="columns"
  6. keyName="label"
  7. @cancel="cancel"
  8. @confirm="confirm"
  9. />
  10. </template>
  11. <script>
  12. import { areaCode } from "./areaCode";
  13. export default {
  14. data() {
  15. return {
  16. show: false,
  17. defaultIndex: [0],
  18. };
  19. },
  20. methods: {
  21. init() {
  22. this.show = true;
  23. },
  24. confirm({ value }) {
  25. const item = value[0];
  26. this.$emit("chooseArea", item.value);
  27. this.show = false;
  28. },
  29. cancel() {
  30. this.show = false;
  31. },
  32. },
  33. computed: {
  34. columns() {
  35. const list = areaCode.map((i) => {
  36. return { label: `${i.label} +${i.value}`, value: i.value };
  37. });
  38. return [list];
  39. },
  40. },
  41. };
  42. </script>
  43. <style lang="scss" scoped></style>