吉安感知网项目-前端
罗广辉
2026-02-06 89d9aa92065652753d7c54d3c4fc880744377c69
feat: 保活
4 files modified
18 files added
1177 ■■■■■ changed files
pnpm-lock.yaml 221 ●●●● patch | view | raw | blame | history
uniapps/work-app/package.json 2 ●●● patch | view | raw | blame | history
uniapps/work-app/src/App.vue 123 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/manifest.json 4 ●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/changelog.md patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/package.json 97 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/readme.md 7 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-android/config.json 3 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-android/index.uts 212 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-ios/config.json 3 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-ios/index.uts 107 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/interface.uts 51 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/keep-app/utssdk/unierror.uts 39 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/changelog.md patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/package.json 97 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/readme.md 7 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-android/config.json 3 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-android/index.uts 29 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-ios/config.json 3 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-ios/index.uts 85 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/interface.uts 45 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/unierror.uts 39 ●●●●● patch | view | raw | blame | history
pnpm-lock.yaml
@@ -881,9 +881,6 @@
      '@turf/turf':
        specifier: 'catalog:'
        version: 6.5.0
      '@ztzf/utils':
        specifier: workspace:*
        version: 'link:'
      cesium:
        specifier: 'catalog:'
        version: 1.126.0
@@ -1003,6 +1000,9 @@
        specifier: 3.0.0-4070520250711001
        version: 3.0.0-4070520250711001(@nuxt/kit@3.20.2)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.9.3)))(postcss@8.5.6)(vue@3.4.21(typescript@5.9.3))
      '@dcloudio/uni-stacktracey':
        specifier: 3.0.0-4070520250711001
        version: 3.0.0-4070520250711001
      '@dcloudio/uni-uts-v1':
        specifier: 3.0.0-4070520250711001
        version: 3.0.0-4070520250711001
      '@dcloudio/vite-plugin-uni':
@@ -2035,6 +2035,9 @@
  '@dcloudio/uni-app-vue@3.0.0-4070520250711001':
    resolution: {integrity: sha512-/ISF+1xrcvUtcote+LfLyk/pyizTjEY6/3HZgBsOfXchkZBz0fkTWgnj5RHYeqwD7aHLsOJX93eaazNMnzD9Zw==}
  '@dcloudio/uni-app-x@0.7.100':
    resolution: {integrity: sha512-aiRJ/A5Gak24aYKbPrEB6dJycqLpL8/24hqiUOezxFcEYVjNn18UBHSwGGuFUNRw3j3RhEaFzPL5n+reQTXRjg==}
  '@dcloudio/uni-app@3.0.0-4070520250711001':
    resolution: {integrity: sha512-rR1SGJknJyDy80vb47yDICXcZrV11KJ5yhNG8aC+kH2ZL338faBrdOQgqqN/XJegVxJdTfv1KqUXuaShMWTZGA==}
    peerDependencies:
@@ -2130,6 +2133,50 @@
  '@dcloudio/uni-ui@1.5.11':
    resolution: {integrity: sha512-DBtk046ofmeFd82zRI7d89SoEwrAxYzUN3WVPm1DIBkpLPG5F5QDNkHMnZGu2wNrMEmGBjBpUh3vqEY1L3jaMw==}
  '@dcloudio/uni-uts-v1@3.0.0-4070520250711001':
    resolution: {integrity: sha512-wQYCO/UA4WcJ+0UDKF86WjiyXhsiOakTa/XBnkWpIEaXTPTwfnwQfbjDWZi6Hq81oNl0ZtS6jEHvPAIj0Nm5JA==}
  '@dcloudio/uts-darwin-arm64@3.0.0-4070520250711001':
    resolution: {integrity: sha512-dDRVyaxflQDG/7/X4AnWZRH0eiTlWZ3Zyr+ybDxa1AX+UTKXYCEU5J85gLP2DVuNLOopueI+ba2SbyxazMOTQg==}
    engines: {node: '>=10'}
    cpu: [arm64]
    os: [darwin]
  '@dcloudio/uts-darwin-x64@3.0.0-4070520250711001':
    resolution: {integrity: sha512-HK3gd0duu8kE5FZTnhDAE4lYBoOjTz6wKL/2MWH4g1LxMoO7eaIgvvazXJGuv0Ca1M1u1RsCYDg4g5I3WgCY6A==}
    engines: {node: '>=10'}
    cpu: [x64]
    os: [darwin]
  '@dcloudio/uts-linux-x64-gnu@3.0.0-4070520250711001':
    resolution: {integrity: sha512-GtJDbMXNyLLHtQlhyrkxRrqlwNBp+Di+Q5WUyr+MPeHyeLphRjWmbreNsgjt1yMJgc5BkJg+5wwTWHj2wf9BWw==}
    engines: {node: '>=10'}
    cpu: [x64]
    os: [linux]
    libc: [gnu]
  '@dcloudio/uts-linux-x64-musl@3.0.0-4070520250711001':
    resolution: {integrity: sha512-5VYrGIOzRd/hmfFlSPagPgqXZuys1raNixNCSDgSUySSap37oQtrjST7WolqxdUVz1YFpmZRwa7BE5CGvEMX/w==}
    engines: {node: '>=10'}
    cpu: [x64]
    os: [linux]
    libc: [musl]
  '@dcloudio/uts-win32-ia32-msvc@3.0.0-4070520250711001':
    resolution: {integrity: sha512-noFe/ii1F+ssDWd7ClsJu/Lw/1B1S3W7b5x2Vq6k6y0/+BOHHjAW8oJfATDxWwnlvlyWmjX+FUAe79K9qxvcFQ==}
    engines: {node: '>=10'}
    cpu: [ia32]
    os: [win32]
  '@dcloudio/uts-win32-x64-msvc@3.0.0-4070520250711001':
    resolution: {integrity: sha512-+dWatERo16CifUgcA8g7PXRbC48cfq8c0VMMMNIdtuySOb+2S4Ic/2MgrTLWlYQnRJOrgw4VzVOQeP9HzgjcCg==}
    engines: {node: '>=10'}
    cpu: [x64]
    os: [win32]
  '@dcloudio/uts@3.0.0-4070520250711001':
    resolution: {integrity: sha512-97bCYKK1Jl4riFmqnCcUxAoHmN8ew+N+bYY5H6qSsdklP221y2rG2nRMeuBYi5vfgcz4S/gpAtjOkc0gdRqgTw==}
  '@dcloudio/vite-plugin-uni@3.0.0-4070520250711001':
    resolution: {integrity: sha512-Pcd1YIPP+0hyC64oh0P3EBZGF8YHsScUS7R0wjlDGkRMsGowil0IbBE5DrmqjZ7QE+0Lau77yxfZdkSjY3gbvA==}
