Files
LiuGeYuYou-HTML/assets/chunks/js/common.js
T

449 lines
16 KiB
JavaScript
Raw Normal View History

2026-08-25 12:01:09 +08:00
"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 */
2026-09-01 15:24:09 +08:00
/**
* @param {string} url
* @param {string} [target]
2026-08-25 12:01:09 +08:00
*/
function open(url, target) {
window.open(url, target);
}
2026-09-01 15:24:09 +08:00
/**
*
* @param {boolean} locked
2026-08-25 12:01:09 +08:00
*/
function setScrollLock(locked) {
document.body.style.overflow = locked ? "hidden" : "";
}
2026-09-01 15:24:09 +08:00
/**
* 检测是否为移动设备
* @returns {boolean} 如果是移动设备返回true,否则返回false
2026-08-25 12:01:09 +08:00
*/
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;
}
2026-09-01 15:24:09 +08:00
/**
* 检查是否应该跳过重定向
* @returns {boolean} 如果应该跳过重定向返回true
2026-08-25 12:01:09 +08:00
*/
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
};
}
/***/ })
}]);
2026-09-01 15:24:09 +08:00
//# sourceMappingURL=common.js.map