Commit 59fd57592d4cc5c696b733ee493ef0c58b30805c
1 parent
8a1d70bb
feat(map): 替换腾讯地图为高德地图并优化检查点功能
- 将腾讯地图API替换为高德地图API - 移除检查点经纬度输入框的禁用状态 - 重构地图组件中的标记点和路径绘制逻辑 - 添加地图覆盖物清理功能 - 更新登录页面UI设计 - 修改系统标题和公司名称显示 - 添加property路由模块 - 修复API请求参数中的硬编码值
Showing
25 changed files
with
768 additions
and
1128 deletions
install.md
package-lock.json
| 1 | 1 | { |
| 2 | - "name": "micro-community-web", | |
| 2 | + "name": "xirong_property", | |
| 3 | 3 | "version": "1.0.0", |
| 4 | 4 | "lockfileVersion": 3, |
| 5 | 5 | "requires": true, |
| 6 | 6 | "packages": { |
| 7 | 7 | "": { |
| 8 | - "name": "micro-community-web", | |
| 8 | + "name": "xirong_property", | |
| 9 | 9 | "version": "1.0.0", |
| 10 | 10 | "dependencies": { |
| 11 | 11 | "@tinymce/tinymce-vue": "^3.2.8", |
| 12 | 12 | "axios": "^0.21.1", |
| 13 | 13 | "echarts": "^5.6.0", |
| 14 | 14 | "element-ui": "^2.15.6", |
| 15 | - "formiojs": "^4.21.7", | |
| 16 | 15 | "qrcodejs2": "^0.0.2", |
| 17 | 16 | "tinymce": "^5.10.7", |
| 18 | 17 | "vue": "^2.6.14", |
| ... | ... | @@ -1572,47 +1571,6 @@ |
| 1572 | 1571 | "node": ">=6.9.0" |
| 1573 | 1572 | } |
| 1574 | 1573 | }, |
| 1575 | - "node_modules/@formio/bootstrap3": { | |
| 1576 | - "version": "2.12.4-rc.1", | |
| 1577 | - "resolved": "https://registry.npmjs.org/@formio/bootstrap3/-/bootstrap3-2.12.4-rc.1.tgz", | |
| 1578 | - "integrity": "sha512-4B5rs+w9tAk5i+wbdw2/NrTxPqnDX7/W19tiTd9lfXnIGQmaj0ecMEVqDmOJg8pIlyU02g3c4ih6JnA/JVmUbA==", | |
| 1579 | - "dependencies": { | |
| 1580 | - "resize-observer-polyfill": "^1.5.1" | |
| 1581 | - } | |
| 1582 | - }, | |
| 1583 | - "node_modules/@formio/choices.js": { | |
| 1584 | - "version": "10.2.1", | |
| 1585 | - "resolved": "https://registry.npmjs.org/@formio/choices.js/-/choices.js-10.2.1.tgz", | |
| 1586 | - "integrity": "sha512-NCE5u7jG3XGokJP16MyAbVSUptKu/mpJYAxd4PPIoLiO/l9Do5uoOQ0MgNb9qG9qABJiOX+qNRE8q8RybY/SwQ==", | |
| 1587 | - "dependencies": { | |
| 1588 | - "deepmerge": "^4.2.2", | |
| 1589 | - "fuse.js": "^6.6.2", | |
| 1590 | - "redux": "^4.2.0" | |
| 1591 | - } | |
| 1592 | - }, | |
| 1593 | - "node_modules/@formio/choices.js/node_modules/deepmerge": { | |
| 1594 | - "version": "4.3.1", | |
| 1595 | - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", | |
| 1596 | - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", | |
| 1597 | - "engines": { | |
| 1598 | - "node": ">=0.10.0" | |
| 1599 | - } | |
| 1600 | - }, | |
| 1601 | - "node_modules/@formio/semantic": { | |
| 1602 | - "version": "2.6.1", | |
| 1603 | - "resolved": "https://registry.npmjs.org/@formio/semantic/-/semantic-2.6.1.tgz", | |
| 1604 | - "integrity": "sha512-obp1BT5UnzD+uYBbqmnsTfO2hGxI2A2iR/cj3P5JUFLYSBpnr3TS2ShQ7Ee5GCRRtJPu0JnljuJj+YSKLCMuhg==" | |
| 1605 | - }, | |
| 1606 | - "node_modules/@formio/text-mask-addons": { | |
| 1607 | - "version": "3.8.0-formio.4", | |
| 1608 | - "resolved": "https://registry.npmjs.org/@formio/text-mask-addons/-/text-mask-addons-3.8.0-formio.4.tgz", | |
| 1609 | - "integrity": "sha512-vhkeIyuL+1rtC9S4IW8O3JCwroPtvJrkrcMO4wyELNqMIgQRKbiyBAitZfUP4tY04xdB5lxAinbzdwb+NMdX6w==" | |
| 1610 | - }, | |
| 1611 | - "node_modules/@formio/vanilla-text-mask": { | |
| 1612 | - "version": "5.1.1-formio.1", | |
| 1613 | - "resolved": "https://registry.npmjs.org/@formio/vanilla-text-mask/-/vanilla-text-mask-5.1.1-formio.1.tgz", | |
| 1614 | - "integrity": "sha512-rYBlvIPMNUd6sAaduOaiIwI4vfTAjHDRonko2qJn2RP1O//TQ7rcFIPYVYePJZ4OtOpwHiHAvAIh79McphZotQ==" | |
| 1615 | - }, | |
| 1616 | 1574 | "node_modules/@hapi/address": { |
| 1617 | 1575 | "version": "2.1.4", |
| 1618 | 1576 | "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", |
| ... | ... | @@ -2111,15 +2069,6 @@ |
| 2111 | 2069 | "node": ">=8.0" |
| 2112 | 2070 | } |
| 2113 | 2071 | }, |
| 2114 | - "node_modules/@popperjs/core": { | |
| 2115 | - "version": "2.11.8", | |
| 2116 | - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", | |
| 2117 | - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", | |
| 2118 | - "funding": { | |
| 2119 | - "type": "opencollective", | |
| 2120 | - "url": "https://opencollective.com/popperjs" | |
| 2121 | - } | |
| 2122 | - }, | |
| 2123 | 2072 | "node_modules/@soda/friendly-errors-webpack-plugin": { |
| 2124 | 2073 | "version": "1.8.1", |
| 2125 | 2074 | "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz", |
| ... | ... | @@ -2144,11 +2093,6 @@ |
| 2144 | 2093 | "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==", |
| 2145 | 2094 | "dev": true |
| 2146 | 2095 | }, |
| 2147 | - "node_modules/@sphinxxxx/color-conversion": { | |
| 2148 | - "version": "2.2.2", | |
| 2149 | - "resolved": "https://registry.npmjs.org/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz", | |
| 2150 | - "integrity": "sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw==" | |
| 2151 | - }, | |
| 2152 | 2096 | "node_modules/@tinymce/tinymce-vue": { |
| 2153 | 2097 | "version": "3.2.8", |
| 2154 | 2098 | "resolved": "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-3.2.8.tgz", |
| ... | ... | @@ -2324,12 +2268,6 @@ |
| 2324 | 2268 | "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", |
| 2325 | 2269 | "dev": true |
| 2326 | 2270 | }, |
| 2327 | - "node_modules/@types/trusted-types": { | |
| 2328 | - "version": "2.0.7", | |
| 2329 | - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", | |
| 2330 | - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", | |
| 2331 | - "optional": true | |
| 2332 | - }, | |
| 2333 | 2271 | "node_modules/@types/uglify-js": { |
| 2334 | 2272 | "version": "3.17.5", |
| 2335 | 2273 | "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", |
| ... | ... | @@ -3197,11 +3135,6 @@ |
| 3197 | 3135 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", |
| 3198 | 3136 | "dev": true |
| 3199 | 3137 | }, |
| 3200 | - "node_modules/abortcontroller-polyfill": { | |
| 3201 | - "version": "1.7.8", | |
| 3202 | - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz", | |
| 3203 | - "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==" | |
| 3204 | - }, | |
| 3205 | 3138 | "node_modules/accepts": { |
| 3206 | 3139 | "version": "1.3.8", |
| 3207 | 3140 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", |
| ... | ... | @@ -3294,11 +3227,6 @@ |
| 3294 | 3227 | "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==", |
| 3295 | 3228 | "dev": true |
| 3296 | 3229 | }, |
| 3297 | - "node_modules/animation-frame-polyfill": { | |
| 3298 | - "version": "1.0.2", | |
| 3299 | - "resolved": "https://registry.npmjs.org/animation-frame-polyfill/-/animation-frame-polyfill-1.0.2.tgz", | |
| 3300 | - "integrity": "sha512-PvO5poSMoHhaoNNgHPo+oqs/0L9UqjsUbqv0iOXVqLh6HX85fsOVQTUrzSBvjdZz7hydARlgLELyzJJKIrPJAQ==" | |
| 3301 | - }, | |
| 3302 | 3230 | "node_modules/ansi-colors": { |
| 3303 | 3231 | "version": "3.2.4", |
| 3304 | 3232 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", |
| ... | ... | @@ -3462,11 +3390,6 @@ |
| 3462 | 3390 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", |
| 3463 | 3391 | "dev": true |
| 3464 | 3392 | }, |
| 3465 | - "node_modules/array-from": { | |
| 3466 | - "version": "2.1.1", | |
| 3467 | - "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", | |
| 3468 | - "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==" | |
| 3469 | - }, | |
| 3470 | 3393 | "node_modules/array-union": { |
| 3471 | 3394 | "version": "1.0.2", |
| 3472 | 3395 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", |
| ... | ... | @@ -3665,11 +3588,6 @@ |
| 3665 | 3588 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", |
| 3666 | 3589 | "dev": true |
| 3667 | 3590 | }, |
| 3668 | - "node_modules/atoa": { | |
| 3669 | - "version": "1.0.0", | |
| 3670 | - "resolved": "https://registry.npmjs.org/atoa/-/atoa-1.0.0.tgz", | |
| 3671 | - "integrity": "sha512-VVE1H6cc4ai+ZXo/CRWoJiHXrA1qfA31DPnx6D20+kSI547hQN5Greh51LQ1baMRMfxO5K5M4ImMtZbZt2DODQ==" | |
| 3672 | - }, | |
| 3673 | 3591 | "node_modules/atob": { |
| 3674 | 3592 | "version": "2.1.2", |
| 3675 | 3593 | "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", |
| ... | ... | @@ -3682,11 +3600,6 @@ |
| 3682 | 3600 | "node": ">= 4.5.0" |
| 3683 | 3601 | } |
| 3684 | 3602 | }, |
| 3685 | - "node_modules/autocompleter": { | |
| 3686 | - "version": "7.1.0", | |
| 3687 | - "resolved": "https://registry.npmjs.org/autocompleter/-/autocompleter-7.1.0.tgz", | |
| 3688 | - "integrity": "sha512-uCToOnq7eAD/GJAteDbYuQ7ksDtrYWOy5CIAq43wh0dT+5frMpPlyD9tp+y5fz8KIcsP+zR2MjzoTAdW5aJESw==" | |
| 3689 | - }, | |
| 3690 | 3603 | "node_modules/autoprefixer": { |
| 3691 | 3604 | "version": "9.8.8", |
| 3692 | 3605 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", |
| ... | ... | @@ -4135,19 +4048,6 @@ |
| 4135 | 4048 | "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", |
| 4136 | 4049 | "dev": true |
| 4137 | 4050 | }, |
| 4138 | - "node_modules/browser-cookies": { | |
| 4139 | - "version": "1.2.0", | |
| 4140 | - "resolved": "https://registry.npmjs.org/browser-cookies/-/browser-cookies-1.2.0.tgz", | |
| 4141 | - "integrity": "sha512-cg2WuoOJo+F+g2XjEaP8nmeRp1vDHjt7sqpKJMsTNXKrpyIBNVslYJeehvs6FEddj8usV2+qyRSBEX244yN5/g==" | |
| 4142 | - }, | |
| 4143 | - "node_modules/browser-md5-file": { | |
| 4144 | - "version": "1.1.1", | |
| 4145 | - "resolved": "https://registry.npmjs.org/browser-md5-file/-/browser-md5-file-1.1.1.tgz", | |
| 4146 | - "integrity": "sha512-9h2UViTtZPhBa7oHvp5mb7MvJaX5OKEPUsplDwJ800OIV+In7BOR3RXOMB78obn2iQVIiS3WkVLhG7Zu1EMwbw==", | |
| 4147 | - "dependencies": { | |
| 4148 | - "spark-md5": "^2.0.2" | |
| 4149 | - } | |
| 4150 | - }, | |
| 4151 | 4051 | "node_modules/browserify-aes": { |
| 4152 | 4052 | "version": "1.2.0", |
| 4153 | 4053 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", |
| ... | ... | @@ -5087,11 +4987,6 @@ |
| 5087 | 4987 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", |
| 5088 | 4988 | "dev": true |
| 5089 | 4989 | }, |
| 5090 | - "node_modules/compare-versions": { | |
| 5091 | - "version": "5.0.3", | |
| 5092 | - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", | |
| 5093 | - "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==" | |
| 5094 | - }, | |
| 5095 | 4990 | "node_modules/component-emitter": { |
| 5096 | 4991 | "version": "1.3.1", |
| 5097 | 4992 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", |
| ... | ... | @@ -5271,15 +5166,6 @@ |
| 5271 | 5166 | "node": ">= 0.6" |
| 5272 | 5167 | } |
| 5273 | 5168 | }, |
| 5274 | - "node_modules/contra": { | |
| 5275 | - "version": "1.9.4", | |
| 5276 | - "resolved": "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz", | |
| 5277 | - "integrity": "sha512-N9ArHAqwR/lhPq4OdIAwH4e1btn6EIZMAz4TazjnzCiVECcWUPTma+dRAM38ERImEJBh8NiCCpjoQruSZ+agYg==", | |
| 5278 | - "dependencies": { | |
| 5279 | - "atoa": "1.0.0", | |
| 5280 | - "ticky": "1.0.1" | |
| 5281 | - } | |
| 5282 | - }, | |
| 5283 | 5169 | "node_modules/convert-source-map": { |
| 5284 | 5170 | "version": "2.0.0", |
| 5285 | 5171 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", |
| ... | ... | @@ -5627,14 +5513,6 @@ |
| 5627 | 5513 | "sha.js": "^2.4.8" |
| 5628 | 5514 | } |
| 5629 | 5515 | }, |
| 5630 | - "node_modules/create-point-cb": { | |
| 5631 | - "version": "1.2.0", | |
| 5632 | - "resolved": "https://registry.npmjs.org/create-point-cb/-/create-point-cb-1.2.0.tgz", | |
| 5633 | - "integrity": "sha512-r4l6IO/YGI7hIZRMLggOzwM6XO80+Fdcv4hx1fXCEdU+hKd7zZki6i+cbYfK9OliMwMYx1wPfQLU/snvS+Dygw==", | |
| 5634 | - "dependencies": { | |
| 5635 | - "type-func": "^1.0.1" | |
| 5636 | - } | |
| 5637 | - }, | |
| 5638 | 5516 | "node_modules/cross-spawn": { |
| 5639 | 5517 | "version": "6.0.6", |
| 5640 | 5518 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", |
| ... | ... | @@ -5660,14 +5538,6 @@ |
| 5660 | 5538 | "semver": "bin/semver" |
| 5661 | 5539 | } |
| 5662 | 5540 | }, |
| 5663 | - "node_modules/crossvent": { | |
| 5664 | - "version": "1.5.5", | |
| 5665 | - "resolved": "https://registry.npmjs.org/crossvent/-/crossvent-1.5.5.tgz", | |
| 5666 | - "integrity": "sha512-MY4xhBYEnVi+pmTpHCOCsCLYczc0PVtGdPBz6NXNXxikLaUZo4HdAeUb1UqAo3t3yXAloSelTmfxJ+/oUqkW5w==", | |
| 5667 | - "dependencies": { | |
| 5668 | - "custom-event": "^1.0.0" | |
| 5669 | - } | |
| 5670 | - }, | |
| 5671 | 5541 | "node_modules/crypto-browserify": { |
| 5672 | 5542 | "version": "3.12.1", |
| 5673 | 5543 | "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", |
| ... | ... | @@ -5963,16 +5833,6 @@ |
| 5963 | 5833 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", |
| 5964 | 5834 | "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" |
| 5965 | 5835 | }, |
| 5966 | - "node_modules/custom-event": { | |
| 5967 | - "version": "1.0.1", | |
| 5968 | - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", | |
| 5969 | - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==" | |
| 5970 | - }, | |
| 5971 | - "node_modules/custom-event-polyfill": { | |
| 5972 | - "version": "1.0.7", | |
| 5973 | - "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", | |
| 5974 | - "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==" | |
| 5975 | - }, | |
| 5976 | 5836 | "node_modules/cyclist": { |
| 5977 | 5837 | "version": "1.0.2", |
| 5978 | 5838 | "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", |
| ... | ... | @@ -6416,11 +6276,6 @@ |
| 6416 | 6276 | "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", |
| 6417 | 6277 | "dev": true |
| 6418 | 6278 | }, |
| 6419 | - "node_modules/dialog-polyfill": { | |
| 6420 | - "version": "0.5.6", | |
| 6421 | - "resolved": "https://registry.npmjs.org/dialog-polyfill/-/dialog-polyfill-0.5.6.tgz", | |
| 6422 | - "integrity": "sha512-ZbVDJI9uvxPAKze6z146rmfUZjBqNEwcnFTVamQzXH+svluiV7swmVIGr7miwADgfgt1G2JQIytypM9fbyhX4w==" | |
| 6423 | - }, | |
| 6424 | 6279 | "node_modules/diffie-hellman": { |
| 6425 | 6280 | "version": "5.0.3", |
| 6426 | 6281 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", |
| ... | ... | @@ -6487,19 +6342,6 @@ |
| 6487 | 6342 | "node": ">=6.0.0" |
| 6488 | 6343 | } |
| 6489 | 6344 | }, |
| 6490 | - "node_modules/dom-autoscroller": { | |
| 6491 | - "version": "2.3.4", | |
| 6492 | - "resolved": "https://registry.npmjs.org/dom-autoscroller/-/dom-autoscroller-2.3.4.tgz", | |
| 6493 | - "integrity": "sha512-HcAdt/2Dq9x4CG6LWXc2x9Iq0MJPAu8fuzHncclq7byufqYEYVtx9sZ/dyzR+gdj4qwEC9p27Lw1G2HRRYX6jQ==", | |
| 6494 | - "dependencies": { | |
| 6495 | - "animation-frame-polyfill": "^1.0.0", | |
| 6496 | - "create-point-cb": "^1.0.0", | |
| 6497 | - "dom-mousemove-dispatcher": "^1.0.1", | |
| 6498 | - "dom-plane": "^1.0.1", | |
| 6499 | - "dom-set": "^1.0.1", | |
| 6500 | - "type-func": "^1.0.1" | |
| 6501 | - } | |
| 6502 | - }, | |
| 6503 | 6345 | "node_modules/dom-converter": { |
| 6504 | 6346 | "version": "0.2.0", |
| 6505 | 6347 | "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", |
| ... | ... | @@ -6509,19 +6351,6 @@ |
| 6509 | 6351 | "utila": "~0.4" |
| 6510 | 6352 | } |
| 6511 | 6353 | }, |
| 6512 | - "node_modules/dom-mousemove-dispatcher": { | |
| 6513 | - "version": "1.0.1", | |
| 6514 | - "resolved": "https://registry.npmjs.org/dom-mousemove-dispatcher/-/dom-mousemove-dispatcher-1.0.1.tgz", | |
| 6515 | - "integrity": "sha512-NMdqqMbgW8kqOdmod2hkS+9hD/v7h4XoSvwU9qqe+wAA/O+ba0jhpbfW0Kb/fCyR0RX9jf4dwfQrl04LQX4FzQ==" | |
| 6516 | - }, | |
| 6517 | - "node_modules/dom-plane": { | |
| 6518 | - "version": "1.0.2", | |
| 6519 | - "resolved": "https://registry.npmjs.org/dom-plane/-/dom-plane-1.0.2.tgz", | |
| 6520 | - "integrity": "sha512-/tR67G6ZGSciXoZLsD706yLxEXvX3mG/OWE8YNYj3A1yU/RAimtPXzklVTu5Y5xoeMoloA/Y+MaNjQm9apgAww==", | |
| 6521 | - "dependencies": { | |
| 6522 | - "create-point-cb": "^1.0.0" | |
| 6523 | - } | |
| 6524 | - }, | |
| 6525 | 6354 | "node_modules/dom-serializer": { |
| 6526 | 6355 | "version": "1.4.1", |
| 6527 | 6356 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", |
| ... | ... | @@ -6545,16 +6374,6 @@ |
| 6545 | 6374 | "url": "https://github.com/fb55/entities?sponsor=1" |
| 6546 | 6375 | } |
| 6547 | 6376 | }, |
| 6548 | - "node_modules/dom-set": { | |
| 6549 | - "version": "1.1.1", | |
| 6550 | - "resolved": "https://registry.npmjs.org/dom-set/-/dom-set-1.1.1.tgz", | |
| 6551 | - "integrity": "sha512-sUi2aSvRsK3Ixx++gwX9cnaWk9ZxGVFry8+HnTRVmDimybU5PaiI4wX0o00mVtjFKlQNZLmtGoPTLorYbN0+Rw==", | |
| 6552 | - "dependencies": { | |
| 6553 | - "array-from": "^2.1.1", | |
| 6554 | - "is-array": "^1.0.1", | |
| 6555 | - "iselement": "^1.1.4" | |
| 6556 | - } | |
| 6557 | - }, | |
| 6558 | 6377 | "node_modules/domain-browser": { |
| 6559 | 6378 | "version": "1.2.0", |
| 6560 | 6379 | "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", |
| ... | ... | @@ -6592,14 +6411,6 @@ |
| 6592 | 6411 | "url": "https://github.com/fb55/domhandler?sponsor=1" |
| 6593 | 6412 | } |
| 6594 | 6413 | }, |
| 6595 | - "node_modules/dompurify": { | |
| 6596 | - "version": "3.2.6", | |
| 6597 | - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.6.tgz", | |
| 6598 | - "integrity": "sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==", | |
| 6599 | - "optionalDependencies": { | |
| 6600 | - "@types/trusted-types": "^2.0.7" | |
| 6601 | - } | |
| 6602 | - }, | |
| 6603 | 6414 | "node_modules/domutils": { |
| 6604 | 6415 | "version": "2.8.0", |
| 6605 | 6416 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", |
| ... | ... | @@ -6641,20 +6452,6 @@ |
| 6641 | 6452 | "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", |
| 6642 | 6453 | "dev": true |
| 6643 | 6454 | }, |
| 6644 | - "node_modules/downloadjs": { | |
| 6645 | - "version": "1.4.7", | |
| 6646 | - "resolved": "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz", | |
| 6647 | - "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" | |
| 6648 | - }, | |
| 6649 | - "node_modules/dragula": { | |
| 6650 | - "version": "3.7.3", | |
| 6651 | - "resolved": "https://registry.npmjs.org/dragula/-/dragula-3.7.3.tgz", | |
| 6652 | - "integrity": "sha512-/rRg4zRhcpf81TyDhaHLtXt6sEywdfpv1cRUMeFFy7DuypH2U0WUL0GTdyAQvXegviT4PJK4KuMmOaIDpICseQ==", | |
| 6653 | - "dependencies": { | |
| 6654 | - "contra": "1.9.4", | |
| 6655 | - "crossvent": "1.5.5" | |
| 6656 | - } | |
| 6657 | - }, | |
| 6658 | 6455 | "node_modules/dunder-proto": { |
| 6659 | 6456 | "version": "1.0.1", |
| 6660 | 6457 | "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", |
| ... | ... | @@ -7449,7 +7246,8 @@ |
| 7449 | 7246 | "node_modules/eventemitter3": { |
| 7450 | 7247 | "version": "4.0.7", |
| 7451 | 7248 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", |
| 7452 | - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" | |
| 7249 | + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", | |
| 7250 | + "dev": true | |
| 7453 | 7251 | }, |
| 7454 | 7252 | "node_modules/events": { |
| 7455 | 7253 | "version": "3.3.0", |
| ... | ... | @@ -7769,12 +7567,8 @@ |
| 7769 | 7567 | "node_modules/fast-deep-equal": { |
| 7770 | 7568 | "version": "3.1.3", |
| 7771 | 7569 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", |
| 7772 | - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" | |
| 7773 | - }, | |
| 7774 | - "node_modules/fast-diff": { | |
| 7775 | - "version": "1.3.0", | |
| 7776 | - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", | |
| 7777 | - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==" | |
| 7570 | + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", | |
| 7571 | + "dev": true | |
| 7778 | 7572 | }, |
| 7779 | 7573 | "node_modules/fast-glob": { |
| 7780 | 7574 | "version": "2.2.7", |
| ... | ... | @@ -7793,11 +7587,6 @@ |
| 7793 | 7587 | "node": ">=4.0.0" |
| 7794 | 7588 | } |
| 7795 | 7589 | }, |
| 7796 | - "node_modules/fast-json-patch": { | |
| 7797 | - "version": "3.1.1", | |
| 7798 | - "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.1.tgz", | |
| 7799 | - "integrity": "sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==" | |
| 7800 | - }, | |
| 7801 | 7590 | "node_modules/fast-json-stable-stringify": { |
| 7802 | 7591 | "version": "2.1.0", |
| 7803 | 7592 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", |
| ... | ... | @@ -7822,14 +7611,6 @@ |
| 7822 | 7611 | "node": ">=0.8.0" |
| 7823 | 7612 | } |
| 7824 | 7613 | }, |
| 7825 | - "node_modules/fetch-ponyfill": { | |
| 7826 | - "version": "7.1.0", | |
| 7827 | - "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-7.1.0.tgz", | |
| 7828 | - "integrity": "sha512-FhbbL55dj/qdVO3YNK7ZEkshvj3eQ7EuIGV2I6ic/2YiocvyWv+7jg2s4AyS0wdRU75s3tA8ZxI/xPigb0v5Aw==", | |
| 7829 | - "dependencies": { | |
| 7830 | - "node-fetch": "~2.6.1" | |
| 7831 | - } | |
| 7832 | - }, | |
| 7833 | 7614 | "node_modules/figgy-pudding": { |
| 7834 | 7615 | "version": "3.5.2", |
| 7835 | 7616 | "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", |
| ... | ... | @@ -8130,63 +7911,6 @@ |
| 8130 | 7911 | "node": ">= 0.12" |
| 8131 | 7912 | } |
| 8132 | 7913 | }, |
| 8133 | - "node_modules/formiojs": { | |
| 8134 | - "version": "4.21.7", | |
| 8135 | - "resolved": "https://registry.npmjs.org/formiojs/-/formiojs-4.21.7.tgz", | |
| 8136 | - "integrity": "sha512-DDXPhXABxdEbpyfv0C8SAS6zt92luGFXqe0usPHxSHvlP960GQkhS//WV7TAMrRsjj1WTIqqv3XZha8qTknG3Q==", | |
| 8137 | - "dependencies": { | |
| 8138 | - "@formio/bootstrap3": "2.12.4-rc.1", | |
| 8139 | - "@formio/choices.js": "10.2.1", | |
| 8140 | - "@formio/semantic": "2.6.1", | |
| 8141 | - "@formio/text-mask-addons": "^3.8.0-formio.4", | |
| 8142 | - "@formio/vanilla-text-mask": "^5.1.1-formio.1", | |
| 8143 | - "abortcontroller-polyfill": "^1.7.5", | |
| 8144 | - "autocompleter": "^7.0.1", | |
| 8145 | - "browser-cookies": "^1.2.0", | |
| 8146 | - "browser-md5-file": "^1.1.1", | |
| 8147 | - "compare-versions": "^5.0.1", | |
| 8148 | - "core-js": "^3.26.1", | |
| 8149 | - "custom-event-polyfill": "^1.0.7", | |
| 8150 | - "dialog-polyfill": "^0.5.6", | |
| 8151 | - "dom-autoscroller": "^2.3.4", | |
| 8152 | - "dompurify": "^3.0.5", | |
| 8153 | - "downloadjs": "^1.4.7", | |
| 8154 | - "dragula": "^3.7.3", | |
| 8155 | - "eventemitter3": "^4.0.7", | |
| 8156 | - "fast-deep-equal": "^3.1.3", | |
| 8157 | - "fast-json-patch": "^3.1.1", | |
| 8158 | - "fetch-ponyfill": "^7.1.0", | |
| 8159 | - "i18next": "22.4.12", | |
| 8160 | - "idb": "^7.1.1", | |
| 8161 | - "inputmask": "^5.0.9", | |
| 8162 | - "ismobilejs": "^1.1.1", | |
| 8163 | - "json-logic-js": "^2.0.2", | |
| 8164 | - "jstimezonedetect": "^1.0.7", | |
| 8165 | - "jwt-decode": "^3.1.2", | |
| 8166 | - "lodash": "^4.17.21", | |
| 8167 | - "moment": "^2.29.4", | |
| 8168 | - "moment-timezone": "^0.5.40", | |
| 8169 | - "native-promise-only": "^0.8.1", | |
| 8170 | - "quill": "^2.0.0-dev.3", | |
| 8171 | - "signature_pad": "^4.1.4", | |
| 8172 | - "string-hash": "^1.1.3", | |
| 8173 | - "tippy.js": "^6.3.7", | |
| 8174 | - "uuid": "^9.0.0", | |
| 8175 | - "vanilla-picker": "^2.12.1" | |
| 8176 | - } | |
| 8177 | - }, | |
| 8178 | - "node_modules/formiojs/node_modules/uuid": { | |
| 8179 | - "version": "9.0.1", | |
| 8180 | - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", | |
| 8181 | - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", | |
| 8182 | - "funding": [ | |
| 8183 | - "https://github.com/sponsors/broofa", | |
| 8184 | - "https://github.com/sponsors/ctavan" | |
| 8185 | - ], | |
| 8186 | - "bin": { | |
| 8187 | - "uuid": "dist/bin/uuid" | |
| 8188 | - } | |
| 8189 | - }, | |
| 8190 | 7914 | "node_modules/forwarded": { |
| 8191 | 7915 | "version": "0.2.0", |
| 8192 | 7916 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", |
| ... | ... | @@ -8317,14 +8041,6 @@ |
| 8317 | 8041 | "url": "https://github.com/sponsors/ljharb" |
| 8318 | 8042 | } |
| 8319 | 8043 | }, |
| 8320 | - "node_modules/fuse.js": { | |
| 8321 | - "version": "6.6.2", | |
| 8322 | - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", | |
| 8323 | - "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", | |
| 8324 | - "engines": { | |
| 8325 | - "node": ">=10" | |
| 8326 | - } | |
| 8327 | - }, | |
| 8328 | 8044 | "node_modules/gensync": { |
| 8329 | 8045 | "version": "1.0.0-beta.2", |
| 8330 | 8046 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", |
| ... | ... | @@ -9104,28 +8820,6 @@ |
| 9104 | 8820 | "node": ">=8.12.0" |
| 9105 | 8821 | } |
| 9106 | 8822 | }, |
| 9107 | - "node_modules/i18next": { | |
| 9108 | - "version": "22.4.12", | |
| 9109 | - "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.4.12.tgz", | |
| 9110 | - "integrity": "sha512-2lE+vRXxQ3lGLub1CVbwgO0IfkLHmUSDVOAVdPh22CsxttMXi+35n2qgxh2wZIkKl6t/NMzPfgFPRDiFQOmiCg==", | |
| 9111 | - "funding": [ | |
| 9112 | - { | |
| 9113 | - "type": "individual", | |
| 9114 | - "url": "https://locize.com" | |
| 9115 | - }, | |
| 9116 | - { | |
| 9117 | - "type": "individual", | |
| 9118 | - "url": "https://locize.com/i18next.html" | |
| 9119 | - }, | |
| 9120 | - { | |
| 9121 | - "type": "individual", | |
| 9122 | - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" | |
| 9123 | - } | |
| 9124 | - ], | |
| 9125 | - "dependencies": { | |
| 9126 | - "@babel/runtime": "^7.20.6" | |
| 9127 | - } | |
| 9128 | - }, | |
| 9129 | 8823 | "node_modules/iconv-lite": { |
| 9130 | 8824 | "version": "0.4.24", |
| 9131 | 8825 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", |
| ... | ... | @@ -9150,11 +8844,6 @@ |
| 9150 | 8844 | "node": ">= 6" |
| 9151 | 8845 | } |
| 9152 | 8846 | }, |
| 9153 | - "node_modules/idb": { | |
| 9154 | - "version": "7.1.1", | |
| 9155 | - "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", | |
| 9156 | - "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" | |
| 9157 | - }, | |
| 9158 | 8847 | "node_modules/ieee754": { |
| 9159 | 8848 | "version": "1.2.1", |
| 9160 | 8849 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", |
| ... | ... | @@ -9345,11 +9034,6 @@ |
| 9345 | 9034 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", |
| 9346 | 9035 | "dev": true |
| 9347 | 9036 | }, |
| 9348 | - "node_modules/inputmask": { | |
| 9349 | - "version": "5.0.9", | |
| 9350 | - "resolved": "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9.tgz", | |
| 9351 | - "integrity": "sha512-s0lUfqcEbel+EQXtehXqwCJGShutgieOaIImFKC/r4reYNvX3foyrChl6LOEvaEgxEbesePIrw1Zi2jhZaDZbQ==" | |
| 9352 | - }, | |
| 9353 | 9037 | "node_modules/inquirer": { |
| 9354 | 9038 | "version": "7.3.3", |
| 9355 | 9039 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", |
| ... | ... | @@ -9491,11 +9175,6 @@ |
| 9491 | 9175 | "url": "https://github.com/sponsors/ljharb" |
| 9492 | 9176 | } |
| 9493 | 9177 | }, |
| 9494 | - "node_modules/is-array": { | |
| 9495 | - "version": "1.0.1", | |
| 9496 | - "resolved": "https://registry.npmjs.org/is-array/-/is-array-1.0.1.tgz", | |
| 9497 | - "integrity": "sha512-gxiZ+y/u67AzpeFmAmo4CbtME/bs7J2C++su5zQzvQyaxUqVzkh69DI+jN+KZuSO6JaH6TIIU6M6LhqxMjxEpw==" | |
| 9498 | - }, | |
| 9499 | 9178 | "node_modules/is-array-buffer": { |
| 9500 | 9179 | "version": "3.0.5", |
| 9501 | 9180 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", |
| ... | ... | @@ -10100,22 +9779,12 @@ |
| 10100 | 9779 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", |
| 10101 | 9780 | "dev": true |
| 10102 | 9781 | }, |
| 10103 | - "node_modules/iselement": { | |
| 10104 | - "version": "1.1.4", | |
| 10105 | - "resolved": "https://registry.npmjs.org/iselement/-/iselement-1.1.4.tgz", | |
| 10106 | - "integrity": "sha512-4Q519eWmbHO1pbimiz7H1iJRUHVmAmfh0viSsUD+oAwVO4ntZt7gpf8i8AShVBTyOvRTZNYNBpUxOIvwZR+ffw==" | |
| 10107 | - }, | |
| 10108 | 9782 | "node_modules/isexe": { |
| 10109 | 9783 | "version": "2.0.0", |
| 10110 | 9784 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", |
| 10111 | 9785 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", |
| 10112 | 9786 | "dev": true |
| 10113 | 9787 | }, |
| 10114 | - "node_modules/ismobilejs": { | |
| 10115 | - "version": "1.1.1", | |
| 10116 | - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", | |
| 10117 | - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==" | |
| 10118 | - }, | |
| 10119 | 9788 | "node_modules/isobject": { |
| 10120 | 9789 | "version": "3.0.1", |
| 10121 | 9790 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", |
| ... | ... | @@ -10183,11 +9852,6 @@ |
| 10183 | 9852 | "node": ">=6" |
| 10184 | 9853 | } |
| 10185 | 9854 | }, |
| 10186 | - "node_modules/json-logic-js": { | |
| 10187 | - "version": "2.0.5", | |
| 10188 | - "resolved": "https://registry.npmjs.org/json-logic-js/-/json-logic-js-2.0.5.tgz", | |
| 10189 | - "integrity": "sha512-rTT2+lqcuUmj4DgWfmzupZqQDA64AdmYqizzMPWj3DxGdfFNsxPpcNVSaTj4l8W2tG/+hg7/mQhxjU3aPacO6g==" | |
| 10190 | - }, | |
| 10191 | 9855 | "node_modules/json-parse-better-errors": { |
| 10192 | 9856 | "version": "1.0.2", |
| 10193 | 9857 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", |
| ... | ... | @@ -10260,16 +9924,6 @@ |
| 10260 | 9924 | "node": ">=0.6.0" |
| 10261 | 9925 | } |
| 10262 | 9926 | }, |
| 10263 | - "node_modules/jstimezonedetect": { | |
| 10264 | - "version": "1.0.7", | |
| 10265 | - "resolved": "https://registry.npmjs.org/jstimezonedetect/-/jstimezonedetect-1.0.7.tgz", | |
| 10266 | - "integrity": "sha512-ARADHortktl9IZ1tr4GHwGPIAzgz3mLNCbR/YjWtRtc/O0o634O3NeFlpLjv95EvuDA5dc8z6yfgbS8nUc4zcQ==" | |
| 10267 | - }, | |
| 10268 | - "node_modules/jwt-decode": { | |
| 10269 | - "version": "3.1.2", | |
| 10270 | - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", | |
| 10271 | - "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" | |
| 10272 | - }, | |
| 10273 | 9927 | "node_modules/killable": { |
| 10274 | 9928 | "version": "1.0.1", |
| 10275 | 9929 | "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", |
| ... | ... | @@ -10431,18 +10085,14 @@ |
| 10431 | 10085 | "node_modules/lodash": { |
| 10432 | 10086 | "version": "4.17.21", |
| 10433 | 10087 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", |
| 10434 | - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" | |
| 10088 | + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", | |
| 10089 | + "dev": true | |
| 10435 | 10090 | }, |
| 10436 | 10091 | "node_modules/lodash-es": { |
| 10437 | 10092 | "version": "4.17.21", |
| 10438 | 10093 | "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", |
| 10439 | 10094 | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" |
| 10440 | 10095 | }, |
| 10441 | - "node_modules/lodash.clonedeep": { | |
| 10442 | - "version": "4.5.0", | |
| 10443 | - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", | |
| 10444 | - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" | |
| 10445 | - }, | |
| 10446 | 10096 | "node_modules/lodash.debounce": { |
| 10447 | 10097 | "version": "4.0.8", |
| 10448 | 10098 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", |
| ... | ... | @@ -10455,12 +10105,6 @@ |
| 10455 | 10105 | "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", |
| 10456 | 10106 | "dev": true |
| 10457 | 10107 | }, |
| 10458 | - "node_modules/lodash.isequal": { | |
| 10459 | - "version": "4.5.0", | |
| 10460 | - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", | |
| 10461 | - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", | |
| 10462 | - "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." | |
| 10463 | - }, | |
| 10464 | 10108 | "node_modules/lodash.kebabcase": { |
| 10465 | 10109 | "version": "4.1.1", |
| 10466 | 10110 | "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", |
| ... | ... | @@ -10963,25 +10607,6 @@ |
| 10963 | 10607 | "mkdirp": "bin/cmd.js" |
| 10964 | 10608 | } |
| 10965 | 10609 | }, |
| 10966 | - "node_modules/moment": { | |
| 10967 | - "version": "2.30.1", | |
| 10968 | - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", | |
| 10969 | - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", | |
| 10970 | - "engines": { | |
| 10971 | - "node": "*" | |
| 10972 | - } | |
| 10973 | - }, | |
| 10974 | - "node_modules/moment-timezone": { | |
| 10975 | - "version": "0.5.48", | |
| 10976 | - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.48.tgz", | |
| 10977 | - "integrity": "sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw==", | |
| 10978 | - "dependencies": { | |
| 10979 | - "moment": "^2.29.4" | |
| 10980 | - }, | |
| 10981 | - "engines": { | |
| 10982 | - "node": "*" | |
| 10983 | - } | |
| 10984 | - }, | |
| 10985 | 10610 | "node_modules/move-concurrently": { |
| 10986 | 10611 | "version": "1.0.1", |
| 10987 | 10612 | "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", |
| ... | ... | @@ -11085,11 +10710,6 @@ |
| 11085 | 10710 | "node": ">=0.10.0" |
| 11086 | 10711 | } |
| 11087 | 10712 | }, |
| 11088 | - "node_modules/native-promise-only": { | |
| 11089 | - "version": "0.8.1", | |
| 11090 | - "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", | |
| 11091 | - "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==" | |
| 11092 | - }, | |
| 11093 | 10713 | "node_modules/natural-compare": { |
| 11094 | 10714 | "version": "1.4.0", |
| 11095 | 10715 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", |
| ... | ... | @@ -11133,25 +10753,6 @@ |
| 11133 | 10753 | "dev": true, |
| 11134 | 10754 | "optional": true |
| 11135 | 10755 | }, |
| 11136 | - "node_modules/node-fetch": { | |
| 11137 | - "version": "2.6.13", | |
| 11138 | - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.13.tgz", | |
| 11139 | - "integrity": "sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==", | |
| 11140 | - "dependencies": { | |
| 11141 | - "whatwg-url": "^5.0.0" | |
| 11142 | - }, | |
| 11143 | - "engines": { | |
| 11144 | - "node": "4.x || >=6.0.0" | |
| 11145 | - }, | |
| 11146 | - "peerDependencies": { | |
| 11147 | - "encoding": "^0.1.0" | |
| 11148 | - }, | |
| 11149 | - "peerDependenciesMeta": { | |
| 11150 | - "encoding": { | |
| 11151 | - "optional": true | |
| 11152 | - } | |
| 11153 | - } | |
| 11154 | - }, | |
| 11155 | 10756 | "node_modules/node-forge": { |
| 11156 | 10757 | "version": "0.10.0", |
| 11157 | 10758 | "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", |
| ... | ... | @@ -11879,11 +11480,6 @@ |
| 11879 | 11480 | "no-case": "^2.2.0" |
| 11880 | 11481 | } |
| 11881 | 11482 | }, |
| 11882 | - "node_modules/parchment": { | |
| 11883 | - "version": "3.0.0", | |
| 11884 | - "resolved": "https://registry.npmjs.org/parchment/-/parchment-3.0.0.tgz", | |
| 11885 | - "integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==" | |
| 11886 | - }, | |
| 11887 | 11483 | "node_modules/parent-module": { |
| 11888 | 11484 | "version": "1.0.1", |
| 11889 | 11485 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", |
| ... | ... | @@ -13100,38 +12696,6 @@ |
| 13100 | 12696 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", |
| 13101 | 12697 | "dev": true |
| 13102 | 12698 | }, |
| 13103 | - "node_modules/quill": { | |
| 13104 | - "version": "2.0.3", | |
| 13105 | - "resolved": "https://registry.npmjs.org/quill/-/quill-2.0.3.tgz", | |
| 13106 | - "integrity": "sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==", | |
| 13107 | - "dependencies": { | |
| 13108 | - "eventemitter3": "^5.0.1", | |
| 13109 | - "lodash-es": "^4.17.21", | |
| 13110 | - "parchment": "^3.0.0", | |
| 13111 | - "quill-delta": "^5.1.0" | |
| 13112 | - }, | |
| 13113 | - "engines": { | |
| 13114 | - "npm": ">=8.2.3" | |
| 13115 | - } | |
| 13116 | - }, | |
| 13117 | - "node_modules/quill-delta": { | |
| 13118 | - "version": "5.1.0", | |
| 13119 | - "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-5.1.0.tgz", | |
| 13120 | - "integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==", | |
| 13121 | - "dependencies": { | |
| 13122 | - "fast-diff": "^1.3.0", | |
| 13123 | - "lodash.clonedeep": "^4.5.0", | |
| 13124 | - "lodash.isequal": "^4.5.0" | |
| 13125 | - }, | |
| 13126 | - "engines": { | |
| 13127 | - "node": ">= 12.0.0" | |
| 13128 | - } | |
| 13129 | - }, | |
| 13130 | - "node_modules/quill/node_modules/eventemitter3": { | |
| 13131 | - "version": "5.0.1", | |
| 13132 | - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", | |
| 13133 | - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" | |
| 13134 | - }, | |
| 13135 | 12699 | "node_modules/randombytes": { |
| 13136 | 12700 | "version": "2.1.0", |
| 13137 | 12701 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", |
| ... | ... | @@ -13245,14 +12809,6 @@ |
| 13245 | 12809 | "node": ">=8.10.0" |
| 13246 | 12810 | } |
| 13247 | 12811 | }, |
| 13248 | - "node_modules/redux": { | |
| 13249 | - "version": "4.2.1", | |
| 13250 | - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", | |
| 13251 | - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", | |
| 13252 | - "dependencies": { | |
| 13253 | - "@babel/runtime": "^7.9.2" | |
| 13254 | - } | |
| 13255 | - }, | |
| 13256 | 12812 | "node_modules/reflect.getprototypeof": { |
| 13257 | 12813 | "version": "1.0.10", |
| 13258 | 12814 | "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", |
| ... | ... | @@ -14295,11 +13851,6 @@ |
| 14295 | 13851 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", |
| 14296 | 13852 | "dev": true |
| 14297 | 13853 | }, |
| 14298 | - "node_modules/signature_pad": { | |
| 14299 | - "version": "4.2.0", | |
| 14300 | - "resolved": "https://registry.npmjs.org/signature_pad/-/signature_pad-4.2.0.tgz", | |
| 14301 | - "integrity": "sha512-YLWysmaUBaC5wosAKkgbX7XI+LBv2w5L0QUcI6Jc4moHYzv9BUBJtAyNLpWzHjtjKTeWOH6bfP4a4pzf0UinfQ==" | |
| 14302 | - }, | |
| 14303 | 13854 | "node_modules/simple-swizzle": { |
| 14304 | 13855 | "version": "0.2.2", |
| 14305 | 13856 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", |
| ... | ... | @@ -14635,11 +14186,6 @@ |
| 14635 | 14186 | "deprecated": "See https://github.com/lydell/source-map-url#deprecated", |
| 14636 | 14187 | "dev": true |
| 14637 | 14188 | }, |
| 14638 | - "node_modules/spark-md5": { | |
| 14639 | - "version": "2.0.2", | |
| 14640 | - "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-2.0.2.tgz", | |
| 14641 | - "integrity": "sha512-9WfT+FYBEvlrOOBEs484/zmbtSX4BlGjzXih1qIEWA1yhHbcqgcMHkiwXoWk2Sq1aJjLpcs6ZKV7JxrDNjIlNg==" | |
| 14642 | - }, | |
| 14643 | 14189 | "node_modules/spdx-correct": { |
| 14644 | 14190 | "version": "3.2.0", |
| 14645 | 14191 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", |
| ... | ... | @@ -14888,11 +14434,6 @@ |
| 14888 | 14434 | "safe-buffer": "~5.1.0" |
| 14889 | 14435 | } |
| 14890 | 14436 | }, |
| 14891 | - "node_modules/string-hash": { | |
| 14892 | - "version": "1.1.3", | |
| 14893 | - "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", | |
| 14894 | - "integrity": "sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==" | |
| 14895 | - }, | |
| 14896 | 14437 | "node_modules/string-width": { |
| 14897 | 14438 | "version": "4.2.3", |
| 14898 | 14439 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", |
| ... | ... | @@ -15567,11 +15108,6 @@ |
| 15567 | 15108 | "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", |
| 15568 | 15109 | "dev": true |
| 15569 | 15110 | }, |
| 15570 | - "node_modules/ticky": { | |
| 15571 | - "version": "1.0.1", | |
| 15572 | - "resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz", | |
| 15573 | - "integrity": "sha512-RX35iq/D+lrsqhcPWIazM9ELkjOe30MSeoBHQHSsRwd1YuhJO5ui1K1/R0r7N3mFvbLBs33idw+eR6j+w6i/DA==" | |
| 15574 | - }, | |
| 15575 | 15111 | "node_modules/timers-browserify": { |
| 15576 | 15112 | "version": "2.0.12", |
| 15577 | 15113 | "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", |
| ... | ... | @@ -15595,14 +15131,6 @@ |
| 15595 | 15131 | "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-5.10.7.tgz", |
| 15596 | 15132 | "integrity": "sha512-9UUjaO0R7FxcFo0oxnd1lMs7H+D0Eh+dDVo5hKbVe1a+VB0nit97vOqlinj+YwgoBDt6/DSCUoWqAYlLI8BLYA==" |
| 15597 | 15133 | }, |
| 15598 | - "node_modules/tippy.js": { | |
| 15599 | - "version": "6.3.7", | |
| 15600 | - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", | |
| 15601 | - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", | |
| 15602 | - "dependencies": { | |
| 15603 | - "@popperjs/core": "^2.9.0" | |
| 15604 | - } | |
| 15605 | - }, | |
| 15606 | 15134 | "node_modules/tmp": { |
| 15607 | 15135 | "version": "0.0.33", |
| 15608 | 15136 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", |
| ... | ... | @@ -15701,11 +15229,6 @@ |
| 15701 | 15229 | "node": ">=0.8" |
| 15702 | 15230 | } |
| 15703 | 15231 | }, |
| 15704 | - "node_modules/tr46": { | |
| 15705 | - "version": "0.0.3", | |
| 15706 | - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", | |
| 15707 | - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" | |
| 15708 | - }, | |
| 15709 | 15232 | "node_modules/tryer": { |
| 15710 | 15233 | "version": "1.0.1", |
| 15711 | 15234 | "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", |
| ... | ... | @@ -15780,11 +15303,6 @@ |
| 15780 | 15303 | "url": "https://github.com/sponsors/sindresorhus" |
| 15781 | 15304 | } |
| 15782 | 15305 | }, |
| 15783 | - "node_modules/type-func": { | |
| 15784 | - "version": "1.0.3", | |
| 15785 | - "resolved": "https://registry.npmjs.org/type-func/-/type-func-1.0.3.tgz", | |
| 15786 | - "integrity": "sha512-YA90CUk+i00tWESPNRMahywXhAz+12NLJLKlOWrgHIbqaFXjdZrWstRghaibOW/IxhPjui4SmXxO/03XSGRIjA==" | |
| 15787 | - }, | |
| 15788 | 15306 | "node_modules/type-is": { |
| 15789 | 15307 | "version": "1.6.18", |
| 15790 | 15308 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", |
| ... | ... | @@ -16338,14 +15856,6 @@ |
| 16338 | 15856 | "spdx-expression-parse": "^3.0.0" |
| 16339 | 15857 | } |
| 16340 | 15858 | }, |
| 16341 | - "node_modules/vanilla-picker": { | |
| 16342 | - "version": "2.12.3", | |
| 16343 | - "resolved": "https://registry.npmjs.org/vanilla-picker/-/vanilla-picker-2.12.3.tgz", | |
| 16344 | - "integrity": "sha512-qVkT1E7yMbUsB2mmJNFmaXMWE2hF8ffqzMMwe9zdAikd8u2VfnsVY2HQcOUi2F38bgbxzlJBEdS1UUhOXdF9GQ==", | |
| 16345 | - "dependencies": { | |
| 16346 | - "@sphinxxxx/color-conversion": "^2.2.2" | |
| 16347 | - } | |
| 16348 | - }, | |
| 16349 | 15859 | "node_modules/vary": { |
| 16350 | 15860 | "version": "1.1.2", |
| 16351 | 15861 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", |
| ... | ... | @@ -16903,11 +16413,6 @@ |
| 16903 | 16413 | "defaults": "^1.0.3" |
| 16904 | 16414 | } |
| 16905 | 16415 | }, |
| 16906 | - "node_modules/webidl-conversions": { | |
| 16907 | - "version": "3.0.1", | |
| 16908 | - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", | |
| 16909 | - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" | |
| 16910 | - }, | |
| 16911 | 16416 | "node_modules/webpack": { |
| 16912 | 16417 | "version": "4.47.0", |
| 16913 | 16418 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", |
| ... | ... | @@ -17656,15 +17161,6 @@ |
| 17656 | 17161 | "node": ">=0.8.0" |
| 17657 | 17162 | } |
| 17658 | 17163 | }, |
| 17659 | - "node_modules/whatwg-url": { | |
| 17660 | - "version": "5.0.0", | |
| 17661 | - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", | |
| 17662 | - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", | |
| 17663 | - "dependencies": { | |
| 17664 | - "tr46": "~0.0.3", | |
| 17665 | - "webidl-conversions": "^3.0.0" | |
| 17666 | - } | |
| 17667 | - }, | |
| 17668 | 17164 | "node_modules/which": { |
| 17669 | 17165 | "version": "1.3.1", |
| 17670 | 17166 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ... | ... |
package.json
public/img/logo.png deleted
2.36 KB
public/index.html
| ... | ... | @@ -19,21 +19,19 @@ |
| 19 | 19 | window.scriptLoadErrors.push({ name: scriptName, error: error.message }); |
| 20 | 20 | } |
| 21 | 21 | </script> |
| 22 | - <script src="https://map.qq.com/api/gljs?v=1.exp&key="></script> | |
| 22 | + | |
| 23 | 23 | |
| 24 | 24 | <!-- Qs 库 - 主 CDN --> |
| 25 | 25 | <script src="/js/jessibuca/jessibuca.js"></script> |
| 26 | 26 | <script src="/formjs/js/form-viewer.umd.js"></script> |
| 27 | - | |
| 28 | - | |
| 29 | - | |
| 30 | - <!-- 可以在这里添加更多全局脚本 --> | |
| 31 | 27 | </head> |
| 32 | 28 | <body> |
| 33 | 29 | <noscript> |
| 34 | 30 | <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
| 35 | 31 | </noscript> |
| 36 | 32 | <div id="app"></div> |
| 33 | + <!-- 高德地图 JS API --> | |
| 34 | + <script src="https://webapi.amap.com/maps?v=1.4.15&key=3239bc04f77a5c89b2b5e628da96b6ed"></script> | |
| 37 | 35 | <!-- built files will be auto injected --> |
| 38 | 36 | </body> |
| 39 | 37 | ... | ... |
public/js/vcCore/vc-cn.js
| ... | ... | @@ -3,17 +3,17 @@ |
| 3 | 3 | */ |
| 4 | 4 | (function(window) { |
| 5 | 5 | window.lang = { |
| 6 | - "systemName": "HC小區管理系統", | |
| 7 | - "systemSimpleName": "HC", | |
| 6 | + "systemName": "西荣物业小區管理系統", | |
| 7 | + "systemSimpleName": "西荣物业", | |
| 8 | 8 | "subSystemName": "小區管理系統", |
| 9 | 9 | "companyTeam": "java110團隊", |
| 10 | - "welcome": "歡迎訪問HC小區管理系統", | |
| 10 | + "welcome": "歡迎訪問西荣物业小區管理系統", | |
| 11 | 11 | "signOut": "退出", |
| 12 | 12 | "signIn": "登錄", |
| 13 | 13 | "register": "註冊", |
| 14 | 14 | "moreCommunity": "更多小區", |
| 15 | 15 | "moreMsg": "查看全部消息", |
| 16 | - "title": "HC小區管理系統", | |
| 16 | + "title": "西荣物业小區管理系統", | |
| 17 | 17 | "noAccount": "還沒有賬號?", |
| 18 | 18 | "areyouhasaccount": "已經有賬戶了?", |
| 19 | 19 | "indexContext": { |
| ... | ... | @@ -1265,4 +1265,4 @@ |
| 1265 | 1265 | "chooseQuestionAnswer": { "查询": "查詢", "选择": "選擇", "操作": "操作", "输入问卷信息名称": "輸入問卷資訊名稱", "开始时间": "開始時間", "选择问卷信息": "選擇問卷資訊", "问卷名称": "問卷名稱", "问卷类型": "問卷類型", "备注": "備註", "问卷": "問卷", "结束时间": "結束時間" }, |
| 1266 | 1266 | "addAttrSpec": { "字符串": "字串", "否": "否", "小区属性": "社區屬性", "规格名称": "規格名稱", "说明": "說明", "必填": "必填", "设备属性": "設備屬性", "查询显示": "查詢顯示", "展示": "展示", "是": "是", "值类型": "數值型別", "整数": "整数", "停车场属性": "停車場屬性", "添加属性配置": "新增屬性配置", "属性表": "屬性表", "房屋属性": "房屋屬性", "业主属性": "屋主屬性", "车辆属性": "車輛屬性", "金额": "金額", "规格类型": "規格類型" } |
| 1267 | 1267 | } |
| 1268 | -})(window) | |
| 1269 | 1268 | \ No newline at end of file |
| 1269 | +})(window) | ... | ... |
public/js/vcCore/vc-en.js
| ... | ... | @@ -3,8 +3,8 @@ |
| 3 | 3 | */ |
| 4 | 4 | (function(window) { |
| 5 | 5 | window.lang = { |
| 6 | - "systemName": "HC Community System", | |
| 7 | - "systemSimpleName": "HC", | |
| 6 | + "systemName": "西荣物业 Community System", | |
| 7 | + "systemSimpleName": "西荣物业", | |
| 8 | 8 | "subSystemName": "CommunityManagement", |
| 9 | 9 | "companyTeam": "java110 Round data team", |
| 10 | 10 | "welcome": "welcome community management", |
| ... | ... | @@ -1193,4 +1193,4 @@ |
| 1193 | 1193 | "addAttrSpec": { "必填,请填写说明": "required,please fill in the description", "字符串": " String", "否": "No", "小区属性": "Community Attribute", "规格名称": "Specification Name", "说明": "Description", "必填": "Required", "设备属性": "Equipment attribute", "查询显示": "query display", "展示": "display", "是": "yes", "值类型": "value type", "整数": "Integer", "必填,请填写规格名称": "required,please fill in the specification name", "停车场属性": "parking lot attribute", "添加属性配置": "add attribute configuration", "属性表": "Attribute table", "房屋属性": "House attribute", "业主属性": "Owner attribute", "车辆属性": "Vehicle attribute", "金额": "Amount", "规格类型": "Spec Type" } |
| 1194 | 1194 | } |
| 1195 | 1195 | |
| 1196 | -})(window) | |
| 1197 | 1196 | \ No newline at end of file |
| 1197 | +})(window) | ... | ... |
public/js/vcCore/vc-tibetan.js
| ... | ... | @@ -3,18 +3,18 @@ |
| 3 | 3 | */ |
| 4 | 4 | (function(window) { |
| 5 | 5 | window.lang = { |
| 6 | - "systemName": "HCགཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 7 | - "systemSimpleName": "HC", | |
| 6 | + "systemName": "西荣物业གཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 7 | + "systemSimpleName": "西荣物业", | |
| 8 | 8 | "subSystemName": "གཞིས་ཁུལ་དོ་དམ་མ་ལག", |
| 9 | 9 | "companyTeam": "java110ཚོགས་པ།", |
| 10 | - "welcome": "འཚམས་འདྲིར་ཕེབས་པར་དགའ་བསུ་ཞུ། HCགཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 10 | + "welcome": "འཚམས་འདྲིར་ཕེབས་པར་དགའ་བསུ་ཞུ། 西荣物业གཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 11 | 11 | "signOut": "ཕྱིར་འཐེན།", |
| 12 | 12 | "signIn": "ཐོ་འགོད།", |
| 13 | 13 | "register": "ཐོ་འགོད།", |
| 14 | 14 | "moreCommunity": "སྡེ་ཁུལ་དེ་བས་མང་བ།", |
| 15 | 15 | "moreMsg": "གནས་ཚུལ་ཚང་མར་གཟིགས་པ།", |
| 16 | - "title": "HCགཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 16 | + "title": "西荣物业གཞིས་ཁུལ་དོ་དམ་མ་ལག", | |
| 17 | 17 | "noAccount": "ད་དུང་རྩིས་ཨང་མེད་དམ།", |
| 18 | 18 | "areyouhasaccount": "རྩིས་ཐོ་ཡོད་སོང་ངམ།" |
| 19 | 19 | } |
| 20 | -})(window) | |
| 21 | 20 | \ No newline at end of file |
| 21 | +})(window) | ... | ... |
public/js/vcCore/vc-zh-cn.js
| ... | ... | @@ -3,17 +3,17 @@ |
| 3 | 3 | */ |
| 4 | 4 | (function(window) { |
| 5 | 5 | window.lang = { |
| 6 | - "systemName": "HC", | |
| 7 | - "systemSimpleName": "HC", | |
| 6 | + "systemName": "西荣物业", | |
| 7 | + "systemSimpleName": "西荣物业", | |
| 8 | 8 | "subSystemName": "小区管理系统", |
| 9 | 9 | "companyTeam": "java110团队", |
| 10 | - "welcome": "欢迎访问HC小区管理系统", | |
| 10 | + "welcome": "欢迎访问西荣物业小区管理系统", | |
| 11 | 11 | "signOut": "退出", |
| 12 | 12 | "signIn": "登录", |
| 13 | 13 | "register": "注册", |
| 14 | 14 | "moreCommunity": "更多小区", |
| 15 | 15 | "moreMsg": "查看全部消息", |
| 16 | - "title": "HC小区管理系统", | |
| 16 | + "title": "西荣物业小区管理系统", | |
| 17 | 17 | "noAccount": "还没有账号? ", |
| 18 | 18 | "areyouhasaccount": "已经有账户了?", |
| 19 | 19 | "保存": "保存", |
| ... | ... | @@ -1211,4 +1211,4 @@ |
| 1211 | 1211 | "addAttrSpec": { "字符串": "字符串", "否": "否", "小区属性": "小区属性", "规格名称": "规格名称", "说明": "说明", "必填": "必填", "设备属性": "设备属性", "查询显示": "查询显示", "展示": "展示", "是": "是", "值类型": "值类型", "整数": "整数", "停车场属性": "停车场属性", "添加属性配置": "添加属性配置", "属性表": "属性表", "房屋属性": "房屋属性", "业主属性": "业主属性", "车辆属性": "车辆属性", "金额": "金额", "规格类型": "规格类型" } |
| 1212 | 1212 | |
| 1213 | 1213 | } |
| 1214 | -})(window) | |
| 1215 | 1214 | \ No newline at end of file |
| 1215 | +})(window) | ... | ... |
readme.md
| 1 | -# HC物业管理系统pcweb端(vue2+elementui) | |
| 1 | +# 西荣物业物业管理系统pcweb端(vue2+elementui) | |
| 2 | 2 | |
| 3 | 3 | ## 说明 |
| 4 | - HC小区管理系统是一套saas物业管理的系统,包括 房产、业主、 费用 (可以线上缴费)、报修(可以线上报修)、投诉建议、采购、巡检、停车、门径、道闸、监控、工作流、问卷和公告等功能。 | |
| 4 | + 西荣物业小区管理系统是一套saas物业管理的系统,包括 房产、业主、 费用 (可以线上缴费)、报修(可以线上报修)、投诉建议、采购、巡检、停车、门径、道闸、监控、工作流、问卷和公告等功能。 | |
| 5 | 5 | |
| 6 | 6 | 相关代码:<br/><br/> |
| 7 | 7 | 1、[物业系统前端](https://gitee.com/java110/MicroCommunityWeb) : 物业员工使用电脑端<br/> |
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | |
| 12 | 12 | ## 如何使用 |
| 13 | 13 | |
| 14 | -[操作手册](http://www.homecommunity.cn/pages/hc/addCommunity_cn.html) | |
| 14 | +[操作手册](http://www.homecommunity.cn/pages/西荣物业/addCommunity_cn.html) | |
| 15 | 15 | |
| 16 | 16 | ## 产品 |
| 17 | 17 | |
| ... | ... | @@ -92,4 +92,4 @@ npm install . |
| 92 | 92 | |
| 93 | 93 | 您可以fork 代码后,commit后 pull request合并代码 |
| 94 | 94 | |
| 95 | -联系作者:17797173942(微信号) | |
| 96 | 95 | \ No newline at end of file |
| 96 | +联系作者:17797173942(微信号) | ... | ... |
src/api/community/cityAreaApi.js
| ... | ... | @@ -6,7 +6,7 @@ export function getAreaTree() { |
| 6 | 6 | request({ |
| 7 | 7 | url: '/area.queryAreaTree', |
| 8 | 8 | method: 'get', |
| 9 | - params: { hc: 1.8 } | |
| 9 | + params: { 西荣物业: 1.8 } | |
| 10 | 10 | }).then(response => { |
| 11 | 11 | const res = response.data |
| 12 | 12 | |
| ... | ... | @@ -29,7 +29,7 @@ export function getAreaDetail(params) { |
| 29 | 29 | const res = response.data |
| 30 | 30 | |
| 31 | 31 | resolve(res) |
| 32 | - | |
| 32 | + | |
| 33 | 33 | }).catch(error => { |
| 34 | 34 | reject(error) |
| 35 | 35 | }) |
| ... | ... | @@ -97,4 +97,4 @@ export function deleteArea(data) { |
| 97 | 97 | reject(error) |
| 98 | 98 | }) |
| 99 | 99 | }) |
| 100 | -} | |
| 101 | 100 | \ No newline at end of file |
| 101 | +} | ... | ... |
src/components/inspection/AInspectionRouteMap.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <div id="aInspectionRouteMap" class="map-container"></div> |
| 3 | 3 | </template> |
| 4 | 4 | |
| ... | ... | @@ -10,26 +10,12 @@ export default { |
| 10 | 10 | data() { |
| 11 | 11 | return { |
| 12 | 12 | map: null, |
| 13 | - points: [] | |
| 13 | + points: [], | |
| 14 | + markers: [], | |
| 15 | + polyline: null | |
| 14 | 16 | } |
| 15 | 17 | }, |
| 16 | - async created() { | |
| 17 | - await this.loadQQMapScript() | |
| 18 | - }, | |
| 19 | 18 | methods: { |
| 20 | - loadQQMapScript() { | |
| 21 | - if (window.TMap) { | |
| 22 | - return Promise.resolve(); | |
| 23 | - } | |
| 24 | - | |
| 25 | - return new Promise((resolve, reject) => { | |
| 26 | - const script = document.createElement('script'); | |
| 27 | - script.src = `https://map.qq.com/api/gljs?v=1.exp&key=您的腾讯地图KEY`; | |
| 28 | - script.onload = resolve; | |
| 29 | - script.onerror = reject; | |
| 30 | - document.head.appendChild(script); | |
| 31 | - }); | |
| 32 | - }, | |
| 33 | 19 | async initMap(params) { |
| 34 | 20 | try { |
| 35 | 21 | const { data } = await listAdminInspectionRoutePoints({ |
| ... | ... | @@ -46,32 +32,53 @@ export default { |
| 46 | 32 | initMapView() { |
| 47 | 33 | if (!this.points || this.points.length === 0) return |
| 48 | 34 | |
| 49 | - // 这里需要根据实际地图API实现地图初始化 | |
| 50 | - // 示例代码,需要替换为实际地图API调用 | |
| 51 | - console.log('Initialize map with points:', this.points) | |
| 35 | + this.clearMap() | |
| 52 | 36 | |
| 53 | - // 示例:使用腾讯地图API | |
| 54 | - if (window.TMap) { | |
| 55 | - const center = new window.TMap.LatLng(this.points[0].lat, this.points[0].lng) | |
| 56 | - this.map = new window.TMap.Map(document.getElementById('aInspectionRouteMap'), { | |
| 57 | - center: center, | |
| 58 | - zoom: 17 | |
| 59 | - }) | |
| 37 | + const center = [this.points[0].lng, this.points[0].lat] | |
| 38 | + this.map = new window.AMap.Map(document.getElementById('aInspectionRouteMap'), { | |
| 39 | + center: center, | |
| 40 | + zoom: 17, | |
| 41 | + resizeEnable: true | |
| 42 | + }) | |
| 60 | 43 | |
| 61 | - // 添加标记点 | |
| 62 | - const markers = this.points.map(point => ({ | |
| 63 | - position: new window.TMap.LatLng(point.lat, point.lng), | |
| 64 | - properties: { | |
| 65 | - title: point.inspectionName | |
| 66 | - } | |
| 67 | - })) | |
| 44 | + const path = [] | |
| 45 | + this.points.forEach(point => { | |
| 46 | + const marker = new window.AMap.Marker({ | |
| 47 | + map: this.map, | |
| 48 | + position: [point.lng, point.lat], | |
| 49 | + title: point.inspectionName, | |
| 50 | + icon: new window.AMap.Icon({ | |
| 51 | + size: new window.AMap.Size(25, 35), | |
| 52 | + imageSize: new window.AMap.Size(25, 35), | |
| 53 | + image: '/img/maper.png' | |
| 54 | + }) | |
| 55 | + }) | |
| 56 | + this.markers.push(marker) | |
| 57 | + path.push([point.lng, point.lat]) | |
| 58 | + }) | |
| 68 | 59 | |
| 69 | - new window.TMap.MultiMarker({ | |
| 60 | + if (path.length > 1) { | |
| 61 | + this.polyline = new window.AMap.Polyline({ | |
| 70 | 62 | map: this.map, |
| 71 | - geometries: markers | |
| 63 | + path: path, | |
| 64 | + strokeColor: '#3777FF', | |
| 65 | + strokeWeight: 6, | |
| 66 | + strokeOpacity: 0.8 | |
| 72 | 67 | }) |
| 73 | 68 | } |
| 69 | + }, | |
| 70 | + clearMap() { | |
| 71 | + this.markers.forEach(m => m.setMap(null)) | |
| 72 | + this.markers = [] | |
| 73 | + if (this.polyline) { this.polyline.setMap(null); this.polyline = null } | |
| 74 | + if (this.map) { | |
| 75 | + this.map.destroy() | |
| 76 | + this.map = null | |
| 77 | + } | |
| 74 | 78 | } |
| 79 | + }, | |
| 80 | + beforeDestroy() { | |
| 81 | + this.clearMap() | |
| 75 | 82 | } |
| 76 | 83 | } |
| 77 | 84 | </script> |
| ... | ... | @@ -81,4 +88,4 @@ export default { |
| 81 | 88 | height: 600px; |
| 82 | 89 | width: 100%; |
| 83 | 90 | } |
| 84 | -</style> | |
| 85 | 91 | \ No newline at end of file |
| 92 | +</style> | ... | ... |
src/components/inspection/AInspectionTaskMap.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <div id="aInspectionTaskMap" class="map-container"></div> |
| 3 | 3 | </template> |
| 4 | 4 | |
| ... | ... | @@ -10,13 +10,13 @@ export default { |
| 10 | 10 | data() { |
| 11 | 11 | return { |
| 12 | 12 | map: null, |
| 13 | - points: [] | |
| 13 | + points: [], | |
| 14 | + markers: [] | |
| 14 | 15 | } |
| 15 | 16 | }, |
| 16 | 17 | methods: { |
| 17 | 18 | loadData(params) { |
| 18 | 19 | console.log(params) |
| 19 | - //this.initMap(params) | |
| 20 | 20 | }, |
| 21 | 21 | async initMap(params) { |
| 22 | 22 | try { |
| ... | ... | @@ -35,50 +35,43 @@ export default { |
| 35 | 35 | initMapView() { |
| 36 | 36 | if (!this.points || this.points.length === 0) return |
| 37 | 37 | |
| 38 | - // 这里需要根据实际地图API实现地图初始化 | |
| 39 | - // 示例代码,需要替换为实际地图API调用 | |
| 40 | - console.log('Initialize task map with points:', this.points) | |
| 41 | - | |
| 42 | - // 示例:使用腾讯地图API | |
| 43 | - if (window.TMap) { | |
| 44 | - const center = new window.TMap.LatLng(this.points[0].lat, this.points[0].lng) | |
| 45 | - this.map = new window.TMap.Map(document.getElementById('aInspectionTaskMap'), { | |
| 46 | - center: center, | |
| 47 | - zoom: 17 | |
| 38 | + this.clearMap() | |
| 39 | + | |
| 40 | + const center = [this.points[0].lng, this.points[0].lat] | |
| 41 | + this.map = new window.AMap.Map(document.getElementById('aInspectionTaskMap'), { | |
| 42 | + center: center, | |
| 43 | + zoom: 17, | |
| 44 | + resizeEnable: true | |
| 45 | + }) | |
| 46 | + | |
| 47 | + this.points.forEach(point => { | |
| 48 | + const isDone = point.state === '20200405' | |
| 49 | + const icon = new window.AMap.Icon({ | |
| 50 | + size: new window.AMap.Size(25, 35), | |
| 51 | + imageSize: new window.AMap.Size(25, 35), | |
| 52 | + image: isDone ? '/img/inspection_done.png' : '/img/inspection.png' | |
| 48 | 53 | }) |
| 49 | - | |
| 50 | - // 添加标记点 | |
| 51 | - const markers = this.points.map(point => ({ | |
| 52 | - position: new window.TMap.LatLng(point.lat, point.lng), | |
| 53 | - properties: { | |
| 54 | - title: point.inspectionName, | |
| 55 | - status: point.state | |
| 56 | - } | |
| 57 | - })) | |
| 58 | - | |
| 59 | - new window.TMap.MultiMarker({ | |
| 54 | + | |
| 55 | + const marker = new window.AMap.Marker({ | |
| 60 | 56 | map: this.map, |
| 61 | - styles: { | |
| 62 | - normal: new window.TMap.MarkerStyle({ | |
| 63 | - width: 25, | |
| 64 | - height: 35, | |
| 65 | - src: '/img/inspection.png', | |
| 66 | - anchor: { x: 16, y: 32 } | |
| 67 | - }), | |
| 68 | - done: new window.TMap.MarkerStyle({ | |
| 69 | - width: 25, | |
| 70 | - height: 35, | |
| 71 | - src: '/img/inspection_done.png', | |
| 72 | - anchor: { x: 16, y: 32 } | |
| 73 | - }) | |
| 74 | - }, | |
| 75 | - geometries: markers.map(marker => ({ | |
| 76 | - ...marker, | |
| 77 | - styleId: marker.properties.status === '20200405' ? 'done' : 'normal' | |
| 78 | - })) | |
| 57 | + position: [point.lng, point.lat], | |
| 58 | + title: point.inspectionName, | |
| 59 | + icon: icon | |
| 79 | 60 | }) |
| 61 | + this.markers.push(marker) | |
| 62 | + }) | |
| 63 | + }, | |
| 64 | + clearMap() { | |
| 65 | + this.markers.forEach(m => m.setMap(null)) | |
| 66 | + this.markers = [] | |
| 67 | + if (this.map) { | |
| 68 | + this.map.destroy() | |
| 69 | + this.map = null | |
| 80 | 70 | } |
| 81 | 71 | } |
| 72 | + }, | |
| 73 | + beforeDestroy() { | |
| 74 | + this.clearMap() | |
| 82 | 75 | } |
| 83 | 76 | } |
| 84 | 77 | </script> |
| ... | ... | @@ -88,4 +81,4 @@ export default { |
| 88 | 81 | height: 600px; |
| 89 | 82 | width: 100%; |
| 90 | 83 | } |
| 91 | -</style> | |
| 92 | 84 | \ No newline at end of file |
| 85 | +</style> | ... | ... |
src/components/inspection/addInspectionPoint.vue
| ... | ... | @@ -61,13 +61,13 @@ |
| 61 | 61 | <el-col :span="12"> |
| 62 | 62 | <el-form-item :label="$t('addInspectionPoint.lng')"> |
| 63 | 63 | <el-input v-model="addInspectionPointInfo.lng" :placeholder="$t('addInspectionPoint.placeholder.lng')" |
| 64 | - disabled /> | |
| 64 | + /> | |
| 65 | 65 | </el-form-item> |
| 66 | 66 | </el-col> |
| 67 | 67 | <el-col :span="12"> |
| 68 | 68 | <el-form-item :label="$t('addInspectionPoint.lat')"> |
| 69 | 69 | <el-input v-model="addInspectionPointInfo.lat" :placeholder="$t('addInspectionPoint.placeholder.lat')" |
| 70 | - disabled /> | |
| 70 | + /> | |
| 71 | 71 | </el-form-item> |
| 72 | 72 | </el-col> |
| 73 | 73 | </el-row> | ... | ... |
src/components/inspection/editInspectionPoint.vue
| ... | ... | @@ -60,13 +60,13 @@ |
| 60 | 60 | <el-col :span="12"> |
| 61 | 61 | <el-form-item :label="$t('editInspectionPoint.lng')"> |
| 62 | 62 | <el-input v-model="editInspectionPointInfo.lng" :placeholder="$t('editInspectionPoint.placeholder.lng')" |
| 63 | - disabled /> | |
| 63 | + /> | |
| 64 | 64 | </el-form-item> |
| 65 | 65 | </el-col> |
| 66 | 66 | <el-col :span="12"> |
| 67 | 67 | <el-form-item :label="$t('editInspectionPoint.lat')"> |
| 68 | 68 | <el-input v-model="editInspectionPointInfo.lat" :placeholder="$t('editInspectionPoint.placeholder.lat')" |
| 69 | - disabled /> | |
| 69 | + /> | |
| 70 | 70 | </el-form-item> |
| 71 | 71 | </el-col> |
| 72 | 72 | </el-row> | ... | ... |
src/components/inspection/inspectionRouteMap.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <div class="inspection-route-map-container"> |
| 3 | 3 | <div id="inspectionRouteMap" style="width: 100%; height: 600px;"></div> |
| 4 | 4 | </div> |
| ... | ... | @@ -14,50 +14,32 @@ export default { |
| 14 | 14 | return { |
| 15 | 15 | map: null, |
| 16 | 16 | communityId: '', |
| 17 | - routePoints: [] | |
| 17 | + routePoints: [], | |
| 18 | + markers: [], | |
| 19 | + texts: [], | |
| 20 | + polylines: [] | |
| 18 | 21 | } |
| 19 | 22 | }, |
| 20 | 23 | async mounted() { |
| 21 | 24 | this.communityId = getCommunityId() |
| 22 | - // 延迟初始化地图,确保DOM已经渲染 | |
| 23 | 25 | }, |
| 24 | 26 | methods: { |
| 25 | 27 | loadData(route) { |
| 26 | 28 | this.initMap() |
| 27 | - | |
| 28 | 29 | this.loadRoute(route) |
| 29 | 30 | }, |
| 30 | 31 | |
| 31 | 32 | initMap() { |
| 32 | - // 若已有地图或图层,先清理避免重复初始化 | |
| 33 | - if (this.markerLayer) { | |
| 34 | - this.markerLayer.setMap(null) | |
| 35 | - this.markerLayer = null | |
| 36 | - } | |
| 37 | - if (this.labelLayer) { | |
| 38 | - this.labelLayer.setMap(null) | |
| 39 | - this.labelLayer = null | |
| 40 | - } | |
| 41 | - if (this.polylineLayer) { | |
| 42 | - this.polylineLayer.setMap(null) | |
| 43 | - this.polylineLayer = null | |
| 44 | - } | |
| 45 | - if (this.map) { | |
| 46 | - this.map.destroy() | |
| 47 | - this.map = null | |
| 48 | - } | |
| 33 | + this.clearAll() | |
| 49 | 34 | |
| 50 | - // 默认中心点(北京) | |
| 51 | - const center = new window.TMap.LatLng(39.916527, 116.397128) | |
| 35 | + const center = [116.397128, 39.916527] | |
| 36 | + const container = document.getElementById('inspectionRouteMap') | |
| 37 | + if (!container) return | |
| 52 | 38 | |
| 53 | - // 创建地图实例 | |
| 54 | - this.map = new window.TMap.Map(document.getElementById('inspectionRouteMap'), { | |
| 39 | + this.map = new window.AMap.Map(container, { | |
| 55 | 40 | center: center, |
| 56 | 41 | zoom: 13, |
| 57 | - baseMap: { | |
| 58 | - type: 'vector', | |
| 59 | - features: ['base', 'building2d', 'point'] | |
| 60 | - } | |
| 42 | + resizeEnable: true | |
| 61 | 43 | }) |
| 62 | 44 | }, |
| 63 | 45 | |
| ... | ... | @@ -84,101 +66,92 @@ export default { |
| 84 | 66 | addPointsToMap(points) { |
| 85 | 67 | if (!this.map || !points || points.length === 0) return |
| 86 | 68 | |
| 87 | - // 清除之前的标记 | |
| 88 | - if (this.markerLayer) this.markerLayer.setMap(null) | |
| 89 | - if (this.labelLayer) this.labelLayer.setMap(null) | |
| 90 | - if (this.polylineLayer) this.polylineLayer.setMap(null) | |
| 69 | + this.clearOverlays() | |
| 91 | 70 | |
| 92 | - const geometriesMarker = [] | |
| 93 | - const geometriesLabel = [] | |
| 94 | 71 | const path = [] |
| 95 | 72 | |
| 96 | 73 | points.forEach(point => { |
| 97 | 74 | if (!point.lat || !point.lng) return |
| 98 | 75 | |
| 99 | - const position = new window.TMap.LatLng(point.lat, point.lng) | |
| 76 | + const position = [point.lng, point.lat] | |
| 100 | 77 | |
| 101 | - // 添加标记 | |
| 102 | - geometriesMarker.push({ | |
| 103 | - id: point.inspectionId, | |
| 104 | - styleId: 'myStyle', | |
| 105 | - position: position | |
| 78 | + const marker = new window.AMap.Marker({ | |
| 79 | + map: this.map, | |
| 80 | + position: position, | |
| 81 | + icon: new window.AMap.Icon({ | |
| 82 | + size: new window.AMap.Size(25, 35), | |
| 83 | + imageSize: new window.AMap.Size(25, 35), | |
| 84 | + image: '/img/maper.png' | |
| 85 | + }) | |
| 106 | 86 | }) |
| 87 | + this.markers.push(marker) | |
| 107 | 88 | |
| 108 | - // 添加标签 | |
| 109 | - geometriesLabel.push({ | |
| 110 | - id: `label_${point.inspectionId}`, | |
| 111 | - styleId: 'label', | |
| 89 | + const text = new window.AMap.Text({ | |
| 90 | + map: this.map, | |
| 91 | + text: point.inspectionName, | |
| 112 | 92 | position: position, |
| 113 | - content: point.inspectionName | |
| 93 | + offset: new window.AMap.Pixel(0, 15), | |
| 94 | + style: { | |
| 95 | + color: '#3777FF', | |
| 96 | + 'font-size': '12px', | |
| 97 | + 'background-color': 'rgba(255,255,255,0.8)', | |
| 98 | + 'padding': '2px 4px', | |
| 99 | + 'border-radius': '2px' | |
| 100 | + } | |
| 114 | 101 | }) |
| 102 | + this.texts.push(text) | |
| 115 | 103 | |
| 116 | - // 添加路径点 | |
| 117 | 104 | path.push(position) |
| 118 | 105 | }) |
| 119 | 106 | |
| 120 | - // 创建标记图层 | |
| 121 | - this.markerLayer = new window.TMap.MultiMarker({ | |
| 122 | - map: this.map, | |
| 123 | - styles: { | |
| 124 | - "myStyle": new window.TMap.MarkerStyle({ | |
| 125 | - width: 25, | |
| 126 | - height: 35, | |
| 127 | - src: '/img/maper.png', | |
| 128 | - anchor: { x: 32, y: 32 } | |
| 129 | - }) | |
| 130 | - }, | |
| 131 | - geometries: geometriesMarker | |
| 132 | - }) | |
| 133 | - | |
| 134 | - // 创建标签图层 | |
| 135 | - this.labelLayer = new window.TMap.MultiLabel({ | |
| 136 | - map: this.map, | |
| 137 | - styles: { | |
| 138 | - 'label': new window.TMap.LabelStyle({ | |
| 139 | - color: '#3777FF', | |
| 140 | - size: 20, | |
| 141 | - offset: { x: 0, y: 15 }, | |
| 142 | - angle: 0, | |
| 143 | - alignment: 'center', | |
| 144 | - verticalAlignment: 'middle' | |
| 145 | - }) | |
| 146 | - }, | |
| 147 | - geometries: geometriesLabel | |
| 148 | - }) | |
| 149 | - | |
| 150 | - // 创建路径图层 | |
| 151 | - this.polylineLayer = new window.TMap.MultiPolyline({ | |
| 152 | - map: this.map, | |
| 153 | - styles: { | |
| 154 | - 'style_blue': new window.TMap.PolylineStyle({ | |
| 155 | - color: '#3777FF', | |
| 156 | - width: 6, | |
| 157 | - borderWidth: 5, | |
| 158 | - borderColor: '#FFF', | |
| 159 | - lineCap: 'butt' | |
| 160 | - }) | |
| 161 | - }, | |
| 162 | - geometries: [{ | |
| 163 | - id: 'pl_1', | |
| 164 | - styleId: 'style_blue', | |
| 165 | - paths: path | |
| 166 | - }] | |
| 167 | - }) | |
| 107 | + if (path.length > 1) { | |
| 108 | + // 外层(描边) | |
| 109 | + const outerPolyline = new window.AMap.Polyline({ | |
| 110 | + map: this.map, | |
| 111 | + path: path, | |
| 112 | + strokeColor: '#FFF', | |
| 113 | + strokeWeight: 10, | |
| 114 | + strokeOpacity: 1, | |
| 115 | + lineJoin: 'round' | |
| 116 | + }) | |
| 117 | + this.polylines.push(outerPolyline) | |
| 118 | + | |
| 119 | + // 内层(主线) | |
| 120 | + this.polylines.push(new window.AMap.Polyline({ | |
| 121 | + map: this.map, | |
| 122 | + path: path, | |
| 123 | + strokeColor: '#3777FF', | |
| 124 | + strokeWeight: 6, | |
| 125 | + strokeOpacity: 0.9, | |
| 126 | + lineJoin: 'round' | |
| 127 | + })) | |
| 128 | + } | |
| 168 | 129 | |
| 169 | - // 如果有路径点,调整地图中心点和缩放级别 | |
| 170 | 130 | if (path.length > 0) { |
| 171 | 131 | this.map.setCenter(path[0]) |
| 172 | 132 | this.map.setZoom(16) |
| 173 | 133 | } |
| 134 | + }, | |
| 135 | + | |
| 136 | + clearAll() { | |
| 137 | + this.clearOverlays() | |
| 138 | + if (this.map) { | |
| 139 | + this.map.destroy() | |
| 140 | + this.map = null | |
| 141 | + } | |
| 142 | + }, | |
| 143 | + | |
| 144 | + clearOverlays() { | |
| 145 | + this.markers.forEach(m => m.setMap(null)) | |
| 146 | + this.markers = [] | |
| 147 | + this.texts.forEach(t => t.setMap(null)) | |
| 148 | + this.texts = [] | |
| 149 | + this.polylines.forEach(p => p.setMap(null)) | |
| 150 | + this.polylines = [] | |
| 174 | 151 | } |
| 175 | 152 | }, |
| 176 | 153 | beforeDestroy() { |
| 177 | - // 组件销毁时清除地图实例 | |
| 178 | - if (this.map) { | |
| 179 | - this.map.destroy() | |
| 180 | - this.map = null | |
| 181 | - } | |
| 154 | + this.clearAll() | |
| 182 | 155 | } |
| 183 | 156 | } |
| 184 | 157 | </script> |
| ... | ... | @@ -188,4 +161,4 @@ export default { |
| 188 | 161 | width: 100%; |
| 189 | 162 | height: 100%; |
| 190 | 163 | } |
| 191 | -</style> | |
| 192 | 164 | \ No newline at end of file |
| 165 | +</style> | ... | ... |
src/components/inspection/inspectionTaskMap.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <div class="inspection-task-map-container"> |
| 3 | 3 | <div id="inspectionTaskMap" style="width: 100%; height: 600px;"></div> |
| 4 | 4 | </div> |
| ... | ... | @@ -15,53 +15,31 @@ export default { |
| 15 | 15 | map: null, |
| 16 | 16 | communityId: '', |
| 17 | 17 | taskPoints: [], |
| 18 | - markerLayer: null, | |
| 19 | - labelLayer: null, | |
| 20 | - polylineLayer: null | |
| 18 | + markers: [], | |
| 19 | + texts: [], | |
| 20 | + polylines: [] | |
| 21 | 21 | } |
| 22 | 22 | }, |
| 23 | 23 | mounted() { |
| 24 | 24 | this.communityId = getCommunityId() |
| 25 | - // 延迟初始化地图,确保DOM已经渲染 | |
| 26 | 25 | }, |
| 27 | 26 | methods: { |
| 28 | 27 | loadData(task) { |
| 29 | - console.log('loadData',task) | |
| 28 | + console.log('loadData', task) | |
| 30 | 29 | this.initMap() |
| 31 | 30 | this.loadTask(task) |
| 32 | 31 | }, |
| 33 | 32 | initMap() { |
| 34 | - // 若已有地图或图层,先清理避免重复初始化 | |
| 35 | - if (this.markerLayer) { | |
| 36 | - this.markerLayer.setMap(null) | |
| 37 | - this.markerLayer = null | |
| 38 | - } | |
| 39 | - if (this.labelLayer) { | |
| 40 | - this.labelLayer.setMap(null) | |
| 41 | - this.labelLayer = null | |
| 42 | - } | |
| 43 | - if (this.polylineLayer) { | |
| 44 | - this.polylineLayer.setMap(null) | |
| 45 | - this.polylineLayer = null | |
| 46 | - } | |
| 47 | - if (this.map) { | |
| 48 | - this.map.destroy() | |
| 49 | - this.map = null | |
| 50 | - } | |
| 51 | - console.log('initMap',this.map) | |
| 33 | + this.clearAll() | |
| 52 | 34 | |
| 53 | - // 默认中心点(北京) | |
| 54 | - const center = new window.TMap.LatLng(39.916527, 116.397128) | |
| 55 | - console.log('center',center) | |
| 35 | + const center = [116.397128, 39.916527] | |
| 36 | + const container = document.getElementById('inspectionTaskMap') | |
| 37 | + if (!container) return | |
| 56 | 38 | |
| 57 | - // 创建地图实例 | |
| 58 | - this.map = new window.TMap.Map(document.getElementById('inspectionTaskMap'), { | |
| 39 | + this.map = new window.AMap.Map(container, { | |
| 59 | 40 | center: center, |
| 60 | 41 | zoom: 13, |
| 61 | - baseMap: { | |
| 62 | - type: 'vector', | |
| 63 | - features: ['base', 'building2d', 'point'] | |
| 64 | - } | |
| 42 | + resizeEnable: true | |
| 65 | 43 | }) |
| 66 | 44 | }, |
| 67 | 45 | |
| ... | ... | @@ -88,133 +66,98 @@ export default { |
| 88 | 66 | addPointsToMap(points) { |
| 89 | 67 | if (!this.map || !points || points.length === 0) return |
| 90 | 68 | |
| 91 | - // 清除之前的标记 | |
| 92 | - if (this.markerLayer) this.markerLayer.setMap(null) | |
| 93 | - if (this.labelLayer) this.labelLayer.setMap(null) | |
| 94 | - if (this.polylineLayer) this.polylineLayer.setMap(null) | |
| 69 | + this.clearOverlays() | |
| 95 | 70 | |
| 96 | - const geometriesMarker = [] | |
| 97 | - const geometriesLabel = [] | |
| 98 | 71 | const path = [] |
| 99 | 72 | |
| 100 | 73 | points.forEach(point => { |
| 101 | 74 | if (!point.lat || !point.lng) return |
| 102 | 75 | |
| 103 | - const position = new window.TMap.LatLng(point.lat, point.lng) | |
| 76 | + const position = [point.lng, point.lat] | |
| 77 | + const isDone = point.state === '20200405' | |
| 104 | 78 | |
| 105 | - // 确定状态对应的样式 | |
| 106 | - const markerStyle = point.state === '20200405' ? 'myStyle_red' : 'myStyle' | |
| 107 | - const labelStyle = point.state === '20200405' ? 'label_red' : 'label' | |
| 108 | - | |
| 109 | - // 添加标记 | |
| 110 | - geometriesMarker.push({ | |
| 111 | - id: point.inspectionId, | |
| 112 | - styleId: markerStyle, | |
| 113 | - position: position | |
| 79 | + // 标记 | |
| 80 | + const markerIcon = new window.AMap.Icon({ | |
| 81 | + size: new window.AMap.Size(25, 35), | |
| 82 | + imageSize: new window.AMap.Size(25, 35), | |
| 83 | + image: isDone ? '/img/inspection_do.png' : '/img/inspection.png' | |
| 84 | + }) | |
| 85 | + const marker = new window.AMap.Marker({ | |
| 86 | + map: this.map, | |
| 87 | + position: position, | |
| 88 | + icon: markerIcon | |
| 114 | 89 | }) |
| 90 | + this.markers.push(marker) | |
| 115 | 91 | |
| 116 | - // 添加标签 | |
| 117 | - geometriesLabel.push({ | |
| 118 | - id: `label_${point.inspectionId}`, | |
| 119 | - styleId: labelStyle, | |
| 92 | + // 标签 | |
| 93 | + const text = new window.AMap.Text({ | |
| 94 | + map: this.map, | |
| 95 | + text: point.inspectionName, | |
| 120 | 96 | position: position, |
| 121 | - content: point.inspectionName | |
| 97 | + offset: new window.AMap.Pixel(0, 15), | |
| 98 | + style: { | |
| 99 | + color: isDone ? '#CC0000' : '#3777FF', | |
| 100 | + 'font-size': '12px', | |
| 101 | + 'background-color': 'rgba(255,255,255,0.8)', | |
| 102 | + 'padding': '2px 4px', | |
| 103 | + 'border-radius': '2px' | |
| 104 | + } | |
| 122 | 105 | }) |
| 106 | + this.texts.push(text) | |
| 123 | 107 | |
| 124 | - // 添加路径点 | |
| 125 | 108 | path.push(position) |
| 126 | 109 | }) |
| 127 | 110 | |
| 128 | - // 创建标记图层 | |
| 129 | - this.markerLayer = new window.TMap.MultiMarker({ | |
| 130 | - map: this.map, | |
| 131 | - styles: { | |
| 132 | - "myStyle": new window.TMap.MarkerStyle({ | |
| 133 | - width: 25, | |
| 134 | - height: 35, | |
| 135 | - src: '/img/inspection.png', | |
| 136 | - anchor: { x: 32, y: 32 } | |
| 137 | - }), | |
| 138 | - "myStyle_red": new window.TMap.MarkerStyle({ | |
| 139 | - width: 25, | |
| 140 | - height: 35, | |
| 141 | - src: '/img/inspection_do.png', | |
| 142 | - anchor: { x: 32, y: 32 } | |
| 143 | - }) | |
| 144 | - }, | |
| 145 | - geometries: geometriesMarker | |
| 146 | - }) | |
| 147 | - | |
| 148 | - // 创建标签图层 | |
| 149 | - this.labelLayer = new window.TMap.MultiLabel({ | |
| 150 | - map: this.map, | |
| 151 | - styles: { | |
| 152 | - 'label': new window.TMap.LabelStyle({ | |
| 153 | - color: '#3777FF', | |
| 154 | - size: 20, | |
| 155 | - offset: { x: 0, y: 15 }, | |
| 156 | - angle: 0, | |
| 157 | - alignment: 'center', | |
| 158 | - verticalAlignment: 'middle' | |
| 159 | - }), | |
| 160 | - 'label_red': new window.TMap.LabelStyle({ | |
| 161 | - color: '#CC0000', | |
| 162 | - size: 20, | |
| 163 | - offset: { x: 0, y: 15 }, | |
| 164 | - angle: 0, | |
| 165 | - alignment: 'center', | |
| 166 | - verticalAlignment: 'middle' | |
| 167 | - }) | |
| 168 | - }, | |
| 169 | - geometries: geometriesLabel | |
| 170 | - }) | |
| 171 | - | |
| 172 | - // 创建路径图层 | |
| 173 | - this.polylineLayer = new window.TMap.MultiPolyline({ | |
| 174 | - map: this.map, | |
| 175 | - styles: { | |
| 176 | - 'style_blue': new window.TMap.PolylineStyle({ | |
| 177 | - color: '#3777FF', | |
| 178 | - width: 6, | |
| 179 | - borderWidth: 5, | |
| 180 | - borderColor: '#FFF', | |
| 181 | - lineCap: 'butt' | |
| 182 | - }), | |
| 183 | - 'style_red': new window.TMap.PolylineStyle({ | |
| 184 | - color: '#CC0000', | |
| 185 | - width: 6, | |
| 186 | - borderWidth: 5, | |
| 187 | - borderColor: '#FFF', | |
| 188 | - lineCap: 'butt' | |
| 189 | - }) | |
| 190 | - }, | |
| 191 | - geometries: [ | |
| 192 | - { | |
| 193 | - id: 'pl_1', | |
| 194 | - styleId: 'style_blue', | |
| 195 | - paths: path | |
| 196 | - }, | |
| 197 | - { | |
| 198 | - id: 'pl_2', | |
| 199 | - styleId: 'style_red', | |
| 200 | - paths: path | |
| 201 | - } | |
| 202 | - ] | |
| 203 | - }) | |
| 111 | + // 路径 - 双色双层折线模拟描边效果 | |
| 112 | + if (path.length > 1) { | |
| 113 | + // 外层(描边) | |
| 114 | + const outerPolyline = new window.AMap.Polyline({ | |
| 115 | + map: this.map, | |
| 116 | + path: path, | |
| 117 | + strokeColor: '#FFF', | |
| 118 | + strokeWeight: 10, | |
| 119 | + strokeOpacity: 1, | |
| 120 | + lineJoin: 'round' | |
| 121 | + }) | |
| 122 | + this.polylines.push(outerPolyline) | |
| 123 | + | |
| 124 | + // 内层(主线) | |
| 125 | + const innerPolyline = new window.AMap.Polyline({ | |
| 126 | + map: this.map, | |
| 127 | + path: path, | |
| 128 | + strokeColor: '#3777FF', | |
| 129 | + strokeWeight: 6, | |
| 130 | + strokeOpacity: 0.9, | |
| 131 | + lineJoin: 'round' | |
| 132 | + }) | |
| 133 | + this.polylines.push(innerPolyline) | |
| 134 | + } | |
| 204 | 135 | |
| 205 | - // 如果有路径点,调整地图中心点和缩放级别 | |
| 206 | 136 | if (path.length > 0) { |
| 207 | 137 | this.map.setCenter(path[0]) |
| 208 | 138 | this.map.setZoom(16) |
| 209 | 139 | } |
| 140 | + }, | |
| 141 | + | |
| 142 | + clearAll() { | |
| 143 | + this.clearOverlays() | |
| 144 | + if (this.map) { | |
| 145 | + this.map.destroy() | |
| 146 | + this.map = null | |
| 147 | + } | |
| 148 | + }, | |
| 149 | + | |
| 150 | + clearOverlays() { | |
| 151 | + this.markers.forEach(m => m.setMap(null)) | |
| 152 | + this.markers = [] | |
| 153 | + this.texts.forEach(t => t.setMap(null)) | |
| 154 | + this.texts = [] | |
| 155 | + this.polylines.forEach(p => p.setMap(null)) | |
| 156 | + this.polylines = [] | |
| 210 | 157 | } |
| 211 | 158 | }, |
| 212 | 159 | beforeDestroy() { |
| 213 | - // 组件销毁时清除地图实例 | |
| 214 | - if (this.map) { | |
| 215 | - this.map.destroy() | |
| 216 | - this.map = null | |
| 217 | - } | |
| 160 | + this.clearAll() | |
| 218 | 161 | } |
| 219 | 162 | } |
| 220 | 163 | </script> |
| ... | ... | @@ -224,4 +167,4 @@ export default { |
| 224 | 167 | width: 100%; |
| 225 | 168 | height: 100%; |
| 226 | 169 | } |
| 227 | -</style> | |
| 228 | 170 | \ No newline at end of file |
| 171 | +</style> | ... | ... |
src/components/inspection/selectMapPos.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <div class="select-map-pos-container"> |
| 3 | - <div id="selectMap" style="width: 100%; height: 100%;"></div> | |
| 3 | + <div id="selectMap" class="map-view"></div> | |
| 4 | + <div class="map-hint">点击地图选择位置,经纬度将自动填充</div> | |
| 4 | 5 | </div> |
| 5 | 6 | </template> |
| 6 | 7 | |
| ... | ... | @@ -24,118 +25,97 @@ export default { |
| 24 | 25 | return { |
| 25 | 26 | map: null, |
| 26 | 27 | marker: null, |
| 27 | - communityId: '', | |
| 28 | - mapData: { | |
| 29 | - lat: 0, | |
| 30 | - lng: 0 | |
| 31 | - } | |
| 28 | + communityId: '' | |
| 32 | 29 | } |
| 33 | 30 | }, |
| 34 | 31 | mounted() { |
| 35 | 32 | this.communityId = getCommunityId() |
| 36 | - | |
| 37 | 33 | }, |
| 38 | 34 | methods: { |
| 39 | 35 | initMap(_data) { |
| 40 | - // 清除现有地图 | |
| 41 | - let _lng = 116.397128; | |
| 42 | - let _lat = 39.916527; | |
| 36 | + let _lng = 116.397128 | |
| 37 | + let _lat = 39.916527 | |
| 43 | 38 | |
| 44 | - if (_data.lng) { | |
| 45 | - _lng = _data.lng; | |
| 46 | - } | |
| 39 | + if (_data.lng) _lng = _data.lng | |
| 40 | + if (_data.lat) _lat = _data.lat | |
| 47 | 41 | |
| 48 | - if (_data.lat) { | |
| 49 | - _lat = _data.lat; | |
| 50 | - } | |
| 51 | - try { | |
| 52 | - if (this.map) { | |
| 53 | - this.map.destroy(); | |
| 54 | - } | |
| 55 | - } catch (e) { | |
| 56 | - console.log(e) | |
| 42 | + if (this.map) { | |
| 43 | + this.map.destroy() | |
| 44 | + this.map = null | |
| 57 | 45 | } |
| 46 | + this.marker = null | |
| 47 | + | |
| 48 | + const map = new window.AMap.Map('selectMap', { | |
| 49 | + center: [_lng, _lat], | |
| 50 | + zoom: 13, | |
| 51 | + resizeEnable: true | |
| 52 | + }) | |
| 53 | + | |
| 54 | + const _this = this | |
| 55 | + | |
| 56 | + map.on('click', function (ev) { | |
| 57 | + const lng = ev.lnglat.getLng() | |
| 58 | + const lat = ev.lnglat.getLat() | |
| 58 | 59 | |
| 60 | + _this.$emit('position-change', { lat, lng }) | |
| 59 | 61 | |
| 60 | - let addMap = new window.TMap.Map('selectMap', { | |
| 61 | - center: new window.TMap.LatLng(_lat, _lng), | |
| 62 | - zoom: 13 | |
| 63 | - }); | |
| 64 | - // $that.addMapInfo.addMap = addMap; | |
| 65 | - let marker; | |
| 66 | - //添加监听事件 获取鼠标点击事件 | |
| 67 | - let _this = this | |
| 68 | - addMap.on('click', function (event) { | |
| 69 | - console.log(event) | |
| 70 | - if (!marker) { | |
| 71 | - marker = new window.TMap.MultiMarker({ | |
| 72 | - styleId: "marker", | |
| 73 | - position: event.latLng, | |
| 74 | - map: addMap, | |
| 75 | - id: "1", | |
| 76 | - }); | |
| 62 | + if (!_this.marker) { | |
| 63 | + _this.marker = new window.AMap.Marker({ | |
| 64 | + position: [lng, lat], | |
| 65 | + map: map, | |
| 66 | + icon: new window.AMap.Icon({ | |
| 67 | + size: new window.AMap.Size(25, 35), | |
| 68 | + imageSize: new window.AMap.Size(25, 35), | |
| 69 | + image: '/img/maper.png' | |
| 70 | + }) | |
| 71 | + }) | |
| 72 | + } else { | |
| 73 | + _this.marker.setPosition([lng, lat]) | |
| 77 | 74 | } |
| 78 | - console.log(event) | |
| 79 | - //marker.setPosition(event.latLng); | |
| 80 | - _this.$emit('position-change', { | |
| 81 | - lat: event.latLng.lat, | |
| 82 | - lng: event.latLng.lng | |
| 83 | - }) | |
| 75 | + }) | |
| 84 | 76 | |
| 85 | - marker.updateGeometries([ | |
| 86 | - { | |
| 87 | - "styleId": "marker", | |
| 88 | - "id": "1", | |
| 89 | - "position": event.latLng, | |
| 90 | - } | |
| 91 | - ]) | |
| 92 | - }); | |
| 93 | - //为地图注册click事件获取鼠标点击出的经纬度坐标 | |
| 94 | - | |
| 95 | - this.map = addMap; | |
| 77 | + this.map = map | |
| 78 | + | |
| 79 | + // 如果传入了已有坐标,在地图上显示标记 | |
| 80 | + if (_data.lng && _data.lat) { | |
| 81 | + this.marker = new window.AMap.Marker({ | |
| 82 | + map: this.map, | |
| 83 | + position: [_lng, _lat], | |
| 84 | + icon: new window.AMap.Icon({ | |
| 85 | + size: new window.AMap.Size(25, 35), | |
| 86 | + imageSize: new window.AMap.Size(25, 35), | |
| 87 | + image: '/img/maper.png' | |
| 88 | + }) | |
| 89 | + }) | |
| 90 | + } | |
| 96 | 91 | }, |
| 97 | 92 | |
| 98 | - | |
| 99 | 93 | addMarker(position) { |
| 100 | - // 清除现有标记 | |
| 101 | 94 | if (this.marker) { |
| 102 | 95 | this.marker.setMap(null) |
| 96 | + this.marker = null | |
| 103 | 97 | } |
| 104 | 98 | |
| 105 | - // 创建新标记 | |
| 106 | - let TMap = window.TMap | |
| 107 | - | |
| 108 | - this.marker = new TMap.MultiMarker({ | |
| 99 | + this.marker = new window.AMap.Marker({ | |
| 109 | 100 | map: this.map, |
| 110 | - styles: { | |
| 111 | - "marker": new TMap.MarkerStyle({ | |
| 112 | - width: 25, | |
| 113 | - height: 35, | |
| 114 | - src: '/img/maper.png', | |
| 115 | - anchor: { x: 32, y: 32 } | |
| 116 | - }) | |
| 117 | - }, | |
| 118 | - geometries: [{ | |
| 119 | - id: '1', | |
| 120 | - styleId: 'marker', | |
| 121 | - position: position | |
| 122 | - }] | |
| 101 | + position: position, | |
| 102 | + icon: new window.AMap.Icon({ | |
| 103 | + size: new window.AMap.Size(25, 35), | |
| 104 | + imageSize: new window.AMap.Size(25, 35), | |
| 105 | + image: '/img/maper.png' | |
| 106 | + }) | |
| 123 | 107 | }) |
| 124 | 108 | |
| 125 | - // 移动地图中心到标记位置 | |
| 126 | 109 | this.map.setCenter(position) |
| 127 | 110 | this.map.setZoom(16) |
| 128 | 111 | }, |
| 129 | 112 | |
| 130 | 113 | updatePosition(lat, lng) { |
| 131 | 114 | if (!this.map) return |
| 132 | - | |
| 133 | - const position = new window.TMap.LatLng(lat, lng) | |
| 134 | - this.addMarker(position) | |
| 115 | + this.addMarker([lng, lat]) | |
| 135 | 116 | } |
| 136 | 117 | }, |
| 137 | 118 | beforeDestroy() { |
| 138 | - // 组件销毁时清除地图实例 | |
| 139 | 119 | if (this.map) { |
| 140 | 120 | this.map.destroy() |
| 141 | 121 | this.map = null |
| ... | ... | @@ -147,6 +127,16 @@ export default { |
| 147 | 127 | <style scoped> |
| 148 | 128 | .select-map-pos-container { |
| 149 | 129 | width: 100%; |
| 150 | - height: 100%; | |
| 151 | 130 | } |
| 152 | -</style> | |
| 153 | 131 | \ No newline at end of file |
| 132 | +.map-view { | |
| 133 | + width: 100%; | |
| 134 | + height: 400px; | |
| 135 | + border: 1px solid #dcdfe6; | |
| 136 | + border-radius: 4px; | |
| 137 | +} | |
| 138 | +.map-hint { | |
| 139 | + font-size: 12px; | |
| 140 | + color: #909399; | |
| 141 | + margin-top: 6px; | |
| 142 | +} | |
| 143 | +</style> | ... | ... |
src/components/store/InitData.vue
| ... | ... | @@ -68,22 +68,22 @@ export default { |
| 68 | 68 | try { |
| 69 | 69 | // 保存token |
| 70 | 70 | this.$store.dispatch('user/setToken', user.token) |
| 71 | - | |
| 71 | + | |
| 72 | 72 | // 验证是否有店铺 |
| 73 | 73 | await queryStoreByUser({ _uId: 'ccdd00opikookjuhyyttvhnnjuuu' }) |
| 74 | - | |
| 74 | + | |
| 75 | 75 | // 加载权限 |
| 76 | - const { datas } = await queryUserPrivilege({ a: 'HC' }) | |
| 76 | + const { datas } = await queryUserPrivilege({ a: '西荣物业' }) | |
| 77 | 77 | const privileges = datas.map(item => item.pId) |
| 78 | 78 | this.$store.dispatch('user/setPrivileges', privileges) |
| 79 | - | |
| 79 | + | |
| 80 | 80 | // 加载小区信息 |
| 81 | 81 | const { communitys } = await listMyEnteredCommunitys({ |
| 82 | 82 | _uId: 'ccdd00opikookjuhyyttvhnnjuuu', |
| 83 | 83 | page: 1, |
| 84 | 84 | row: 3 |
| 85 | 85 | }) |
| 86 | - | |
| 86 | + | |
| 87 | 87 | if (communitys && communitys.length > 0) { |
| 88 | 88 | this.$store.dispatch('community/setCurrentCommunity', communitys[0]) |
| 89 | 89 | this.$store.dispatch('community/setCommunitys', communitys) |
| ... | ... | @@ -100,4 +100,4 @@ export default { |
| 100 | 100 | this.initData() |
| 101 | 101 | } |
| 102 | 102 | } |
| 103 | -</script> | |
| 104 | 103 | \ No newline at end of file |
| 104 | +</script> | ... | ... |
src/components/system/ViewMap.vue
| 1 | -<template> | |
| 1 | +<template> | |
| 2 | 2 | <el-dialog |
| 3 | 3 | :title="$t('common.map')" |
| 4 | 4 | :visible.sync="viewMapInfo.showMap" |
| ... | ... | @@ -8,7 +8,7 @@ |
| 8 | 8 | :close-on-press-escape="true" |
| 9 | 9 | > |
| 10 | 10 | <div class="map-container"> |
| 11 | - <div id="qqmapcontainer" style="width: 100%; height: 500px; background-color: antiquewhite;"></div> | |
| 11 | + <div id="qqmapcontainer" style="width: 100%; height: 500px;"></div> | |
| 12 | 12 | </div> |
| 13 | 13 | </el-dialog> |
| 14 | 14 | </template> |
| ... | ... | @@ -42,30 +42,23 @@ export default { |
| 42 | 42 | this.$nextTick(() => this.initMap()) |
| 43 | 43 | }, |
| 44 | 44 | initMap() { |
| 45 | - const center = new window.TMap.LatLng(this.viewMapInfo.lat, this.viewMapInfo.lng) | |
| 46 | 45 | const container = document.getElementById('qqmapcontainer') |
| 47 | - this.viewMapInfo.map = new window.TMap.Map(container, { | |
| 48 | - center, | |
| 46 | + if (!container) return | |
| 47 | + | |
| 48 | + this.viewMapInfo.map = new window.AMap.Map(container, { | |
| 49 | + center: [this.viewMapInfo.lng, this.viewMapInfo.lat], | |
| 49 | 50 | zoom: 17.2, |
| 50 | - viewMode: '2D' | |
| 51 | + resizeEnable: true | |
| 51 | 52 | }) |
| 52 | - new window.TMap.MultiMarker({ | |
| 53 | - id: 'marker-layer', | |
| 53 | + | |
| 54 | + new window.AMap.Marker({ | |
| 55 | + position: [this.viewMapInfo.lng, this.viewMapInfo.lat], | |
| 54 | 56 | map: this.viewMapInfo.map, |
| 55 | - styles: { | |
| 56 | - marker: new window.TMap.MarkerStyle({ | |
| 57 | - width: 25, | |
| 58 | - height: 35, | |
| 59 | - anchor: { x: 16, y: 32 }, | |
| 60 | - src: 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png' | |
| 61 | - }) | |
| 62 | - }, | |
| 63 | - geometries: [{ | |
| 64 | - id: 'demo', | |
| 65 | - styleId: 'marker', | |
| 66 | - position: new window.TMap.LatLng(this.viewMapInfo.lat, this.viewMapInfo.lng), | |
| 67 | - properties: { title: 'marker' } | |
| 68 | - }] | |
| 57 | + icon: new window.AMap.Icon({ | |
| 58 | + size: new window.AMap.Size(25, 35), | |
| 59 | + imageSize: new window.AMap.Size(25, 35), | |
| 60 | + image: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_r.png' | |
| 61 | + }) | |
| 69 | 62 | }) |
| 70 | 63 | }, |
| 71 | 64 | closeMap() { |
| ... | ... | @@ -76,7 +69,6 @@ export default { |
| 76 | 69 | } |
| 77 | 70 | }, |
| 78 | 71 | wgs84togcj02(lng, lat) { |
| 79 | - // Placeholder for coordinate conversion | |
| 80 | 72 | return { lon: lng, lat } |
| 81 | 73 | } |
| 82 | 74 | } |
| ... | ... | @@ -88,4 +80,4 @@ export default { |
| 88 | 80 | width: 100%; |
| 89 | 81 | height: 500px; |
| 90 | 82 | } |
| 91 | -</style> | |
| 92 | 83 | \ No newline at end of file |
| 84 | +</style> | ... | ... |
src/router/index.js
| ... | ... | @@ -17,6 +17,7 @@ import systemRouter from './systemRouter' |
| 17 | 17 | import communityRouter from './communityRouter' |
| 18 | 18 | import workRouter from './workRouter' |
| 19 | 19 | import feeRouter from './feeRouter' |
| 20 | +import propertyRouter from './propertyRouter' | |
| 20 | 21 | |
| 21 | 22 | Vue.use(VueRouter) |
| 22 | 23 | |
| ... | ... | @@ -724,6 +725,7 @@ const routes = [ |
| 724 | 725 | ...communityRouter, |
| 725 | 726 | ...workRouter, |
| 726 | 727 | ...feeRouter, |
| 728 | + ...propertyRouter, | |
| 727 | 729 | // 其他子路由可以在这里添加 |
| 728 | 730 | ] |
| 729 | 731 | }, | ... | ... |
src/views/layout/layout.vue
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | <!-- 顶部导航 --> |
| 4 | 4 | <el-header height="60px" class="app-header"> |
| 5 | 5 | <div class="header-left"> |
| 6 | - <div class="logo" @click="_toIndex">{{ systemInfo.systemSimpleTitle }}</div> | |
| 6 | + <div @click="_toIndex">{{ systemInfo.systemSimpleTitle }}</div> | |
| 7 | 7 | <el-menu mode="horizontal" :default-active="activeMenu" class="header-menu" background-color="#1e2132" |
| 8 | 8 | text-color="#fff" active-text-color="#409EFF"> |
| 9 | 9 | <template v-for="(item, index) in catalogs"> |
| ... | ... | @@ -685,4 +685,4 @@ export default { |
| 685 | 685 | bottom: 0; |
| 686 | 686 | width: 100px; |
| 687 | 687 | } |
| 688 | -</style> | |
| 689 | 688 | \ No newline at end of file |
| 689 | +</style> | ... | ... |
src/views/user/login/Login.vue
| 1 | -<template> | |
| 2 | - <div class="login-container"> | |
| 3 | - <div class="login-card"> | |
| 4 | - <div class="login-title" v-if="logo"> | |
| 5 | - <img :src="logo" alt="logo"> | |
| 6 | - </div> | |
| 7 | - <el-form :model="loginForm" :rules="rules" ref="loginForm"> | |
| 8 | - <el-form-item prop="username"> | |
| 9 | - <el-input v-model="loginForm.username" :placeholder="$t('login.usernamePlaceholder')"></el-input> | |
| 10 | - </el-form-item> | |
| 11 | - <el-form-item prop="passwd"> | |
| 12 | - <el-input v-model="loginForm.passwd" type="password" :placeholder="$t('login.passwordPlaceholder')"></el-input> | |
| 13 | - </el-form-item> | |
| 14 | - <el-form-item prop="validateCode" class="captcha-item"> | |
| 15 | - <div class="captcha-container"> | |
| 16 | - <el-input v-model="loginForm.validateCode" :placeholder="$t('login.captchaPlaceholder')"></el-input> | |
| 17 | - <img :src="captchaUrl" @click="refreshCaptcha" class="captcha-img" alt="验证码"> | |
| 1 | +<template> | |
| 2 | + <div class="login-wrapper"> | |
| 3 | + <!-- 左侧品牌面板 --> | |
| 4 | + <div class="login-brand"> | |
| 5 | + <div class="brand-overlay"></div> | |
| 6 | + <div class="brand-content"> | |
| 7 | + <h1 class="brand-title">西荣物业</h1> | |
| 8 | + <p class="brand-subtitle">智慧社区管理平台</p> | |
| 9 | + <div class="brand-features"> | |
| 10 | + <div class="feature-item"> | |
| 11 | + <i class="el-icon-s-home"></i> | |
| 12 | + <span>智能物业管理</span> | |
| 13 | + </div> | |
| 14 | + <div class="feature-item"> | |
| 15 | + <i class="el-icon-s-data"></i> | |
| 16 | + <span>数据驱动决策</span> | |
| 18 | 17 | </div> |
| 19 | - </el-form-item> | |
| 20 | - <el-form-item> | |
| 21 | - <el-button type="primary" @click="submitForm('loginForm')" :loading="loading">{{ $t('login.login') | |
| 22 | - }}</el-button> | |
| 23 | - </el-form-item> | |
| 24 | - </el-form> | |
| 25 | - <!-- Add a white line and copyright info below the form --> | |
| 26 | - <div class="divider"></div> | |
| 27 | - <div class="copyright">©2020-2026 <span v-html="companyName"></span></div> | |
| 18 | + <div class="feature-item"> | |
| 19 | + <i class="el-icon-s-custom"></i> | |
| 20 | + <span>高效社区服务</span> | |
| 21 | + </div> | |
| 22 | + </div> | |
| 23 | + </div> | |
| 24 | + <div class="brand-footer">©2020-2026 <span v-html="companyName"></span></div> | |
| 28 | 25 | </div> |
| 29 | - <select-login-user ref="selectLoginUserRef" @select="handleSelect"></select-login-user> | |
| 26 | + | |
| 27 | + <!-- 右侧登录面板 --> | |
| 28 | + <div class="login-form-panel"> | |
| 29 | + <div class="form-card"> | |
| 30 | + <h2 class="form-title">欢迎登录</h2> | |
| 31 | + <p class="form-desc">请输入您的账号信息</p> | |
| 32 | + | |
| 33 | + <el-form | |
| 34 | + :model="loginForm" | |
| 35 | + :rules="rules" | |
| 36 | + ref="loginForm" | |
| 37 | + class="login-form" | |
| 38 | + @submit.native.prevent | |
| 39 | + > | |
| 40 | + <el-form-item prop="username"> | |
| 41 | + <el-input | |
| 42 | + v-model="loginForm.username" | |
| 43 | + :placeholder="$t('login.usernamePlaceholder')" | |
| 44 | + prefix-icon="el-icon-user" | |
| 45 | + size="medium" | |
| 46 | + /> | |
| 47 | + </el-form-item> | |
| 48 | + | |
| 49 | + <el-form-item prop="passwd"> | |
| 50 | + <el-input | |
| 51 | + v-model="loginForm.passwd" | |
| 52 | + type="password" | |
| 53 | + :placeholder="$t('login.passwordPlaceholder')" | |
| 54 | + prefix-icon="el-icon-lock" | |
| 55 | + size="medium" | |
| 56 | + @keyup.enter.native="submitForm('loginForm')" | |
| 57 | + /> | |
| 58 | + </el-form-item> | |
| 59 | + | |
| 60 | + <el-form-item prop="validateCode"> | |
| 61 | + <div class="captcha-row"> | |
| 62 | + <el-input | |
| 63 | + v-model="loginForm.validateCode" | |
| 64 | + :placeholder="$t('login.captchaPlaceholder')" | |
| 65 | + prefix-icon="el-icon-picture-outline" | |
| 66 | + size="medium" | |
| 67 | + class="captcha-input" | |
| 68 | + @keyup.enter.native="submitForm('loginForm')" | |
| 69 | + /> | |
| 70 | + <img | |
| 71 | + :src="captchaUrl" | |
| 72 | + @click="refreshCaptcha" | |
| 73 | + class="captcha-img" | |
| 74 | + title="点击刷新验证码" | |
| 75 | + alt="验证码" | |
| 76 | + /> | |
| 77 | + </div> | |
| 78 | + </el-form-item> | |
| 79 | + | |
| 80 | + <el-form-item> | |
| 81 | + <el-button | |
| 82 | + type="primary" | |
| 83 | + @click="submitForm('loginForm')" | |
| 84 | + :loading="loading" | |
| 85 | + class="login-btn" | |
| 86 | + size="medium" | |
| 87 | + > | |
| 88 | + {{ loading ? '登录中...' : $t('login.login') }} | |
| 89 | + </el-button> | |
| 90 | + </el-form-item> | |
| 91 | + </el-form> | |
| 92 | + </div> | |
| 93 | + </div> | |
| 94 | + | |
| 95 | + <select-login-user ref="selectLoginUserRef" @select="handleSelect" /> | |
| 30 | 96 | </div> |
| 31 | 97 | </template> |
| 32 | 98 | |
| 33 | 99 | <script> |
| 34 | 100 | import { login, getCaptcha, _loadStaffPrivileges } from '@/api/user/loginApi'; |
| 35 | 101 | import { _loadCommunityInfo } from '@/api/community/communityApi'; |
| 36 | -import {listSystemInfo} from '@/api/system/systemInfoManageApi' | |
| 102 | +import { listSystemInfo } from '@/api/system/systemInfoManageApi'; | |
| 37 | 103 | import selectLoginUser from '@/components/user/selectLoginUser.vue'; |
| 38 | 104 | |
| 39 | - | |
| 40 | 105 | export default { |
| 41 | 106 | name: 'Login', |
| 107 | + components: { selectLoginUser }, | |
| 42 | 108 | data() { |
| 43 | 109 | return { |
| 44 | - logo: '', | |
| 45 | - companyName:'', | |
| 110 | + companyName: '', | |
| 46 | 111 | loginForm: { |
| 47 | 112 | username: '', |
| 48 | 113 | passwd: '', |
| ... | ... | @@ -65,58 +130,54 @@ export default { |
| 65 | 130 | }, |
| 66 | 131 | created() { |
| 67 | 132 | localStorage.clear(); |
| 68 | - this.getSystemInfo() | |
| 133 | + this.getSystemInfo(); | |
| 69 | 134 | setTimeout(() => { |
| 70 | 135 | this.refreshCaptcha(); |
| 71 | 136 | }, 1000); |
| 72 | - | |
| 73 | - }, | |
| 74 | - components: { | |
| 75 | - selectLoginUser | |
| 76 | 137 | }, |
| 77 | 138 | methods: { |
| 78 | 139 | async getSystemInfo() { |
| 79 | - const { data } = await listSystemInfo({ page: 1, row: 1 }); | |
| 80 | - this.logo = data[0].logoUrl | |
| 81 | - this.companyName = data[0].companyName | |
| 140 | + try { | |
| 141 | + const { data } = await listSystemInfo({ page: 1, row: 1 }); | |
| 142 | + this.companyName = data[0].companyName; | |
| 143 | + } catch (e) { | |
| 144 | + console.error('获取系统信息失败', e); | |
| 145 | + } | |
| 82 | 146 | }, |
| 83 | 147 | async submitForm(formName) { |
| 84 | 148 | this.$refs[formName].validate(async (valid) => { |
| 85 | - if (valid) { | |
| 86 | - this.loading = true; | |
| 87 | - try { | |
| 88 | - const { data } = await login(this.loginForm).catch(error => { | |
| 89 | - this.$message.error(error); | |
| 90 | - this.refreshCaptcha(); | |
| 91 | - return { data: [] }; | |
| 92 | - }); | |
| 93 | - if (!data || data.length == 0) { | |
| 94 | - return; | |
| 95 | - } | |
| 96 | - | |
| 97 | - if (data && data.length > 1) { | |
| 98 | - this.$refs.selectLoginUserRef.openDialog(data); | |
| 99 | - return; | |
| 100 | - } | |
| 101 | - this.handleSelect(data[0]); | |
| 102 | - } catch (error) { | |
| 103 | - console.error('登录失败:', error); | |
| 149 | + if (!valid) return false; | |
| 150 | + this.loading = true; | |
| 151 | + try { | |
| 152 | + const { data } = await login(this.loginForm).catch((error) => { | |
| 153 | + this.$message.error(error); | |
| 104 | 154 | this.refreshCaptcha(); |
| 105 | - } finally { | |
| 155 | + return { data: [] }; | |
| 156 | + }); | |
| 157 | + if (!data || data.length === 0) { | |
| 106 | 158 | this.loading = false; |
| 159 | + return; | |
| 107 | 160 | } |
| 108 | - } else { | |
| 109 | - return false; | |
| 161 | + if (data.length > 1) { | |
| 162 | + this.$refs.selectLoginUserRef.openDialog(data); | |
| 163 | + this.loading = false; | |
| 164 | + return; | |
| 165 | + } | |
| 166 | + this.handleSelect(data[0]); | |
| 167 | + } catch (error) { | |
| 168 | + console.error('登录失败:', error); | |
| 169 | + this.refreshCaptcha(); | |
| 170 | + this.loading = false; | |
| 110 | 171 | } |
| 111 | 172 | }); |
| 112 | 173 | }, |
| 113 | 174 | async handleSelect(_userData) { |
| 114 | 175 | localStorage.setItem('token', _userData.token); |
| 115 | - let _user = { | |
| 176 | + const _user = { | |
| 116 | 177 | userId: _userData.userId, |
| 117 | 178 | name: _userData.name, |
| 118 | 179 | tel: _userData.tel |
| 119 | - } | |
| 180 | + }; | |
| 120 | 181 | localStorage.setItem('user', JSON.stringify(_user)); |
| 121 | 182 | await _loadStaffPrivileges(); |
| 122 | 183 | await _loadCommunityInfo(); |
| ... | ... | @@ -125,7 +186,6 @@ export default { |
| 125 | 186 | async refreshCaptcha() { |
| 126 | 187 | try { |
| 127 | 188 | const res = await getCaptcha(); |
| 128 | - console.log(res); | |
| 129 | 189 | this.captchaUrl = res; |
| 130 | 190 | } catch (error) { |
| 131 | 191 | console.error('获取验证码失败:', error); |
| ... | ... | @@ -137,99 +197,279 @@ export default { |
| 137 | 197 | </script> |
| 138 | 198 | |
| 139 | 199 | <style scoped> |
| 140 | -.login-container { | |
| 200 | +.login-wrapper { | |
| 141 | 201 | display: flex; |
| 142 | - justify-content: center; | |
| 143 | - align-items: center; | |
| 144 | 202 | height: 100vh; |
| 145 | - background: url('/img/login-bg_x.png') no-repeat center center; | |
| 146 | - background-size: cover; | |
| 203 | + overflow: hidden; | |
| 204 | + font-family: 'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif; | |
| 205 | +} | |
| 206 | + | |
| 207 | +/* ===== 左侧品牌面板 ===== */ | |
| 208 | +.login-brand { | |
| 209 | + width: 42%; | |
| 147 | 210 | position: relative; |
| 211 | + background: linear-gradient(135deg, #0c2646 0%, #1a4a7a 40%, #1e6eb8 100%); | |
| 212 | + display: flex; | |
| 213 | + flex-direction: column; | |
| 214 | + justify-content: center; | |
| 215 | + align-items: center; | |
| 148 | 216 | overflow: hidden; |
| 149 | 217 | } |
| 150 | 218 | |
| 151 | -.login-card { | |
| 152 | - width: 300px; | |
| 153 | - padding: 20px; | |
| 154 | - background-color: rgba(0, 0, 0, 0.5); | |
| 155 | - border-radius: 4px; | |
| 219 | +.brand-overlay { | |
| 156 | 220 | position: absolute; |
| 157 | - left: 50%; | |
| 158 | - top: 35%; | |
| 159 | - margin: -150px 0 0 -150px; | |
| 160 | - z-index: 99; | |
| 161 | - text-align: center; | |
| 162 | - padding: 30px; | |
| 163 | - box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); | |
| 221 | + inset: 0; | |
| 222 | + background: | |
| 223 | + radial-gradient(ellipse at 20% 50%, rgba(255, 255, 255, 0.06) 0%, transparent 60%), | |
| 224 | + radial-gradient(ellipse at 80% 80%, rgba(30, 159, 255, 0.15) 0%, transparent 50%); | |
| 164 | 225 | } |
| 165 | 226 | |
| 166 | -.login-card .login-title { | |
| 227 | +/* 装饰圆环 */ | |
| 228 | +.login-brand::before { | |
| 229 | + content: ''; | |
| 230 | + position: absolute; | |
| 231 | + width: 600px; | |
| 232 | + height: 600px; | |
| 233 | + border-radius: 50%; | |
| 234 | + border: 1px solid rgba(255, 255, 255, 0.06); | |
| 235 | + top: -200px; | |
| 236 | + right: -200px; | |
| 237 | +} | |
| 238 | + | |
| 239 | +.login-brand::after { | |
| 240 | + content: ''; | |
| 241 | + position: absolute; | |
| 242 | + width: 400px; | |
| 243 | + height: 400px; | |
| 244 | + border-radius: 50%; | |
| 245 | + border: 1px solid rgba(255, 255, 255, 0.04); | |
| 246 | + bottom: -100px; | |
| 247 | + left: -100px; | |
| 248 | +} | |
| 249 | + | |
| 250 | +.brand-content { | |
| 251 | + position: relative; | |
| 252 | + z-index: 2; | |
| 253 | + text-align: center; | |
| 167 | 254 | color: #fff; |
| 255 | + padding: 0 60px; | |
| 256 | +} | |
| 257 | + | |
| 258 | +.brand-title { | |
| 259 | + font-size: 42px; | |
| 260 | + font-weight: 700; | |
| 261 | + letter-spacing: 8px; | |
| 262 | + margin: 0 0 12px 0; | |
| 263 | + text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); | |
| 264 | +} | |
| 265 | + | |
| 266 | +.brand-subtitle { | |
| 267 | + font-size: 16px; | |
| 268 | + font-weight: 300; | |
| 269 | + letter-spacing: 4px; | |
| 270 | + opacity: 0.8; | |
| 271 | + margin: 0 0 48px 0; | |
| 272 | +} | |
| 273 | + | |
| 274 | +.brand-features { | |
| 275 | + display: flex; | |
| 276 | + flex-direction: column; | |
| 277 | + gap: 20px; | |
| 278 | + text-align: left; | |
| 279 | +} | |
| 280 | + | |
| 281 | +.feature-item { | |
| 282 | + display: flex; | |
| 283 | + align-items: center; | |
| 284 | + gap: 14px; | |
| 285 | + font-size: 14px; | |
| 286 | + font-weight: 300; | |
| 287 | + opacity: 0.75; | |
| 288 | + letter-spacing: 1px; | |
| 289 | + transition: opacity 0.3s; | |
| 290 | +} | |
| 291 | + | |
| 292 | +.feature-item:hover { | |
| 293 | + opacity: 1; | |
| 294 | +} | |
| 295 | + | |
| 296 | +.feature-item i { | |
| 297 | + font-size: 20px; | |
| 298 | + width: 36px; | |
| 299 | + height: 36px; | |
| 300 | + line-height: 36px; | |
| 168 | 301 | text-align: center; |
| 169 | - font-size: 48px; | |
| 302 | + background: rgba(255, 255, 255, 0.1); | |
| 303 | + border-radius: 8px; | |
| 304 | + backdrop-filter: blur(4px); | |
| 170 | 305 | } |
| 171 | 306 | |
| 172 | -.el-form-item { | |
| 173 | - margin-bottom: 20px; | |
| 307 | +.brand-footer { | |
| 308 | + position: absolute; | |
| 309 | + bottom: 32px; | |
| 310 | + z-index: 2; | |
| 311 | + color: rgba(255, 255, 255, 0.45); | |
| 312 | + font-size: 12px; | |
| 313 | + letter-spacing: 1px; | |
| 174 | 314 | } |
| 175 | 315 | |
| 176 | -.el-input__inner { | |
| 316 | +/* ===== 右侧登录面板 ===== */ | |
| 317 | +.login-form-panel { | |
| 318 | + flex: 1; | |
| 319 | + display: flex; | |
| 320 | + justify-content: center; | |
| 321 | + align-items: center; | |
| 322 | + background: #f5f7fa; | |
| 323 | + position: relative; | |
| 324 | +} | |
| 325 | + | |
| 326 | +/* 面板装饰 */ | |
| 327 | +.login-form-panel::before { | |
| 328 | + content: ''; | |
| 329 | + position: absolute; | |
| 330 | + top: 60px; | |
| 331 | + right: 80px; | |
| 332 | + width: 120px; | |
| 333 | + height: 120px; | |
| 334 | + background: linear-gradient(135deg, rgba(30, 110, 184, 0.04) 0%, rgba(30, 110, 184, 0.01) 100%); | |
| 335 | + border-radius: 24px; | |
| 336 | + transform: rotate(12deg); | |
| 337 | +} | |
| 338 | + | |
| 339 | +.login-form-panel::after { | |
| 340 | + content: ''; | |
| 341 | + position: absolute; | |
| 342 | + bottom: 80px; | |
| 343 | + left: 60px; | |
| 344 | + width: 80px; | |
| 345 | + height: 80px; | |
| 346 | + background: linear-gradient(135deg, rgba(30, 110, 184, 0.03) 0%, rgba(30, 110, 184, 0.01) 100%); | |
| 347 | + border-radius: 16px; | |
| 348 | + transform: rotate(-8deg); | |
| 349 | +} | |
| 350 | + | |
| 351 | +.form-card { | |
| 352 | + position: relative; | |
| 353 | + z-index: 1; | |
| 354 | + width: 400px; | |
| 355 | + padding: 48px 44px 40px; | |
| 177 | 356 | background: #fff; |
| 178 | - border: none; | |
| 179 | - border-radius: 5px; | |
| 180 | - color: #333; | |
| 181 | - height: 40px; | |
| 357 | + border-radius: 16px; | |
| 358 | + box-shadow: | |
| 359 | + 0 4px 24px rgba(0, 0, 0, 0.04), | |
| 360 | + 0 16px 48px rgba(0, 0, 0, 0.04); | |
| 361 | +} | |
| 362 | + | |
| 363 | +.form-title { | |
| 364 | + font-size: 26px; | |
| 365 | + font-weight: 600; | |
| 366 | + color: #1a1a2e; | |
| 367 | + margin: 0 0 8px 0; | |
| 368 | + letter-spacing: 1px; | |
| 369 | +} | |
| 370 | + | |
| 371 | +.form-desc { | |
| 372 | + font-size: 14px; | |
| 373 | + color: #999; | |
| 374 | + margin: 0 0 36px 0; | |
| 375 | +} | |
| 376 | + | |
| 377 | +.login-form .el-form-item { | |
| 378 | + margin-bottom: 22px; | |
| 379 | +} | |
| 380 | + | |
| 381 | +.login-form >>> .el-input__inner { | |
| 382 | + border: 1px solid #e4e7ed; | |
| 383 | + border-radius: 8px; | |
| 384 | + height: 44px; | |
| 385 | + line-height: 44px; | |
| 386 | + background: #fafbfc; | |
| 387 | + transition: all 0.3s; | |
| 388 | + font-size: 14px; | |
| 389 | +} | |
| 390 | + | |
| 391 | +.login-form >>> .el-input__inner:focus, | |
| 392 | +.login-form >>> .el-input__inner:hover { | |
| 393 | + border-color: #1e6eb8; | |
| 394 | + background: #fff; | |
| 395 | + box-shadow: 0 0 0 3px rgba(30, 110, 184, 0.06); | |
| 396 | +} | |
| 397 | + | |
| 398 | +.login-form >>> .el-input__prefix { | |
| 399 | + color: #b0b8c4; | |
| 400 | + line-height: 44px; | |
| 182 | 401 | } |
| 183 | 402 | |
| 184 | -.captcha-container { | |
| 403 | +.login-form >>> .el-input--prefix .el-input__inner { | |
| 404 | + padding-left: 38px; | |
| 405 | +} | |
| 406 | + | |
| 407 | +.captcha-row { | |
| 185 | 408 | display: flex; |
| 409 | + gap: 12px; | |
| 186 | 410 | align-items: center; |
| 187 | - gap: 10px; | |
| 188 | 411 | } |
| 189 | 412 | |
| 190 | -.captcha-item .el-input { | |
| 191 | - width: 70%; | |
| 192 | - height: 38px; | |
| 193 | - line-height: 1.3; | |
| 194 | - border-width: 1px; | |
| 195 | - border-style: solid; | |
| 196 | - background-color: #fff; | |
| 197 | - border-radius: 2px; | |
| 413 | +.captcha-input { | |
| 414 | + flex: 1; | |
| 198 | 415 | } |
| 199 | 416 | |
| 200 | 417 | .captcha-img { |
| 201 | - height: 40px; | |
| 418 | + height: 44px; | |
| 419 | + width: 120px; | |
| 420 | + border-radius: 8px; | |
| 202 | 421 | cursor: pointer; |
| 203 | - border-radius: 5px; | |
| 422 | + border: 1px solid #e4e7ed; | |
| 423 | + transition: all 0.3s; | |
| 424 | + object-fit: cover; | |
| 425 | +} | |
| 426 | + | |
| 427 | +.captcha-img:hover { | |
| 428 | + border-color: #1e6eb8; | |
| 429 | + box-shadow: 0 0 0 3px rgba(30, 110, 184, 0.08); | |
| 204 | 430 | } |
| 205 | 431 | |
| 206 | -.el-button--primary { | |
| 432 | +.login-btn { | |
| 207 | 433 | width: 100%; |
| 208 | - background: #1E9FFF; | |
| 434 | + height: 46px; | |
| 435 | + border-radius: 8px; | |
| 436 | + font-size: 16px; | |
| 437 | + letter-spacing: 4px; | |
| 209 | 438 | border: none; |
| 210 | - border-radius: 100px; | |
| 211 | - font-size: 14px; | |
| 212 | - height: 38px; | |
| 439 | + background: linear-gradient(135deg, #1e6eb8 0%, #155d9e 100%); | |
| 440 | + transition: all 0.3s; | |
| 441 | + margin-top: 4px; | |
| 213 | 442 | } |
| 214 | 443 | |
| 215 | -.el-button--primary:hover { | |
| 216 | - opacity: 0.8; | |
| 217 | - color: #fff; | |
| 444 | +.login-btn:hover { | |
| 445 | + background: linear-gradient(135deg, #2580cc 0%, #1a6aaf 100%); | |
| 446 | + box-shadow: 0 6px 20px rgba(30, 110, 184, 0.35); | |
| 447 | + transform: translateY(-1px); | |
| 218 | 448 | } |
| 219 | 449 | |
| 220 | -/* Style for the white line */ | |
| 221 | -.divider { | |
| 222 | - width: 100%; | |
| 223 | - height: 1px; | |
| 224 | - background-color: #fff; | |
| 225 | - margin: 10px 0; | |
| 450 | +.login-btn:active { | |
| 451 | + transform: translateY(0); | |
| 226 | 452 | } |
| 227 | 453 | |
| 228 | -/* Style for the copyright text */ | |
| 229 | -.copyright { | |
| 230 | - color: #fff; | |
| 231 | - font-size: 14px; | |
| 232 | - text-align: center; | |
| 233 | - margin-top: 10px; | |
| 454 | +.login-btn.is-loading { | |
| 455 | + background: linear-gradient(135deg, #1e6eb8 0%, #155d9e 100%); | |
| 456 | +} | |
| 457 | + | |
| 458 | +/* ===== 响应式 ===== */ | |
| 459 | +@media (max-width: 768px) { | |
| 460 | + .login-brand { | |
| 461 | + display: none; | |
| 462 | + } | |
| 463 | + | |
| 464 | + .form-card { | |
| 465 | + width: 90%; | |
| 466 | + max-width: 400px; | |
| 467 | + padding: 36px 28px 30px; | |
| 468 | + } | |
| 469 | + | |
| 470 | + .login-form-panel::before, | |
| 471 | + .login-form-panel::after { | |
| 472 | + display: none; | |
| 473 | + } | |
| 234 | 474 | } |
| 235 | -</style> | |
| 236 | 475 | \ No newline at end of file |
| 476 | +</style> | ... | ... |
src/views/user/login/LoginLang.js
| ... | ... | @@ -5,7 +5,7 @@ export const messages = { |
| 5 | 5 | en: { |
| 6 | 6 | ...enLocale, |
| 7 | 7 | login: { |
| 8 | - title: 'HC Smart Community', | |
| 8 | + title: '西荣物业 Smart Community', | |
| 9 | 9 | username: 'Username', |
| 10 | 10 | password: 'Password', |
| 11 | 11 | captcha: 'Verification Code', |
| ... | ... | @@ -23,7 +23,7 @@ export const messages = { |
| 23 | 23 | zh: { |
| 24 | 24 | ...zhLocale, |
| 25 | 25 | login: { |
| 26 | - title: 'HC智慧社区', | |
| 26 | + title: '西荣物业智慧社区', | |
| 27 | 27 | username: '用户名', |
| 28 | 28 | password: '密码', |
| 29 | 29 | captcha: '验证码', |
| ... | ... | @@ -38,4 +38,4 @@ export const messages = { |
| 38 | 38 | relCdName:'角色' |
| 39 | 39 | } |
| 40 | 40 | } |
| 41 | -} | |
| 42 | 41 | \ No newline at end of file |
| 42 | +} | ... | ... |
vue.config.js
| 1 | 1 | module.exports = { |
| 2 | + chainWebpack: config => { | |
| 3 | + config.plugin('html').tap(args => { | |
| 4 | + args[0].title = '西荣物业' | |
| 5 | + return args | |
| 6 | + }) | |
| 7 | + }, | |
| 2 | 8 | devServer: { |
| 3 | 9 | port: 3000, // 设置开发服务器端口 |
| 4 | 10 | open: true, // 自动打开浏览器 |
| 5 | 11 | proxy: { |
| 6 | - '/app': { | |
| 7 | - target: 'https://demo.homecommunity.cn/app', // 后端API地址 | |
| 8 | - changeOrigin: true, | |
| 9 | - pathRewrite: { | |
| 10 | - '^/app': '' | |
| 11 | - } | |
| 12 | - }, | |
| 13 | - '/callComponent': { | |
| 14 | - target: 'https://demo.homecommunity.cn/callComponent', // 后端API地址 | |
| 15 | - changeOrigin: true, | |
| 16 | - pathRewrite: { | |
| 17 | - '^/callComponent': '' | |
| 18 | - } | |
| 19 | - } | |
| 20 | 12 | // '/app': { |
| 21 | - // target: 'http://localhost:8008/app', // 后端API地址 | |
| 13 | + // target: 'https://demo.homecommunity.cn/app', // 后端API地址 | |
| 22 | 14 | // changeOrigin: true, |
| 23 | 15 | // pathRewrite: { |
| 24 | 16 | // '^/app': '' |
| 25 | 17 | // } |
| 26 | 18 | // }, |
| 27 | 19 | // '/callComponent': { |
| 28 | - // target: 'http://localhost:8008/callComponent', // 后端API地址 | |
| 20 | + // target: 'https://demo.homecommunity.cn/callComponent', // 后端API地址 | |
| 29 | 21 | // changeOrigin: true, |
| 30 | 22 | // pathRewrite: { |
| 31 | 23 | // '^/callComponent': '' |
| 32 | 24 | // } |
| 33 | 25 | // } |
| 26 | + '/app': { | |
| 27 | + target: 'http://localhost:8008/app', // 后端API地址 | |
| 28 | + changeOrigin: true, | |
| 29 | + pathRewrite: { | |
| 30 | + '^/app': '' | |
| 31 | + } | |
| 32 | + }, | |
| 33 | + '/callComponent': { | |
| 34 | + target: 'http://localhost:8008/callComponent', // 后端API地址 | |
| 35 | + changeOrigin: true, | |
| 36 | + pathRewrite: { | |
| 37 | + '^/callComponent': '' | |
| 38 | + } | |
| 39 | + } | |
| 34 | 40 | }, |
| 35 | 41 | // 关键:禁止开发服务器对静态资源添加 hash |
| 36 | 42 | historyApiFallback: { |
| ... | ... | @@ -41,4 +47,4 @@ module.exports = { |
| 41 | 47 | ] |
| 42 | 48 | } |
| 43 | 49 | } |
| 44 | -} | |
| 45 | 50 | \ No newline at end of file |
| 51 | +} | ... | ... |