Bladeren bron

💊 修改兼容性问题

快乐的梦鱼 1 maand geleden
bovenliggende
commit
b2b19b728d

+ 4 - 1
pack/manifest.json

@@ -114,7 +114,10 @@
                     "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                     "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>"
-                ]
+                ],
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
+                "minSdkVersion" : 23,
+                "targetSdkVersion" : 25
             },
             /*使用Native.js调用原生安卓API需要使用到的系统权限*/
             "orientation" : [ "portrait-primary" ], /*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/

+ 13 - 223
package-lock.json

@@ -12,10 +12,10 @@
         "@imengyu/js-request-transform": "^0.3.5",
         "@imengyu/vue-scroll-rect": "^0.1.7",
         "@vuemap/vue-amap": "^2.1.16",
-        "ant-design-vue": "^4.2.6",
         "echarts": "^5.6.0",
         "md5": "^2.3.0",
         "pinia": "^3.0.3",
+        "sweetalert2": "^11.22.4",
         "vue": "^3.5.17",
         "vue-echarts": "^7.0.3",
         "vue-router": "^4.5.1",
@@ -53,34 +53,6 @@
         "node": ">=6.0.0"
       }
     },
-    "node_modules/@ant-design/colors": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmmirror.com/@ant-design/colors/-/colors-6.0.0.tgz",
-      "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==",
-      "license": "MIT",
-      "dependencies": {
-        "@ctrl/tinycolor": "^3.4.0"
-      }
-    },
-    "node_modules/@ant-design/icons-svg": {
-      "version": "4.4.2",
-      "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz",
-      "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==",
-      "license": "MIT"
-    },
-    "node_modules/@ant-design/icons-vue": {
-      "version": "7.0.1",
-      "resolved": "https://registry.npmmirror.com/@ant-design/icons-vue/-/icons-vue-7.0.1.tgz",
-      "integrity": "sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==",
-      "license": "MIT",
-      "dependencies": {
-        "@ant-design/colors": "^6.0.0",
-        "@ant-design/icons-svg": "^4.2.1"
-      },
-      "peerDependencies": {
-        "vue": ">=3.0.3"
-      }
-    },
     "node_modules/@antfu/utils": {
       "version": "0.7.10",
       "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz",
@@ -1716,15 +1688,6 @@
       "dev": true,
       "license": "(Apache-2.0 AND BSD-3-Clause)"
     },
-    "node_modules/@ctrl/tinycolor": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
-      "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/@dimforge/rapier3d-compat": {
       "version": "0.12.0",
       "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz",
@@ -1732,18 +1695,6 @@
       "dev": true,
       "license": "Apache-2.0"
     },
-    "node_modules/@emotion/hash": {
-      "version": "0.9.2",
-      "resolved": "https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.2.tgz",
-      "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
-      "license": "MIT"
-    },
-    "node_modules/@emotion/unitless": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz",
-      "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
-      "license": "MIT"
-    },
     "node_modules/@esbuild/aix-ppc64": {
       "version": "0.25.8",
       "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz",
@@ -2601,16 +2552,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/@simonwep/pickr": {
-      "version": "1.8.2",
-      "resolved": "https://registry.npmmirror.com/@simonwep/pickr/-/pickr-1.8.2.tgz",
-      "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==",
-      "license": "MIT",
-      "dependencies": {
-        "core-js": "^3.15.1",
-        "nanopop": "^2.1.0"
-      }
-    },
     "node_modules/@sindresorhus/merge-streams": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
@@ -3205,46 +3146,6 @@
         "url": "https://github.com/chalk/ansi-styles?sponsor=1"
       }
     },
-    "node_modules/ant-design-vue": {
-      "version": "4.2.6",
-      "resolved": "https://registry.npmmirror.com/ant-design-vue/-/ant-design-vue-4.2.6.tgz",
-      "integrity": "sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==",
-      "license": "MIT",
-      "dependencies": {
-        "@ant-design/colors": "^6.0.0",
-        "@ant-design/icons-vue": "^7.0.0",
-        "@babel/runtime": "^7.10.5",
-        "@ctrl/tinycolor": "^3.5.0",
-        "@emotion/hash": "^0.9.0",
-        "@emotion/unitless": "^0.8.0",
-        "@simonwep/pickr": "~1.8.0",
-        "array-tree-filter": "^2.1.0",
-        "async-validator": "^4.0.0",
-        "csstype": "^3.1.1",
-        "dayjs": "^1.10.5",
-        "dom-align": "^1.12.1",
-        "dom-scroll-into-view": "^2.0.0",
-        "lodash": "^4.17.21",
-        "lodash-es": "^4.17.15",
-        "resize-observer-polyfill": "^1.5.1",
-        "scroll-into-view-if-needed": "^2.2.25",
-        "shallow-equal": "^1.0.0",
-        "stylis": "^4.1.3",
-        "throttle-debounce": "^5.0.0",
-        "vue-types": "^3.0.0",
-        "warning": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=12.22.0"
-      },
-      "funding": {
-        "type": "opencollective",
-        "url": "https://opencollective.com/ant-design-vue"
-      },
-      "peerDependencies": {
-        "vue": ">=3.2.0"
-      }
-    },
     "node_modules/anymatch": {
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
@@ -3272,18 +3173,6 @@
         "url": "https://github.com/sponsors/jonschlinkert"
       }
     },
-    "node_modules/array-tree-filter": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
-      "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==",
-      "license": "MIT"
-    },
-    "node_modules/async-validator": {
-      "version": "4.2.5",
-      "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
-      "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==",
-      "license": "MIT"
-    },
     "node_modules/babel-plugin-polyfill-corejs2": {
       "version": "0.4.14",
       "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz",
@@ -3529,12 +3418,6 @@
       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
       "license": "MIT"
     },
-    "node_modules/compute-scroll-into-view": {
-      "version": "1.0.20",
-      "resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
-      "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
-      "license": "MIT"
-    },
     "node_modules/confbox": {
       "version": "0.2.2",
       "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz",
@@ -3568,6 +3451,7 @@
       "version": "3.45.0",
       "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.0.tgz",
       "integrity": "sha512-c2KZL9lP4DjkN3hk/an4pWn5b5ZefhRJnAc42n6LJ19kSnbeRbdQZE5dSeE2LBol1OwJD3X1BQvFTAsa8ReeDA==",
+      "dev": true,
       "hasInstallScript": true,
       "license": "MIT",
       "funding": {
@@ -3716,18 +3600,6 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/dom-align": {
-      "version": "1.12.4",
-      "resolved": "https://registry.npmmirror.com/dom-align/-/dom-align-1.12.4.tgz",
-      "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==",
-      "license": "MIT"
-    },
-    "node_modules/dom-scroll-into-view": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmmirror.com/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
-      "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==",
-      "license": "MIT"
-    },
     "node_modules/earcut": {
       "version": "2.2.4",
       "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz",
@@ -4197,15 +4069,6 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/is-plain-object": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-3.0.1.tgz",
-      "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=0.10.0"
-      }
-    },
     "node_modules/is-stream": {
       "version": "4.0.1",
       "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-4.0.1.tgz",
@@ -4274,6 +4137,7 @@
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
       "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+      "dev": true,
       "license": "MIT"
     },
     "node_modules/jsesc": {
@@ -4350,12 +4214,6 @@
         "url": "https://github.com/sponsors/antfu"
       }
     },
-    "node_modules/lodash": {
-      "version": "4.17.21",
-      "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "license": "MIT"
-    },
     "node_modules/lodash-es": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
@@ -4369,18 +4227,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/loose-envify": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
-      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
-      "license": "MIT",
-      "dependencies": {
-        "js-tokens": "^3.0.0 || ^4.0.0"
-      },
-      "bin": {
-        "loose-envify": "cli.js"
-      }
-    },
     "node_modules/lru-cache": {
       "version": "5.1.1",
       "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -4536,12 +4382,6 @@
         "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
       }
     },
-    "node_modules/nanopop": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmmirror.com/nanopop/-/nanopop-2.4.2.tgz",
-      "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==",
-      "license": "MIT"
-    },
     "node_modules/node-releases": {
       "version": "2.0.19",
       "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz",
@@ -4949,12 +4789,6 @@
         "node": ">=6"
       }
     },
-    "node_modules/resize-observer-polyfill": {
-      "version": "1.5.1",
-      "resolved": "https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
-      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
-      "license": "MIT"
-    },
     "node_modules/resolve": {
       "version": "1.22.10",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
@@ -5364,15 +5198,6 @@
         "node": ">=14.0.0"
       }
     },
-    "node_modules/scroll-into-view-if-needed": {
-      "version": "2.2.31",
-      "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
-      "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
-      "license": "MIT",
-      "dependencies": {
-        "compute-scroll-into-view": "^1.0.20"
-      }
-    },
     "node_modules/semver": {
       "version": "6.3.1",
       "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
@@ -5383,12 +5208,6 @@
         "semver": "bin/semver.js"
       }
     },
-    "node_modules/shallow-equal": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/shallow-equal/-/shallow-equal-1.2.1.tgz",
-      "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==",
-      "license": "MIT"
-    },
     "node_modules/shebang-command": {
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -5513,12 +5332,6 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
-    "node_modules/stylis": {
-      "version": "4.3.6",
-      "resolved": "https://registry.npmmirror.com/stylis/-/stylis-4.3.6.tgz",
-      "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==",
-      "license": "MIT"
-    },
     "node_modules/superjson": {
       "version": "2.2.2",
       "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz",
@@ -5560,6 +5373,16 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/sweetalert2": {
+      "version": "11.22.4",
+      "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.22.4.tgz",
+      "integrity": "sha512-JwcRODfozxiKmspFp+xctZ2izAmLAKbRPcoLMEW7LdugN/YmNrX1LT7hdBW87qsgupEO1ukBBuB17KzKFKW0tg==",
+      "license": "MIT",
+      "funding": {
+        "type": "individual",
+        "url": "https://github.com/sponsors/limonte"
+      }
+    },
     "node_modules/sync-child-process": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/sync-child-process/-/sync-child-process-1.0.2.tgz",
@@ -5610,15 +5433,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/throttle-debounce": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.2.tgz",
-      "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=12.22"
-      }
-    },
     "node_modules/tinyglobby": {
       "version": "0.2.14",
       "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.14.tgz",
@@ -6155,21 +5969,6 @@
         "typescript": ">=5.0.0"
       }
     },
-    "node_modules/vue-types": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/vue-types/-/vue-types-3.0.2.tgz",
-      "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==",
-      "license": "MIT",
-      "dependencies": {
-        "is-plain-object": "3.0.1"
-      },
-      "engines": {
-        "node": ">=10.15.0"
-      },
-      "peerDependencies": {
-        "vue": "^3.0.0"
-      }
-    },
     "node_modules/vue3-carousel": {
       "version": "0.16.0",
       "resolved": "https://registry.npmjs.org/vue3-carousel/-/vue3-carousel-0.16.0.tgz",
@@ -6191,15 +5990,6 @@
         "vue": "^3.2"
       }
     },
-    "node_modules/warning": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmmirror.com/warning/-/warning-4.0.3.tgz",
-      "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
-      "license": "MIT",
-      "dependencies": {
-        "loose-envify": "^1.0.0"
-      }
-    },
     "node_modules/webpack-virtual-modules": {
       "version": "0.6.2",
       "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",

+ 1 - 1
package.json

@@ -15,10 +15,10 @@
     "@imengyu/js-request-transform": "^0.3.5",
     "@imengyu/vue-scroll-rect": "^0.1.7",
     "@vuemap/vue-amap": "^2.1.16",
-    "ant-design-vue": "^4.2.6",
     "echarts": "^5.6.0",
     "md5": "^2.3.0",
     "pinia": "^3.0.3",
+    "sweetalert2": "^11.22.4",
     "vue": "^3.5.17",
     "vue-echarts": "^7.0.3",
     "vue-router": "^4.5.1",

+ 1 - 11
src/App.vue

@@ -1,5 +1,4 @@
 <script setup lang="ts">
-import zhCN from 'ant-design-vue/es/locale/zh_CN';
 import { RouterView } from 'vue-router'
 import { useTvFocusImprovement } from './composeable/TvFocusImprovement';
 
@@ -7,16 +6,7 @@ useTvFocusImprovement(true);
 </script>
 
 <template>
-  <a-config-provider
-    :locale="zhCN"
-    :theme="{
-      token: {
-        colorPrimary: '#bc5f29',
-      },
-    }"
-  >
-    <RouterView />
-  </a-config-provider>
+  <RouterView />
 </template>
 
 <style scoped>

+ 10 - 7
src/api/RequestModules.ts

@@ -18,8 +18,8 @@ import {
   RequestResponse} from "@imengyu/imengyu-utils/dist/request";
 import { appendGetUrlParams, appendPostParams } from "@imengyu/imengyu-utils/dist/request/utils/Utils";
 import type { DataModel, NewDataModel } from "@imengyu/js-request-transform";
-import { Modal } from "ant-design-vue";
 import { StringUtils } from "@imengyu/imengyu-utils";
+import Swal from 'sweetalert2';
 
 /**
  * 不报告错误的 code
@@ -180,9 +180,10 @@ function responseErrReoprtInceptor<T extends DataModel>(instance: RequestCoreIns
 export function reportError<T extends DataModel>(instance: RequestCoreInstance<T>, response: RequestApiError | Error) {
   if (isDev) {
     if (response instanceof RequestApiError) {
-      Modal.error({
+      Swal.fire({
+        icon: 'error',
         title: `请求错误 ${response.apiName} : ${response.errorMessage}`,
-        content: response.toString() +
+        text: response.toString() +
           '\r\n请求接口:' + response.apiName +
           '\r\n请求地址:' + response.apiUrl +
           '\r\n请求参数:' + JSON.stringify(response.rawRequest) +
@@ -191,9 +192,10 @@ export function reportError<T extends DataModel>(instance: RequestCoreInstance<T
           '\r\n信息:' + response.errorCodeMessage,
       });
     } else {
-      Modal.error({
+      Swal.fire({
+        icon: 'error',
         title: '错误报告 代码错误',
-        content: response?.stack || ('' + response),
+        text: response?.stack || ('' + response),
       });
     }
   } else {    
@@ -204,9 +206,10 @@ export function reportError<T extends DataModel>(instance: RequestCoreInstance<T
     errMsg += '服务出现了异常,请稍后重试或联系客服。';
     errMsg += '版本:' + AppCofig.version;
 
-    Modal.error({
+    Swal.fire({
       title: '抱歉',
-      content: errMsg
+      icon: 'error',
+      text: errMsg
     });
 }
 }

+ 2 - 3
src/assets/scss/main.scss

@@ -27,9 +27,8 @@ main {
   background-color: var(--color-light-bg);
 
   button {
-    font-family: nzgrRuyinZouZhangKai-Regular;
-    padding: 12px 24px 12px 24px;
-    font-size: 24px;
+    padding: 0.2rem 0.6rem;
+    font-size: 0.8rem;
     margin: auto;
     cursor: pointer;
     background-color: var(--color-light-bg);

+ 32 - 15
src/components/SimplePageContentLoader.vue

@@ -1,17 +1,16 @@
 <template>
   <div
     v-if="loader?.loadStatus.value == 'loading'"
-    style="height: 200px;display: flex;justify-content: center;align-items: center;"
+    class="loader"
   >
-    <a-spin tip="加载中" />
+    <SimpleLoading />
   </div>
   <div
     v-else-if="loader?.loadStatus.value == 'error'"
-    style="min-height: 200rpx"
+    class="error"
   >
-    <a-empty :description="loader.loadError.value" >
-      <a-button  @click="handleRetry">重试</a-button>
-    </a-empty>
+    <h1>{{ loader.loadError.value }}</h1>
+    <button @click="handleRetry">重试</button>
   </div>
   <template v-else-if="loader?.loadStatus.value == 'finished' || loader?.loadStatus.value == 'nomore'">
     <slot />
@@ -21,20 +20,20 @@
     style="min-height: 200rpx"
     class="empty"
   >
-    <a-empty :description="emptyView?.text ?? '暂无数据'">
-      <a-button
-        v-if="emptyView?.button"
-        @click="emptyView?.buttonClick ?? handleRetry"
-      >
-        {{emptyView?.buttonText ?? '刷新'}}
-      </a-button>
-    </a-empty>
+    <h1>{{ emptyView?.text ?? '暂无数据' }}</h1>
+    <button 
+      v-if="emptyView?.button"
+      @click="emptyView?.buttonClick ?? handleRetry"
+    >
+      {{emptyView?.buttonText ?? '刷新'}}
+    </button>
   </div>
 </template>
 
 <script setup lang="ts">
 import { onMounted, ref, type PropType } from 'vue';
 import type { ILoaderCommon } from '../composeable/LoaderCommon';
+import SimpleLoading from './small/SimpleLoading.vue';
 
 const props = defineProps({	
   loader: {
@@ -77,4 +76,22 @@ function handleLoad() {
   loaded.value = true;
   props.loader.loadData(undefined);
 }
-</script>
+
+</script>
+
+<style lang="scss" scoped>
+.loader {
+  height: 200px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.error, .empty {
+  min-height: 200px;
+  text-align: center;
+
+  h1 {
+    font-size: 0.8rem;
+  }
+}
+</style>

+ 20 - 13
src/components/SimplePageListContentLoader.vue

@@ -4,29 +4,27 @@
       v-if="loader?.loadStatus.value == 'loading'"
       class="full"
     >
-      <a-spin tip="加载中" />
+      <SimpleLoading />
     </div>
     <div
       v-else-if="loader?.loadStatus.value == 'error'"
-      class="full"
+      class="full error"
     >
-      <a-empty :description="loader.loadError.value" >
-        <a-button  @click="handleRetry">重试</a-button>
-      </a-empty>
+      <h1>{{ loader.loadError.value }}</h1>
+      <button @click="handleRetry">重试</button>
     </div>
     <slot></slot>
     <div
       v-if="showEmpty || loader?.loadStatus.value == 'nomore'"
       class="full empty"
     >
-      <a-empty :description="emptyView?.text ?? '暂无数据'">
-        <a-button
-          v-if="emptyView?.button"
-          @click="emptyView?.buttonClick ?? handleRetry"
-        >
-          {{emptyView?.buttonText ?? '刷新'}}
-        </a-button>
-      </a-empty>
+      <h1>{{ emptyView?.text ?? '暂无数据' }}</h1>
+      <button 
+        v-if="emptyView?.button"
+        @click="emptyView?.buttonClick ?? handleRetry"
+      >
+        {{emptyView?.buttonText ?? '刷新'}}
+      </button>
     </div>
   </div>
 </template>
@@ -34,6 +32,7 @@
 <script setup lang="ts">
 import { onMounted, ref, type PropType } from 'vue';
 import type { ILoaderCommon } from '../composeable/LoaderCommon';
+import SimpleLoading from './small/SimpleLoading.vue';
 
 const props = defineProps({	
   loader: {
@@ -91,8 +90,16 @@ function handleLoad() {
   height: 100%;
   z-index: 10;
   display: flex;
+  flex-direction: column;
   justify-content: center;
   align-items: center;
+  min-height: 200px;
+  text-align: center;
+
+  h1 {
+    font-size: 0.8rem;
+  }
 }
 
+
 </style>

+ 4 - 6
src/components/SimplePageListContentPager.vue

@@ -1,12 +1,9 @@
 <template>
   <div class="d-flex flex-row justify-center mt-3 flex-shrink-0">
-    <a-pagination 
+    <Pagination
       v-if="loader.totalPages.value > 1"
-      v-model:current="loader.page.value"
-      :total="loader.total.value"
-      :pageSize="loader.pageSize.value"
-      :showSizeChanger="false"
-      :showQuickJumper="false"
+      v-model:currentPage="loader.page.value"
+      :totalPages="loader.totalPages.value"
     />
   </div>
 </template>
@@ -14,6 +11,7 @@
 <script setup lang="ts">
 import type { PropType } from 'vue';
 import type { ISimplePageListLoader } from '@/composeable/SimplePagerDataLoader';
+import Pagination from './small/Pagination.vue';
 
 const props = defineProps({	
   loader: {

+ 5 - 2
src/components/small/GridList.vue

@@ -28,8 +28,8 @@
 import { nextTick, onMounted, ref, type PropType } from 'vue';
 import Play from '@/assets/images/Home/Play.png';
 import Pause from '@/assets/images/Home/Pause.png';
-import { message } from 'ant-design-vue';
 import AppCofig from '@/common/config/AppCofig';
+import Swal from 'sweetalert2';
 
 interface Item {
   image: string;
@@ -85,7 +85,10 @@ function handleClick(item: Item) {
         props.list.forEach(p => p.playing = false);
         audio.value.src = item.audio;
         audio.value.play().catch(() => {
-          message.error('播放失败');
+          Swal.fire({
+            icon: 'error',
+            title: '播放失败',
+          });
           item.playing = false;
         });
         item.playing = true;

+ 129 - 0
src/components/small/Pagination.vue

@@ -0,0 +1,129 @@
+<template>
+  <!-- 分页组件 -->
+  <div class="pagination">
+    <!-- 上一页按钮 -->
+    <div
+      :class="[
+        'page-button',
+        currentPage > 1 ? 'enable' : ''
+      ]"
+      :tabindex="currentPage > 1 ? 1 : undefined"
+      @click="goToPage(currentPage - 1)"
+    >
+      &lt;
+    </div>
+
+    <!-- 页码按钮 -->
+    <div
+      v-for="page in visiblePages"
+      :key="page"
+      class="page-button enable"
+      :class="{ active: page === currentPage }"
+      :tabindex="page === currentPage ? undefined : 1"
+      @click="goToPage(page)"
+    >
+      {{ page }}
+    </div>
+
+    <!-- 下一页按钮 -->
+    <div
+      :class="[
+        'page-button',
+        currentPage < totalPages ? 'enable' : ''
+      ]"
+      :tabindex="currentPage < totalPages ? 1 : undefined"
+      @click="goToPage(currentPage + 1)"
+    >
+      &gt;
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { computed } from "vue";
+
+const props = defineProps({
+  /**
+   * 当前页码
+   */
+  currentPage: {
+    type: Number,
+    required: true,
+  },
+  /**
+   * 总页数
+   */
+  totalPages: {
+    type: Number,
+    required: true,
+  },
+});
+
+const emit = defineEmits(["update:currentPage"]);
+
+// 计算显示的页码范围
+const visiblePages = computed(() => {
+  const pages = [];
+  const maxPagesToShow = 10; // 最多显示 10 个页码
+  const halfMax = Math.floor(maxPagesToShow / 2);
+
+  // 计算起始页码
+  let startPage = Math.max(1, props.currentPage - halfMax);
+  let endPage = startPage + maxPagesToShow - 1;
+
+  // 如果超出总页数,调整起始页码
+  if (endPage > props.totalPages) {
+    endPage = props.totalPages;
+    startPage = Math.max(1, endPage - maxPagesToShow + 1);
+  }
+
+  for (let i = startPage; i <= endPage; i++) {
+    pages.push(i);
+  }
+
+  return pages;
+});
+
+// 跳转到指定页码
+const goToPage = (page: number) => {
+  if (page >= 1 && page <= props.totalPages) {
+    emit("update:currentPage", page);
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.pagination {
+  display: flex;
+  justify-content: center;
+  gap: 5px;
+  margin-top: 15px;
+}
+.page-button {
+  width: 1.5rem;
+  height: 1.5rem;
+  font-size: 0.9rem;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: var(--color-light-bg);
+  border: 2px solid var(--color-primary);
+  border-radius: 4px;
+  color: var(--color-text);
+  cursor: pointer;
+  opacity: 0.4;
+
+  &:focus {
+    outline: 2px solid var(--color-primary2);
+    transform: scale(1.05);
+  }
+  &.enable {
+    opacity: 1;
+  }
+}
+.page-button.active {
+  background-color: var(--color-primary2);
+  color: var(--color-text-light);
+  border-color: var(--color-primary2);
+}
+</style>

+ 24 - 0
src/components/small/SimpleLoading.vue

@@ -0,0 +1,24 @@
+<template>
+  <div class="simple-loading" />
+</template>
+
+<style>
+.simple-loading {
+
+  width: 30px;
+  height: 30px;
+  border: 2px solid var(--color-primary);
+  border-top-color: transparent;
+  border-radius: 100%;
+  animation: circle infinite 0.75s linear;
+}
+
+@keyframes circle {
+  0% {
+    transform: rotate(0);
+  }
+  100% {
+    transform: rotate(360deg);
+  }
+}
+</style>

+ 1 - 1
src/main.ts

@@ -1,9 +1,9 @@
 import './assets/scss/main.scss'
 import './assets/scss/mengyuu/index.scss'
-import 'ant-design-vue/dist/reset.css';
 import "@vuemap/vue-amap/dist/style.css";
 import '@imengyu/vue-scroll-rect/lib/vue-scroll-rect.css';
 import "vue3-carousel/carousel.css";
+import 'sweetalert2/src/sweetalert2.scss';
 
 import { createApp } from 'vue'
 import { createPinia } from 'pinia'

+ 2 - 1
src/views/Intangible/village/detail.vue

@@ -7,7 +7,7 @@
           class="d-flex justify-content-center align-items-center"
           style="min-height: 200px;"
         >
-          <a-spin tip="加载中" />
+          <SimpleLoading />
         </div>
         <template v-else>
           <!-- 轮播图 -->
@@ -87,6 +87,7 @@ import ImageSwiper from '@/components/small/ImageSwiper.vue';
 import Page from '@/components/parts/Page.vue';
 import SimpleRichHtml from '@/components/SimpleRichHtml.vue';
 import IconMap from '@/assets/images/IconMap.png';
+import SimpleLoading from '@/components/small/SimpleLoading.vue';
 
 const tagsData = ref<VillageMenuListItem[]>([]);
 const route = useRoute();

+ 1 - 11
vite.config.ts

@@ -1,12 +1,9 @@
 import { fileURLToPath, URL } from 'node:url'
-
 import { defineConfig } from 'vite'
 import vue from '@vitejs/plugin-vue'
 import vueJsx from '@vitejs/plugin-vue-jsx'
 import vueDevTools from 'vite-plugin-vue-devtools'
 import legacy from '@vitejs/plugin-legacy';
-import Components from 'unplugin-vue-components/vite';
-import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
 
 // https://vite.dev/config/
 export default defineConfig({
@@ -18,14 +15,7 @@ export default defineConfig({
       renderModernChunks: false,
     }),
     vueJsx(),
-    vueDevTools(),
-    Components({
-      resolvers: [
-        AntDesignVueResolver({
-          importStyle: false, // css in js
-        }),
-      ],
-    }),
+    vueDevTools()
   ],
   base: './',
   resolve: {