"use strict"; (self["webpackChunkliu_official"] = self["webpackChunkliu_official"] || []).push([[76],{ /***/ 1476: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { A: function() { return /* binding */ AdPopup; } }); // EXTERNAL MODULE: ./node_modules/.pnpm/vue@3.5.16/node_modules/vue/dist/vue.esm-bundler.js + 5 modules var vue_esm_bundler = __webpack_require__(2892); // EXTERNAL MODULE: ./src/assets/img/close.png var img_close = __webpack_require__(2277); // EXTERNAL MODULE: ./src/utils/common.js var common = __webpack_require__(1639); ;// ./node_modules/.pnpm/unplugin@2.3.5/node_modules/unplugin/dist/webpack/loaders/transform.js??unplugin-auto-import!./node_modules/.pnpm/babel-loader@10.0.0_@babel+core@7.27.4_webpack@5.99.9/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./src/components/vue/mobile/AdPopup.vue?vue&type=script&setup=true&lang=js const _hoisted_1 = { class: "ad-popup__inner" }; /* harmony default export */ var AdPopupvue_type_script_setup_true_lang_js = ({ __name: 'AdPopup', props: {}, setup(__props, { expose: __expose }) { const props = __props; const show = (0,vue_esm_bundler/* ref */.KR)(false); function open() { (0,common/* setScrollLock */.jH)(true); show.value = true; } function close() { (0,common/* setScrollLock */.jH)(false); show.value = false; } __expose({ open, close }); return (_ctx, _cache) => { return (0,vue_esm_bundler/* openBlock */.uX)(), (0,vue_esm_bundler/* createElementBlock */.CE)(vue_esm_bundler/* Fragment */.FK, null, [(0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: (0,vue_esm_bundler/* normalizeClass */.C4)(["ad-popup", { 'ad-popup--show': show.value }]), onScroll: _cache[0] || (_cache[0] = (0,vue_esm_bundler/* withModifiers */.D$)(() => {}, ["stop", "prevent"])) }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("div", _hoisted_1, [(0,vue_esm_bundler/* renderSlot */.RG)(_ctx.$slots, "default")]), (0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: "ad-popup__close" }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("img", { src: img_close, alt: "关闭", onClick: close })])], 34 /* CLASS, NEED_HYDRATION */), show.value ? ((0,vue_esm_bundler/* openBlock */.uX)(), (0,vue_esm_bundler/* createElementBlock */.CE)("div", { key: 0, class: "ad-popup__mask", onClick: close })) : (0,vue_esm_bundler/* createCommentVNode */.Q3)("v-if", true)], 64 /* STABLE_FRAGMENT */); }; } }); ;// ./src/components/vue/mobile/AdPopup.vue?vue&type=script&setup=true&lang=js // EXTERNAL MODULE: ./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js var exportHelper = __webpack_require__(4406); ;// ./src/components/vue/mobile/AdPopup.vue /* unplugin-vue-components disabled */ ; const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.A)(AdPopupvue_type_script_setup_true_lang_js, [['__scopeId',"data-v-9febef54"]]) /* harmony default export */ var AdPopup = (__exports__); /***/ }), /***/ 1639: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Xb: function() { return /* binding */ isMobileDevice; }, /* harmony export */ fZ: function() { return /* binding */ shouldSkipRedirect; }, /* harmony export */ jH: function() { return /* binding */ setScrollLock; } /* harmony export */ }); /* unused harmony export open */ /** * @param {string} url * @param {string} [target] */ function open(url, target) { window.open(url, target); } /** * * @param {boolean} locked */ function setScrollLock(locked) { document.body.style.overflow = locked ? "hidden" : ""; } /** * 检测是否为移动设备 * @returns {boolean} 如果是移动设备返回true,否则返回false */ function isMobileDevice() { // 检测用户代理字符串 const userAgent = navigator.userAgent.toLowerCase(); const mobileKeywords = ["mobile", "android", "iphone", "ipad", "ipod", "blackberry", "windows phone", "opera mini", "iemobile", "webos", "palm"]; // 检查是否包含移动设备关键词 const hasMobileKeyword = mobileKeywords.some(keyword => userAgent.includes(keyword)); // 检测屏幕尺寸(作为辅助判断) const hasSmallScreen = window.innerWidth <= 768; // 检测触摸支持 const hasTouchSupport = "ontouchstart" in window || navigator.maxTouchPoints > 0; // 综合判断:有移动关键词,或者(小屏幕且支持触摸) return hasMobileKeyword || hasSmallScreen && hasTouchSupport; } /** * 检查是否应该跳过重定向 * @returns {boolean} 如果应该跳过重定向返回true */ function shouldSkipRedirect() { // 检查URL参数中是否有跳过重定向的标志 const urlParams = new URLSearchParams(window.location.search); return urlParams.has("no-redirect") || urlParams.has("debug"); } /***/ }), /***/ 2277: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { module.exports = __webpack_require__.p + "assets/modules/561a1232ae1b907b9f6d.png"; /***/ }), /***/ 5407: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony import */ var element_china_area_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6780); let areaData = []; function setAreaData() { const arr1 = []; const arr2 = []; element_china_area_data__WEBPACK_IMPORTED_MODULE_0__/* .provinceAndCityData */ .tG.forEach(item => { if (['北京市', '天津市', '上海市', '重庆市'].includes(item.label)) { arr1.push(item); } else { if (['西藏自治区', '新疆维吾尔自治区'].includes(item.label)) { const { label, value } = item; arr2.push({ label, value }); } else { arr2.push(item); } } }); areaData = [...arr1, ...arr2]; } setAreaData(); /* harmony default export */ __webpack_exports__.A = (areaData); /***/ }), /***/ 5416: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { A: function() { return /* binding */ MenuPopup; } }); // EXTERNAL MODULE: ./node_modules/.pnpm/vue@3.5.16/node_modules/vue/dist/vue.esm-bundler.js + 5 modules var vue_esm_bundler = __webpack_require__(2892); ;// ./src/assets/img/mobile/logo3.png var logo3_namespaceObject = __webpack_require__.p + "assets/modules/9fdfee1ccae5b483d219.png"; // EXTERNAL MODULE: ./src/assets/img/close.png var img_close = __webpack_require__(2277); // EXTERNAL MODULE: ./src/utils/common.js var common = __webpack_require__(1639); ;// ./node_modules/.pnpm/unplugin@2.3.5/node_modules/unplugin/dist/webpack/loaders/transform.js??unplugin-auto-import!./node_modules/.pnpm/babel-loader@10.0.0_@babel+core@7.27.4_webpack@5.99.9/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./src/components/vue/mobile/MenuPopup.vue?vue&type=script&setup=true&lang=js /* harmony default export */ var MenuPopupvue_type_script_setup_true_lang_js = ({ __name: 'MenuPopup', props: {}, setup(__props, { expose: __expose }) { const props = __props; const show = (0,vue_esm_bundler/* ref */.KR)(false); function open() { (0,common/* setScrollLock */.jH)(true); show.value = true; } function close() { (0,common/* setScrollLock */.jH)(false); show.value = false; } __expose({ open, close }); return (_ctx, _cache) => { return (0,vue_esm_bundler/* openBlock */.uX)(), (0,vue_esm_bundler/* createElementBlock */.CE)(vue_esm_bundler/* Fragment */.FK, null, [(0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: (0,vue_esm_bundler/* normalizeClass */.C4)(["menu-popup", { 'menu-popup--show': show.value }]), onScroll: _cache[0] || (_cache[0] = (0,vue_esm_bundler/* withModifiers */.D$)(() => {}, ["stop", "prevent"])) }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: "menu-popup__inner" }, [_cache[1] || (_cache[1] = (0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: "menu-popup__logo" }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("img", { src: logo3_namespaceObject, alt: "logo" })], -1 /* HOISTED */)), (0,vue_esm_bundler/* createElementVNode */.Lk)("a", { class: "menu-popup__nav", href: "/mobile/stadium-reserve.html", onClick: close }, " 场馆预订 "), (0,vue_esm_bundler/* createElementVNode */.Lk)("a", { class: "menu-popup__nav", href: "/mobile#cggl", onClick: close }, " 场馆管理 "), (0,vue_esm_bundler/* createElementVNode */.Lk)("a", { class: "menu-popup__nav", href: "/mobile/about/index.html", onClick: close }, " 联系我们 "), (0,vue_esm_bundler/* createElementVNode */.Lk)("a", { class: "menu-popup__nav", href: "/mobile/register/index.html", onClick: close }, " 场馆入驻 ")]), (0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: "menu-popup__close" }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("img", { src: img_close, alt: "关闭", onClick: close })])], 34 /* CLASS, NEED_HYDRATION */), show.value ? ((0,vue_esm_bundler/* openBlock */.uX)(), (0,vue_esm_bundler/* createElementBlock */.CE)("div", { key: 0, class: "menu-popup__mask", onClick: close })) : (0,vue_esm_bundler/* createCommentVNode */.Q3)("v-if", true)], 64 /* STABLE_FRAGMENT */); }; } }); ;// ./src/components/vue/mobile/MenuPopup.vue?vue&type=script&setup=true&lang=js // EXTERNAL MODULE: ./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js var exportHelper = __webpack_require__(4406); ;// ./src/components/vue/mobile/MenuPopup.vue /* unplugin-vue-components disabled */ ; const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.A)(MenuPopupvue_type_script_setup_true_lang_js, [['__scopeId',"data-v-59c089ba"]]) /* harmony default export */ var MenuPopup = (__exports__); /***/ }), /***/ 6914: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { A: function() { return /* binding */ FullPopup; } }); // EXTERNAL MODULE: ./node_modules/.pnpm/vue@3.5.16/node_modules/vue/dist/vue.esm-bundler.js + 5 modules var vue_esm_bundler = __webpack_require__(2892); // EXTERNAL MODULE: ./src/assets/img/close.png var img_close = __webpack_require__(2277); // EXTERNAL MODULE: ./src/utils/common.js var common = __webpack_require__(1639); ;// ./node_modules/.pnpm/unplugin@2.3.5/node_modules/unplugin/dist/webpack/loaders/transform.js??unplugin-auto-import!./node_modules/.pnpm/babel-loader@10.0.0_@babel+core@7.27.4_webpack@5.99.9/node_modules/babel-loader/lib/index.js!./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/index.js??ruleSet[1].rules[11].use[0]!./src/components/vue/FullPopup.vue?vue&type=script&setup=true&lang=js const _hoisted_1 = { class: "full-popup__inner" }; /* harmony default export */ var FullPopupvue_type_script_setup_true_lang_js = ({ __name: 'FullPopup', props: {}, setup(__props, { expose: __expose }) { const props = __props; const show = (0,vue_esm_bundler/* ref */.KR)(false); function open() { (0,common/* setScrollLock */.jH)(true); show.value = true; } function close() { (0,common/* setScrollLock */.jH)(false); show.value = false; } __expose({ open, close }); return (_ctx, _cache) => { return (0,vue_esm_bundler/* openBlock */.uX)(), (0,vue_esm_bundler/* createElementBlock */.CE)("div", { class: (0,vue_esm_bundler/* normalizeClass */.C4)(["full-popup", { 'full-popup--show': show.value }]), onScroll: _cache[0] || (_cache[0] = (0,vue_esm_bundler/* withModifiers */.D$)(() => {}, ["stop", "prevent"])) }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("div", _hoisted_1, [(0,vue_esm_bundler/* renderSlot */.RG)(_ctx.$slots, "default")]), (0,vue_esm_bundler/* createElementVNode */.Lk)("div", { class: "full-popup__close" }, [(0,vue_esm_bundler/* createElementVNode */.Lk)("img", { src: img_close, alt: "关闭", onClick: close })])], 34 /* CLASS, NEED_HYDRATION */); }; } }); ;// ./src/components/vue/FullPopup.vue?vue&type=script&setup=true&lang=js // EXTERNAL MODULE: ./node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js var exportHelper = __webpack_require__(4406); ;// ./src/components/vue/FullPopup.vue /* unplugin-vue-components disabled */ ; const __exports__ = /*#__PURE__*/(0,exportHelper/* default */.A)(FullPopupvue_type_script_setup_true_lang_js, [['__scopeId',"data-v-39f97449"]]) /* harmony default export */ var FullPopup = (__exports__); /***/ }), /***/ 9495: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ d: function() { return /* binding */ getLocalMsg; } /* harmony export */ }); /* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9925); const key = "IGIBZ-4OCRW-J6MRL-354DN-QW4YO-WOBBY"; const request = axios__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .A.create({ baseURL: 'https://hardware.yunvip123.cn/prod-api', timeout: 60 * 1000 }); async function getPublicIP() { try { const services = ['https://ipinfo.io/json', 'https://ipapi.co/json/', 'https://api.ipify.org?format=json']; for (const url of services) { try { const response = await fetch(url); const data = await response.json(); return data.ip; } catch (error) { console.log(`尝试 ${url} 失败,继续下一个服务`); continue; } } throw new Error('所有IP查询服务均不可用'); } catch (error) { console.error('获取公网IP失败:', error); return null; } } function getLocal(params) { return request.get("/api/hardware/getLocationByIp", { params: { ipKey: key, ...params } }); } async function getLocalMsg() { const localMsg = sessionStorage.getItem('localMsg'); if (localMsg) { return JSON.parse(localMsg); } const ip = await getPublicIP(); let params = {}; if (ip) { params = { ipAddress: ip }; } const res = await getLocal(params); const data = res.data; let currentCity = '黄埔区'; let longitude = '111.28581'; let latitude = '30.71082'; if (data.status === 0) { const { province, city, district } = data.result.ad_info; if (['北京市', '天津市', '上海市', '重庆市'].includes(city)) { currentCity = district || city || province; } else { currentCity = city || province; } longitude = data.result.location.lng; latitude = data.result.location.lat; sessionStorage.setItem('localMsg', JSON.stringify({ currentCity, longitude, latitude })); } return { currentCity, longitude, latitude }; } /***/ }) }]); //# sourceMappingURL=common.js.map?hash=b446ba1443bc4913f472