index-popup.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <ie-popup title="" mode="bottom" ref="popupRef" :showToolbar="false">
  3. <view class="popup-content relative">
  4. <ie-image :is-oss="true" src="/study-bg15.png" custom-class="absolute top-0 left-0 w-full h-392 z-0"
  5. mode="aspectFill" />
  6. <view class="relative z-1">
  7. <view class="px-88 pt-60 pb-60">
  8. <view class="text-40 text-fore-title font-bold">请确认信息</view>
  9. <view class="mt-16 text-32 text-fore-light">让我们开始体验升学备考之旅吧!</view>
  10. </view>
  11. <view class="mx-46 pb-50">
  12. <view class="flex items-center px-42 bg-back rounded-15 h-104 box-border">
  13. <view class="flex-shrink-0">所在省份</view>
  14. <ie-picker ref="pickerRef" v-model="form.location" :list="provinceList" :customStyle="customStyle"
  15. placeholder="请选择" key-label="areaName" key-value="shortName">
  16. </ie-picker>
  17. </view>
  18. <view class="mt-30 flex items-center px-42 bg-back rounded-15 h-104 box-border">
  19. <view class="flex-shrink-0">考生类别</view>
  20. <ie-picker ref="pickerRef" v-model="form.examType" :list="examTypeList" :disabled="!form.location"
  21. :customStyle="customStyle" placeholder="请选择" key-label="dictLabel" key-value="dictValue">
  22. </ie-picker>
  23. </view>
  24. <view class="mt-140">
  25. <ie-button type="primary" @click="handleConfirm">立即体验</ie-button>
  26. </view>
  27. </view>
  28. </view>
  29. </view>
  30. </ie-popup>
  31. </template>
  32. <script lang="ts" setup>
  33. import { useExamType } from '@/composables/useExamType';
  34. import { useUserStore } from '@/store/userStore';
  35. const userStore = useUserStore();
  36. const popupRef = ref();
  37. const { form, provinceList, examTypeList } = useExamType();
  38. const customStyle = {
  39. textAlign: 'right'
  40. }
  41. const handleConfirm = () => {
  42. const { location, examType } = form.value
  43. if (!location) {
  44. uni.$ie.showToast('请选择省份');
  45. return;
  46. }
  47. if (!examType) {
  48. uni.$ie.showToast('请选择考生类别');
  49. return;
  50. }
  51. userStore.tempInfo = {
  52. location,
  53. examType
  54. }
  55. popupRef.value.close();
  56. }
  57. const open = () => {
  58. if (userStore.tempInfo) {
  59. console.log()
  60. form.value.location = userStore.tempInfo.location;
  61. setTimeout(() => {
  62. form.value.examType = userStore.tempInfo!.examType;
  63. }, 0);
  64. }
  65. popupRef.value.open();
  66. }
  67. const close = () => {
  68. popupRef.value.close();
  69. }
  70. defineExpose({ open, close })
  71. </script>
  72. <style lang="scss" scoped></style>