@@ -3041,11 +3088,9 @@
  '@saber/nf-form-design-elp@1.6.1':
    resolution: {integrity: sha512-XAKbZebglIxVxj6azOu5YKlbyJV/i8B2Kayl9MsRUVfEhnegQveio35u2afVI4dFj3Ul9KMbaoyvVokh1EvmQQ==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-design-elp/-/1.6.1/nf-form-design-elp-1.6.1.tgz}
    engines: {node: ^20.19.0 || >=22.12.0}
  '@saber/nf-form-elp@1.6.3':
    resolution: {integrity: sha512-NAhWvrsswZCGfSarlSFCdYadUZuYeUzns2TSr2FQotSsvs/4xitJhcVzkRQvTpzq1+FtP9MkxEnShGa4ILvMdw==, tarball: https://center.javablade.com/api/packages/blade/npm/%40saber%2Fnf-form-elp/-/1.6.3/nf-form-elp-1.6.3.tgz}
    engines: {node: ^20.19.0 || >=22.12.0}
  '@sinonjs/commons@1.8.6':
    resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==}
@@ -4103,6 +4148,9 @@
  ajv@8.17.1:
    resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
  android-versions@1.9.0:
    resolution: {integrity: sha512-13O2B6PQMEM4ej9n13ePRQeckrCoKbZrvuzlLvK+9s2QmncpHDbYzZxhgapN32sJNoifN6VAHexLnd/6CYrs7Q==}
  animate.css@4.1.1:
    resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==}
@@ -4677,6 +4725,10 @@
  colorette@2.0.20:
    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
  colors@1.4.0:
    resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
    engines: {node: '>=0.1.90'}
  combined-stream@1.0.8:
    resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
    engines: {node: '>= 0.8'}
@@ -4702,6 +4754,9 @@
  commist@3.2.0:
    resolution: {integrity: sha512-4PIMoPniho+LqXmpS5d3NuGYncG6XWlkBSVGiWycL22dd42OYdUGil2CWuzklaJoNxyxUSpO4MKIBU94viWNAw==}
  commondir@1.0.1:
    resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
  compare-versions@3.6.0:
    resolution: {integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==}
@@ -5672,6 +5727,10 @@
    resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
    engines: {node: '>= 18.0.0'}
  find-cache-dir@3.3.2:
    resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==}
    engines: {node: '>=8'}
  find-up-simple@1.0.1:
    resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
    engines: {node: '>=18'}
@@ -5854,6 +5913,7 @@
  glob@10.5.0:
    resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==}
    deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
    hasBin: true
  glob@13.0.0:
@@ -5916,6 +5976,9 @@
  graphemer@1.4.0:
    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
  graphlib@2.1.8:
    resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==}
  gzip-size@6.0.0:
    resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
@@ -6899,6 +6962,10 @@
  magic-string@0.30.21:
    resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
  make-dir@3.1.0:
    resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
    engines: {node: '>=8'}
  make-dir@4.0.0:
    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
    engines: {node: '>=10'}
@@ -6928,6 +6995,11 @@
  mathml-tag-names@2.1.3:
    resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
  md5-file@5.0.0:
    resolution: {integrity: sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==}
    engines: {node: '>=10.13.0'}
    hasBin: true
  mdast-util-find-and-replace@3.0.2:
    resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
@@ -7338,6 +7410,10 @@
  object-copy@0.1.0:
    resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
    engines: {node: '>=0.10.0'}
  object-hash@3.0.0:
    resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
    engines: {node: '>= 6'}
  object-inspect@1.13.4:
    resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
@@ -10506,6 +10582,8 @@
  '@dcloudio/uni-app-vue@3.0.0-4070520250711001': {}
  '@dcloudio/uni-app-x@0.7.100': {}
  '@dcloudio/uni-app@3.0.0-4070520250711001(@dcloudio/types@3.4.29)(@nuxt/kit@3.20.2)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.9.3)))(postcss@8.5.6)(vue@3.4.21(typescript@5.9.3))':
    dependencies:
      '@dcloudio/types': 3.4.29
