completeFarmInfoPopup.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <popup
  3. v-model:show="showValue"
  4. round
  5. teleport="body"
  6. class="complete-farm-popup"
  7. :close-on-click-overlay="false"
  8. >
  9. <div class="complete-farm-popup__title">{{ t("agriFile.completeFarmInfo") }}</div>
  10. <div class="complete-farm-popup__subtitle">
  11. {{ t("agriFile.getImmediately") }}
  12. <span>{{ t("agriFile.patrolDiagnosisService") }}</span>
  13. </div>
  14. <div class="complete-farm-popup__image">
  15. <slot name="image"></slot>
  16. </div>
  17. <div class="complete-farm-popup__btn" @click="handleOpen">{{ t("agriFile.goEnable") }}</div>
  18. </popup>
  19. </template>
  20. <script setup>
  21. import { computed } from "vue";
  22. import { Popup } from "vant";
  23. import { useI18n } from "@/i18n";
  24. const { t } = useI18n();
  25. const props = defineProps({
  26. show: {
  27. type: Boolean,
  28. default: false,
  29. },
  30. });
  31. const emit = defineEmits(["update:show", "confirm"]);
  32. const showValue = computed({
  33. get: () => props.show,
  34. set: (val) => emit("update:show", val),
  35. });
  36. const handleOpen = () => {
  37. emit("confirm");
  38. showValue.value = false;
  39. };
  40. </script>
  41. <style scoped lang="scss">
  42. .complete-farm-popup {
  43. width: 82%;
  44. padding: 20px 10px;
  45. text-align: center;
  46. &__title,
  47. &__subtitle {
  48. font-size: 24px;
  49. font-family: 'pangmenzhengdao';
  50. }
  51. &__subtitle {
  52. margin-top: -4px;
  53. span {
  54. color: #2199f8;
  55. }
  56. }
  57. &__image {
  58. width: 100%;
  59. height: 156px;
  60. margin: 14px 0;
  61. border-radius: 5px;
  62. background: #f2f4f7;
  63. :deep(img) {
  64. display: block;
  65. width: 100%;
  66. height: 100%;
  67. }
  68. }
  69. &__btn {
  70. width: 162px;
  71. border-radius: 25px;
  72. background: #2199f8;
  73. padding: 8px 0;
  74. color: #fff;
  75. font-size: 16px;
  76. margin: auto;
  77. }
  78. }
  79. </style>