{"id":31501,"date":"2024-07-23T16:37:50","date_gmt":"2024-07-23T08:37:50","guid":{"rendered":"https:\/\/www.goglobalsafe.com\/?page_id=31501"},"modified":"2024-09-10T16:41:16","modified_gmt":"2024-09-10T08:41:16","slug":"vue-buy","status":"publish","type":"page","link":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/","title":{"rendered":"vue-buy"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"31501\" class=\"elementor elementor-31501\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-46677bb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"46677bb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-efb84c3\" data-id=\"efb84c3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-31e0ee9 elementor-widget elementor-widget-shortcode\" data-id=\"31e0ee9\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n<link href=\"\/wp-content\/static\/element\/index.min.css\" rel=\"stylesheet\">\n<link rel=\"stylesheet\" href=\"\/wp-content\/static\/js\/flatpickr.min.css\">\n<script src=\"\/wp-content\/static\/js\/flatpickr.min.js\"><\/script>\n<!--<link href=\"\/wp-content\/static\/js\/full.min.css\" rel=\"stylesheet\" type=\"text\/css\" \/>-->\n<script src=\"\/wp-content\/static\/js\/vue.global.js\"><\/script>\n<script src=\"\/wp-content\/static\/js\/axios.min.js\"><\/script>\n<script src=\"\/wp-content\/static\/element\/index.full.min.js\"><\/script>\n<link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@23.8.1\/build\/css\/intlTelInput.css\">\n<link rel=\"stylesheet\" href=\"\/wp-content\/themes\/astra\/css\/vue-buy.css\">\n<style>\n    .price-show {\n        font-size: 1rem;\n        color: red;\n    }\n    .price-show2 {\n        font-size: 0.7rem;\n        color: red;\n    }\n<\/style>\n<div id=\"app\" class=\"buy app\" data-no-translation=\"\">\n    <!-- header \u5438\u9876\u5f00\u59cb -->\n    <div class=\"header2 hidden md:flex fixed top-0 lg:top-20 left-0 w-full min-h-28 justify-between items-center z-50 bg-white shadow-md\"\n         v-cloak>\n        <div class=\"container mx-auto px-4 flex justify-between items-center h-full\" v-cloak>\n            <!-- \u6807\u9898 -->\n            <span class=\"insurance-title\" v-cloak>{{ transheader.title }}<\/span>\n            <!-- \u4ef7\u683c\u548c\u6309\u94ae\u653e\u5728\u53f3\u4fa7 -->\n            <div class=\"flex items-center space-x-[100px] mr-20\"> <!-- \u4f7f\u7528 space-x-10 \u521b\u5efa40px\u95f4\u8ddd -->\n                <!-- \u4ef7\u683c -->\n                <div class=\"policy-msg\">\n                    <span class=\"policy-total\" v-cloak>{{ transheader.policy }}<\/span>\n                    <span class=\"policy-total\" v-cloak>${{ insuranceDetails.origin_amount }} AUD<\/span>\n                <\/div>\n                <!-- \u6309\u94ae -->\n                <div>\n                    <button type=\"button\" @click=\"handleSubmit\" :class=\"buttonClass\" :disabled=\"!isFormValid\"\n                            class=\"buy-btn md:mt-3 px-4 py-1.5 flex items-center justify-center rounded text-white text-lg tracking-wider font-medium\">\n                        {{ transheader.buy }}\n                    <\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <!--header \u5438\u9876\u7ed3\u675f-->\n    <div class=\"md:mt-12 mt-6 md:pt-[50px]\" v-cloak>\n        <!--\u652f\u4ed8\u5f39\u7a97-->\n        <div class=\"modal-overlay\" v-if=\"showSubmitModal\" @click=\"handleOverlayClick\" v-cloak>\n\n            <div class=\"modal-content-large\" @click.stop> <div class=\"close-btn-area\">\n                    <div class=\"close-btn\" @click=\"closeSubmitModal\">\n                    <\/div>\n                <\/div>\n\n                <div class=\"submit2-modal-body\">\n                    <div class=\"pay-type\">\n\n                        <div class=\"pay-main\" v-if=\"payImg && insurance_info.id !== 'INSURANCE-OSHC:100' && insurance_info.id !== 'INSURANCE-OSHC:3'\">\n                            <span>{{paymentTitle.wechat}}<\/span>\n                            <span class=\"price-show\">{{insuranceDetails.amount}} AUD<\/span>\n                            <img :src=\"payImg\" class=\"pay-img\" :alt=\"paymentTitle.wechat\" \/>\n                        <\/div>\n\n                        <div class=\"pay-type-title\">{{paymentTitle.morePayment}}<\/div>\n\n                        <div class=\"per-pay-type\" @click=\"submitForm(3)\">\n                            <div class=\"ppt-left\">\n                                <img decoding=\"async\" class=\"pt-icon\" src=\"\/wp-content\/static\/home\/Product\/waive\/zh\/pay-email.png\" alt=\"email-pay\" \/>\n                                <div class=\"copy-desc\">\n                                    <template v-if=\"insurance_info.id !== 'INSURANCE-OSHC:4'\">\n                                        <div class=\"cd-title\">{{paymentTitle.email1}}<\/div>\n                                    <\/template>\n                                    <template v-else>\n                                        <div class=\"cd-title\">{{paymentTitle.email1}} <span class=\"price-show2\">{{insuranceDetails.amount}} AUD<\/span><\/div>\n                                    <\/template>\n                                    <div class=\"cd-second-title\">{{paymentTitle.email2}}<\/div>\n                                <\/div>\n                            <\/div>\n                            <img decoding=\"async\" class=\"pt-jump\" src=\"\/wp-content\/static\/home\/Product\/waive\/zh\/right.svg\" \/>\n                        <\/div>\n\n                        <div class=\"per-pay-type\" @click=\"submitForm(1)\" v-if=\"insurance_info.id !== 'INSURANCE-OSHC:100'\">\n                            <div class=\"ppt-left\">\n                                <img decoding=\"async\" class=\"pt-icon\" src=\"\/wp-content\/static\/home\/Product\/waive\/zh\/pay-credit.png\" alt=\"creditcard-pay\" \/>\n                                <div class=\"copy-desc\">\n                                    <template v-if=\"insurance_info.id !== 'INSURANCE-OSHC:4'\">\n                                        <div class=\"cd-title\">{{paymentTitle.card1}}<\/div>\n                                    <\/template>\n                                    <template v-else>\n                                        <div class=\"cd-title\">{{paymentTitle.card1}} <span class=\"price-show2\">{{insuranceDetails.origin_amount}} AUD<\/span><\/div>\n                                    <\/template>\n                                    <div class=\"cd-second-title\">{{paymentTitle.card2}}<\/div>\n                                <\/div>\n                            <\/div>\n                            <img decoding=\"async\" class=\"pt-jump\" src=\"\/wp-content\/static\/home\/Product\/waive\/zh\/right.svg\" \/>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n            <\/div>\n        <\/div>\n        <div class=\"checkout-container\">\n\n            <!-- <p class=\"text-xl font-bold mb-4\" style=\"color:#FF0000\" v-cloak>{{ translations.tip }}<\/p> -->\n\n            <div v-if=\"big_loading\" class=\"fixed inset-0 flex justify-center items-center backdrop-blur-sm v-cloak\" style=\"z-index: 1000;\">\n                <div class=\"flex space-x-2 justify-center items-center\">\n                    <span class=\"sr-only\">Loading...<\/span>\n                    <div class=\"h-8 w-8 bg-black rounded-full animate-bounce [animation-delay:-0.3s]\"><\/div>\n                    <div class=\"h-8 w-8 bg-black rounded-full animate-bounce [animation-delay:-0.15s]\"><\/div>\n                    <div class=\"h-8 w-8 bg-black rounded-full animate-bounce\"><\/div>\n                <\/div>\n            <\/div>\n\n            <div v-if=\"alert_error_msg\" v-cloak class=\"fixed inset-0 flex justify-center items-center bg-black bg-opacity-50 z-50\">\n                <div class=\"font-[sans-serif] space-y-6\">\n                    <div class=\"flex items-start flex-col sm:flex-row bg-yellow-100 text-yellow-800 p-4 rounded-lg relative max-w-lg mx-auto shadow-lg\" role=\"alert\">\n                        <span class=\"block sm:inline text-sm ml-4 mr-8 sm:ml-0\" v-cloak>{{ alert_error_msg }}<\/span>\n                        <svg @click=\"closeErrorAlert\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"w-7 hover:bg-yellow-200 rounded-lg transition-all p-2 cursor-pointer fill-yellow-500 absolute right-4 top-1\/2 -translate-y-1\/2\" viewbox=\"0 0 320.591 320.591\">\n                            <path d=\"M287.9 318.583a30.37 30.37 0 0 1-21.257-8.806L8.83 51.963C-2.078 39.225-.595 20.055 12.143 9.146c11.369-9.736 28.136-9.736 39.504 0l259.331 257.813c12.243 11.462 12.876 30.679 1.414 42.922-.456.487-.927.958-1.414 1.414a30.368 30.368 0 0 1-23.078 7.288z\" data-original=\"#000000\" \/>\n                        <\/svg>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!--\u5c0floading\u52a0\u8f7d\u72b6\u6001-->\n            <div v-if=\"loading\" class=\"relative md:mt-20 md:mb-40 mb-20\" v-cloak>\n                <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"w-10 animate-spin fill-blue-600 block mx-auto\"\n                     viewbox=\"0 0 24 24\">\n                    <path d=\"M12 22c5.421 0 10-4.579 10-10h-2c0 4.337-3.663 8-8 8s-8-3.663-8-8c0-4.336 3.663-8 8-8V2C6.579 2 2 6.58 2 12c0 5.421 4.579 10 10 10z\" data-original=\"#000000\" \/>\n                <\/svg>\n            <\/div>\n\n            <form @submit.prevent=\"handleSubmit\" v-if=\"datapoints\" action=\"\">\n                <!-- Summary -->\n                <div class=\"checkout-card\">\n                    <div class=\"card-header\" style=\"cursor: default;\">\n                        {{ translations.summary }}\n                    <\/div>\n                    <div class=\"card-body\">\n                        <div class=\"cd-top\">\n                            <div class=\"form-grid\" style=\"margin-bottom: 20px;\">\n                                <div class=\"summary-provider\">\n                                    <div>\n                                        <span class=\"summary-label\">Provider<\/span>\n                                        <img :src=\"insuranceDetails.img\" class=\"summary-logo\" alt=\"logo\"\/>\n                                    <\/div>\n                                <\/div>\n                                <div >\n                                    <span class=\"summary-label\">Country<\/span>\n                                    <span class=\"summary-value\">Australia<\/span>\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"form-grid form-grid-2\">\n                                <div class=\"form-group\">\n                                    <label class=\"summary-label\">{{ translations.summary_adults }}<\/label>\n                                    <select v-model=\"insuranceDetails.adults\" class=\"form-select\" @change=\"fmChange\">\n                                        <option value=\"1\">1<\/option>\n                                        <option value=\"2\">2<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div class=\"form-group\">\n                                    <label class=\"summary-label\">{{ translations.summary_children }}<\/label>\n                                    <select v-model=\"insuranceDetails.children\" class=\"form-select\" @change=\"fmChange\">\n                                        <option v-for=\"n in 11\" :key=\"n-1\" :value=\"n-1\">{{ n-1 }}<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div class=\"form-group\">\n                                    <label class=\"summary-label\">{{ translations.summary_startDate }}<\/label>\n                                    <input type=\"text\" v-model=\"insuranceDetails.startDate\" id=\"start\" @change=\"fmChange\" class=\"form-input\" \/>\n                                <\/div>\n                                <div class=\"form-group\">\n                                    <label class=\"summary-label\">{{ translations.summary_endDate }}<\/label>\n                                    <input type=\"text\" v-model=\"insuranceDetails.endDate\" id=\"end\" @change=\"fmChange\" class=\"form-input\"\/>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div style=\"margin-top: 20px;\">\n                            <label class=\"summary-label\">\n                                {{ referral_code.title }} <span style=\"font-weight:normal; font-size:12px; color:#9ca3af\">{{ referral_code.tip }}<\/span>\n                            <\/label>\n                            <input type='text' v-model=\"tuijian_code\" class=\"form-input referral-input\" placeholder=\"GGS12345678\"\/>\n                            <p style=\"font-size: 12px; color: #9ca3af; margin-top: 5px;margin-bottom: 0 !important;\">*If this field is left blank, you will be deemed to have forfeited the referral reward.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- Student Details -->\n                <div id=\"section-student\" class=\"checkout-card\" v-if=\"provider_person\">\n                    <div class=\"card-header\" @click=\"toggleSection('student')\" :class=\"activeSections.includes('student') ? '' : 'card-body'\">\n                        {{ student_details.title }}\n                    <\/div>\n\n                    <div class=\"card-body\" v-show=\"activeSections.includes('student')\">\n                        <!--title\/Given name\/Surname \u7535\u8111-->\n                        <div class=\"grid-3-col mobile-hide\">\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_given_name' || field.id === 'provider_person_surname'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"provider_person_form[field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"person_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"provider_person_errors[field.id] ? 'border-color:#ef4444' : ''\" \/>\n                                    <span v-if=\"provider_person_errors[field.id]\" class=\"form-error-msg\">{{ provider_person_errors[field.id] }}<\/span>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_person_title'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n                        <!--title\/Given name\/Surname \u624b\u673a-->\n                        <div class=\"mobile-3-col mobile-show\">\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_given_name' || field.id === 'provider_person_surname'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"provider_person_form[field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"person_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"provider_person_errors[field.id] ? 'border-color:#ef4444' : ''\" \/>\n                                    <span v-if=\"provider_person_errors[field.id]\" class=\"form-error-msg\">{{ provider_person_errors[field.id] }}<\/span>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_person_title'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n                        <!--gender\/Date of Birth\/home country \u7535\u8111-->\n                        <div class=\"grid-3-col mobile-hide\">\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_gender'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_person_dob'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <!--<input type=\"date\" :id=\"field.id\" v-model=\"provider_person_form[field.id]\" :required=\"field.required\" class=\"form-input\" \/>-->\n                                    <input\n                                            type=\"text\"\n                                            :id=\"field.id\"\n                                            v-birthday\n v-model=\"provider_person_form[field.id]\"\n                                            :required=\"field.required\"\n                                            placeholder=\"YYYY-MM-DD\" class=\"form-input\"\/>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_person_home_country'\">\n                                    <label class=\"form-label\">\n                                        {{ trans_person.home_country }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select v-model=\"provider_person_form['provider_person_home_country']\" class=\"form-select\" required>\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"country in countries\" :key=\"country[1]\" :value=\"country[1]\">{{ country[0] }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n                        <!--gender\/Date of Birth\/home country \u624b\u673a-->\n                        <div class=\"grid-3-col mobile-show mobile\">\n                            <div class=\"mobile-2-col\">\n                                <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                    <div v-if=\"field.id === 'provider_person_gender'\">\n                                        <label class=\"form-label\">\n                                            {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                        <\/label>\n                                        <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                            <option value=\"\" disabled>Select an option<\/option>\n                                            <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                        <\/select>\n                                    <\/div>\n                                    <div v-else-if=\"field.id === 'provider_person_dob'\">\n                                        <label class=\"form-label\">\n                                            {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                        <\/label>\n                                        <input type=\"date\" :id=\"field.id\" v-model=\"provider_person_form[field.id]\" :required=\"field.required\" class=\"form-input\" \/>\n                                    <\/div>\n                                <\/template>\n                            <\/div>\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_home_country'\">\n                                    <label class=\"form-label\">\n                                        {{ trans_person.home_country }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select v-model=\"provider_person_form['provider_person_home_country']\" class=\"form-select\" required>\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"country in countries\" :key=\"country[1]\" :value=\"country[1]\">{{ country[0] }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n                        <div class=\"grid-2-col\">\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_email' || field.id === 'provider_person_mobile'\" class=\"input-area\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"provider_person_form[field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"person_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"{                                            'border-color': provider_person_errors[field.id] ? '#ef4444' : '',                                            'padding-left': field.id === 'provider_person_mobile' ? '3rem !important' : ''                                        }\" \/>\n                                    <span v-if=\"provider_person_errors[field.id]\" class=\"form-error-msg\">{{ provider_person_errors[field.id] }}<\/span>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n                        <div class=\"grid-2-col\">\n                            <div v-if=\"provider_visa_details.length > 0\">\n                                <div v-for=\"(field, index) in provider_visa_details\" :key=\"'visa-'+index\">\n                                    <div v-if=\"field.type === 'select'\">\n                                        <label class=\"form-label\">\n                                            {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                        <\/label>\n                                        <select :id=\"field.id\" v-model=\"provider_visa_details_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                            <option value=\"\" disabled>Select an option<\/option>\n                                            <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                        <\/select>\n                                    <\/div>\n                                <\/div>\n                            <\/div>\n                            <template v-for=\"(field, index) in provider_person\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_passport_number'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"provider_person_form[field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"person_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"provider_person_errors[field.id] ? 'border-color:#ef4444' : ''\" \/>\n                                    <span v-if=\"provider_person_errors[field.id]\" class=\"form-error-msg\">{{ provider_person_errors[field.id] }}<\/span>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_extra_fields_primary_visa_holder_located_in_au'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/template>\n                        <\/div>\n\n                        <div class=\"btn-action-row\">\n                            <button type=\"button\" @click=\"handleNext('school')\" class=\"btn-next\">Next<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- School information -->\n                <div id=\"section-school\" class=\"checkout-card\" v-if=\"school_information && school_information.length > 0\">\n                    <div class=\"card-header\" @click=\"toggleSection('school')\" :class=\"activeSections.includes('school') ? '' : 'card-body'\">\n                        {{ schoole_informations.title }}\n                    <\/div>\n                    <div class=\"card-body\" v-show=\"activeSections.includes('school')\">\n                        <div class=\"form-grid form-grid-school\">\n                            <div v-for=\"(field, index) in school_information\" :key=\"index\">\n                                <div v-if=\"field.id === 'provider_person_education_institution'\">\n                                    <label class=\"form-label\">\n                                        {{ trans_person.education_name }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <template v-if=\"!isInputVisible\">\n                                        <select v-model=\"selectedOption\" @change=\"handleSelectChange\" :required=\"field.required\" class=\"form-select\">\n                                            <option value=\"\" disabled>Select an option<\/option>\n                                            <option v-for=\"option in schools\" :key=\"option\" :value=\"option\">{{ option }}<\/option>\n                                        <\/select>\n                                    <\/template>\n                                    <template v-else>\n                                        <input :type=\"field.inputType || 'text'\" v-model=\"provider_person_form[field.id]\" :required=\"field.required\" class=\"form-input\" placeholder=\"Enter school name\"\/>\n                                    <\/template>\n                                <\/div>\n                                <div v-else-if=\"field.type === 'string'\">\n                                    <label class=\"form-label\">{{ field.title }}<\/label>\n                                    <input :type=\"field.inputType || 'text'\" v-model=\"provider_person_form[field.id]\" class=\"form-input\"\/>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"btn-action-row\">\n                            <!--\u6709\u6fb3\u6d32\u5730\u5740-->\n                            <template v-if=\"provider_person_form.provider_extra_fields_primary_visa_holder_located_in_au == 'true'\">\n                                <button type=\"button\" @click=\"handleNext('address')\" class=\"btn-next\">Next<\/button>\n                            <\/template>\n                            <!--\u9700\u8981\u586b\u5199\u767b\u5f55\u4e14\u6ca1\u6709\u6fb3\u6d32\u5730\u5740-->\n                            <template v-else-if=\"show_login_form && provider_person_form.provider_extra_fields_primary_visa_holder_located_in_au == 'false'\">\n                                <button type=\"button\" @click=\"handleNext('account')\" class=\"btn-next\">Next<\/button>\n                            <\/template>\n                            <!--\u6ca1\u6709\u6fb3\u6d32\u5730\u5740\uff0c\u4e0d\u9700\u8981\u767b\u5f55-->\n                            <template v-else>\n                                <button type=\"button\" @click=\"handleNext('terms')\" class=\"btn-next\">Next<\/button>\n                            <\/template>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- Address in the AU -->\n                <div id=\"section-address\" class=\"checkout-card\" v-if=\"address_aus && address_aus.length > 0 && provider_person_form.provider_extra_fields_primary_visa_holder_located_in_au == 'true'\">\n                    <div class=\"card-header\" @click=\"toggleSection('address')\" :class=\"activeSections.includes('address') ? '' : 'card-body'\">\n                        {{ student_address.title }}\n                    <\/div>\n                    <div class=\"card-body\" v-show=\"activeSections.includes('address')\">\n                        <p style=\"color: #2563eb;; padding: 10px; border-radius: 4px; font-size: 14px; margin-bottom: 20px;\">\n                            {{ address_au.tip }}\n                        <\/p>\n                        <div class=\"form-grid\">\n                            <div v-for=\"(field, index) in address_aus\" :key=\"index\">\n                                <label class=\"form-label\">{{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span><\/label>\n                                <div v-if=\"field.type === 'select'\">\n                                    <select :id=\"field.id\" v-model=\"provider_person_form[field.id]\" class=\"form-select\">\n                                        <option value=\"\" disabled>Select<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div v-else>\n                                    <input :type=\"field.inputType || 'text'\" v-model=\"provider_person_form[field.id]\" class=\"form-input\" \/>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"btn-action-row\">\n                            <button type=\"button\" @click=\"handleNext(show_login_form ? 'account' : 'terms')\" class=\"btn-next\">Next<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- partner -->\n                <div id=\"section-partner\" class=\"checkout-card\" v-if=\"provider_partner_dependent && provider_partner_dependent.length > 0\">\n                    <div class=\"card-header\" @click=\"toggleSection('partner')\" :class=\"activeSections.includes('partner') ? '' : 'card-body'\">\n                        {{ Partner.title }}\n                    <\/div>\n                    <div class=\"card-body\" v-show=\"activeSections.includes('partner')\">\n                        <div class=\"form-grid\">\n                            <div v-for=\"(field, index) in provider_partner_dependent\" :key=\"index\">\n                                <div v-if=\"field.type === 'string'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"partner_form[field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"partner_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"partner_forms_errors[field.id] ? 'border-color:#ef4444' : ''\" \/>\n                                    <span v-if=\"partner_forms_errors[field.id]\" class=\"form-error-msg\">{{ partner_forms_errors[field.id] }}<\/span>\n                                <\/div>\n                                <div v-else-if=\"field.type === 'select'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"partner_form[field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div v-else-if=\"field.type === 'date'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input type=\"text\" v-birthday :id=\"field.id\" v-model=\"partner_form[field.id]\" :required=\"field.required\" class=\"form-input\" \/>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_partner_dependent_passport_country'\">\n                                    <label class=\"form-label\">\n                                        {{ trans_person.home_country }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select v-model=\"partner_form['provider_partner_dependent_passport_country']\" class=\"form-select\" required>\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"country in countries\" :key=\"country[1]\" :value=\"country[1]\">{{ country[0] }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"btn-action-row\">\n                            <button type=\"button\" @click=\"handleNext('terms')\" class=\"btn-next\">Next<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- other -->\n                <div id=\"section-other\" class=\"checkout-card\" v-if=\"provider_other_dependents && provider_other_dependents.length > 0\">\n                    <div class=\"card-header\" @click=\"toggleSection('other')\" :class=\"activeSections.includes('other') ? '' : 'card-body'\">\n                        {{ other.title }} ({{ numChildren }})\n                    <\/div>\n                    <div class=\"card-body\" v-show=\"activeSections.includes('other')\">\n                        <div class=\"form-grid\" v-for=\"childIndex in numChildren\" :key=\"'child-' + childIndex\">\n                            <div v-for=\"(field, index) in provider_other_dependents\" :key=\"index\">\n                                <div v-if=\"field.type === 'string'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input :type=\"field.inputType || 'text'\"\n                                           v-model=\"other_form[childIndex][field.id]\"\n                                           :id=\"field.id\"\n                                           :required=\"field.required\"\n                                           @input=\"other_validateField(field)\"\n                                           class=\"form-input\"\n                                           :style=\"other_forms_errors[field.id] ? 'border-color:#ef4444' : ''\" \/>\n                                    <span v-if=\"other_forms_errors[field.id]\" class=\"form-error-msg\">{{ other_forms_errors[field.id] }}<\/span>\n                                <\/div>\n                                <div v-else-if=\"field.type === 'select'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select :id=\"field.id\" v-model=\"other_form[childIndex][field.id]\" class=\"form-select\" :required=\"field.required\">\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"option in field.values\" :key=\"option.value\" :value=\"option.value\">{{ option.title }}<\/option>\n                                    <\/select>\n                                <\/div>\n                                <div v-else-if=\"field.type === 'date'\">\n                                    <label class=\"form-label\">\n                                        {{ field.title }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <input type=\"text\" v-birthday :id=\"field.id\" v-model=\"other_form[childIndex][field.id]\" :required=\"field.required\" class=\"form-input\" \/>\n                                <\/div>\n                                <div v-else-if=\"field.id === 'provider_other_dependents_passport_country'\">\n                                    <label class=\"form-label\">\n                                        {{ trans_person.home_country }} <span v-if=\"field.required\" class=\"required-star\">*<\/span>\n                                    <\/label>\n                                    <select v-model=\"other_form[childIndex]['provider_other_dependents_passport_country']\" class=\"form-select\" required>\n                                        <option value=\"\" disabled>Select an option<\/option>\n                                        <option v-for=\"country in countries\" :key=\"country[1]\" :value=\"country[1]\">{{ country[0] }}<\/option>\n                                    <\/select>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n                        <div class=\"btn-action-row\">\n                            <button type=\"button\" @click=\"handleNext('terms')\" class=\"btn-next\">Next<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- Create an account -->\n                <div id=\"section-account\" class=\"checkout-card\" v-if=\"show_login_form\">\n                    <div class=\"card-header\" @click=\"toggleSection('account')\" :class=\"activeSections.includes('account') ? '' : 'card-body'\">\n                        {{ login_title.title }}\n                    <\/div>\n                    <div class=\"card-body\" v-show=\"activeSections.includes('account')\">\n                        <div class=\"form-grid\">\n                            <div>\n                                <label class=\"form-label\">{{ login_title.password }} <span class=\"required-star\">*<\/span><\/label>\n                                <input type='password' v-model=\"login_form.password\" class=\"form-input\" \/>\n                            <\/div>\n                            <div>\n                                <label class=\"form-label\">{{ login_title.password_confirmation }} <span class=\"required-star\">*<\/span><\/label>\n                                <input type='password' v-model=\"login_form.password_confirmation\" @input=\"password_validateField\" class=\"form-input\" \/>\n                                <span v-if=\"login_from_error.passwordMessage\" class=\"form-error-msg\">{{ login_from_error.passwordMessage }}<\/span>\n                            <\/div>\n                        <\/div>\n                        <div class=\"form-grid\" style=\"margin-top: 16px;\">\n                            <div>\n                                <label class=\"form-label\">{{ login_title.verification_code }} <span class=\"required-star\">*<\/span><\/label>\n                                <div style=\"display: flex; align-items: flex-start; gap: 12px;\">\n                                    <input type=\"text\"\n                                           v-model=\"login_form.verification_code\"\n                                           @input=\"verificationCodeValidateField\"\n                                           class=\"form-input\"\n                                           style=\"margin-bottom: 0;\" \/>\n                                    <button type=\"button\"\n                                            @click=\"sendVerificationCode\"\n                                            :disabled=\"isCounting\"\n                                            class=\"btn-next\"\n                                            style=\"min-width: 132px; white-space: nowrap; flex-shrink: 0;\">\n                                        {{ isCounting ? `${countDown}s` : login_title.send_code }}\n                                    <\/button>\n                                <\/div>\n                                <span v-if=\"login_from_error.codeMessage\" class=\"form-error-msg\">{{ login_from_error.codeMessage }}<\/span>\n                                <span v-else-if=\"login_from_error.emailMessage\" class=\"form-error-msg\">{{ login_from_error.emailMessage }}<\/span>\n                            <\/div>\n                        <\/div>\n                        <div class=\"btn-action-row\">\n                            <button type=\"button\" @click=\"handleNext('terms')\" class=\"btn-next\">Next<\/button>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <!-- Accept the terms -->\n                <div id=\"section-terms\" class=\"checkout-card\" v-if=\"provider && provider.length > 0\">\n                    <div class=\"card-header\" style=\"cursor: default;\">\n                        {{ terms.title }}\n                    <\/div>\n                    <template v-for=\"(term, index) in provider\" :key=\"index\" style=\"margin-bottom: 15px;\">\n                        <div v-if=\"term && term.type === 'boolean'\" style=\"display: flex; align-items: center;\" class=\"card-body\">\n\n                            <input type=\"checkbox\" :id=\"term.id\" v-model=\"form[term.id]\" style=\"display: none !important;\" \/>\n\n                            <template v-if=\"form[term.id]\">\n                                <img :src=\"CHECKED_IMAGE_URL\"\n                                     @click=\"form[term.id] = false\"\n                                     class=\"checkbox-icon\"\n                                     alt=\"Checked\"\/>\n                            <\/template>\n                            <template v-else>\n                                <img :src=\"UNCHECKED_IMAGE_URL\"\n                                     @click=\"form[term.id] = true\"\n                                     class=\"checkbox-icon\"\n                                     alt=\"Unchecked\"\/>\n                            <\/template>\n\n                            <label :for=\"term.id\" class=\"checkbox-label\" v-html=\"term.title\"><\/label>\n                        <\/div>\n                    <\/template>\n                <\/div>\n                <!-- buy now -->\n                <div class=\"footer-bar\">\n                    <div class=\"footer-bar2\">\n                        <div style=\"display: flex; align-items: center; gap: 15px;\">\n                            <input v-model=\"form.checkbox_buy\" :checked=\"isFormValid\" :disabled=\"!isFormValid\" type=\"checkbox\" style=\"display: none !important;\" \/>\n\n                            <template v-if=\"form.checkbox_buy\">\n                                <img :src=\"CHECKED_IMAGE_URL\"\n                                     @click=\"isFormValid && (form.checkbox_buy = false)\"\n                                     :style=\"{ cursor: isFormValid ? 'pointer' : 'not-allowed' }\"\n                                     class=\"checkbox-icon\"\n                                     alt=\"Checked\"\/>\n                            <\/template>\n                            <template v-else>\n                                <img :src=\"UNCHECKED_IMAGE_URL\"\n                                     @click=\"isFormValid && (form.checkbox_buy = true)\"\n                                     :style=\"{ cursor: isFormValid ? 'pointer' : 'not-allowed' }\"\n                                     alt=\"Unchecked\"\/>\n                            <\/template>\n\n                            <img :src=\"insuranceDetails.img\" style=\"width: 6.81rem;\" alt=\"Provider\"\/>\n                        <\/div>\n                    <\/div>\n                    <div class=\"footer-price\" v-if=\"insurance_info.id !== 'INSURANCE-OSHC:4'\">\n                        <span>{{ transheader.policy }}<\/span>\n                        <span class=\"fp-title2\">${{ insuranceDetails.amount }}<span>AUD<\/span><\/span>\n                    <\/div>\n                    <div v-else style=\"display: flex;flex-direction: column;\">\n                        <div class=\"footer-price\">\n                            <span>{{ transheader.policy }}<\/span>\n                            <span class=\"fp-title2\">${{ insuranceDetails.origin_amount }} <span>AUD<\/span><\/span>\n                        <\/div>\n                        <div class=\"footer-price\">\n                            <span style=\"color: red;font-size: 1rem;\">Extra 8% off when pay via WeChat or Credit Card<\/span>\n                        <\/div>\n                    <\/div>\n                    <button type=\"submit\"\n                            :disabled=\"!isFormValid\"\n                            :style=\"isFormValid ? '' : 'background: #9ca3af; cursor: not-allowed;'\"\n                            class=\"mobile-hide buy-btn md:mt-3 px-4 py-1.5 flex items-center justify-center rounded text-white text-lg tracking-wider font-medium\">\n                        {{ transheader.buy }}\n                    <\/button>\n                    <div class=\"mobile-show buy-btn-mobile\">\n                        <button type=\"submit\"\n                                :disabled=\"!isFormValid\"\n                                :style=\"isFormValid ? '' : 'background: #9ca3af; cursor: not-allowed;'\"\n                                class=\"buy-btn md:mt-3 px-4 py-1.5 flex items-center justify-center rounded text-white text-lg tracking-wider font-medium\">\n                            {{ transheader.buy }}\n                        <\/button>\n                    <\/div>\n                <\/div>\n\n            <input type=\"hidden\" name=\"trp-form-language\" value=\"zh\"\/><\/form>\n        <\/div>\n    <\/div>\n<\/div>\n<!-- \u52a0\u8f7d intl-tel-input \u7ec4\u4ef6 -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@23.8.1\/build\/js\/intlTelInput.min.js\"><\/script>\n\n<script>\n    const { createApp, ref, reactive, computed, onMounted, watch, nextTick } = Vue;\n    const { ElMessage } = ElementPlus;  \/\/ \u5f15\u5165 Element Plus \u7684 Message\n    const app = createApp({\n        setup() {\n            const title = ref()\n            \/\/ https:\/\/agent.goglobalsafe.com\n            const user_api = 'https:\/\/agent.goglobalsafe.com\/api\/v1\/student\/user\/userinfo'\n            const send_code_api = 'https:\/\/agent.goglobalsafe.com\/api\/v1\/student\/user\/send-code';\n            const register_api = 'https:\/\/agent.goglobalsafe.com\/api\/v1\/student\/user\/register';\n            const CHECKED_IMAGE_URL = '\/wp-content\/static\/img\/new-check.svg'\n            const UNCHECKED_IMAGE_URL = '\/wp-content\/static\/img\/new-uncheck.svg'\n            const token = ref(null)\n            const affiliateId = ref('') \/\/ \u5982\u679c\u4f60\u9700\u8981\u5b58\u50a8\u5b83\n            \/\/\u56fd\u9645\u5316\u7ec4\u4ef6\n            const user_info = reactive({\n                email: ''\n            })\n            const phone_mobile = ref();\n            const iti = ref();\n            const show_login_form = ref(false)\n            const login_form = reactive({\n                email: '',\n                password: '',\n                password_confirmation: '',\n                verification_code: ''\n            });\n\n            const searchParams = new URLSearchParams(window.location.search);\n            const PREFILLED_REFERRAL_CODE_KEY = 'prefilled_referral_code';\n            const normalizeReferralCode = (value) => {\n                const normalizedValue = String(value || '').trim();\n                return normalizedValue || null;\n            };\n            const isSameReferralCode = (left, right) => {\n                const normalizedLeft = String(normalizeReferralCode(left) || '').toLowerCase();\n                const normalizedRight = String(normalizeReferralCode(right) || '').toLowerCase();\n                return !!normalizedLeft && !!normalizedRight && normalizedLeft === normalizedRight;\n            };\n            const getCachedUserReferralCode = () => {\n                const userInfoStr = localStorage.getItem('user_info');\n                if (!userInfoStr) {\n                    return null;\n                }\n                try {\n                    const userInfo = JSON.parse(userInfoStr);\n                    return normalizeReferralCode(userInfo?.code);\n                } catch (error) {\n                    return null;\n                }\n            };\n            const referralCodeFromUrl = normalizeReferralCode(searchParams.get('ref'));\n            if (referralCodeFromUrl) {\n                localStorage.setItem(PREFILLED_REFERRAL_CODE_KEY, referralCodeFromUrl);\n            }\n            const getStoredPrefilledReferralCode = () => normalizeReferralCode(localStorage.getItem(PREFILLED_REFERRAL_CODE_KEY));\n            const getResolvedPrefilledReferralCode = () => {\n                const resolvedCode = referralCodeFromUrl || getStoredPrefilledReferralCode();\n                if (isSameReferralCode(resolvedCode, getCachedUserReferralCode())) {\n                    localStorage.removeItem(PREFILLED_REFERRAL_CODE_KEY);\n                    return null;\n                }\n                return resolvedCode;\n            };\n            const tuijian_code = ref(getResolvedPrefilledReferralCode());\n\n            const login_from_error = reactive({})\n            const isCounting = ref(false);\n            const countDown = ref(60);\n            let sendCodeTimer = null;\n            const empty = ref(null)\n            const loading = ref(false);\n            const big_loading = ref(false);\n            const today = new Date().toISOString().split('T')[0];\n            \/\/ Function to parse and validate the amount\n            const insuranceDetails = reactive({\n                amount: searchParams.get('amount'),\n                img: searchParams.get('img'),\n                adults: searchParams.get('adults') || 1,\n                children: searchParams.get('children') || 0,\n                startDate: searchParams.get('startDate') || today,\n                endDate: searchParams.get('endDate') || new Date(new Date().setFullYear(new Date().getFullYear() + 2)).toISOString().split('T')[0],\n                self: searchParams.get('self'),\n                email: searchParams.get('email') || '',\n                create_policy: '',\n            });\n            \/\/\u56fd\u5bb6\u5217\u8868\n            const countries = reactive([\n                [\"Angola\", \"AO\", \"244\"],\n                [\"Afghanistan\", \"AF\", \"93\"],\n                [\"Albania\", \"AL\", \"355\"],\n                [\"Algeria\", \"DZ\", \"213\"],\n                [\"Andorra\", \"AD\", \"376\"],\n                [\"Anguilla\", \"AI\", \"1264\"],\n                [\"Antigua and Barbuda\", \"AG\", \"1268\"],\n                [\"Argentina\", \"AR\", \"54\"],\n                [\"Armenia\", \"AM\", \"374\"],\n                [\"Ascension\", \"AS\", \"247\"],\n                [\"Australia\", \"AU\", \"61\"],\n                [\"Austria\", \"AT\", \"43\"],\n                [\"Azerbaijan\", \"AZ\", \"994\"],\n                [\"Bahamas\", \"BS\", \"1242\"],\n                [\"Bahrain\", \"BH\", \"973\"],\n                [\"Bangladesh\", \"BD\", \"880\"],\n                [\"Barbados\", \"BB\", \"1246\"],\n                [\"Belarus\", \"BY\", \"375\"],\n                [\"Belgium\", \"BE\", \"32\"],\n                [\"Belize\", \"BZ\", \"501\"],\n                [\"Benin\", \"BJ\", \"229\"],\n                [\"Bermuda Is.\", \"BM\", \"1441\"],\n                [\"Bolivia\", \"BO\", \"591\"],\n                [\"Botswana\", \"BW\", \"267\"],\n                [\"Brazil\", \"BR\", \"55\"],\n                [\"Brunei\", \"BN\", \"673\"],\n                [\"Bulgaria\", \"BG\", \"359\"],\n                [\"Burkina-faso\", \"BF\", \"226\"],\n                [\"Burma\", \"MM\", \"95\"],\n                [\"Burundi\", \"BI\", \"257\"],\n                [\"Cameroon\", \"CM\", \"237\"],\n                [\"Canada\", \"CA\", \"1\"],\n                [\"Cayman Is.\", \"CI\", \"1345\"],\n                [\"Central African Republic\", \"CF\", \"236\"],\n                [\"Chad\", \"TD\", \"235\"],\n                [\"Chile\", \"CL\", \"56\"],\n                [\"China\", \"CN\", \"86\"],\n                [\"Colombia\", \"CO\", \"57\"],\n                [\"Congo\", \"CG\", \"242\"],\n                [\"Cook Is.\", \"CK\", \"682\"],\n                [\"Costa Rica\", \"CR\", \"506\"],\n                [\"Cuba\", \"CU\", \"53\"],\n                [\"Cyprus\", \"CY\", \"357\"],\n                [\"Czech Republic\", \"CZ\", \"420\"],\n                [\"Denmark\", \"DK\", \"45\"],\n                [\"Djibouti\", \"DJ\", \"253\"],\n                [\"Dominica Rep.\", \"DO\", \"1890\"],\n                [\"Ecuador\", \"EC\", \"593\"],\n                [\"Egypt\", \"EG\", \"20\"],\n                [\"EI Salvador\", \"SV\", \"503\"],\n                [\"Estonia\", \"EE\", \"372\"],\n                [\"Ethiopia\", \"ET\", \"251\"],\n                [\"Fiji\", \"FJ\", \"679\"],\n                [\"Finland\", \"FI\", \"358\"],\n                [\"France\", \"FR\", \"33\"],\n                [\"French Guiana\", \"GF\", \"594\"],\n                [\"Gabon\", \"GA\", \"241\"],\n                [\"Gambia\", \"GM\", \"220\"],\n                [\"Georgia\", \"GE\", \"995\"],\n                [\"Germany\", \"DE\", \"49\"],\n                [\"Ghana\", \"GH\", \"233\"],\n                [\"Gibraltar\", \"GI\", \"350\"],\n                [\"Greece\", \"GR\", \"30\"],\n                [\"Grenada\", \"GD\", \"1809\"],\n                [\"Guam\", \"GU\", \"1671\"],\n                [\"Guatemala\", \"GT\", \"502\"],\n                [\"Guinea\", \"GN\", \"224\"],\n                [\"Guyana\", \"GY\", \"592\"],\n                [\"Haiti\", \"HT\", \"509\"],\n                [\"Honduras\", \"HN\", \"504\"],\n                [\"Hongkong\", \"HK\", \"852\"],\n                [\"Hungary\", \"HU\", \"36\"],\n                [\"Iceland\", \"IS\", \"354\"],\n                [\"India\", \"IN\", \"91\"],\n                [\"Indonesia\", \"ID\", \"62\"],\n                [\"Iran\", \"IR\", \"98\"],\n                [\"Iraq\", \"IQ\", \"964\"],\n                [\"Ireland\", \"IE\", \"353\"],\n                [\"Israel\", \"IL\", \"972\"],\n                [\"Italy\", \"IT\", \"39\"],\n                [\"Ivory Coast\", \"CIV\", \"225\"],\n                [\"Jamaica\", \"JM\", \"1876\"],\n                [\"Japan\", \"JP\", \"81\"],\n                [\"Jordan\", \"JO\", \"962\"],\n                [\"Kampuchea (Cambodia )\", \"KH\", \"855\"],\n                [\"Kazakstan\", \"KZ\", \"327\"],\n                [\"Kenya\", \"KE\", \"254\"],\n                [\"Korea\", \"KR\", \"82\"],\n                [\"Kuwait\", \"KW\", \"965\"],\n                [\"Kyrgyzstan\", \"KG\", \"331\"],\n                [\"Laos\", \"LA\", \"856\"],\n                [\"Latvia\", \"LV\", \"371\"],\n                [\"Lebanon\", \"LB\", \"961\"],\n                [\"Lesotho\", \"LS\", \"266\"],\n                [\"Liberia\", \"LR\", \"231\"],\n                [\"Libya\", \"LY\", \"218\"],\n                [\"Liechtenstein\", \"LI\", \"423\"],\n                [\"Lithuania\", \"LT\", \"370\"],\n                [\"Luxembourg\", \"LU\", \"352\"],\n                [\"Macao\", \"MO\", \"853\"],\n                [\"Madagascar\", \"MG\", \"261\"],\n                [\"Malawi\", \"MW\", \"265\"],\n                [\"Malaysia\", \"MY\", \"60\"],\n                [\"Maldives\", \"MV\", \"960\"],\n                [\"Mali\", \"ML\", \"223\"],\n                [\"Malta\", \"MT\", \"356\"],\n                [\"Mariana Is\", \"MP\", \"1670\"],\n                [\"Martinique\", \"MQ\", \"596\"],\n                [\"Mauritius\", \"MU\", \"230\"],\n                [\"Mexico\", \"MX\", \"52\"],\n                [\"Moldova Republic of\", \"MD\", \"373\"],\n                [\"Monaco\", \"MC\", \"377\"],\n                [\"Mongolia\", \"MN\", \"976\"],\n                [\"Montserrat Is\", \"MS\", \"1664\"],\n                [\"Morocco\", \"MA\", \"212\"],\n                [\"Mozambique\", \"MZ\", \"258\"],\n                [\"Namibia\", \"NA\", \"264\"],\n                [\"Nauru\", \"NR\", \"674\"],\n                [\"Nepal\", \"NP\", \"977\"],\n                [\"Netheriands Antilles\", \"\", \"599\"],\n                [\"Netherlands\", \"NL\", \"31\"],\n                [\"New Zealand\", \"NZ\", \"64\"],\n                [\"Nicaragua\", \"NI\", \"505\"],\n                [\"Niger\", \"NE\", \"227\"],\n                [\"Nigeria\", \"NG\", \"234\"],\n                [\"North Korea\", \"KP\", \"850\"],\n                [\"Norway\", \"NO\", \"47\"],\n                [\"Oman\", \"OM\", \"968\"],\n                [\"Pakistan\", \"PK\", \"92\"],\n                [\"Panama\", \"PA\", \"507\"],\n                [\"Papua New    Cuinea\", \"PG\", \"675\"],\n                [\"Paraguay\", \"PY\", \"595\"],\n                [\"Peru\", \"PE\", \"51\"],\n                [\"Philippines\", \"PH\", \"63\"],\n                [\"Poland\", \"PL\", \"48\"],\n                [\"French Polynesia\", \"PF\", \"689\"],\n                [\"Portugal\", \"PT\", \"351\"],\n                [\"Puerto Rico\", \"PR\", \"1787\"],\n                [\"Qatar\", \"QA\", \"974\"],\n                [\"Reunion\", \"REU\", \"262\"],\n                [\"Romania\", \"RO\", \"40\"],\n                [\"Russia\", \"RU\", \"7\"],\n                [\"Saint Lueia\", \"LC\", \"1758\"],\n                [\"Saint Vincent\", \"VC\", \"1784\"],\n                [\"Samoa Eastern\", \"AS\", \"684\"],\n                [\"Samoa Western\", \"WS\", \"685\"],\n                [\"San Marino\", \"SM\", \"378\"],\n                [\"Sao Tome    and Principe\", \"ST\", \"239\"],\n                [\"Saudi Arabia\", \"SA\", \"966\"],\n                [\"Senegal\", \"SN\", \"221\"],\n                [\"Seychelles\", \"SC\", \"248\"],\n                [\"Sierra Leone\", \"SL\", \"232\"],\n                [\"Singapore\", \"SG\", \"65\"],\n                [\"Slovakia\", \"SK\", \"421\"],\n                [\"Slovenia\", \"SI\", \"386\"],\n                [\"Solomon Is\", \"SB\", \"677\"],\n                [\"Somali\", \"SO\", \"252\"],\n                [\"South Africa\", \"ZA\", \"27\"],\n                [\"Spain\", \"ES\", \"34\"],\n                [\"Sri Lanka\", \"LK\", \"94\"],\n                [\"St.Lucia\", \"LC\", \"1758\"],\n                [\"St.Vincent\", \"VC\", \"1784\"],\n                [\"Sudan\", \"SD\", \"249\"],\n                [\"Suriname\", \"SR\", \"597\"],\n                [\"Swaziland\", \"SZ\", \"268\"],\n                [\"Sweden\", \"SE\", \"46\"],\n                [\"Switzerland\", \"CH\", \"41\"],\n                [\"Syria\", \"SY\", \"963\"],\n                [\"Taiwan\", \"TW\", \"886\"],\n                [\"Tajikstan\", \"TJ\", \"992\"],\n                [\"Tanzania\", \"TZ\", \"255\"],\n                [\"Thailand\", \"TH\", \"66\"],\n                [\"Togo\", \"TG\", \"228\"],\n                [\"Tonga\", \"TO\", \"676\"],\n                [\"Trinidad and Tobago\", \"TT\", \"1809\"],\n                [\"Tunisia\", \"TN\", \"216\"],\n                [\"Turkey\", \"TR\", \"90\"],\n                [\"Turkmenistan\", \"TM\", \"993\"],\n                [\"Uganda\", \"UG\", \"256\"],\n                [\"Ukraine\", \"UA\", \"380\"],\n                [\"United Arab    Emirates\", \"AE\", \"971\"],\n                [\"United Kiongdom\", \"GB\", \"44\"],\n                [\"United States    of America\", \"US\", \"1\"],\n                [\"Uruguay\", \"UY\", \"598\"],\n                [\"Uzbekistan\", \"UZ\", \"233\"],\n                [\"Venezuela\", \"VE\", \"58\"],\n                [\"Vietnam\", \"VN\", \"84\"],\n                [\"Yemen\", \"YE\", \"967\"],\n                [\"Yugoslavia\", \"YU\", \"381\"],\n                [\"Zimbabwe\", \"ZW\", \"263\"],\n                [\"Zaire\", \"ZR\", \"243\"],\n                [\"Zambia\", \"ZM\", \"260\"]\n            ])\n            \/\/\u603b\u8ba2\u5355\n            const datapoints = ref()\n            \/\/\u5b66\u751f\u8d44\u6599\u533a\u5757\n            const provider_person = ref([]);\n            const provider_person_form = reactive({})\n            const provider_person_errors = reactive({})\n            const schools = ref([\n                \"Holmes Institute\",\n                \"Leo Cussen Institute\",\n                \"Marcus Oldham College\",\n                \"SAE Creative Media Institute\",\n                \"Carnegie Mellon University\",\n                \"National Art School\",\n                \"Insearch Limited\",\n                \"UOWC Ltd\",\n                \"ACPE Limited\",\n                \"Australian Catholic University\",\n                \"Australian National University\",\n                \"Bond University\",\n                \"Charles Darwin University\",\n                \"Charles Sturt University\",\n                \"Curtin University\",\n                \"Deakin University\",\n                \"Edith Cowan University\",\n                \"Federation University Australia\",\n                \"Flinders University\",\n                \"Griffith University\",\n                \"James Cook University\",\n                \"La Trobe University\",\n                \"Macquarie University\",\n                \"Monash University\",\n                \"Murdoch University\",\n                \"Queensland University of Technology\",\n                \"RMIT University\",\n                \"Southern Cross University\",\n                \"Swinburne University of Technology\",\n                \"The University of Adelaide\",\n                \"The University of Melbourne\",\n                \"The University of New England\",\n                \"The University of New South Wales\",\n                \"The University of Newcastle\",\n                \"The University of Notre Dame Australia\",\n                \"The University of Queensland\",\n                \"The University of Sydney\",\n                \"The University of Tasmania\",\n                \"The University of Western Australia\",\n                \"The University of Wollongong\",\n                \"Torrens University Australia\",\n                \"University of Canberra\",\n                \"University of Divinity\",\n                \"University of South Australia\",\n                \"University of Southern Queensland\",\n                \"University of the Sunshine Coast\",\n                \"University of Technology Sydney\",\n                \"Victoria University\",\n                \"Western Sydney University\",\n                \"CQUniversity Australia\",\n                \"The Australian Film Television and Radio School (AFTRS)\",\n                \"Naval College of Australia\",\n                \"Australian Institute of Music\",\n                \"Canberra Institute of Technology (CIT)\",\n                \"TAFE NSW\",\n                \"Sydney Film School\",\n                \"Whitehouse Institute of Design\",\n                \"Charles Darwin University VET Sector\",\n                \"TAFE Queensland\",\n                \"Bond University College\",\n                \"TAFE SA\",\n                \"Adelaide College of the Arts\",\n                \"TasTAFE\",\n                \"TAFE Victoria (various institutions, e.g., RMIT TAFE)\",\n                \"Holmesglen Institute\",\n                \"William Angliss Institute\",\n                \"TAFE Western Australia (various institutions)\",\n                \"WAAPA (Western Australian Academy of Performing Arts)\",\n                \"other\",\n            ]);\n            const selectedOption = ref(\"\");\n            \/\/\u7b7e\u8bc1\u7c7b\u578b\n            const provider_visa_details = ref({})\n            const provider_visa_details_form = reactive({})\n            \/\/\u5b66\u751f\u5b66\u6821\u8d44\u6599\u533a\u5757\n            const school_information = ref([]);\n            \/\/\u6fb3\u5927\u5229\u4e9a\u5730\u5740\u533a\u5757\n            const address_aus = ref([]);\n            \/\/\u6559\u80b2\u673a\u6784 select \u548cinput\u5207\u6362\n            const isInputVisible = computed(() => selectedOption.value === \"other\");\n            const handleSelectChange = () => {\n                console.log(selectedOption.value)\n                if (selectedOption.value === \"other\") {\n                    console.log('\u53d8\u6210\u8f93\u5165\u6846');\n                    \/\/ Reset the form value if switching to \"other\"\n                    provider_person_form['provider_person_education_institution'] = \"\";\n                } else {\n                    \/\/ Clear error and update form value\n                    provider_person_form['provider_person_education_institution'] = selectedOption.value;\n                    provider_person_errors['provider_person_education_institution'] = \"\";\n                }\n            };\n            \/\/provider_extra_fields\n            const provider_extra_fields = ref([])\n            const provider_extra_form = reactive({})\n            \/\/provider\n            const provider = ref([]);\n            \/\/\u4f34\u4fa3\u533a\u5757 partner\n            const provider_partner_dependent = ref([]);\n            const partner_form = reactive({})\n            const partner_forms_errors = reactive({})\n            \/\/\u8868\u5355\u9519\u8bef\n            const alert_error_msg = ref();\n            \/\/other\n            const provider_other_dependents = ref([]);\n            const other_form = reactive([]);\n            const other_forms_errors = reactive({})\n            const form = reactive({\n                checkbox_buy: false\n            })\n            \/\/\u76d1\u542c\u8f93\u5165\u6846\u586b\u5199\u7070\u8272\n            const getInputBackgroundColor = (value) => {\n                console.log(value)\n                debugger;\n                return value ? 'bg-gray-300' : 'bg-white';\n            }\n            \/\/\u5b66\u6821\u8d44\u6599\u533a\u5757 \u8868\u5355\u9a8c\u8bc1\n            const person_validateField = (field) => {\n                \/\/ console.log(field.id);\n                const value = provider_person_form[field.id];\n                const regex = \/^[A-Za-z0-9]*$\/;\n                if (field.id === 'provider_person_given_name' || field.id === 'provider_person_surname') {\n                    \/\/\u4e0d\u5141\u8bb8\u4e2d\u6587  \u52a0\u9a8c\u8bc1\uff0c\u53ea\u80fd\u5199\u5b57\u6bcd\u5408\u7ec4\u5b57\uff0c\u4e0d\u80fd\u5199\u4e2d\u6587\n                    if (!regex.test(value)) {\n                        \/\/ Remove non-matching characters\n                        provider_person_form[field.id] = value.replace(\/[^A-Za-z]\/g, '');\n                    }\n                }\n                \/\/ console.log(value);\n                let error = '';\n                if (field.required && !value) {\n                    error = 'This field is required';\n                } else if (field.pattern && !new RegExp(field.pattern).test(value)) {\n                    error = 'Invalid format';\n                }\n                provider_person_errors[field.id] = error;\n            }\n            \/\/\u4f34\u4fa3\u533a\u5757 \u8868\u5355\u9a8c\u8bc1\n            const partner_validateField = (field) => {\n                const value = partner_form[field.id];\n                console.log(value)\n                let error = '';\n                if (field.required && !value) {\n                    error = 'This field is required';\n                } else if (field.pattern && !new RegExp(field.pattern).test(value)) {\n                    error = 'Invalid format';\n                }\n                partner_forms_errors[field.id] = error;\n            }\n            \/\/\u624b\u673a\u53f7\u9a8c\u8bc1\n            const validateField = (validateField) => {\n                const value = phone_mobile.value\n                console.log(value);\n                let error = '';\n                if (!value) {\n                    error = 'This field is required';\n                } else if (value && value.length < 5) { \/\/ Example pattern check\n                    error = 'Invalid format';\n                }\n                console.log(provider_person_errors[validateField])\n                provider_person_errors[validateField] = error;\n\n            }\n            \/\/\u5176\u4ed6\u6210\u5458\n            const other_validateField = (field) => {\n                const value = other_form[field.id];\n                console.log(value)\n                let error = '';\n                if (field.required && !value) {\n                    error = 'This field is required';\n                } else if (field.pattern && !new RegExp(field.pattern).test(value)) {\n                    error = 'Invalid format';\n                }\n                other_forms_errors[field.id] = error;\n            }\n            const messages = {\n                en: {\n                    emailRequired: 'Email is required',\n                    passwordsDoNotMatch: 'Passwords do not match',\n                    emailInvalid: 'Invalid email format',\n                },\n                zh: {\n                    emailRequired: '\u7535\u5b50\u90ae\u4ef6\u662f\u5fc5\u586b\u7684',\n                    passwordsDoNotMatch: '\u5bc6\u7801\u4e0d\u5339\u914d',\n                    emailInvalid: '\u7535\u5b50\u90ae\u4ef6\u683c\u5f0f\u65e0\u6548',\n                }\n            };\n            \/\/\u786e\u8ba4\u5bc6\u7801\u9a8c\u8bc1\n            const getRegisterEmail = () => {\n                const email = (provider_person_form.provider_person_email || login_form.email || '').trim();\n                login_form.email = email;\n                return email;\n            }\n            const validateRegisterEmail = () => {\n                const email = getRegisterEmail();\n                const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\n\n                if (!email) {\n                    login_from_error.emailMessage = messages[lang].emailRequired;\n                    return false;\n                }\n\n                if (!emailRegex.test(email)) {\n                    login_from_error.emailMessage = messages[lang].emailInvalid;\n                    return false;\n                }\n\n                login_from_error.emailMessage = '';\n                return true;\n            }\n            const verificationCodeValidateField = () => {\n                if (!login_form.verification_code) {\n                    login_from_error.codeMessage = lang === 'zh' ? '\u9a8c\u8bc1\u7801\u4e0d\u80fd\u4e3a\u7a7a' : 'Verification code is required';\n                    return false;\n                }\n\n                login_from_error.codeMessage = '';\n                return true;\n            }\n            const startVerificationCountDown = () => {\n                if (sendCodeTimer) {\n                    clearInterval(sendCodeTimer);\n                }\n\n                countDown.value = 60;\n                isCounting.value = true;\n                sendCodeTimer = setInterval(() => {\n                    countDown.value--;\n                    if (countDown.value <= 0) {\n                        clearInterval(sendCodeTimer);\n                        sendCodeTimer = null;\n                        isCounting.value = false;\n                        countDown.value = 60;\n                    }\n                }, 1000);\n            }\n            const sendVerificationCode = async () => {\n                if (isCounting.value) {\n                    return;\n                }\n\n                if (!validateRegisterEmail()) {\n                    return;\n                }\n\n                login_from_error.codeMessage = '';\n\n                try {\n                    await window.apiClient.post(send_code_api, {\n                        email: getRegisterEmail(),\n                    })\n                    startVerificationCountDown();\n                } catch (error) {\n                    const responseMessage = error?.response?.data?.message;\n                    login_from_error.emailMessage = typeof responseMessage === 'string'\n                        ? responseMessage\n                        : responseMessage?.email?.[0] || (lang === 'zh' ? '\u9a8c\u8bc1\u7801\u53d1\u9001\u5931\u8d25' : 'Failed to send code');\n                    isCounting.value = false;\n                }\n            }\n            const password_validateField = () => {\n                let isValid = true;\n                \/\/ \u9a8c\u8bc1\u5bc6\u7801\u548c\u786e\u8ba4\u5bc6\u7801\u662f\u5426\u5339\u914d\n                if (login_form.password_confirmation !== login_form.password) {\n                    login_from_error.passwordMessage = messages[lang].passwordsDoNotMatch;\n                    isValid = false;\n                } else {\n                    login_from_error.passwordMessage = '';\n                }\n                return isValid;\n            }\n            \/\/\u9a8c\u8bc1\u8868\u5355\u5168\u90e8\u8f93\u5165\u5b8c\u6bd5\n            const isFormValid = computed(() => {\n                \/\/ if (provider_person_form['provider_person_mobile']) {\n                \/\/     console.log(provider_person_form['provider_person_mobile'].length)\n                \/\/ }\n                if (form['provider_terms_and_conditions'] && form['provider_primary_visaholder_declaration']) {\n                    form['checkbox_buy'] = true\n                }\n                if (show_login_form.value) {\n                    \/\/\u4ee3\u8868\u5b58\u5728\u6ce8\u518cinput \u4fdd\u8bc1\u9a8c\u8bc1\u901a\u8fc7\n                    if (show_login_form.value) {\n                        if (!password_validateField()) {\n                            return false;\n                        }\n                    }\n\n                    return provider_person_form['provider_person_title'] &&\n                        provider_person_form['provider_person_given_name'] &&\n                        provider_person_form['provider_person_surname'] &&\n                        provider_person_form['provider_person_dob'] &&\n                        provider_person_form['provider_person_mobile'] && provider_person_form['provider_person_mobile'].length >= 6 &&\n                        provider_person_form['provider_person_email'] &&\n                        provider_person_form['provider_person_home_country'] &&\n                        provider_person_form['provider_person_passport_number'] &&\n                        provider_person_form['provider_person_education_institution'] &&\n                        form['provider_terms_and_conditions'] &&\n                        form['provider_primary_visaholder_declaration'] &&\n                        login_form.password_confirmation &&\n                        login_form.password &&\n                        login_form.verification_code\n                    \/\/ form['checkbox_buy'] ;\n                } else {\n                    \/\/\u53ea\u662f\u666e\u901a\u8868\u5355\n                    return provider_person_form['provider_person_title'] &&\n                        provider_person_form['provider_person_given_name'] &&\n                        provider_person_form['provider_person_surname'] &&\n                        provider_person_form['provider_person_dob'] &&\n                        provider_person_form['provider_person_mobile'] && provider_person_form['provider_person_mobile'].length >= 6 &&\n                        provider_person_form['provider_person_email'] &&\n                        provider_person_form['provider_person_home_country'] &&\n                        provider_person_form['provider_person_passport_number'] &&\n                        provider_person_form['provider_person_education_institution'] &&\n                        form['provider_terms_and_conditions'] &&\n                        form['provider_primary_visaholder_declaration']\n                    \/\/ form['checkbox_buy'] ;\n                }\n            });\n            \/\/\u8f6c\u6362children \u5b57\u7b26\u4e32\u4e3a\u6574\u6570\n            const numChildren = computed(() => {\n                return parseInt(insuranceDetails.children, 10);\n            });\n            \/\/\u5173\u95ed\u9519\u8bef\u63d0\u793a\u5f39\u7a97\n            const closeErrorAlert = () => {\n                alert_error_msg.value = null\n            }\n            \/\/\u8f6c\u6362\u524d\n            const transformData = (originalData) => {\n                \/\/ \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u6570\u7ec4\uff0c\u7528\u4e8e\u5b58\u50a8\u8f6c\u6362\u540e\u7684 provider_other_dependents\n                const transformedDependents = [];\n\n                \/\/ \u904d\u5386\u539f\u59cb\u6570\u636e\u4e2d\u7684 provider_other_dependents\n                originalData.datapoints.provider_other_dependents.forEach(dependentsGroup => {\n                    \/\/ \u904d\u5386 dependentsGroup \u4e2d\u7684\u6bcf\u4e00\u4e2a\u5bf9\u8c61\n                    Object.keys(dependentsGroup).forEach(key => {\n                        transformedDependents.push(dependentsGroup[key]);\n                    });\n                });\n\n                \/\/ \u66f4\u65b0\u539f\u59cb\u6570\u636e\u4e2d\u7684 provider_other_dependents \u4e3a\u65b0\u7684\u683c\u5f0f\n                originalData.datapoints.provider_other_dependents = transformedDependents;\n\n                return originalData;\n            }\n\n            \/\/\u8868\u5355\u63d0\u4ea4\n            const handleSubmit = async () => {\n                \/\/\u586b\u5145checkbox\u8d44\u6599\u6587\u4ef6\n                isFormValid.value = false\n                if (clearOwnReferralCode({ showError: true })) {\n                    isFormValid.value = true\n                    return\n                }\n                gtag('event', 'OSHC-submit-info', {\n                    'event_category': 'engagement',\n                    'event_label': 'OSHC Information Submitted',\n                    'value': 1\n                });\n                \/\/ const submitData = {\n                \/\/     datapoints: {\n                \/\/         provider: {\n                \/\/             \/\/ Include other provider data as needed\n                \/\/             \"provider_policy_start_date\": insuranceDetails.startDate,\n                \/\/             \"provider_policy_end_date\": insuranceDetails.endDate,\n                \/\/             \"provider_terms_and_conditions\": form['provider_terms_and_conditions'],\n                \/\/             \"provider_primary_visaholder_declaration\": form['provider_primary_visaholder_declaration'],\n                \/\/             \"provider_product\": 'Basic',\n                \/\/         },\n                \/\/         \/\/ \u52a8\u6001\u68c0\u67e5\u5e76\u5220\u9664\u7a7a\u7684\u8868\u5355\u5757\n                \/\/         provider_person: provider_person_form,\n                \/\/         provider_partner_dependent: partner_form ? partner_form : undefined,\n                \/\/         provider_other_dependents: [other_form] ? [other_form] : undefined,\n                \/\/         provider_extra_fields: provider_extra_form ? provider_extra_form : undefined,\n                \/\/         referral_code:tuijian_code.value,\n                \/\/         url:insuranceDetails.create_policy\n                \/\/     }\n                \/\/ }\n                \/\/ console.log(submitData);\n                \/\/ const transformedData = transformData(submitData);\n                \/\/ console.log(JSON.stringify(transformedData, null, 2));\n                \/\/ debugger;\n                const promises = [submitForm(2)];\n                \/\/\u5224\u65ad\u662f\u5426\u767b\u5f55\n                if (!isLoggedIn()) {\n                    promises.push(login());\n                }\n                try {\n                    await Promise.all(promises);\n                    console.log('\u540c\u65f6\u8fdb\u884c\u4e86\u6ce8\u518c \u548c\u8868\u5355\u63d0\u4ea4');\n                } catch (error) {\n                    console.log(error);\n                    big_loading.value = false; \/\/ Ensure loading state is updated\n                }\n            }\n            const checkOrder = async() => {\n                try {\n                    const response = await window.apiClient.post('https:\/\/agent.goglobalsafe.com\/api\/v1\/h5\/oshc\/submit\/checkOrderInfo', {\n                        order_id: orderId.value\n                    })\n                    console.log(response);\n                    if (response.data.status === 200 && response.data.data.paid) {\n                        stopPolling();\n                        ElMessage.success('Purchase successful, please be patient and wait for the policy to be generated')\n                        setTimeout(() => {\n                            window.location.href = \"https:\/\/www.goglobalsafe.com\/\"\n                        }, 3000)\n                    }\n                } catch (error) {\n                    console.log(error.response)\n                }\n            }\n            \/\/ \u5b58\u50a8\u5b9a\u65f6\u5668 ID\n            const intervalId = ref(null); \/\/ \u7528\u4e8e\u6bcf\u79d2\u8f6e\u8be2\n            const initialTimerId = ref(null); \/\/ \u7528\u4e8e 15 \u79d2\u5ef6\u8fdf\u542f\u52a8\n            const maxTimeoutId = ref(null); \/\/ \ud83c\udf1f \u65b0\u589e\uff1a\u7528\u4e8e 60 \u79d2\u6700\u5927\u67e5\u8be2\u65f6\u95f4\n            \/\/ ----------------------------------------------------\n            \/\/ 2. \u542f\u52a8\u8f6e\u8be2\u7684\u903b\u8f91 (\u5305\u542b 10 \u79d2\u5ef6\u8fdf\u548c 60 \u79d2\u6700\u5927\u65f6\u957f)\n            \/\/ ----------------------------------------------------\n            const startPolling = () => {\n                \/\/ --------------------------------\n                \/\/ \u8bbe\u7f6e 60 \u79d2\u7684\u6700\u5927\u67e5\u8be2\u65f6\u95f4\n                \/\/ --------------------------------\n                maxTimeoutId.value = setTimeout(() => {\n                    console.log('\ud83d\udea8 \u8fbe\u5230 1 \u5206\u949f\u6700\u5927\u67e5\u8be2\u65f6\u95f4\uff0c\u5f3a\u5236\u505c\u6b62\u8f6e\u8be2\uff01');\n                    stopPolling();\n                    \/\/ \u53ef\u4ee5\u5728\u8fd9\u91cc\u6267\u884c\u4e00\u4e9b\u8d85\u65f6\u5904\u7406\uff0c\u4f8b\u5982\u63d0\u793a\u7528\u6237\u624b\u52a8\u67e5\u8be2\n                    \/\/ uni.showToast({ title: '\u8ba2\u5355\u67e5\u8be2\u8d85\u65f6', icon: 'none' });\n\n                }, 60000); \/\/ 60000 \u6beb\u79d2 = 60 \u79d2\n\n                console.log('--- \u8bbe\u7f6e 10 \u79d2\u5ef6\u8fdf\u542f\u52a8 ---');\n\n                \/\/ \u8bbe\u7f6e 10 \u79d2\u5ef6\u8fdf\u540e\u5f00\u59cb\u6bcf\u79d2\u8f6e\u8be2\n                initialTimerId.value = setTimeout(() => {\n                    console.log('10 \u79d2\u5ef6\u8fdf\u7ed3\u675f\uff0c\u5f00\u59cb\u6bcf\u79d2\u8f6e\u8be2...');\n\n                    \/\/ \u7acb\u5373\u6267\u884c\u4e00\u6b21\n                    checkOrder();\n\n                    \/\/ \u6bcf\u79d2\u6267\u884c\u4e00\u6b21\n                    intervalId.value = setInterval(() => {\n                        checkOrder();\n                    }, 2000);\n\n                    initialTimerId.value = null;\n\n                }, 20000);\n            };\n\n            \/\/ ----------------------------------------------------\n            \/\/ 3. \u505c\u6b62\u8f6e\u8be2\u7684\u903b\u8f91\uff08\u6e05\u9664\u6240\u6709\u5b9a\u65f6\u5668\uff09\n            \/\/ ----------------------------------------------------\n            const stopPolling = () => {\n                \/\/ \u6e05\u9664 Max-Timeout \u5b9a\u65f6\u5668\n                if (maxTimeoutId.value !== null) {\n                    clearTimeout(maxTimeoutId.value);\n                    console.log('--- \u6700\u5927\u65f6\u957f\u5b9a\u65f6\u5668\u5df2\u6e05\u9664 ---');\n                    maxTimeoutId.value = null;\n                }\n\n                \/\/ \u6e05\u9664\u6bcf\u79d2\u8f6e\u8be2\u5b9a\u65f6\u5668\n                if (intervalId.value !== null) {\n                    clearInterval(intervalId.value);\n                    console.log('--- \u8f6e\u8be2 (Interval) \u5df2\u505c\u6b62 ---');\n                    intervalId.value = null;\n                }\n\n                \/\/ \u6e05\u9664 10 \u79d2\u5ef6\u8fdf\u542f\u52a8\u5b9a\u65f6\u5668 (\u5982\u679c\u5b83\u8fd8\u6ca1\u6765\u5f97\u53ca\u6267\u884c)\n                if (initialTimerId.value !== null) {\n                    clearTimeout(initialTimerId.value);\n                    console.log('--- \u5ef6\u8fdf\u542f\u52a8 (Timeout) \u5df2\u6e05\u9664 ---');\n                    initialTimerId.value = null;\n                }\n                \/\/\u8fd4\u56de\u9996\u9875\n                window.location.href = \"https:\/\/www.goglobalsafe.com\/\"\n            };\n            \/\/\u65b0\u7528\u6237\u6ce8\u518c\n            const login = async () => {\n                try {\n                    login_from_error.emailMessage = '';\n                    login_from_error.codeMessage = '';\n                    const response = await window.apiClient.post(register_api, {\n                        name: provider_person_form.provider_person_given_name,\n                        email: getRegisterEmail(),\n                        password: login_form.password,\n                        password_confirmation: login_form.password_confirmation,\n                        verification_code: login_form.verification_code,\n                    })\n                    console.log(response);\n                    if (response.data.status === 200 && response.data.data.token) {\n                        console.log(response.data.data.name)\n                        const token = response.data.data.token\n                        console.log(token);\n                        \/\/\u6c38\u4e45\u5b58\u50a8Token\n                        localStorage.setItem('student_token', token)\n                        \/\/ \u5b58\u50a8 user_info\n                        localStorage.setItem('user_info', JSON.stringify(response.data.data));\n                    } else {\n                        alert_error_msg.value = '\u7f51\u7edc\u9519\u8bef!'\n                    }\n                } catch (error) {\n                    const responseMessage = error?.response?.data?.message;\n                    const emailMessage = Array.isArray(responseMessage?.email) ? responseMessage.email[0] : '';\n                    const verificationMessage = Array.isArray(responseMessage?.verification_code) ? responseMessage.verification_code[0] : '';\n                    const plainMessage = typeof responseMessage === 'string' ? responseMessage : '';\n\n                    if (emailMessage) {\n                        login_from_error.emailMessage = emailMessage;\n                        alert_error_msg.value = null;\n                        return;\n                    }\n\n                    if (verificationMessage || plainMessage.toLowerCase().includes('code')) {\n                        login_from_error.codeMessage = verificationMessage || plainMessage;\n                        alert_error_msg.value = null;\n                        return;\n                    }\n\n                    if (error.response && error.response.status === 400) {\n                        console.log(error.response.data.message.email[0])\n                        alert_error_msg.value = error.response.data.message.email[0]\n                    } else {\n                        alert_error_msg.value = '\u7f51\u7edc\u9519\u8bef!'\n                    }\n                }\n            }\n            const payImg = ref('')\n            const orderId = ref(null); \/\/ \u8ba2\u5355ID\n            const paymentPending = ref(false); \/\/ \u652f\u4ed8\u7b49\u5f85\u6807\u8bb0\n            const showSubmitModal = ref(false)\n\n            \/\/\u4fdd\u9669\u8868\u5355\u63d0\u4ea4\n            const submitForm = async (type) => {\n                if (clearOwnReferralCode({ showError: true })) {\n                    return false\n                }\n                big_loading.value = true;\n                const submitData = {\n                    amount: insurance_info.value.amount,\n                    type: 1,\/\/1pc\uff0c\u4e0d\u4f20\u6216\u5176\u4ed6Mini\n                    datapoints: {\n                        provider: {\n                            \/\/ Include other provider data as needed\n                            \"provider_policy_start_date\": insuranceDetails.startDate,\n                            \"provider_policy_end_date\": insuranceDetails.endDate,\n                            \"provider_terms_and_conditions\": form['provider_terms_and_conditions'],\n                            \"provider_primary_visaholder_declaration\": form['provider_primary_visaholder_declaration'],\n                            \"provider_product\": 'Basic',\n                            \/\/ \ud83d\udc49 \u52a8\u6001\u5224\u65ad\u5e76\u6dfb\u52a0\uff1a\u5982\u679c form \u4e2d\u6709\u503c\uff0c\u5219\u5c06\u8be5\u5b57\u6bb5\u5408\u5e76\u8fdb provider\n                            ...(form['provider_provider_terms_and_conditions']\n                                    ? { \"provider_provider_terms_and_conditions\": form['provider_provider_terms_and_conditions'] }\n                                    : {}\n                            )\n                        },\n                        order_id: orderId.value,\n                        pay_type: type,\n                        daili_id: affiliateId.value,\n                        \/\/ \u52a8\u6001\u68c0\u67e5\u5e76\u5220\u9664\u7a7a\u7684\u8868\u5355\u5757\n                        provider_person: provider_person_form,\n                        provider_partner_dependent: partner_form ? partner_form : undefined,\n                        provider_other_dependents: [other_form] ? [other_form] : undefined,\n                        provider_extra_fields: provider_extra_form ? provider_extra_form : undefined,\n                        provider_visa_details: provider_visa_details_form ? provider_visa_details_form : undefined,\n                        referral_code: tuijian_code.value,\n                        url: insuranceDetails.create_policy\n                    }\n                }\n                const transformedData = transformData(submitData);\n                \/\/\u53d1\u9001\u6570\u636e\u5230\u540e\u7aef\n                try {\n                    const response = await window.apiClient.post('https:\/\/agent.goglobalsafe.com\/api\/v1\/h5\/oshc\/submit\/formMini', transformedData);\n                    console.log(response);\n                    if (response.data.data) {\n                        big_loading.value = false;\n                        if (type === 1) {\/\/\u590d\u5236\n                            window.location.href = response.data.data\n                        } else if (type === 2) {\/\/\u5fae\u4fe1\u652f\u4ed8\n                            console.log('\u8fdb\u6765\u4e86\u5417\uff1f')\n                            orderId.value = response.data.id || null;\n                            paymentPending.value = true;\n                            showSubmitModal.value = true\n                            payImg.value = response.data.data.pay_url\n                            console.log(response.data.data.pay_url)\n                            let iinfo = insurance_info.value\n                            if (iinfo.id !== 'INSURANCE-OSHC:100') {\n                                startPolling()\n                            }\n                        } else {\/\/\u90ae\u4ef6\u53d1\u9001\n                            ElMessage.success('\u652f\u4ed8\u90ae\u4ef6\u4f1a\u5c3d\u5feb\u53d1\u9001\uff01\u8bf7\u8010\u5fc3\u7b49\u5f85')\n                            setTimeout(() => {\n                                window.location.href = \"https:\/\/www.goglobalsafe.com\/oshc\/\"\n                            }, 3000)\n                        }\n                        \/\/ location.href = response.data.data\n                    } else {\n                        big_loading.value = false;\n                    }\n                } catch (error) {\n                    big_loading.value = false;\n                    isFormValid.value = true;\n                    let error_message = `${error.response.data.msg || error.response.statusText}`\n                    ElMessage.error(error_message)\n                }\n            }\n            const buttonClass = computed(() => {\n                return isFormValid.value ? 'md:mt-3 md:px-20 px-4 py-1.5 flex items-center justify-center rounded text-white text-lg tracking-wider font-medium bg-customBlue' : 'md:mt-3 md:px-20 px-4 py-1.5 flex items-center justify-center rounded text-white text-lg tracking-wider font-medium bg-gray-500';\n            });\n            \/\/\u521d\u59cb\u5316\u65e5\u671f\n            const init_date = () => {\n                flatpickr(\"#start\", {\n                    enableTime: false,\n                    dateFormat: \"Y-m-d\",\n                    changeYear: true,\n                    minDate: \"today\",\n                    defaultDate: insuranceDetails.startDate,\n                    onChange: function (selectedDates, dateStr, instance) {\n                        insuranceDetails.startDate = dateStr;\n                    }\n                });\n                flatpickr(\"#end\", {\n                    enableTime: false,\n                    dateFormat: \"Y-m-d\",\n                    defaultDate: insuranceDetails.endDate,\n                    changeYear: true,\n                    minDate: new Date().fp_incr(30),\n                    onChange: function (selectedDates, dateStr, instance) {\n                        insuranceDetails.endDate = dateStr;\n                    }\n                });\n            };\n            \/\/\u5224\u65ad\u5f53\u524d\u662f\u4e2d\u6587\u8fd8\u662f\u82f1\u6587\n            const path = window.location.pathname;\n            const lang = path.includes('\/zh') ? 'zh' : 'en';\n            const clearOwnReferralCode = (options = {}) => {\n                const { showError = false } = options;\n                const ownReferralCode = getCachedUserReferralCode();\n                if (!isSameReferralCode(tuijian_code.value, ownReferralCode)) {\n                    return false;\n                }\n                tuijian_code.value = null;\n                if (isSameReferralCode(getStoredPrefilledReferralCode(), ownReferralCode)) {\n                    localStorage.removeItem(PREFILLED_REFERRAL_CODE_KEY);\n                }\n                if (showError) {\n                    ElMessage.error(lang === 'zh' ? '\u4e0d\u80fd\u4f7f\u7528\u81ea\u5df1\u7684\u63a8\u8350\u7801' : 'Cannot use own code');\n                }\n                return true;\n            };\n            \/\/header2\n            const transheader = reactive({\n                title: computed(() => (lang === 'zh' ? '\u6fb3\u5927\u5229\u4e9a OSHC \u4fdd\u9669' : 'OSHC Insurance Australia')),\n                policy: computed(() => (lang === 'zh' ? '\u4fdd\u5355\u603b\u989d' : 'Policy Total')),\n                buy: computed(() => (lang === 'zh' ? '\u8d2d\u4e70' : 'BUY')),\n            })\n            \/\/\u5b66\u6821\u4fe1\u606f \u90e8\u5206\n            const trans_person = reactive({\n                \/\/\u5b66\u6821\u540d\u79f0\n                education_name: computed(() => (lang === 'zh' ? '\u6559\u80b2\u5b66\u6821' : 'School name')),\n                \/\/\u5b66\u6821\u6240\u5904\u56fd\u5bb6\n                home_country: computed(() => (lang === 'zh' ? '\u56fd\u7c4d' : 'Home country')),\n            })\n            \/\/\u91d1\u989d\u683c\u5f0f\u5316\n            const formattedAmount = (price) => {\n                return new Intl.NumberFormat('en-US', {\n                    style: 'currency',\n                    currency: 'AUD',\n                    minimumFractionDigits: 2\n                }).format(price).replace('A$', ''); \/\/ Remove the default currency symbol\n            }\n            \/\/summary\u7b2c\u4e00\u90e8\u5206\n            const translations = reactive({\n                tip: computed(() => (lang === 'zh' ? '*\u586b\u5199\u4fe1\u606f,3\u5206\u949f\u5185\u5373\u53ef\u83b7\u5f97\u4fdd\u9669\u8bc1\u660e.' : '*Fill information and get your insurance certificate in 3 minutes.')),\n                summary: computed(() => (lang === 'zh' ? '\u6982\u62ec' : 'Summary')),\n                summary_adults: computed(() => (lang === 'zh' ? '\u6210\u5e74\u4eba' : 'ADULTS')),\n                summary_children: computed(() => (lang === 'zh' ? '\u5b69\u5b50\u4eec' : 'CHILDREN')),\n                summary_startDate: computed(() => (lang === 'zh' ? '\u751f\u6548\u65e5\u671f' : 'START DATE')),\n                summary_endDate: computed(() => (lang === 'zh' ? '\u7ed3\u675f\u65e5\u671f' : 'END DATE')),\n            })\n            \/\/\u5b66\u751f\u8d44\u6599 \u7b2c\u4e8c\u90e8\u5206\n            const student_details = reactive({\n                title: computed(() => (lang === 'zh' ? '\u5b66\u751f\u8d44\u6599' : 'Student Details')),\n                form_title: computed(() => (lang === 'zh' ? '\u8bf7\u586b\u5199' : 'Please fill in')),\n                form_give_name: computed(() => (lang === 'zh' ? '\u8bf7\u586b\u5199-(\u540d\u5b57\uff09\u793a\u4f8b\uff1a\u674e\u534e\uff0c\u6b64\u5904\u586b\u5199Hua' : 'Please fill in -(name) Example: Li Hua, fill in Hua here')),\n                form_surname: computed(() => (lang === 'zh' ? '\u8bf7\u586b\u5199-(\u59d3\u6c0f\uff09\u793a\u4f8b\uff1a\u674e\u534e\uff0c\u6b64\u5904\u586b\u5199Li' : 'Please fill in -(Last name) Example: Li Hua, fill in Li here')),\n            })\n            \/\/\u7b7e\u8bc1visa_class\n            const visa_class = reactive({\n                title: computed(() => (lang === 'zh' ? '\u7b7e\u8bc1\u7c7b\u522b' : 'Visa Class')),\n            })\n            const paymentTitle = reactive({\n                wechat: computed(() => (lang === 'zh' ? '\u901a\u8fc7\u6613\u601d\u6c47\u5fae\u4fe1\u652f\u4ed8' : 'Pay by WeChat via EasyTransfer')),\n                morePayment: computed(() => (lang === 'zh' ? '\u66f4\u591a\u652f\u4ed8\u65b9\u5f0f' : 'More payment options')),\n                email1: computed(() => (lang === 'zh' ? '\u90ae\u7bb1\u94fe\u63a5(\u4fe1\u7528\u5361\u652f\u4ed8)' : 'Email link (Pay by credit card)')),\n                email2: computed(() => (lang === 'zh' ? '\u901a\u8fc7\u90ae\u7bb1\u6536\u5230\u4e13\u5c5e\u652f\u4ed8\u94fe\u63a5\u3002' : 'Receive an exclusive payment link via email.')),\n                card1: computed(() => (lang === 'zh' ? '\u4fe1\u7528\u5361\u652f\u4ed8' : 'Credit card payment (Pay by Flywire)')),\n                card2: computed(() => (lang === 'zh' ? '\u652f\u6301MasterCard\u3001VISA\u3001\u94f6\u8054\u7b49...' : 'Supports MasterCard, VISA, UnionPay, and more...')),\n            });\n\n            \/\/Address in the AUS \u5730\u5740\u7b2c\u4e09\u90e8\u5206\n            const student_address = reactive({\n                title: computed(() => (lang === 'zh' ? '\u6fb3\u5927\u5229\u4e9a\u5730\u5740' : 'Address in the AU')),\n            })\n            \/\/School information \u5b66\u6821\u4fe1\u606f\n            const schoole_informations = reactive({\n                title: computed(() => (lang === 'zh' ? '\u5b66\u6821\u4fe1\u606f' : 'School information')),\n            })\n            const extra_fields = reactive({\n                title: computed(() => (lang === 'zh' ? '\u989d\u5916' : 'Extra')),\n            })\n            const address_au = reactive({\n                tip: computed(() => (lang === 'zh' ? '\u5982\u679c\u60a8\u8fd8\u6ca1\u6709\u6fb3\u5927\u5229\u4e9a\u5730\u5740\uff0c\u8bf7\u5c06\u8fd9\u4e9b\u4fe1\u606f\u7559\u7a7a\u3002' : 'Leave these details blank if you don\\'t yet have an Australian address.')),\n            })\n            \/\/\u4f34\u4fa3 Partner provider_partner_dependent\n            const Partner = reactive({\n                title: computed(() => (lang === 'zh' ? '\u4f34\u4fa3' : 'Partner')),\n            })\n            \/\/\u5bb6\u4eba\u4eec other provider_other_dependents\n            const other = reactive({\n                title: computed(() => (lang === 'zh' ? '\u5176\u4ed6\u5bb6\u5ead\u6210\u5458' : 'Other family members')),\n                provide: computed(() => (lang === 'zh' ? '\u63d0\u4f9b\u60a8\u7684\u4fdd\u5355\u4e2d\u5e94\u5305\u62ec\u7684\u4efb\u4f55\u5176\u4ed6\u5bb6\u5ead\u6210\u5458\u7684\u8be6\u7ec6\u4fe1\u606f\u3002' : 'Provide the details of any additional family members that should be included on your policy.')),\n            })\n            \/\/\u767b\u5f55\u8868\u5355\n            const login_title = reactive({\n                title: computed(() => (lang === 'zh' ? '\u521b\u5efa\u8d26\u6237' : 'Create an account')),\n                email: computed(() => (lang === 'zh' ? '\u90ae\u7bb1' : 'Email')),\n                password: computed(() => (lang === 'zh' ? '\u5bc6\u7801' : 'Password')),\n                password_confirmation: computed(() => (lang === 'zh' ? '\u786e\u8ba4\u5bc6\u7801' : 'Password confirmation')),\n                verification_code: computed(() => (lang === 'zh' ? '\u9a8c\u8bc1\u7801' : 'Verification Code')),\n                send_code: computed(() => (lang === 'zh' ? '\u83b7\u53d6\u9a8c\u8bc1\u7801' : 'Send Code')),\n            })\n            \/\/\u63a8\u8350\u7801 Referral Code\n            const referral_code = reactive({\n                title: computed(() => (lang === 'zh' ? '\u63a8\u8350\u7801' : 'Referral Code')),\n                tip: computed(() => (lang === 'zh' ? '\u9009\u586b' : '(Optional)')),\n            })\n\n            \/\/\u6761\u6b3e\n            const terms = reactive({\n                title: computed(() => (lang === 'zh' ? '\u63a5\u53d7\u653f\u7b56' : 'Accept the terms')),\n            })\n            \/\/\u5224\u65ad\u5f53\u524d\u662f\u5426\u767b\u5f55\n            const isLoggedIn = () => {\n                return !!localStorage.getItem('student_token'); \/\/ Use double negation to convert to a boolean\n            };\n            \/\/\u66f4\u65b0\u8868\u5355\n            const fmChange = () => {\n                loading.value = true;\n                \/\/ \u5904\u7406\u9009\u62e9\u66f4\u6539\u7684\u903b\u8f91\n                console.log(isLoggedIn());\n                if (isLoggedIn()) {\n                    \/\/\u767b\u5f55\u72b6\u6001 \u586b\u5145email\u6846\n                    token.value = localStorage.getItem('student_token');\n                    Promise.all([init(), user()]);\n                } else {\n                    \/\/\u672a\u767b\u5f55\u72b6\u6001 \u6e32\u67d3\u8868\u5355\n                    show_login_form.value = true\n                    init()\n                    \/\/\u586b\u5145email \u8f93\u5165\u6846\n                    provider_person_form['provider_person_email'] = insuranceDetails.email\n                    login_form.email = insuranceDetails.email\n                    console.log(login_form.email);\n                    console.log(provider_person_form['provider_person_email'])\n                }\n            }\n            const user = async () => {\n                try {\n                    const response = await window.apiClient.get(user_api);\n                    if (response.data.status === 200) {\n                        console.log(response.data.data)\n                        user_info.email = response.data.data.email;\n                        provider_person_form.provider_person_email = response.data.data.email;\n                        provider_person_form.provider_person_given_name = response.data.data.name;\n                        console.log(provider_person_form);\n                    }\n                } catch (error) {\n                    console.log(error)\n                    user_info.email = '';\n                    provider_person_form.provider_person_email = '';\n                }\n            }\n            const insurance_info = ref(null)\n            \/\/\u521d\u59cb\u5316\u52a0\u8f7d\u9ed8\u8ba4\u8868\u5355\n            const init = async () => {\n                Object.keys(provider_person_form).forEach(key => {\n                    provider_person_form[key] = '';\n                });\n                \/\/\u5f02\u6b65\u52a0\u8f7d\u8868\u5355\n                try {\n                    const response = await window.apiClient.post('https:\/\/agent.goglobalsafe.com\/api\/v1\/h5\/oshc\/formH5', {\n                        adults: insuranceDetails.adults,\n                        children: insuranceDetails.children,\n                        start_date: insuranceDetails.startDate,\n                        end_date: insuranceDetails.endDate,\n                        self: insuranceDetails.self\n                    })\n                    loading.value = false;\n                    const baoxian = response.data.data;\n                    insurance_info.value = baoxian;\n                    datapoints.value = response.data.data.datapoints\n                    insuranceDetails.create_policy = response.data.data.links['create-policy']\n                    provider.value = response.data.data.datapoints.provider\n                    provider_extra_fields.value = baoxian.datapoints.provider_extra_fields\n                    provider_partner_dependent.value = baoxian.datapoints.provider_partner_dependent\n\n                    \/\/ \u8f6c\u6362 provider_other_dependents \u6570\u636e\u7ed3\u6784\n                    const rawProviderOtherDependents = baoxian.datapoints.provider_other_dependents;\n                    if (rawProviderOtherDependents) {\n                        \/\/ \u5c06 provider_other_dependents \u6241\u5e73\u5316\u5e76\u6e05\u7406 null \u503c\n                        provider_other_dependents.value = rawProviderOtherDependents.flat().filter(item => item !== null);\n                    } else {\n                        provider_other_dependents.value = [];\n                    }\n\n                    \/\/ \u521d\u59cb\u5316 other_form \u5bf9\u8c61\uff0c\u786e\u4fdd childIndex \u5bf9\u5e94\u7684\u5bf9\u8c61\u5df2\u5b58\u5728\n                    for (let i = 1; i <= numChildren.value; i++) {\n                        if (!other_form[i]) {\n                            other_form[i] = {};  \/\/ \u521d\u59cb\u5316\u5b50\u5bf9\u8c61\n                        }\n                        provider_other_dependents.value.forEach(field => {\n                            if (!other_form[i][field.id]) {\n                                other_form[i][field.id] = ''; \/\/ \u521d\u59cb\u5316\u6bcf\u4e2a\u5b57\u6bb5\u7684\u503c\u4e3a\u7a7a\u5b57\u7b26\u4e32\n                            }\n                        });\n                    }\n                    console.log('Provider Other Dependents:', provider_other_dependents.value);\n                    console.log('numChildren', numChildren.value)\n                    \/\/\u5b66\u751f\u8d44\u6599 \u5f00\u59cb\u8fc7\u6ee4\n                    provider_person.value = response.data.data.datapoints.provider_person\n                    \/\/\u7b7e\u8bc1\u7c7b\u578b\n                    if (response.data.data.datapoints.provider_visa_details) {\n                        provider_visa_details.value = response.data.data.datapoints.provider_visa_details\n                        console.log(provider_visa_details.value);\n                    }\n                    const person = datapoints.value.provider_person\n                    \/\/ \u52a8\u6001\u7b5b\u9009\u548c\u5206\u7ec4\n                    const addressFieldIds = [\n                        \"provider_person_address_address1\",\n                        \"provider_person_address_address2\",\n                        \"provider_person_address_city\",\n                        \"provider_person_address_state\",\n                        \"provider_person_address_postcode\"\n                    ];\n                    \/\/ \u63d0\u53d6\u5b66\u6821\u4fe1\u606f\u5b57\u6bb5\n                    const schoolFieldIds = [\n                        \"provider_person_education_institution\"\n                    ];\n\n                    \/\/\u52a8\u6001\u786e\u5b9a\u662f\u5426\u5b58\u5728\u5730\u5740\u5b57\u6bb5\n                    const hasAddressFields = addressFieldIds.some(id =>\n                        person.some(field => field.id === id)\n                    );\n                    if (hasAddressFields) {\n                        address_aus.value = person.filter(field =>\n                            addressFieldIds.includes(field.id)\n                        );\n                    } else {\n                        address_aus.value = '';\n                    }\n                    \/\/ \u52a8\u6001\u786e\u5b9a\u662f\u5426\u5b58\u5728\u5b66\u6821\u4fe1\u606f\u5b57\u6bb5\n                    const hasSchoolFields = schoolFieldIds.some(id =>\n                        person.some(field => field.id === id)\n                    );\n                    if (hasSchoolFields) {\n                        school_information.value = person.filter(field =>\n                            schoolFieldIds.includes(field.id)\n                        );\n                    } else {\n                        school_information.value = [];\n                    }\n                    console.log(school_information.value)\n                    \/\/ \u8fc7\u6ee4\u6389\u5730\u5740\u548c\u5b66\u6821\u4fe1\u606f\u5b57\u6bb5\u540e\u5269\u4f59\u7684\u5b57\u6bb5\n                    provider_person.value = person.filter(field =>\n                        !addressFieldIds.includes(field.id) &&\n                        !schoolFieldIds.includes(field.id)\n                    );\n                    \/\/ Simulate setting initial values from API response for checkboxes\n                    console.log(provider.value)\n                    insuranceDetails.amount = formattedAmount(response.data.data.amount)\n                    \/\/ insuranceDetails.origin_amount = formattedAmount(response.data.data.origin_amount)\n                    const rawOriginAmount = response.data.data.origin_amount || response.data.data.amount;\n                    insuranceDetails.origin_amount = formattedAmount(rawOriginAmount);\n                    \/\/\u6302\u8f7d\u56fd\u9645\u5316mobile\u7ec4\u4ef6\n                    \/\/ \u786e\u4fdd DOM \u6e32\u67d3\u5b8c\u6210\n                    await nextTick();\n                    const input = document.querySelector(\"#provider_person_mobile\");\n                    console.log(input);\n                    iti.value = window.intlTelInput(input, {\n                        initialCountry: \"auto\",\n                        autoPlaceholder: \"off\",\n                        geoIpLookup: function (callback) {\n                            fetch(\"https:\/\/ipinfo.io?token=your_token_here\")\n                                .then(response => response.json())\n                                .then(data => {\n                                    const countryCode = (data && data.country) ? data.country : \"us\";\n                                    callback(countryCode);\n                                });\n                        },\n                        utilsScript: \"https:\/\/cdn.jsdelivr.net\/npm\/intl-tel-input@23.8.1\/build\/js\/utils.js\" \/\/ \u7528\u4e8e\u683c\u5f0f\u5316\u7b49\u529f\u80fd\n                    });\n                    \/\/ Optional: Add event listeners if needed\n                    input.addEventListener(\"input\", () => {\n                        if (iti.value) {\n                            \/\/ console.log(iti.value);\n                            const number = iti.value.getNumber(); \/\/ Get the formatted number\n                            phone_mobile.value = number;\n                            validateField('provider_person_mobile');\n                        }\n                    });\n                } catch (error) {\n                    console.log(error);\n                    empty.value = 'Failed to submit. Please go back to previous page reselect date and fill out the form.'\n                    loading.value = false;\n                    datapoints.value = null\n                    provider.value = [];\n                }\n            }\n            \/\/\u5c01\u88c5\u83b7\u53d6\u4fdd\u9669\u5217\u8868\u5f97api\n            const fetchGoogleAnalytics = () => {\n                window.apiClient.post(\"https:\/\/agent.goglobalsafe.com\/api\/v1\/insurance\/baoxian\/startForm\", {\n                    type: 'OSHC'\n                }).then(response => {\n                    console.log(response)\n                }).catch(error => {\n                    console.log(error)\n                });\n            };\n            \/\/ \u9ed8\u8ba4\u5c55\u5f00 'student' (Student Details)\uff0cSummary \u662f\u5355\u72ec\u7684\u9759\u6001\u5361\u7247\uff0c\u4e0d\u53c2\u4e0e\u6298\u53e0\u4e92\u65a5\n            const activeSections = ref(['student']);\n\n            \/\/ \u5207\u6362\u677f\u5757 (\u70b9\u51fb\u6807\u9898\u680f)\n            const toggleSection = (section) => {\n                \/\/ **Terms \u5361\u7247\u8bbe\u7f6e\u4e3a\u9759\u6001\uff0c\u70b9\u51fb\u4e0d\u6536\u8d77**\n                if (section === 'terms') return;\n\n                const index = activeSections.value.indexOf(section);\n                if (index > -1) {\n                    \/\/ \u5982\u679c\u5df2\u5b58\u5728\uff0c\u5219\u79fb\u9664\uff08\u6298\u53e0\uff09\n                    activeSections.value.splice(index, 1);\n                } else {\n                    \/\/ \u5982\u679c\u4e0d\u5b58\u5728\uff0c\u5219\u6dfb\u52a0\uff08\u5c55\u5f00\uff09\uff0c\u5141\u8bb8\u540c\u65f6\u5c55\u5f00\u591a\u4e2a\u9762\u677f\n                    activeSections.value.push(section);\n                }\n            };\n\n            \/\/ \u70b9\u51fb Next \u6309\u94ae\u8df3\u8f6c\u903b\u8f91 (\u4e0d\u6536\u8d77\u5df2\u5c55\u5f00\u7684\u9762\u677f)\n            const handleNext = (nextSectionName) => {\n\n                \/\/ **\u5173\u952e\u4fee\u6539\uff1a\u4e0d\u6e05\u9664 activeSections \u6570\u7ec4\uff0c\u4ece\u800c\u4fdd\u6301\u5176\u4ed6\u9762\u677f\u6253\u5f00**\n\n                \/\/ \u68c0\u67e5\u4e0b\u4e00\u4e2a\u9762\u677f\u662f\u5426\u5df2\u5c55\u5f00\uff0c\u5982\u679c\u6ca1\u6709\uff0c\u5219\u5c55\u5f00\u5b83\n                if (!activeSections.value.includes(nextSectionName)) {\n                    activeSections.value.push(nextSectionName);\n                }\n\n                \/\/ \u5e73\u6ed1\u6eda\u52a8\u5230\u4e0b\u4e00\u4e2a\u533a\u57df\n                setTimeout(() => {\n                    const el = document.getElementById(`section-${nextSectionName}`);\n                    if (el) {\n                        \/\/ \u5b9a\u4e49\u7535\u8111\u7aef (\u5bbd\u5ea6\u5927\u4e8e 768px)\n                        const isDesktop = window.innerWidth > 768;\n\n                        if (isDesktop) {\n                            \/\/ \u7535\u8111\u7aef\u504f\u79fb\u91cf 5rem (\u5047\u8bbe 1rem = 16px, \u5373 80px)\n                            const offset = 220;\n\n                            \/\/ \u83b7\u53d6\u5143\u7d20\u76f8\u5bf9\u4e8e\u89c6\u53e3\u9876\u90e8\u7684\u8ddd\u79bb\n                            const rect = el.getBoundingClientRect();\n\n                            \/\/ \u8ba1\u7b97\u76ee\u6807\u6eda\u52a8\u4f4d\u7f6e\uff1a\u5f53\u524d\u6eda\u52a8\u4f4d\u7f6e + \u5143\u7d20\u9876\u90e8\u8ddd\u79bb - \u504f\u79fb\u91cf\n                            const targetScroll = window.scrollY + rect.top - offset;\n\n                            window.scrollTo({\n                                top: targetScroll,\n                                behavior: 'smooth'\n                            });\n                        } else {\n                            \/\/ \u624b\u673a\u7aef\u4f7f\u7528\u539f\u751f\u7684 scrollIntoView\uff0c\u5b9a\u4f4d\u5230\u9876\u90e8\uff08\u65e0\u504f\u79fb\uff09\n                            el.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                        }\n                    }\n                }, 100);\n            };\n            \/\/ 3. \u65b9\u6cd5\uff1a\u5173\u95ed\u6a21\u6001\u5f39\u7a97\uff08\u70b9\u51fb\u5916\u90e8\u6216\u5173\u95ed\u6309\u94ae\uff09\n            const closeSubmitModal = () => {\n                showSubmitModal.value = false;\n                big_loading.value = false\n            };\n            \/\/ --- \u5f00\u59cb\uff1a\u83b7\u53d6 affiliate_id ---\n            const getCookie = (name) => {\n                \/\/ \u6b63\u5219\u5339\u914d\uff1a\u5339\u914d\u5f00\u5934\u6216\u7a7a\u683c\u540e\u7684 name=\u503c\n                const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));\n                return match ? match[2] : null;\n            }\n            onMounted(() => {\n                const id = getCookie('affiliate_id');\n\n                if (id) {\n                    console.log('\u83b7\u53d6\u5230\u7684 Affiliate ID:', id);\n                    affiliateId.value = id; \/\/ \u8d4b\u503c\u7ed9\u54cd\u5e94\u5f0f\u53d8\u91cf\n                    \/\/ \u5982\u679c\u9700\u8981\u4f20\u7ed9\u4e0b\u9762\u51fd\u6570\uff0c\u53ef\u4ee5\u5728\u8fd9\u91cc\u4f20\n                    \/\/ init_date(id)\n                }\n                init_date()\n                fmChange()\n                fetchGoogleAnalytics()\n            })\n            return {\n                handleSubmit,\n                phone_mobile,\n                address_au,\n                iti,\n                getInputBackgroundColor,\n                formattedAmount,\n                trans_person,\n                isInputVisible,\n                show_login_form,\n                handleSelectChange,\n                schools,\n                selectedOption,\n                user_info,\n                login_form,\n                login_from_error,\n                login_title,\n                referral_code,\n                tuijian_code,\n                title,\n                loading,\n                big_loading,\n                isCounting,\n                countDown,\n                insuranceDetails,\n                transheader,\n                translations,\n                student_details,\n                student_address,\n                schoole_informations,\n                address_aus,\n                school_information,\n                fmChange,\n                datapoints,\n                form,\n                buttonClass,\n                isFormValid,\n                closeErrorAlert,\n                alert_error_msg,\n                person_validateField,\n                partner_validateField,\n                password_validateField,\n                verificationCodeValidateField,\n                provider_person_errors,\n                partner_forms_errors,\n                Partner,\n                other,\n                other_form,\n                other_forms_errors,\n                terms,\n                empty,\n                provider,\n                provider_person,\n                provider_person_form,\n                partner_form,\n                provider_partner_dependent,\n                provider_other_dependents,\n                other_validateField,\n                provider_extra_fields,\n                provider_extra_form,\n                extra_fields,\n                countries,\n                numChildren,\n                provider_visa_details,\n                visa_class,\n                provider_visa_details_form,\n                activeSections,\n                toggleSection,\n                handleNext,\n                CHECKED_IMAGE_URL,\n                UNCHECKED_IMAGE_URL,\n                showSubmitModal,\n                payImg,\n                insurance_info,\n                closeSubmitModal,\n                paymentTitle,\n                submitForm,\n                sendVerificationCode\n            }\n        },\n    });\n    \/\/ \u6ce8\u518c\u5168\u5c40\u6307\u4ee4 v-birthday\n    app.directive('birthday', {\n        mounted(el, binding) {\n            \/\/ \u521d\u59cb\u5316 Flatpickr\n            el._flatpickr = flatpickr(el, {\n                enableTime: false,\n                dateFormat: \"Y-m-d\",\n                maxDate: \"today\",       \/\/ \u751f\u65e5\u4e0d\u80fd\u662f\u672a\u6765\n                defaultDate: \"1990-01-01\", \/\/ \u9ed8\u8ba4\u6253\u5f00\u663e\u793a\u7684\u5e74\u4efd\n                \/\/ allowInput: true,\n                disableMobile: \"true\", \/\/ \u5f3a\u5236\u624b\u673a\u7aef\u4e5f\u662f\u7528 flatpickr\uff0c\u800c\u4e0d\u662f\u539f\u751f\u63a7\u4ef6\n                onChange: function(selectedDates, dateStr) {\n                    \/\/ \u6838\u5fc3\uff1a\u624b\u52a8\u89e6\u53d1 input \u4e8b\u4ef6\uff0c\u8ba9 Vue \u7684 v-model \u66f4\u65b0\u6570\u636e\n                    el.value = dateStr;\n                    el.dispatchEvent(new Event('input'));\n                }\n            });\n        },\n        \/\/ \u7ec4\u4ef6\u9500\u6bc1\u65f6\u6e05\u7406\u5185\u5b58\n        unmounted(el) {\n            if (el._flatpickr) {\n                el._flatpickr.destroy();\n            }\n        }\n    });\n    app.mount('#app');\n<\/script>\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"class_list":["post-31501","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v26.4) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Best OSHC Insurance in Australia<\/title>\n<meta name=\"description\" content=\"Discover comprehensive OSHC insurance options in Australia tailored for international students. Ensure your health and well-being while studying abroad\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"vue-buy\" \/>\n<meta property=\"og:description\" content=\"Discover comprehensive OSHC insurance options in Australia tailored for international students. Ensure your health and well-being while studying abroad\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/\" \/>\n<meta property=\"og:site_name\" content=\"GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-10T08:41:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/\",\"url\":\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/\",\"name\":\"Best OSHC Insurance in Australia\",\"isPartOf\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#website\"},\"datePublished\":\"2024-07-23T08:37:50+00:00\",\"dateModified\":\"2024-09-10T08:41:16+00:00\",\"description\":\"Discover comprehensive OSHC insurance options in Australia tailored for international students. Ensure your health and well-being while studying abroad\",\"breadcrumb\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.goglobalsafe.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"vue-buy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#website\",\"url\":\"https:\/\/www.goglobalsafe.com\/\",\"name\":\"GoGlobalSafe Student Insurance\",\"description\":\"Your Health, Our Priority\",\"publisher\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#organization\"},\"alternateName\":\"GoGlobalSafe international student insurance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.goglobalsafe.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#organization\",\"name\":\"Golobal student consulting limited\",\"alternateName\":\"GoGlobalSafe\",\"url\":\"https:\/\/www.goglobalsafe.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png\",\"contentUrl\":\"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png\",\"width\":500,\"height\":140,\"caption\":\"Golobal student consulting limited\"},\"image\":{\"@id\":\"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6fb3\u5927\u5229\u4e9a\u6700\u4f73 OSHC \u4fdd\u9669","description":"\u4e86\u89e3\u6211\u4eec\u4e3a\u56fd\u9645\u5b66\u751f\u8bbe\u8ba1\u7684\u6fb3\u5927\u5229\u4e9a OSHC \u4fdd\u9669\u9009\u9879\u3002\u83b7\u5f97\u60a8\u5728\u6fb3\u5927\u5229\u4e9a\u5b66\u4e60\u671f\u95f4\u8301\u58ee\u6210\u957f\u6240\u9700\u7684\u5065\u5eb7\u4fdd\u9669\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/","og_locale":"zh_CN","og_type":"article","og_title":"vue-buy","og_description":"Discover comprehensive OSHC insurance options in Australia tailored for international students. Ensure your health and well-being while studying abroad","og_url":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/","og_site_name":"GoGlobalsafe-\u7559\u5b66\u751f\u4fdd\u9669\u4e00\u7ad9\u5f0f\u89e3\u51b3\u65b9\u6848","article_modified_time":"2024-09-10T08:41:16+00:00","og_image":[{"width":1000,"height":1000,"url":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/","url":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/","name":"\u6fb3\u5927\u5229\u4e9a\u6700\u4f73 OSHC \u4fdd\u9669","isPartOf":{"@id":"https:\/\/www.goglobalsafe.com\/#website"},"datePublished":"2024-07-23T08:37:50+00:00","dateModified":"2024-09-10T08:41:16+00:00","description":"\u4e86\u89e3\u6211\u4eec\u4e3a\u56fd\u9645\u5b66\u751f\u8bbe\u8ba1\u7684\u6fb3\u5927\u5229\u4e9a OSHC \u4fdd\u9669\u9009\u9879\u3002\u83b7\u5f97\u60a8\u5728\u6fb3\u5927\u5229\u4e9a\u5b66\u4e60\u671f\u95f4\u8301\u58ee\u6210\u957f\u6240\u9700\u7684\u5065\u5eb7\u4fdd\u9669\u3002","breadcrumb":{"@id":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.goglobalsafe.com\/zh\/vue-buy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.goglobalsafe.com\/"},{"@type":"ListItem","position":2,"name":"vue-buy"}]},{"@type":"WebSite","@id":"https:\/\/www.goglobalsafe.com\/#website","url":"https:\/\/www.goglobalsafe.com\/","name":"GoGlobalSafe \u5b66\u751f\u4fdd\u9669","description":"\u60a8\u7684\u5065\u5eb7\uff0c\u6211\u4eec\u7684\u9996\u8981\u4efb\u52a1","publisher":{"@id":"https:\/\/www.goglobalsafe.com\/#organization"},"alternateName":"GoGlobalSafe international student insurance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.goglobalsafe.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-Hans"},{"@type":"Organization","@id":"https:\/\/www.goglobalsafe.com\/#organization","name":"\u73af\u7403\u5b66\u751f\u54a8\u8be2\u6709\u9650\u516c\u53f8","alternateName":"GoGlobalSafe","url":"https:\/\/www.goglobalsafe.com\/","logo":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png","contentUrl":"https:\/\/www.goglobalsafe.com\/wp-content\/uploads\/2023\/04\/LOGO3.png","width":500,"height":140,"caption":"Golobal student consulting limited"},"image":{"@id":"https:\/\/www.goglobalsafe.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/31501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/comments?post=31501"}],"version-history":[{"count":3,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/31501\/revisions"}],"predecessor-version":[{"id":31505,"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/pages\/31501\/revisions\/31505"}],"wp:attachment":[{"href":"https:\/\/www.goglobalsafe.com\/zh\/wp-json\/wp\/v2\/media?parent=31501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}