Procházet zdrojové kódy

💊 修改兼容性问题

快乐的梦鱼 před 1 měsícem
rodič
revize
fe2c2a563a

+ 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" ],
+                "targetSdkVersion" : 25,
+                "minSdkVersion" : 23
             },
             /*使用Native.js调用原生安卓API需要使用到的系统权限*/
             "orientation" : [ "portrait-primary" ], /*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/

+ 15 - 242
package-lock.json

@@ -8,13 +8,13 @@
       "name": "wenlv-huli-player",
       "version": "0.0.0",
       "dependencies": {
-        "@imengyu/imengyu-utils": "^0.0.13",
+        "@imengyu/imengyu-utils": "^0.0.14",
         "@imengyu/js-request-transform": "^0.3.5",
         "@imengyu/vue-scroll-rect": "^0.1.7",
         "@vitejs/plugin-legacy": "^7.2.1",
-        "ant-design-vue": "^4.2.6",
         "md5": "^2.3.0",
         "pinia": "^3.0.3",
+        "sweetalert2": "^11.22.4",
         "three": "^0.178.0",
         "vue": "^3.5.17",
         "vue-router": "^4.5.1",
@@ -50,34 +50,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",
@@ -1567,15 +1539,6 @@
         "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
       }
     },
-    "node_modules/@babel/runtime": {
-      "version": "7.27.6",
-      "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz",
-      "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==",
-      "license": "MIT",
-      "engines": {
-        "node": ">=6.9.0"
-      }
-    },
     "node_modules/@babel/template": {
       "version": "7.27.2",
       "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.27.2.tgz",
@@ -1628,15 +1591,6 @@
       "devOptional": 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",
@@ -1644,18 +1598,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",
@@ -2073,9 +2015,9 @@
       }
     },
     "node_modules/@imengyu/imengyu-utils": {
-      "version": "0.0.13",
-      "resolved": "https://registry.npmjs.org/@imengyu/imengyu-utils/-/imengyu-utils-0.0.13.tgz",
-      "integrity": "sha512-yFcG+d5URj/klasfZdHMtLTpukJVhspt2sqpoUPxErwMJ6l0BxzQHAODz1h+D+d8vJln9x63pdBKUxvubmtx9w==",
+      "version": "0.0.14",
+      "resolved": "https://registry.npmjs.org/@imengyu/imengyu-utils/-/imengyu-utils-0.0.14.tgz",
+      "integrity": "sha512-V/W1Te95958soeDFrK71hafr2HUi23HDED3h+hhJswvXun3AsVIibO1E9p56EaLp/epM7rBxXPSCvN29BdbgOw==",
       "license": "MIT",
       "dependencies": {
         "@imengyu/js-request-transform": "^0.3.6"
@@ -2446,16 +2388,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",
@@ -2949,46 +2881,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",
@@ -3016,18 +2908,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",
@@ -3267,12 +3147,6 @@
       "license": "MIT",
       "peer": true
     },
-    "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",
@@ -3451,18 +3325,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/electron-to-chromium": {
       "version": "1.5.190",
       "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.190.tgz",
@@ -3894,15 +3756,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",
@@ -4045,36 +3898,12 @@
         "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",
-      "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
-      "license": "MIT"
-    },
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
       "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
       "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
       "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",
@@ -4227,12 +4056,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",
@@ -4620,12 +4443,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",
@@ -5011,15 +4828,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",
@@ -5029,12 +4837,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",
@@ -5151,12 +4953,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",
@@ -5197,6 +4993,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",
@@ -5251,15 +5057,6 @@
       "integrity": "sha512-ybFIB0+x8mz0wnZgSGy2MO/WCO6xZhQSZnmfytSPyNpM0sBafGRVhdaj+erYh5U+RhQOAg/eXqw5uVDiM2BjhQ==",
       "license": "MIT"
     },
-    "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",
@@ -5730,21 +5527,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.npmmirror.com/vue3-carousel/-/vue3-carousel-0.16.0.tgz",
@@ -5766,15 +5548,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

@@ -21,9 +21,9 @@
     "@imengyu/js-request-transform": "^0.3.5",
     "@imengyu/vue-scroll-rect": "^0.1.7",
     "@vitejs/plugin-legacy": "^7.2.1",
-    "ant-design-vue": "^4.2.6",
     "md5": "^2.3.0",
     "pinia": "^3.0.3",
+    "sweetalert2": "^11.22.4",
     "three": "^0.178.0",
     "vue": "^3.5.17",
     "vue-router": "^4.5.1",

+ 1 - 12
src/App.vue

@@ -1,20 +1,9 @@
 <script setup lang="ts">
-import zhCN from 'ant-design-vue/es/locale/zh_CN';
 import { RouterView } from 'vue-router'
 </script>
 
 <template>
-  
-  <a-config-provider
-    :locale="zhCN"
-    :theme="{
-      token: {
-        colorPrimary: '#bc5f29',
-      },
-    }"
-  >
-    <RouterView />
-  </a-config-provider>
+  <RouterView />
 </template>
 
 <style scoped>

+ 10 - 8
src/api/RequestModules.ts

@@ -17,8 +17,7 @@ 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 type { DataModel, NewDataModel } from "@imengyu/js-request-transform";import Swal from 'sweetalert2';
 import { StringUtils } from "@imengyu/imengyu-utils";
 
 /**
@@ -180,9 +179,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 +191,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 +205,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
     });
 }
 }

+ 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>

+ 23 - 0
src/components/SimplePageListContentPager.vue

@@ -0,0 +1,23 @@
+<template>
+  <div class="d-flex flex-row justify-center mt-3 flex-shrink-0">
+    <Pagination
+      v-if="loader.totalPages.value > 1"
+      v-model:currentPage="loader.page.value"
+      :totalPages="loader.totalPages.value"
+    />
+  </div>
+</template>
+
+<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: {
+    type: Object as PropType<ISimplePageListLoader<any, any>>,
+    default: null,
+  },
+})
+
+</script>

+ 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>

+ 15 - 3
src/composeable/SimplePagerDataLoader.ts

@@ -1,4 +1,4 @@
-import { watch, ref, computed, type Ref } from "vue"
+import { watch, ref, computed, type Ref, onMounted } from "vue"
 import type { ILoaderCommon, LoaderLoadType } from "./LoaderCommon";
 
 export interface ISimplePageListLoader<T, P> extends ILoaderCommon<P> {
@@ -43,16 +43,22 @@ export function useSimplePagerDataLoader<T, P = any>(
   options?: {
     /**
      * 是否追加数据,而不是覆盖数据。
+     * @default false
      */