@@ -11007,6 +11085,59 @@
      - vue
  '@dcloudio/uni-ui@1.5.11': {}
  '@dcloudio/uni-uts-v1@3.0.0-4070520250711001':
    dependencies:
      '@babel/code-frame': 7.28.6
      '@dcloudio/uni-app-x': 0.7.100
      '@dcloudio/uts': 3.0.0-4070520250711001
      '@rollup/pluginutils': 5.3.0(rollup@4.55.3)
      '@vue/shared': 3.4.21
      adm-zip: 0.5.16
      android-versions: 1.9.0
      colors: 1.4.0
      debug: 4.4.3
      fast-glob: 3.3.3
      find-cache-dir: 3.3.2
      fs-extra: 10.1.0
      graphlib: 2.1.8
      jsonc-parser: 3.3.1
      lodash: 4.17.21
      md5-file: 5.0.0
      object-hash: 3.0.0
      semver: 7.7.3
      source-map: 0.7.6
      source-map-js: 1.2.1
    transitivePeerDependencies:
      - rollup
      - supports-color
  '@dcloudio/uts-darwin-arm64@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts-darwin-x64@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts-linux-x64-gnu@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts-linux-x64-musl@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts-win32-ia32-msvc@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts-win32-x64-msvc@3.0.0-4070520250711001':
    optional: true
  '@dcloudio/uts@3.0.0-4070520250711001':
    optionalDependencies:
      '@dcloudio/uts-darwin-arm64': 3.0.0-4070520250711001
      '@dcloudio/uts-darwin-x64': 3.0.0-4070520250711001
      '@dcloudio/uts-linux-x64-gnu': 3.0.0-4070520250711001
      '@dcloudio/uts-linux-x64-musl': 3.0.0-4070520250711001
      '@dcloudio/uts-win32-ia32-msvc': 3.0.0-4070520250711001
      '@dcloudio/uts-win32-x64-msvc': 3.0.0-4070520250711001
  '@dcloudio/vite-plugin-uni@3.0.0-4070520250711001(@nuxt/kit@3.20.2)(@vueuse/core@9.13.0(vue@3.4.21(typescript@5.9.3)))(postcss@8.5.6)(vite@5.2.8(@types/node@25.0.9)(sass@1.79.6)(terser@5.46.0))(vue@3.4.21(typescript@5.9.3))':
    dependencies:
@@ -13603,30 +13734,30 @@
      - '@vue/composition-api'
      - vue
  '@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
    dependencies:
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      dom7: 4.0.6
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 3.0.0
      is-url: 1.2.4
      lodash.throttle: 4.1.1
      nanoid: 5.1.6
      slate: 0.82.1
      nanoid: 3.3.11
      slate: 0.72.8
      snabbdom: 3.6.3
  '@wangeditor-next/code-highlight@1.3.43(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/code-highlight@1.3.43(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)':
    dependencies:
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 4.0.6
      prismjs: 1.30.0
      slate: 0.82.1
      snabbdom: 3.6.3
  '@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)':
    dependencies:
      '@types/event-emitter': 0.3.5
      '@uppy/core': 2.3.4
      '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
      dom7: 4.0.6
      dom7: 3.0.0
      event-emitter: 0.3.5
      html-void-elements: 3.0.0
      i18next: 23.16.8
@@ -13637,9 +13768,9 @@
      lodash.foreach: 4.5.0
      lodash.throttle: 4.1.1
      lodash.toarray: 4.4.0
      nanoid: 5.1.6
      nanoid: 3.3.11
      scroll-into-view-if-needed: 3.1.0
      slate: 0.82.1
      slate: 0.72.8
      slate-history: 0.109.0(slate@0.82.1)
      snabbdom: 3.6.3
