{"version":3,"file":"assets/chunks/js/common.js?hash=b446ba1443bc4913f472","mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAC0B;AACqB;;;;;;;IAE/C,MAAME,KAAK,GAAGC,OAAe;IAE7B,MAAMC,IAAI,GAAGJ,+BAAG,CAAC,KAAK,CAAC;IAEvB,SAASK,IAAIA,CAAA,EAAG;MACdJ,gCAAa,CAAC,IAAI,CAAC;MACnBG,IAAI,CAACE,KAAK,GAAG,IAAI;IACnB;IACA,SAASC,KAAKA,CAAA,EAAG;MACfN,gCAAa,CAAC,KAAK,CAAC;MACpBG,IAAI,CAACE,KAAK,GAAG,KAAK;IACpB;IAEAE,QAAY,CAAC;MACXH,IAAI;MACJE;IACF,CAAC,CAAC;;8IAIAE,8CAAA,CAQM;QARDC,KAAK,EAAAC,0CAAA,EAAC,UAAU;UAAA,kBAA6BP,IAAA,CAAAE;QAAI;QAAKM,QAAM,EAAAC,MAAA,QAAAA,MAAA,MAAAC,yCAAA,CAAP,QAAoB;UAC5EL,8CAAA,CAEM,OAFNM,UAEM,GADJC,sCAAA,CAAaC,IAAA,CAAAC,MAAA,gBAGfT,8CAAA,CAEM;QAFDC,KAAK,EAAC;MAAiB,IAC1BD,8CAAA,CAA6D;QAAxDU,GAA6B,EAA7BC,SAA6B;QAACC,GAAG,EAAC,IAAI;QAAEC,OAAK,EAAEf;8CAI7CH,IAAA,CAAAE,KAAI,6CAAfiB,8CAAA,CAA6D;;QAA5Cb,KAAK,EAAC,gBAAgB;QAAEY,OAAK,EAAEf;;;;;;AClCia;;;;ACAnd,sCAA2G;AAC3C;;AAEhE,CAA+E;;AAEsE;AACrJ,iCAAiC,+BAAe,CAAC,yCAAM;;AAEvD,4CAAe;;;;;;;;;;;;;ACRf;AACA;AACA;AACA;AACO,SAASF,IAAIA,CAACmB,GAAG,EAAEC,MAAM,EAAE;EAChCC,MAAM,CAACrB,IAAI,CAACmB,GAAG,EAAEC,MAAM,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACO,SAASxB,aAAaA,CAAC0B,MAAM,EAAE;EACpCC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAACC,QAAQ,GAAGJ,MAAM,GAAG,QAAQ,GAAG,EAAE;AACvD;;AAEA;AACA;AACA;AACA;AACO,SAASK,cAAcA,CAAA,EAAG;EAC/B;EACA,MAAMC,SAAS,GAAGC,SAAS,CAACD,SAAS,CAACE,WAAW,CAAC,CAAC;EACnD,MAAMC,cAAc,GAAG,CACrB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,OAAO,EACP,MAAM,CACP;;EAED;EACA,MAAMC,gBAAgB,GAAGD,cAAc,CAACE,IAAI,CAAEC,OAAO,IACnDN,SAAS,CAACO,QAAQ,CAACD,OAAO,CAC5B,CAAC;;EAED;EACA,MAAME,cAAc,GAAGf,MAAM,CAACgB,UAAU,IAAI,GAAG;;EAE/C;EACA,MAAMC,eAAe,GACnB,cAAc,IAAIjB,MAAM,IAAIQ,SAAS,CAACU,cAAc,GAAG,CAAC;;EAE1D;EACA,OAAOP,gBAAgB,IAAKI,cAAc,IAAIE,eAAgB;AAChE;;AAEA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAAA,EAAG;EACnC;EACA,MAAMC,SAAS,GAAG,IAAIC,eAAe,CAACrB,MAAM,CAACsB,QAAQ,CAACC,MAAM,CAAC;EAC7D,OAAOH,SAAS,CAACI,GAAG,CAAC,aAAa,CAAC,IAAIJ,SAAS,CAACI,GAAG,CAAC,OAAO,CAAC;AAC/D;;;;;;;;;;;;;;;AC7D8D;AAE9D,IAAIE,QAAQ,GAAG,EAAE;AACjB,SAASC,WAAWA,CAAA,EAAG;EACnB,MAAMC,IAAI,GAAG,EAAE;EACf,MAAMC,IAAI,GAAG,EAAE;EACfJ,kFAAmB,CAACK,OAAO,CAACC,IAAI,IAAI;IAClC,IAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAACjB,QAAQ,CAACiB,IAAI,CAACC,KAAK,CAAC,EAAE;MACpDJ,IAAI,CAACK,IAAI,CAACF,IAAI,CAAC;IACjB,CAAC,MAAK;MACJ,IAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAACjB,QAAQ,CAACiB,IAAI,CAACC,KAAK,CAAC,EAAE;QAC7C,MAAM;UAAEA,KAAK;UAAEpD;QAAM,CAAC,GAAGmD,IAAI;QAC7BF,IAAI,CAACI,IAAI,CAAC;UAAED,KAAK;UAAEpD;QAAM,CAAC,CAAC;MAC7B,CAAC,MAAK;QACJiD,IAAI,CAACI,IAAI,CAACF,IAAI,CAAC;MACjB;IACF;EACF,CAAC,CAAC;EACFL,QAAQ,GAAG,CAAC,GAAGE,IAAI,EAAE,GAAGC,IAAI,CAAC;AACjC;AACAF,WAAW,CAAC,CAAC;AAEb,sDAAeD,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;ACrBG;AACqB;;;;;;;IAE/C,MAAMlD,KAAK,GAAGC,OAAe;IAE7B,MAAMC,IAAI,GAAGJ,+BAAG,CAAC,KAAK,CAAC;IAEvB,SAASK,IAAIA,CAAA,EAAG;MACdJ,gCAAa,CAAC,IAAI,CAAC;MACnBG,IAAI,CAACE,KAAK,GAAG,IAAI;IACnB;IACA,SAASC,KAAKA,CAAA,EAAG;MACfN,gCAAa,CAAC,KAAK,CAAC;MACpBG,IAAI,CAACE,KAAK,GAAG,KAAK;IACpB;IAEAE,QAAY,CAAC;MACXH,IAAI;MACJE;IACF,CAAC,CAAC;;8IAIAE,8CAAA,CAcM;QAdDC,KAAK,EAAAC,0CAAA,EAAC,YAAY;UAAA,oBAA+BP,IAAA,CAAAE;QAAI;QAAKM,QAAM,EAAAC,MAAA,QAAAA,MAAA,MAAAC,yCAAA,CAAP,QAAoB;UAChFL,8CAAA,CAQM;QARDC,KAAK,EAAC;MAAmB,8BAC5BD,8CAAA,CAEM;QAFDC,KAAK,EAAC;MAAkB,IAC3BD,8CAAA,CAAuD;QAAlDU,GAAoC,EAApCC,qBAAoC;QAACC,GAAG,EAAC;+BAEhDZ,8CAAA,CAAwF;QAArFC,KAAK,EAAC,iBAAiB;QAACkD,IAAI,EAAC,8BAA8B;QAAEtC,OAAK,EAAEf;SAAO,QAAM,GACpFE,8CAAA,CAAwE;QAArEC,KAAK,EAAC,iBAAiB;QAACkD,IAAI,EAAC,cAAc;QAAEtC,OAAK,EAAEf;SAAO,QAAM,GACpEE,8CAAA,CAAoF;QAAjFC,KAAK,EAAC,iBAAiB;QAACkD,IAAI,EAAC,0BAA0B;QAAEtC,OAAK,EAAEf;SAAO,QAAM,GAChFE,8CAAA,CAAuF;QAApFC,KAAK,EAAC,iBAAiB;QAACkD,IAAI,EAAC,6BAA6B;QAAEtC,OAAK,EAAEf;SAAO,QAAM,KAGrFE,8CAAA,CAEM;QAFDC,KAAK,EAAC;MAAmB,IAC5BD,8CAAA,CAA6D;QAAxDU,GAA6B,EAA7B0C,SAA6B;QAACxC,GAAG,EAAC,IAAI;QAAEC,OAAK,EAAEf;8CAI7CH,IAAA,CAAAE,KAAI,6CAAfiB,8CAAA,CAA+D;;QAA9Cb,KAAK,EAAC,kBAAkB;QAAEY,OAAK,EAAEf;;;;;;ACxCia;;;;ACArd,sCAA6G;AAC3C;;AAElE,CAAiF;;AAEoE;AACrJ,iCAAiC,+BAAe,CAAC,2CAAM;;AAEvD,8CAAe;;;;;;;;;;;;;;;;;;;;;;;;;ACP0B;AACM;;;;;;;IAE/C,MAAML,KAAK,GAAGC,OAAe;IAE7B,MAAMC,IAAI,GAAGJ,+BAAG,CAAC,KAAK,CAAC;IAEvB,SAASK,IAAIA,CAAA,EAAG;MACdJ,gCAAa,CAAC,IAAI,CAAC;MACnBG,IAAI,CAACE,KAAK,GAAG,IAAI;IACnB;IACA,SAASC,KAAKA,CAAA,EAAG;MACfN,gCAAa,CAAC,KAAK,CAAC;MACpBG,IAAI,CAACE,KAAK,GAAG,KAAK;IACpB;IAEAE,QAAY,CAAC;MACXH,IAAI;MACJE;IACF,CAAC,CAAC;;sDAIAgB,8CAAA,CAQM;QARDb,KAAK,EAAAC,0CAAA,EAAC,YAAY;UAAA,oBAA+BP,IAAA,CAAAE;QAAI;QAAKM,QAAM,EAAAC,MAAA,QAAAA,MAAA,MAAAC,yCAAA,CAAP,QAAoB;UAChFL,8CAAA,CAEM,OAFNM,UAEM,GADJC,sCAAA,CAAaC,IAAA,CAAAC,MAAA,gBAGfT,8CAAA,CAEM;QAFDC,KAAK,EAAC;MAAmB,IAC5BD,8CAAA,CAA6D;QAAxDU,GAA6B,EAA7BC,SAA6B;QAACC,GAAG,EAAC,IAAI;QAAEC,OAAK,EAAEf;;;;;;AC9BkZ;;;;ACA5c,sCAA6G;AAC3C;;AAElE,CAAiF;;AAEiE;AAClJ,iCAAiC,+BAAe,CAAC,2CAAM;;AAEvD,8CAAe;;;;;;;;;;;ACRW;AAE1B,MAAM0D,GAAG,GAAG,qCAAqC;AAEjD,MAAMC,OAAO,GAAGF,sDAAK,CAACG,MAAM,CAAC;EAC3BC,OAAO,EAAE,wCAAwC;EACjDC,OAAO,EAAE,EAAE,GAAG;AAChB,CAAC,CAAC;AAGF,eAAeC,WAAWA,CAAA,EAAG;EAC3B,IAAI;IACF,MAAMC,QAAQ,GAAG,CACf,wBAAwB,EACxB,wBAAwB,EACxB,mCAAmC,CACpC;IAED,KAAK,MAAM/C,GAAG,IAAI+C,QAAQ,EAAE;MAC1B,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMC,KAAK,CAACjD,GAAG,CAAC;QACjC,MAAMkD,IAAI,GAAG,MAAMF,QAAQ,CAACG,IAAI,CAAC,CAAC;QAClC,OAAOD,IAAI,CAACE,EAAE;MAChB,CAAC,CAAC,OAAOC,KAAK,EAAE;QACdC,OAAO,CAACC,GAAG,CAAC,MAAMvD,GAAG,aAAa,CAAC;QACnC;MACF;IACF;IACA,MAAM,IAAIwD,KAAK,CAAC,cAAc,CAAC;EACjC,CAAC,CAAC,OAAOH,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,WAAW,EAAEA,KAAK,CAAC;IACjC,OAAO,IAAI;EACb;AACF;AAEA,SAASI,QAAQA,CAACC,MAAM,EAAE;EACxB,OAAOhB,OAAO,CAACiB,GAAG,CAAC,+BAA+B,EAAE;IAClDD,MAAM,EAAE;MAAEE,KAAK,EAAEnB,GAAG;MAAE,GAAGiB;IAAO;EAClC,CAAC,CAAC;AACJ;AAEO,eAAeG,WAAWA,CAAA,EAAG;EAClC,MAAMC,QAAQ,GAAGC,cAAc,CAACC,OAAO,CAAC,UAAU,CAAC;EACnD,IAAIF,QAAQ,EAAE;IACZ,OAAOG,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAAC;EAC7B;EACA,MAAMV,EAAE,GAAG,MAAMN,WAAW,CAAC,CAAC;EAC9B,IAAIY,MAAM,GAAG,CAAC,CAAC;EACf,IAAIN,EAAE,EAAE;IACNM,MAAM,GAAG;MAAES,SAAS,EAAEf;IAAG,CAAC;EAC5B;EACA,MAAMgB,GAAG,GAAG,MAAMX,QAAQ,CAACC,MAAM,CAAC;EAClC,MAAMR,IAAI,GAAGkB,GAAG,CAAClB,IAAI;EACrB,IAAImB,WAAW,GAAG,KAAK;EACvB,IAAIC,SAAS,GAAG,WAAW;EAC3B,IAAIC,QAAQ,GAAG,UAAU;EACzB,IAAIrB,IAAI,CAACsB,MAAM,KAAK,CAAC,EAAE;IACrB,MAAM;MAAEC,QAAQ;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGzB,IAAI,CAAC0B,MAAM,CAACC,OAAO;IACxD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC7D,QAAQ,CAAC0D,IAAI,CAAC,EAAE;MAC/CL,WAAW,GAAGM,QAAQ,IAAID,IAAI,IAAID,QAAQ;IAC5C,CAAC,MAAM;MACLJ,WAAW,GAAGK,IAAI,IAAID,QAAQ;IAChC;IACAH,SAAS,GAAGpB,IAAI,CAAC0B,MAAM,CAACpD,QAAQ,CAACsD,GAAG;IACpCP,QAAQ,GAAGrB,IAAI,CAAC0B,MAAM,CAACpD,QAAQ,CAACuD,GAAG;IACnChB,cAAc,CAACiB,OAAO,CAAC,UAAU,EAAEf,IAAI,CAACgB,SAAS,CAAC;MAAEZ,WAAW;MAAEC,SAAS;MAAEC;IAAS,CAAC,CAAC,CAAC;EAC1F;EACA,OAAO;IAAEF,WAAW;IAAEC,SAAS;IAAEC;EAAS,CAAC;AAC7C","sources":["webpack://liu-official/./src/components/vue/mobile/AdPopup.vue","webpack://liu-official/./src/components/vue/mobile/AdPopup.vue?caaa","webpack://liu-official/./src/components/vue/mobile/AdPopup.vue?c92e","webpack://liu-official/./src/utils/common.js","webpack://liu-official/./src/utils/areaData.js","webpack://liu-official/./src/components/vue/mobile/MenuPopup.vue","webpack://liu-official/./src/components/vue/mobile/MenuPopup.vue?9e24","webpack://liu-official/./src/components/vue/mobile/MenuPopup.vue?61bd","webpack://liu-official/./src/components/vue/FullPopup.vue","webpack://liu-official/./src/components/vue/FullPopup.vue?f4b2","webpack://liu-official/./src/components/vue/FullPopup.vue?e656","webpack://liu-official/./src/utils/tencentMap.js"],"sourcesContent":["<script setup lang=\"js\">\r\nimport { ref } from \"vue\";\r\nimport { setScrollLock } from \"@/utils/common\";\r\n\r\nconst props = defineProps({});\r\n\r\nconst show = ref(false);\r\n\r\nfunction open() {\r\n  setScrollLock(true);\r\n  show.value = true;\r\n}\r\nfunction close() {\r\n  setScrollLock(false);\r\n  show.value = false;\r\n}\r\n\r\ndefineExpose({\r\n  open,\r\n  close,\r\n});\r\n</script>\r\n\r\n<template>\r\n  <div class=\"ad-popup\" :class=\"{ 'ad-popup--show': show }\" @scroll.stop.prevent>\r\n    <div class=\"ad-popup__inner\">\r\n      <slot></slot>\r\n    </div>\r\n\r\n    <div class=\"ad-popup__close\">\r\n      <img src=\"~@/assets/img/close.png\" alt=\"关闭\" @click=\"close\" />\r\n    </div>\r\n  </div>\r\n\r\n  <div v-if=\"show\" class=\"ad-popup__mask\" @click=\"close\"></div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.ad-popup {\r\n  position: fixed;\r\n  bottom: 0;\r\n  left: 0;\r\n  height: auto;\r\n  width: 100vw;\r\n  z-index: 999;\r\n  transition: transform 0.3s;\r\n  transform: translateY(100vh);\r\n\r\n  &--show {\r\n    transform: translateY(0%);\r\n  }\r\n  &__mask{\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100vw;\r\n    height: 100vh;\r\n    background-color: rgba(0, 0, 0, 0.3);\r\n    z-index: 998;\r\n    transition: opacity 0.3s;\r\n  }\r\n  &__inner {\r\n    // position: absolute;\r\n  }\r\n  &__close {\r\n    position: absolute;\r\n    top: 16px;\r\n    right: 16px;\r\n    width: 16px;\r\n    height: 16px;\r\n    cursor: pointer;\r\n    > img {\r\n      width: 100%;\r\n      height: 100%;\r\n      display: block;\r\n    }\r\n  }\r\n}\r\n</style>\r\n","export { default } from \"-!../../../../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]!./AdPopup.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../../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]!./AdPopup.vue?vue&type=script&setup=true&lang=js\"","/* unplugin-vue-components disabled */import script from \"./AdPopup.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./AdPopup.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./AdPopup.vue?vue&type=style&index=0&id=9febef54&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9febef54\"]])\n\nexport default __exports__","/**\r\n * @param {string} url\r\n * @param {string} [target]\r\n */\r\nexport function open(url, target) {\r\n  window.open(url, target);\r\n}\r\n\r\n/**\r\n *\r\n * @param {boolean} locked\r\n */\r\nexport function setScrollLock(locked) {\r\n  document.body.style.overflow = locked ? \"hidden\" : \"\";\r\n}\r\n\r\n/**\r\n * 检测是否为移动设备\r\n * @returns {boolean} 如果是移动设备返回true，否则返回false\r\n */\r\nexport function isMobileDevice() {\r\n  // 检测用户代理字符串\r\n  const userAgent = navigator.userAgent.toLowerCase();\r\n  const mobileKeywords = [\r\n    \"mobile\",\r\n    \"android\",\r\n    \"iphone\",\r\n    \"ipad\",\r\n    \"ipod\",\r\n    \"blackberry\",\r\n    \"windows phone\",\r\n    \"opera mini\",\r\n    \"iemobile\",\r\n    \"webos\",\r\n    \"palm\",\r\n  ];\r\n\r\n  // 检查是否包含移动设备关键词\r\n  const hasMobileKeyword = mobileKeywords.some((keyword) =>\r\n    userAgent.includes(keyword),\r\n  );\r\n\r\n  // 检测屏幕尺寸（作为辅助判断）\r\n  const hasSmallScreen = window.innerWidth <= 768;\r\n\r\n  // 检测触摸支持\r\n  const hasTouchSupport =\r\n    \"ontouchstart\" in window || navigator.maxTouchPoints > 0;\r\n\r\n  // 综合判断：有移动关键词，或者（小屏幕且支持触摸）\r\n  return hasMobileKeyword || (hasSmallScreen && hasTouchSupport);\r\n}\r\n\r\n/**\r\n * 检查是否应该跳过重定向\r\n * @returns {boolean} 如果应该跳过重定向返回true\r\n */\r\nexport function shouldSkipRedirect() {\r\n  // 检查URL参数中是否有跳过重定向的标志\r\n  const urlParams = new URLSearchParams(window.location.search);\r\n  return urlParams.has(\"no-redirect\") || urlParams.has(\"debug\");\r\n}\r\n","import { provinceAndCityData } from \"element-china-area-data\";\r\n\r\nlet areaData = []\r\nfunction setAreaData() {\r\n    const arr1 = []\r\n    const arr2 = []\r\n    provinceAndCityData.forEach(item => {\r\n      if(['北京市', '天津市', '上海市', '重庆市'].includes(item.label)) {\r\n        arr1.push(item)\r\n      }else {\r\n        if(['西藏自治区', '新疆维吾尔自治区'].includes(item.label)) {\r\n          const { label, value } = item\r\n          arr2.push({ label, value })\r\n        }else {\r\n          arr2.push(item)\r\n        }\r\n      }\r\n    })\r\n    areaData = [...arr1, ...arr2]\r\n}\r\nsetAreaData()\r\n\r\nexport default areaData","<script setup lang=\"js\">\r\nimport { ref } from \"vue\";\r\nimport { setScrollLock } from \"@/utils/common\";\r\n\r\nconst props = defineProps({});\r\n\r\nconst show = ref(false);\r\n\r\nfunction open() {\r\n  setScrollLock(true);\r\n  show.value = true;\r\n}\r\nfunction close() {\r\n  setScrollLock(false);\r\n  show.value = false;\r\n}\r\n\r\ndefineExpose({\r\n  open,\r\n  close,\r\n});\r\n</script>\r\n\r\n<template>\r\n  <div class=\"menu-popup\" :class=\"{ 'menu-popup--show': show }\" @scroll.stop.prevent>\r\n    <div class=\"menu-popup__inner\">\r\n      <div class=\"menu-popup__logo\">\r\n        <img src=\"~@/assets/img/mobile/logo3.png\" alt=\"logo\" />\r\n      </div>\r\n      <a class=\"menu-popup__nav\" href=\"/mobile/stadium-reserve.html\" @click=\"close\"> 场馆预订 </a>\r\n      <a class=\"menu-popup__nav\" href=\"/mobile#cggl\" @click=\"close\"> 场馆管理 </a>\r\n      <a class=\"menu-popup__nav\" href=\"/mobile/about/index.html\" @click=\"close\"> 联系我们 </a>\r\n      <a class=\"menu-popup__nav\" href=\"/mobile/register/index.html\" @click=\"close\"> 场馆入驻 </a>\r\n    </div>\r\n\r\n    <div class=\"menu-popup__close\">\r\n      <img src=\"~@/assets/img/close.png\" alt=\"关闭\" @click=\"close\" />\r\n    </div>\r\n  </div>\r\n\r\n  <div v-if=\"show\" class=\"menu-popup__mask\" @click=\"close\"></div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.menu-popup {\r\n  position: fixed;\r\n  top: 0;\r\n  left: 0;\r\n  height: auto;\r\n  width: 100vw;\r\n  z-index: 999;\r\n  transition: transform 0.3s;\r\n  transform: translateY(-100vh);\r\n\r\n  &--show {\r\n    transform: translateY(0%);\r\n  }\r\n\r\n  &__mask {\r\n    position: fixed;\r\n    top: 0;\r\n    left: 0;\r\n    width: 100vw;\r\n    height: 100vh;\r\n    background-color: rgba(0, 0, 0, 0.3);\r\n    z-index: 998;\r\n    transition: opacity 0.3s;\r\n  }\r\n  &__inner {\r\n    padding: 16px 24px;\r\n    background-color: #fff;\r\n  }\r\n  &__close {\r\n    position: absolute;\r\n    top: 24px;\r\n    right: 24px;\r\n    width: 24px;\r\n    height: 24px;\r\n    cursor: pointer;\r\n    > img {\r\n      width: 100%;\r\n      height: 100%;\r\n      display: block;\r\n    }\r\n  }\r\n\r\n  &__logo {\r\n    margin-bottom: 16px;\r\n    > img {\r\n      width: auto;\r\n      height: 40px;\r\n      display: block;\r\n    }\r\n  }\r\n  &__nav {\r\n    height: 48px;\r\n    font-weight: 400;\r\n    font-size: 14px;\r\n    color: #191919;\r\n    display: flex;\r\n    align-items: center;\r\n    text-decoration: none;\r\n  }\r\n}\r\n</style>\r\n","export { default } from \"-!../../../../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]!./MenuPopup.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../../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]!./MenuPopup.vue?vue&type=script&setup=true&lang=js\"","/* unplugin-vue-components disabled */import script from \"./MenuPopup.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MenuPopup.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MenuPopup.vue?vue&type=style&index=0&id=59c089ba&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-59c089ba\"]])\n\nexport default __exports__","<script setup lang=\"js\">\r\nimport { ref, toRefs, watch } from \"vue\";\r\nimport { setScrollLock } from \"@/utils/common\";\r\n\r\nconst props = defineProps({});\r\n\r\nconst show = ref(false);\r\n\r\nfunction open() {\r\n  setScrollLock(true);\r\n  show.value = true;\r\n}\r\nfunction close() {\r\n  setScrollLock(false);\r\n  show.value = false;\r\n}\r\n\r\ndefineExpose({\r\n  open,\r\n  close,\r\n});\r\n</script>\r\n\r\n<template>\r\n  <div class=\"full-popup\" :class=\"{ 'full-popup--show': show }\" @scroll.stop.prevent>\r\n    <div class=\"full-popup__inner\">\r\n      <slot></slot>\r\n    </div>\r\n\r\n    <div class=\"full-popup__close\">\r\n      <img src=\"~@/assets/img/close.png\" alt=\"关闭\" @click=\"close\" />\r\n    </div>\r\n  </div>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped>\r\n.full-popup {\r\n  position: fixed;\r\n  top: 0;\r\n  left: 0;\r\n  height: 100vh;\r\n  width: 100vw;\r\n  z-index: 999;\r\n  display: none;\r\n\r\n  &--show {\r\n    display: block;\r\n    .full-popup__inner {\r\n      transform: translate(-50%, -50%) scale(1);\r\n    }\r\n  }\r\n  &__inner {\r\n    height: 100vh;\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%) scale(0);\r\n    transition: scale 0.3s;\r\n  }\r\n  &__close {\r\n    position: absolute;\r\n    top: 50px;\r\n    right: 50px;\r\n    width: 42px;\r\n    height: 42px;\r\n    cursor: pointer;\r\n    > img {\r\n      width: 100%;\r\n      height: 100%;\r\n      display: block;\r\n    }\r\n  }\r\n}\r\n</style>\r\n","export { default } from \"-!../../../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]!./FullPopup.vue?vue&type=script&setup=true&lang=js\"; export * from \"-!../../../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]!./FullPopup.vue?vue&type=script&setup=true&lang=js\"","/* unplugin-vue-components disabled */import script from \"./FullPopup.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FullPopup.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FullPopup.vue?vue&type=style&index=0&id=39f97449&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../node_modules/.pnpm/vue-loader@17.4.2_vue@3.5.16_webpack@5.99.9/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-39f97449\"]])\n\nexport default __exports__","import axios from \"axios\";\r\n\r\nconst key = \"IGIBZ-4OCRW-J6MRL-354DN-QW4YO-WOBBY\";\r\n\r\nconst request = axios.create({\r\n  baseURL: 'https://hardware.yunvip123.cn/prod-api',\r\n  timeout: 60 * 1000\r\n});\r\n\r\n\r\nasync function getPublicIP() {\r\n  try {\r\n    const services = [\r\n      'https://ipinfo.io/json',\r\n      'https://ipapi.co/json/',\r\n      'https://api.ipify.org?format=json',\r\n    ];\r\n\r\n    for (const url of services) {\r\n      try {\r\n        const response = await fetch(url);\r\n        const data = await response.json();\r\n        return data.ip;\r\n      } catch (error) {\r\n        console.log(`尝试 ${url} 失败，继续下一个服务`);\r\n        continue;\r\n      }\r\n    }\r\n    throw new Error('所有IP查询服务均不可用');\r\n  } catch (error) {\r\n    console.error('获取公网IP失败:', error);\r\n    return null;\r\n  }\r\n}\r\n\r\nfunction getLocal(params) {\r\n  return request.get(\"/api/hardware/getLocationByIp\", {\r\n    params: { ipKey: key, ...params }\r\n  })\r\n}\r\n\r\nexport async function getLocalMsg() {\r\n  const localMsg = sessionStorage.getItem('localMsg')\r\n  if (localMsg) {\r\n    return JSON.parse(localMsg)\r\n  }\r\n  const ip = await getPublicIP()\r\n  let params = {}\r\n  if (ip) {\r\n    params = { ipAddress: ip }\r\n  }\r\n  const res = await getLocal(params)\r\n  const data = res.data\r\n  let currentCity = '黄埔区'\r\n  let longitude = '111.28581'\r\n  let latitude = '30.71082'\r\n  if (data.status === 0) {\r\n    const { province, city, district } = data.result.ad_info;\r\n    if (['北京市', '天津市', '上海市', '重庆市'].includes(city)) {\r\n      currentCity = district || city || province\r\n    } else {\r\n      currentCity = city || province\r\n    }\r\n    longitude = data.result.location.lng\r\n    latitude = data.result.location.lat\r\n    sessionStorage.setItem('localMsg', JSON.stringify({ currentCity, longitude, latitude }))\r\n  }\r\n  return { currentCity, longitude, latitude }\r\n}\r\n"],"names":["ref","setScrollLock","props","__props","show","open","value","close","__expose","_createElementVNode","class","_normalizeClass","onScroll","_cache","_withModifiers","_hoisted_1","_renderSlot","_ctx","$slots","src","_imports_0","alt","onClick","_createElementBlock","url","target","window","locked","document","body","style","overflow","isMobileDevice","userAgent","navigator","toLowerCase","mobileKeywords","hasMobileKeyword","some","keyword","includes","hasSmallScreen","innerWidth","hasTouchSupport","maxTouchPoints","shouldSkipRedirect","urlParams","URLSearchParams","location","search","has","provinceAndCityData","areaData","setAreaData","arr1","arr2","forEach","item","label","push","href","_imports_1","toRefs","watch","axios","key","request","create","baseURL","timeout","getPublicIP","services","response","fetch","data","json","ip","error","console","log","Error","getLocal","params","get","ipKey","getLocalMsg","localMsg","sessionStorage","getItem","JSON","parse","ipAddress","res","currentCity","longitude","latitude","status","province","city","district","result","ad_info","lng","lat","setItem","stringify"],"sourceRoot":""}