-    append: boolean
+    append: boolean,
+    /**
+     * 是否在初始化时加载数据。
+     * @default true
+     */
+    loadOnInit: boolean,
   },
 )  : ISimplePageListLoader<T, P>
 {
   const { 
     append = false,
+    loadOnInit = true,
   } = options || {};
 
-
   const page = ref(0);
   const pageSize = computed(() => {
     return typeof _pageSize == 'object'? _pageSize.value : _pageSize;
@@ -115,6 +121,12 @@ export function useSimplePagerDataLoader<T, P = any>(
     await loadData(lastParams, false);
   }
 
+  onMounted(() => {
+    if (loadOnInit) {
+      loadData(lastParams, true);
+    }
+  });
+
   return {
     loadData,
     next,

+ 1 - 1
src/main.ts

@@ -1,8 +1,8 @@
 import './assets/scss/main.scss'
 import './assets/scss/mengyuu/index.scss'
-import 'ant-design-vue/dist/reset.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 - 11
src/views/ListView.vue

@@ -2,6 +2,7 @@
 import { GetContentListParams } from '@/api/CommonContent';
 import ProjectsContent from '@/api/inherit/ProjectsContent';
 import SimplePageListContentLoader from '@/components/SimplePageListContentLoader.vue';
+import SimplePageListContentPager from '@/components/SimplePageListContentPager.vue';
 import { useSimplePagerDataLoader } from '@/composeable/SimplePagerDataLoader';
 import { onMounted } from 'vue';
 import { useRoute, useRouter } from 'vue-router';
@@ -18,11 +19,6 @@ const newsData = useSimplePagerDataLoader(6, async (p, s) =>
     )
   , p, s)
 );
-
-onMounted(async () => {
-  await newsData.next();
-})
-
 </script>
 
 <template>
@@ -49,12 +45,7 @@ onMounted(async () => {
             class="main-list-box1"
           />
         </SimplePageListContentLoader>
-        <a-pagination 
-          v-if="newsData.totalPages.value > 1"
-          v-model:current="newsData.page.value"
-          :total="newsData.totalPages.value"
-          :page-size="newsData.pageSize.value"
-        />
+        <SimplePageListContentPager :loader="newsData" />
       </div>
     </div>
   </main>

+ 1 - 10
vite.config.ts

@@ -5,8 +5,6 @@ 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 +16,7 @@ export default defineConfig({
       renderModernChunks: false,
     }),
     vueJsx(),
-    vueDevTools(),
-    Components({
-      resolvers: [
-        AntDesignVueResolver({
-          importStyle: false, // css in js
-        }),
-      ],
-    }),
+    vueDevTools()
   ],
   base: './',
   resolve: {