@@ -13647,13 +13778,13 @@
    dependencies:
      '@uppy/core': 2.3.4
      '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
      '@wangeditor-next/basic-modules': 1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/code-highlight': 1.3.43(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/list-module': 1.1.52(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/table-module': 1.6.60(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/upload-image-module': 1.1.50(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/video-module': 1.3.51(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/basic-modules': 1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      '@wangeditor-next/code-highlight': 1.3.43(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      '@wangeditor-next/list-module': 1.1.52(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/table-module': 1.6.60(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/upload-image-module': 1.1.50(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/video-module': 1.3.51(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      dom7: 4.0.6
      is-hotkey: 0.2.0
      lodash.camelcase: 4.3.0
@@ -13666,16 +13797,16 @@
      slate: 0.82.1
      snabbdom: 3.6.3
  '@wangeditor-next/list-module@1.1.52(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/list-module@1.1.52(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(slate@0.82.1)(snabbdom@3.6.3)':
    dependencies:
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 4.0.6
      slate: 0.82.1
      snabbdom: 3.6.3
  '@wangeditor-next/table-module@1.6.60(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/table-module@1.6.60(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
    dependencies:
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 4.0.6
      lodash.debounce: 4.0.8
      lodash.throttle: 4.1.1
@@ -13683,22 +13814,22 @@
      slate: 0.82.1
      snabbdom: 3.6.3
  '@wangeditor-next/upload-image-module@1.1.50(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/upload-image-module@1.1.50(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.82.1)(snabbdom@3.6.3)':
    dependencies:
      '@uppy/core': 2.3.4
      '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
      '@wangeditor-next/basic-modules': 1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/basic-modules': 1.5.47(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 4.0.6
      lodash.foreach: 4.5.0
      slate: 0.82.1
      snabbdom: 3.6.3
  '@wangeditor-next/video-module@1.3.51(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
  '@wangeditor-next/video-module@1.3.51(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)':
    dependencies:
      '@uppy/core': 2.3.4
      '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.82.1)(snabbdom@3.6.3)
      '@wangeditor-next/core': 1.7.45(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.3)
      dom7: 4.0.6
      nanoid: 5.1.6
      slate: 0.82.1
@@ -13888,6 +14019,10 @@
      fast-uri: 3.1.0
      json-schema-traverse: 1.0.0
      require-from-string: 2.0.2
  android-versions@1.9.0:
    dependencies:
      semver: 7.7.3
  animate.css@4.1.1: {}
@@ -14541,6 +14676,8 @@
  colorette@2.0.20: {}
  colors@1.4.0: {}
  combined-stream@1.0.8:
    dependencies:
      delayed-stream: 1.0.0
@@ -14556,6 +14693,8 @@
  comment-parser@1.4.4: {}
  commist@3.2.0: {}
  commondir@1.0.1: {}
  compare-versions@3.6.0: {}
@@ -15738,6 +15877,12 @@
    transitivePeerDependencies:
      - supports-color
  find-cache-dir@3.3.2:
    dependencies:
      commondir: 1.0.1
      make-dir: 3.1.0
      pkg-dir: 4.2.0
  find-up-simple@1.0.1: {}
  find-up@4.1.0:
@@ -15996,6 +16141,10 @@
  grapheme-splitter@1.0.4: {}
  graphemer@1.4.0: {}
  graphlib@2.1.8:
    dependencies:
      lodash: 4.17.21
  gzip-size@6.0.0:
    dependencies:
@@ -17145,6 +17294,10 @@
    dependencies:
      '@jridgewell/sourcemap-codec': 1.5.5
  make-dir@3.1.0:
    dependencies:
      semver: 6.3.1
  make-dir@4.0.0:
    dependencies:
      semver: 7.7.3
@@ -17176,6 +17329,8 @@
      typed-function: 2.1.0
  mathml-tag-names@2.1.3: {}
  md5-file@5.0.0: {}
  mdast-util-find-and-replace@3.0.2:
    dependencies:
@@ -17771,6 +17926,8 @@
      define-property: 0.2.5
      kind-of: 3.2.2
  object-hash@3.0.0: {}
  object-inspect@1.13.4: {}
  object-is@1.1.6:
uniapps/work-app/package.json
@@ -1,7 +1,7 @@
{
    "name": "work-app",
    "type": "module",
    "version": "1.5.0",
    "version": "1.6.0",
    "description": "吉安低空",
    "private": true,
    "author": {
uniapps/work-app/src/App.vue
@@ -1,79 +1,102 @@
<script setup>
import { onHide, onLaunch, onShow } from "@dcloudio/uni-app";
import { useAppStore, useUserStore, useLocationStore } from "@/store";
import { useGlobalWS } from "@/hooks/useGlobalWS.js";
import { onHide, onLaunch, onShow } from '@dcloudio/uni-app'
import { useAppStore, useUserStore, useLocationStore } from '@/store'
import { useGlobalWS } from '@/hooks/useGlobalWS.js'
// #ifdef APP-PLUS
import { keepAliveStart } from '@/uni_modules/keep-app'
// #endif
const appStore = useAppStore();
const userStore = useUserStore();
const locationStore = useLocationStore();
const appStore = useAppStore()
const userStore = useUserStore()
const locationStore = useLocationStore()
useGlobalWS();
// #ifdef APP-PLUS
import { getBatteryCapacity } from '@/uni_modules/lgh-getbatteryinfo'
console.log('电池电量:', getBatteryCapacity())
// #endif
const valuetest = ref(1)
function tests() {
    setInterval(() => {
        valuetest.value = valuetest.value + 1
        console.log('valuetest.value:', valuetest.value)
        uni.showToast({title: valuetest.value, icon: 'none'});
    }, 1000)
}
useGlobalWS()
onShow(async () => {
  console.log("App Show");
  // 确保只有在用户已登录的情况下才初始化位置服务
  if (userStore.userInfo && userStore.userInfo.username && locationStore) {
    try {
      await locationStore.initLocationService();
    } catch (error) {
      console.error('重新初始化位置服务失败:', error);
    }
  }
});
    console.log('App Show')
    // 确保只有在用户已登录的情况下才初始化位置服务
    if (userStore.userInfo && userStore.userInfo.username && locationStore) {
        try {
            await locationStore.initLocationService()
        } catch (error) {
            console.error('重新初始化位置服务失败:', error)
        }
    }
})
tests()
onHide(() => {
  console.log("App Hide");
  // 应用进入后台时,停止位置监听以节省资源
  if (locationStore) {
    locationStore.stopLocationWatch();
  }
});
    console.log('App Hide')
    // 应用进入后台时,停止位置监听以节省资源
    if (locationStore) {
        locationStore.stopLocationWatch()
    }
})
onLaunch(() => {
  // 初始化系统信息
  appStore.initSystemInfo();
  if (!userStore.userInfo) {
    //不存在则跳转至登录页
    uni.reLaunch({
      url: "/pages/login/index",
    });
  }
});
    // 初始化系统信息
    appStore.initSystemInfo()
    // #ifdef APP-PLUS
    keepAliveStart()
    // #endif
    if (!userStore.userInfo) {
        //不存在则跳转至登录页
        uni.reLaunch({
            url: '/pages/login/index',
        })
    }
})
</script>
<style lang="scss">
/* 每个页面公共css */
@import "uview-plus/index.scss";
@import "@/static/styles/common.scss";
@import 'uview-plus/index.scss';
@import '@/static/styles/common.scss';
.TUICallKit-mobile {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 9999;
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
}
page {
  background-image: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: fixed;
  // min-height: 10vh;
    background-image: url('https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_app_assets/images/user/bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    // min-height: 10vh;
}
.uni-tabbar-border {
  background-color: #f6f6f6 !important;
    background-color: #f6f6f6 !important;
}
.uni-page-head__title {
  font-family: Source Han Sans CN, Source Han Sans CN !important;
  font-weight: 400 !important;
  font-size: 17px !important;
  color: #222324 !important;
    font-family: Source Han Sans CN, Source Han Sans CN !important;
    font-weight: 400 !important;
    font-size: 17px !important;
    color: #222324 !important;
}
.uni-page-head {
  background: transparent !important;
    background: transparent !important;
}
</style>
uniapps/work-app/src/manifest.json
@@ -2,8 +2,8 @@
    "name" : "吉安低空",
    "appid" : "__UNI__FFA6B4D",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "versionName" : "1.0.1",
    "versionCode" : 101,
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
uniapps/work-app/src/uni_modules/keep-app/changelog.md
uniapps/work-app/src/uni_modules/keep-app/package.json
New file
@@ -0,0 +1,97 @@
{
    "id": "keep-app",
    "displayName": "keep-app",
    "version": "1.0.0",
    "description": "keep-app",
    "keywords": [
        "keep-app"
    ],
    "repository": "",
    "engines": {
        "HBuilderX": "^3.6.8",
        "uni-app": "^3.1.0",
        "uni-app-x": "^3.1.0"
    },
    "dcloudext": {
        "type": "uts",
        "sale": {
            "regular": {
                "price": "0.00"
            },
            "sourcecode": {
                "price": "0.00"
            }
        },
        "contact": {
            "qq": ""
        },
        "declaration": {
            "ads": "",
            "data": "",
            "permissions": ""
        },
        "npmurl": "",
        "darkmode": "-",
        "i18n": "-",
        "widescreen": "-"
    },
    "uni_modules": {
        "dependencies": [],
        "encrypt": [],
        "platforms": {
            "cloud": {
                "tcb": "-",
                "aliyun": "-",
                "alipay": "-"
            },
            "client": {
                "uni-app": {
                    "vue": {
                        "vue2": "-",
                        "vue3": "-"
                    },
                    "web": {
                        "safari": "-",
                        "chrome": "-"
                    },
                    "app": {
                        "vue": "-",
                        "nvue": "-",
                        "android": "-",
                        "ios": "-",
                        "harmony": "-"
                    },
                    "mp": {
                        "weixin": "-",
                        "alipay": "-",
                        "toutiao": "-",
                        "baidu": "-",
                        "kuaishou": "-",
                        "jd": "-",
                        "harmony": "-",
                        "qq": "-",
                        "lark": "-"
                    },
                    "quickapp": {
                        "huawei": "-",
                        "union": "-"
                    }
                },
                "uni-app-x": {
                    "web": {
                        "safari": "-",
                        "chrome": "-"
                    },
                    "app": {
                        "android": "-",
                        "ios": "-",
                        "harmony": "-"
                    },
                    "mp": {
                        "weixin": "-"
                    }
                }
            }
        }
    }
}
uniapps/work-app/src/uni_modules/keep-app/readme.md
New file
@@ -0,0 +1,7 @@
# keep-app
### 开发文档
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
[UTS uni-app兼容模式组件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
[UTS 标准模式组件](https://doc.dcloud.net.cn/uni-app-x/plugin/uts-vue-component.html)
[Hello UTS](https://gitcode.net/dcloud/hello-uts)
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-android/config.json
New file
@@ -0,0 +1,3 @@
{
  "minSdkVersion": "21"
}
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-android/index.uts
New file
@@ -0,0 +1,212 @@
// index.uts - Android 应用保活插件
// 引用 Android API
import Context from "android.content.Context";
import Intent from "android.content.Intent";
import Build from "android.os.Build";
import NotificationChannel from "android.app.NotificationChannel";
import NotificationManager from "android.app.NotificationManager";
import Notification from "android.app.Notification";
import PendingIntent from "android.app.PendingIntent";
import Service from "android.app.Service";
import IBinder from "android.os.IBinder";
import PowerManager from "android.os.PowerManager";
import BatteryManager from "android.os.BatteryManager";
import { UTSAndroid } from "io.dcloud.uts";
// 保活服务的通知渠道ID
const CHANNEL_ID = "keep_alive_channel";
const NOTIFICATION_ID: Int = 1001;
// 保活服务是否已启动的标志
let isKeepAliveRunning = false;
/**
 * 启动应用保活
 * 通过启动前台服务来保持应用在后台运行
 */
export function keepAliveStart(): void {
    const context = UTSAndroid.getAppContext();
    if (context == null) {
        console.error("keepAliveStart: 获取应用上下文失败");
        return;
    }
    if (isKeepAliveRunning) {
        console.log("keepAliveStart: 保活服务已在运行中");
        return;
    }
    try {
        // 创建通知渠道 (Android 8.0+)
        createNotificationChannel(context);
        // 创建并显示前台通知
        showForegroundNotification(context);
        isKeepAliveRunning = true;
        console.log("keepAliveStart: 保活服务启动成功");
    } catch (e) {
        console.error("keepAliveStart: 启动失败", e);
    }
}
/**
 * 停止应用保活
 */
export function keepAliveStop(): void {
    const context = UTSAndroid.getAppContext();
    if (context == null) {
        return;
    }
    try {
        // 取消通知
        const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager;
        notificationManager.cancel(NOTIFICATION_ID);
        isKeepAliveRunning = false;
        console.log("keepAliveStop: 保活服务已停止");
    } catch (e) {
        console.error("keepAliveStop: 停止失败", e);
    }
}
/**
 * 检查保活服务是否正在运行
 */
export function isKeepAliveActive(): boolean {
    return isKeepAliveRunning;
}
/**
 * 获取电池电量百分比
 */
export function getBatteryCapacity(): string {
    const context = UTSAndroid.getAppContext();
    if (context != null) {
        const manager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager;
        const currentLevel: number = manager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
        return '' + currentLevel + '%';
    }
    return "0%";
}
/**
 * 请求忽略电池优化(需要用户手动确认)
 * 调用此方法会弹出系统设置页面
 */
export function requestIgnoreBatteryOptimization(): void {
    const context = UTSAndroid.getAppContext();
    if (context == null) {
        return;
    }
    if (Build.VERSION.SDK_INT >= 23) { // Android 6.0+
        const powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager;
        const packageName = context.getPackageName();
        if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
            try {
                const intent = new Intent();
                intent.setAction("android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS");
                intent.setData(android.net.Uri.parse("package:" + packageName));
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
            } catch (e) {
                console.error("requestIgnoreBatteryOptimization: 打开设置失败", e);
            }
        } else {
            console.log("requestIgnoreBatteryOptimization: 已在白名单中");
        }
    }
}
/**
 * 检查是否已忽略电池优化
 */
export function isIgnoringBatteryOptimizations(): boolean {
    const context = UTSAndroid.getAppContext();
    if (context == null) {
        return false;
    }
    if (Build.VERSION.SDK_INT >= 23) {
        const powerManager = context.getSystemService(Context.POWER_SERVICE) as PowerManager;
        const packageName = context.getPackageName();
        return powerManager.isIgnoringBatteryOptimizations(packageName);
    }
    return true; // Android 6.0 以下默认返回 true
}
/**
 * 创建通知渠道 (Android 8.0+ 必需)
 */
function createNotificationChannel(context: Context): void {
    if (Build.VERSION.SDK_INT >= 26) { // Android 8.0+
        const channel = new NotificationChannel(
            CHANNEL_ID,
            "应用保活服务",
            NotificationManager.IMPORTANCE_LOW
        );
        channel.setDescription("保持应用在后台运行");
        channel.setShowBadge(false);
        channel.enableLights(false);
        channel.enableVibration(false);
        const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager;
        notificationManager.createNotificationChannel(channel);
    }
}
/**
 * 显示前台通知
 */
function showForegroundNotification(context: Context): void {
    // 获取应用的启动 Intent
    const packageManager = context.getPackageManager();
    const launchIntent = packageManager.getLaunchIntentForPackage(context.getPackageName());
    let pendingIntentFlags = PendingIntent.FLAG_UPDATE_CURRENT;
    if (Build.VERSION.SDK_INT >= 31) { // Android 12+
        pendingIntentFlags = pendingIntentFlags | PendingIntent.FLAG_IMMUTABLE;
    }
    const pendingIntent = PendingIntent.getActivity(
        context,
        0,
        launchIntent,
        pendingIntentFlags
    );
    // 构建通知
    let builder: Notification.Builder;
    if (Build.VERSION.SDK_INT >= 26) {
        builder = new Notification.Builder(context, CHANNEL_ID);
    } else {
        builder = new Notification.Builder(context);
    }
    // 获取应用图标
    const appInfo = context.getApplicationInfo();
    const appIcon = appInfo.icon;
    const appName = packageManager.getApplicationLabel(appInfo).toString();
    builder.setSmallIcon(appIcon)
        .setContentTitle(appName)
        .setContentText("服务运行中")
        .setContentIntent(pendingIntent)
        .setOngoing(true) // 常驻通知,不可被滑动删除
        .setPriority(Notification.PRIORITY_LOW);
    if (Build.VERSION.SDK_INT >= 21) {
        builder.setCategory(Notification.CATEGORY_SERVICE);
    }
    const notification = builder.build();
    // 显示通知
    const notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager;
    notificationManager.notify(NOTIFICATION_ID, notification);
}
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-ios/config.json
New file
@@ -0,0 +1,3 @@
{
  "deploymentTarget": "12"
}
uniapps/work-app/src/uni_modules/keep-app/utssdk/app-ios/index.uts
New file
@@ -0,0 +1,107 @@
/**
 * 引用 iOS 系统库,示例如下:
 * import { UIDevice } from "UIKit";
 * [可选实现,按需引入]
 */
/* 引入 interface.uts 文件中定义的变量 */
import { MyApiOptions, MyApiResult, MyApi, MyApiSync, KeepAliveStart, KeepAliveStop } from '../interface.uts';
/* 引入 unierror.uts 文件中定义的变量 */
import { MyApiFailImpl } from '../unierror';
/**
 * 引入三方库
 * [可选实现,按需引入]
 *
 * 在 iOS 平台引入三方库有以下两种方式:
 * 1、通过引入三方库framework 或者.a 等方式,需要将 .framework 放到 ./Frameworks 目录下,将.a 放到 ./Libs 目录下。更多信息[详见](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#ios-平台原生配置)
 * 2、通过 cocoaPods 方式引入,将要引入的 pod 信息配置到 config.json 文件下的 dependencies-pods 字段下。详细配置方式[详见](https://uniapp.dcloud.net.cn/plugin/uts-ios-cocoapods.html)
 *
 * 在通过上述任意方式依赖三方库后,使用时需要在文件中 import:
 * 示例:import { LottieLoopMode    } from 'Lottie'
 */
/**
 * UTSiOS 为平台内置对象,不需要 import 可直接调用其API,[详见](https://uniapp.dcloud.net.cn/uts/utsios.html)
 */
/**
 * 异步方法
 *
 * uni-app项目中(vue/nvue)调用示例:
 * 1、引入方法声明 import { myApi } from "@/uni_modules/uts-api"
 * 2、方法调用
 * myApi({
 *   paramA: false,
 *   complete: (res) => {
 *      console.log(res)
 *   }
 * });
 *
 */
export const myApi : MyApi = function (options : MyApiOptions) {
  if (options.paramA == true) {
    // 返回数据
    const res : MyApiResult = {
      fieldA: 85,
      fieldB: true,
      fieldC: 'some message'
    };
    options.success?.(res);
    options.complete?.(res);
  } else {
    // 返回错误
    let failResult = new MyApiFailImpl(9010001);
    options.fail?.(failResult)
    options.complete?.(failResult)
  }
}
/**
 * 同步方法
 *
 * uni-app项目中(vue/nvue)调用示例:
 * 1、引入方法声明 import { myApiSync } from "@/uni_modules/uts-api"
 * 2、方法调用
 * myApiSync(true);
 *
 */
export const myApiSync : MyApiSync = function (paramA : boolean) : MyApiResult {
  // 返回数据,根据插件功能获取实际的返回值
  const res : MyApiResult = {
    fieldA: 85,
    fieldB: paramA,
    fieldC: 'some message'
  };
  return res;
}
let keepAliveTimer : number | null = null;
let keepAliveCounter : number = 0;
export const keepAliveStart : KeepAliveStart = function () {
  if (keepAliveTimer != null) {
    return;
  }
  keepAliveCounter = 0;
  keepAliveTimer = setInterval(() => {
    keepAliveCounter += 1;
    console.log('keep-alive count:', keepAliveCounter);
  }, 1000);
}
export const keepAliveStop : KeepAliveStop = function () {
  if (keepAliveTimer == null) {
    return;
  }
  clearInterval(keepAliveTimer);
  keepAliveTimer = null;
}
/**
 * 更多插件开发的信息详见:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
 */
uniapps/work-app/src/uni_modules/keep-app/utssdk/interface.uts
New file
@@ -0,0 +1,51 @@
/**
 * interface.uts
 * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示
 */
/**
 * myApi 异步函数的参数,在type里定义函数需要的参数以及api成功、失败的相关回调函数。
 */
export type MyApiOptions = {
  paramA : boolean
  success ?: (res : MyApiResult) => void
  fail ?: (res : MyApiFail) => void
  complete ?: (res : any) => void
}
/**
 * 函数返回结果
 * 可以是void, 基本数据类型,自定义type, 或者其他类型。
 * [可选实现]
 */
export type MyApiResult = {
  fieldA : number,
  fieldB : boolean,
  fieldC : string
}
/**
 * 错误码
 * 根据uni错误码规范要求,建议错误码以90开头,以下是错误码示例:
 * - 9010001 错误信息1
 * - 9010002 错误信息2
 */
export type MyApiErrorCode = 9010001 | 9010002;
/**
 * myApi 的错误回调参数
 */
export interface MyApiFail extends IUniError {
  errCode : MyApiErrorCode
};
/* 异步函数定义 */
export type MyApi = (options : MyApiOptions) => void
/* 同步函数定义 */
export type MyApiSync = (paramA : boolean) => MyApiResult
/**
 * keepAliveStart/keepAliveStop 函数定义
 */
export type KeepAliveStart = () => void
export type KeepAliveStop = () => void
uniapps/work-app/src/uni_modules/keep-app/utssdk/unierror.uts
New file
@@ -0,0 +1,39 @@
/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */
import { MyApiErrorCode, MyApiFail } from "./interface.uts"
/**
 * 错误主题
 * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。
 * [可选实现]
 */
export const UniErrorSubject = 'uts-api';
/**
 * 错误信息
 * @UniError
 * [可选实现]
 */
export const MyAPIErrors : Map<MyApiErrorCode, string> = new Map([
  /**
   * 错误码及对应的错误信息
   */
  [9010001, 'custom error mseeage1'],
  [9010002, 'custom error mseeage2'],
]);
/**
 * 错误对象实现
 */
export class MyApiFailImpl extends UniError implements MyApiFail {
  /**
   * 错误对象构造函数
   */
  constructor(errCode : MyApiErrorCode) {
    super();
    this.errSubject = UniErrorSubject;
    this.errCode = errCode;
    this.errMsg = MyAPIErrors.get(errCode) ?? "";
  }
}
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/changelog.md
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/package.json
New file
@@ -0,0 +1,97 @@
{
    "id": "lgh-getbatteryinfo",
    "displayName": "lgh-getbatteryinfo",
    "version": "1.0.0",
    "description": "lgh-getbatteryinfo",
    "keywords": [
        "lgh-getbatteryinfo"
    ],
    "repository": "",
    "engines": {
        "HBuilderX": "^3.6.8",
        "uni-app": "^3.1.0",
        "uni-app-x": "^3.1.0"
    },
    "dcloudext": {
        "type": "uts",
        "sale": {
            "regular": {
                "price": "0.00"
            },
            "sourcecode": {
                "price": "0.00"
            }
        },
        "contact": {
            "qq": ""
        },
        "declaration": {
            "ads": "",
            "data": "",
            "permissions": ""
        },
        "npmurl": "",
        "darkmode": "-",
        "i18n": "-",
        "widescreen": "-"
    },
    "uni_modules": {
        "dependencies": [],
        "encrypt": [],
        "platforms": {
            "cloud": {
                "tcb": "-",
                "aliyun": "-",
                "alipay": "-"
            },
            "client": {
                "uni-app": {
                    "vue": {
                        "vue2": "-",
                        "vue3": "-"
                    },
                    "web": {
                        "safari": "-",
                        "chrome": "-"
                    },
                    "app": {
                        "vue": "-",
                        "nvue": "-",
                        "android": "-",
                        "ios": "-",
                        "harmony": "-"
                    },
                    "mp": {
                        "weixin": "-",
                        "alipay": "-",
                        "toutiao": "-",
                        "baidu": "-",
                        "kuaishou": "-",
                        "jd": "-",
                        "harmony": "-",
                        "qq": "-",
                        "lark": "-"
                    },
                    "quickapp": {
                        "huawei": "-",
                        "union": "-"
                    }
                },
                "uni-app-x": {
                    "web": {
                        "safari": "-",
                        "chrome": "-"
                    },
                    "app": {
                        "android": "-",
                        "ios": "-",
                        "harmony": "-"
                    },
                    "mp": {
                        "weixin": "-"
                    }
                }
            }
        }
    }
}
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/readme.md
New file
@@ -0,0 +1,7 @@
# lgh-getbatteryinfo
### 开发文档
[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html)
[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html)
[UTS uni-app兼容模式组件](https://uniapp.dcloud.net.cn/plugin/uts-component.html)
[UTS 标准模式组件](https://doc.dcloud.net.cn/uni-app-x/plugin/uts-vue-component.html)
[Hello UTS](https://gitcode.net/dcloud/hello-uts)
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-android/config.json
New file
@@ -0,0 +1,3 @@
{
  "minSdkVersion": "21"
}
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-android/index.uts
New file
@@ -0,0 +1,29 @@
// index.uts
// 引用android api
import Context from "android.content.Context";
import BatteryManager from "android.os.BatteryManager";
import { UTSAndroid } from "io.dcloud.uts";
/**
 * 获取电池电量百分比
 *
 * uni-app项目中调用示例:
 * import { getBatteryCapacity } from "@/uni_modules/lgh-getbatteryinfo"
 * const capacity = getBatteryCapacity()
 * console.log('电池电量:', capacity)
 */
export function getBatteryCapacity(): string {
    // 获取android系统 application上下文
    const context = UTSAndroid.getAppContext();
    if (context != null) {
        const manager = context.getSystemService(
            Context.BATTERY_SERVICE
        ) as BatteryManager;
        const currentLevel: number = manager.getIntProperty(
            BatteryManager.BATTERY_PROPERTY_CAPACITY
        );
        return '' + currentLevel + '%';
    }
    return "0%";
}
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-ios/config.json
New file
@@ -0,0 +1,3 @@
{
  "deploymentTarget": "12"
}
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/app-ios/index.uts
New file
@@ -0,0 +1,85 @@
/**
 * 引用 iOS 系统库,示例如下:
 * import { UIDevice } from "UIKit";
 * [可选实现,按需引入]
 */
/* 引入 interface.uts 文件中定义的变量 */
import { MyApiOptions, MyApiResult, MyApi, MyApiSync } from '../interface.uts';
/* 引入 unierror.uts 文件中定义的变量 */
import { MyApiFailImpl } from '../unierror';
/**
 * 引入三方库
 * [可选实现,按需引入]
 *
 * 在 iOS 平台引入三方库有以下两种方式:
 * 1、通过引入三方库framework 或者.a 等方式,需要将 .framework 放到 ./Frameworks 目录下,将.a 放到 ./Libs 目录下。更多信息[详见](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html#ios-平台原生配置)
 * 2、通过 cocoaPods 方式引入,将要引入的 pod 信息配置到 config.json 文件下的 dependencies-pods 字段下。详细配置方式[详见](https://uniapp.dcloud.net.cn/plugin/uts-ios-cocoapods.html)
 *
 * 在通过上述任意方式依赖三方库后,使用时需要在文件中 import:
 * 示例:import { LottieLoopMode    } from 'Lottie'
 */
/**
 * UTSiOS 为平台内置对象,不需要 import 可直接调用其API,[详见](https://uniapp.dcloud.net.cn/uts/utsios.html)
 */
/**
 * 异步方法
 *
 * uni-app项目中(vue/nvue)调用示例:
 * 1、引入方法声明 import { myApi } from "@/uni_modules/uts-api"
 * 2、方法调用
 * myApi({
 *   paramA: false,
 *   complete: (res) => {
 *      console.log(res)
 *   }
 * });
 *
 */
export const myApi : MyApi = function (options : MyApiOptions) {
  if (options.paramA == true) {
    // 返回数据
    const res : MyApiResult = {
      fieldA: 85,
      fieldB: true,
      fieldC: 'some message'
    };
    options.success?.(res);
    options.complete?.(res);
  } else {
    // 返回错误
    let failResult = new MyApiFailImpl(9010001);
    options.fail?.(failResult)
    options.complete?.(failResult)
  }
}
/**
 * 同步方法
 *
 * uni-app项目中(vue/nvue)调用示例:
 * 1、引入方法声明 import { myApiSync } from "@/uni_modules/uts-api"
 * 2、方法调用
 * myApiSync(true);
 *
 */
export const myApiSync : MyApiSync = function (paramA : boolean) : MyApiResult {
  // 返回数据,根据插件功能获取实际的返回值
  const res : MyApiResult = {
    fieldA: 85,
    fieldB: paramA,
    fieldC: 'some message'
  };
  return res;
}
/**
 * 更多插件开发的信息详见:https://uniapp.dcloud.net.cn/plugin/uts-plugin.html
 */
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/interface.uts
New file
@@ -0,0 +1,45 @@
/**
 * interface.uts
 * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示
 */
/**
 * myApi 异步函数的参数,在type里定义函数需要的参数以及api成功、失败的相关回调函数。
 */
export type MyApiOptions = {
  paramA : boolean
  success ?: (res : MyApiResult) => void
  fail ?: (res : MyApiFail) => void
  complete ?: (res : any) => void
}
/**
 * 函数返回结果
 * 可以是void, 基本数据类型,自定义type, 或者其他类型。
 * [可选实现]
 */
export type MyApiResult = {
  fieldA : number,
  fieldB : boolean,
  fieldC : string
}
/**
 * 错误码
 * 根据uni错误码规范要求,建议错误码以90开头,以下是错误码示例:
 * - 9010001 错误信息1
 * - 9010002 错误信息2
 */
export type MyApiErrorCode = 9010001 | 9010002;
/**
 * myApi 的错误回调参数
 */
export interface MyApiFail extends IUniError {
  errCode : MyApiErrorCode
};
/* 异步函数定义 */
export type MyApi = (options : MyApiOptions) => void
/* 同步函数定义 */
export type MyApiSync = (paramA : boolean) => MyApiResult
uniapps/work-app/src/uni_modules/lgh-getbatteryinfo/utssdk/unierror.uts
New file
@@ -0,0 +1,39 @@
/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */
import { MyApiErrorCode, MyApiFail } from "./interface.uts"
/**
 * 错误主题
 * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。
 * [可选实现]
 */
export const UniErrorSubject = 'uts-api';
/**
 * 错误信息
 * @UniError
 * [可选实现]
 */
export const MyAPIErrors : Map<MyApiErrorCode, string> = new Map([
  /**
   * 错误码及对应的错误信息
   */
  [9010001, 'custom error mseeage1'],
  [9010002, 'custom error mseeage2'],
]);
/**
 * 错误对象实现
 */
export class MyApiFailImpl extends UniError implements MyApiFail {
  /**
   * 错误对象构造函数
   */
  constructor(errCode : MyApiErrorCode) {
    super();
    this.errSubject = UniErrorSubject;
    this.errCode = errCode;
    this.errMsg = MyAPIErrors.get(errCode) ?? "";
  }
}