Ver Fonte

首页已完成

Hexinkui há 1 mês atrás
pai
commit
9b87e7e4bc

+ 121 - 15
package-lock.json

@@ -8,6 +8,8 @@
       "name": "bit_wise_world",
       "name": "bit_wise_world",
       "version": "0.1.0",
       "version": "0.1.0",
       "dependencies": {
       "dependencies": {
+        "axios": "^1.13.2",
+        "vant": "^4.9.21",
         "vue": "^3.2.13",
         "vue": "^3.2.13",
         "vue-router": "^4.0.3",
         "vue-router": "^4.0.3",
         "vuex": "^4.0.0"
         "vuex": "^4.0.0"
@@ -549,6 +551,21 @@
         "@types/node": "*"
         "@types/node": "*"
       }
       }
     },
     },
+    "node_modules/@vant/popperjs": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz",
+      "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==",
+      "license": "MIT"
+    },
+    "node_modules/@vant/use": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/@vant/use/-/use-1.6.0.tgz",
+      "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
+      "license": "MIT",
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
     "node_modules/@vue/cli-overlay": {
     "node_modules/@vue/cli-overlay": {
       "version": "5.0.9",
       "version": "5.0.9",
       "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.9.tgz",
       "resolved": "https://registry.npmmirror.com/@vue/cli-overlay/-/cli-overlay-5.0.9.tgz",
@@ -1347,6 +1364,12 @@
       "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
       "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
       "dev": true
       "dev": true
     },
     },
+    "node_modules/asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+      "license": "MIT"
+    },
     "node_modules/at-least-node": {
     "node_modules/at-least-node": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
       "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -1393,6 +1416,17 @@
         "postcss": "^8.1.0"
         "postcss": "^8.1.0"
       }
       }
     },
     },
+    "node_modules/axios": {
+      "version": "1.13.2",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz",
+      "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==",
+      "license": "MIT",
+      "dependencies": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.4",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
     "node_modules/balanced-match": {
     "node_modules/balanced-match": {
       "version": "1.0.2",
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
       "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -1625,7 +1659,6 @@
       "version": "1.0.2",
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
       "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
       "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "es-errors": "^1.3.0",
         "es-errors": "^1.3.0",
         "function-bind": "^1.1.2"
         "function-bind": "^1.1.2"
@@ -1919,6 +1952,18 @@
       "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
       "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
       "dev": true
       "dev": true
     },
     },
+    "node_modules/combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "license": "MIT",
+      "dependencies": {
+        "delayed-stream": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/commander": {
     "node_modules/commander": {
       "version": "8.3.0",
       "version": "8.3.0",
       "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
       "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
@@ -2599,6 +2644,15 @@
         "node": ">=8"
         "node": ">=8"
       }
       }
     },
     },
+    "node_modules/delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
     "node_modules/depd": {
     "node_modules/depd": {
       "version": "2.0.0",
       "version": "2.0.0",
       "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
       "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
@@ -2741,7 +2795,6 @@
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
       "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "call-bind-apply-helpers": "^1.0.1",
         "call-bind-apply-helpers": "^1.0.1",
         "es-errors": "^1.3.0",
         "es-errors": "^1.3.0",
@@ -2868,7 +2921,6 @@
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
       "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
-      "dev": true,
       "engines": {
       "engines": {
         "node": ">= 0.4"
         "node": ">= 0.4"
       }
       }
@@ -2877,7 +2929,6 @@
       "version": "1.3.0",
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
       "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
       "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
-      "dev": true,
       "engines": {
       "engines": {
         "node": ">= 0.4"
         "node": ">= 0.4"
       }
       }
@@ -2892,7 +2943,6 @@
       "version": "1.1.1",
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
       "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
       "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "es-errors": "^1.3.0"
         "es-errors": "^1.3.0"
       },
       },
@@ -2900,6 +2950,21 @@
         "node": ">= 0.4"
         "node": ">= 0.4"
       }
       }
     },
     },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+      "license": "MIT",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/escalade": {
     "node_modules/escalade": {
       "version": "3.2.0",
       "version": "3.2.0",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
@@ -3244,7 +3309,6 @@
       "version": "1.15.11",
       "version": "1.15.11",
       "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
       "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
       "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
       "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==",
-      "dev": true,
       "funding": [
       "funding": [
         {
         {
           "type": "individual",
           "type": "individual",
@@ -3260,6 +3324,22 @@
         }
         }
       }
       }
     },
     },
+    "node_modules/form-data": {
+      "version": "4.0.5",
+      "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
+      "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
+      "license": "MIT",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "es-set-tostringtag": "^2.1.0",
+        "hasown": "^2.0.2",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/forwarded": {
     "node_modules/forwarded": {
       "version": "0.2.0",
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
@@ -3336,7 +3416,6 @@
       "version": "1.1.2",
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
       "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
-      "dev": true,
       "funding": {
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
         "url": "https://github.com/sponsors/ljharb"
       }
       }
@@ -3354,7 +3433,6 @@
       "version": "1.3.0",
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
       "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
       "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "call-bind-apply-helpers": "^1.0.2",
         "call-bind-apply-helpers": "^1.0.2",
         "es-define-property": "^1.0.1",
         "es-define-property": "^1.0.1",
@@ -3378,7 +3456,6 @@
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
       "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "dunder-proto": "^1.0.1",
         "dunder-proto": "^1.0.1",
         "es-object-atoms": "^1.0.0"
         "es-object-atoms": "^1.0.0"
@@ -3462,7 +3539,6 @@
       "version": "1.2.0",
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
       "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
       "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
-      "dev": true,
       "engines": {
       "engines": {
         "node": ">= 0.4"
         "node": ">= 0.4"
       },
       },
@@ -3510,7 +3586,21 @@
       "version": "1.1.0",
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
       "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
       "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
-      "dev": true,
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "license": "MIT",
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      },
       "engines": {
       "engines": {
         "node": ">= 0.4"
         "node": ">= 0.4"
       },
       },
@@ -3528,7 +3618,6 @@
       "version": "2.0.2",
       "version": "2.0.2",
       "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
       "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
       "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
       "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "function-bind": "^1.1.2"
         "function-bind": "^1.1.2"
       },
       },
@@ -4542,7 +4631,6 @@
       "version": "1.1.0",
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
       "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
       "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
-      "dev": true,
       "engines": {
       "engines": {
         "node": ">= 0.4"
         "node": ">= 0.4"
       }
       }
@@ -4645,7 +4733,6 @@
       "version": "1.52.0",
       "version": "1.52.0",
       "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
       "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
       "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
       "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
-      "dev": true,
       "engines": {
       "engines": {
         "node": ">= 0.6"
         "node": ">= 0.6"
       }
       }
@@ -4654,7 +4741,6 @@
       "version": "2.1.35",
       "version": "2.1.35",
       "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
       "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
       "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
       "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
-      "dev": true,
       "dependencies": {
       "dependencies": {
         "mime-db": "1.52.0"
         "mime-db": "1.52.0"
       },
       },
@@ -6097,6 +6183,12 @@
         "node": ">= 0.10"
         "node": ">= 0.10"
       }
       }
     },
     },
+    "node_modules/proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+      "license": "MIT"
+    },
     "node_modules/prr": {
     "node_modules/prr": {
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
       "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
@@ -7415,6 +7507,20 @@
         "spdx-expression-parse": "^3.0.0"
         "spdx-expression-parse": "^3.0.0"
       }
       }
     },
     },
+    "node_modules/vant": {
+      "version": "4.9.21",
+      "resolved": "https://registry.npmjs.org/vant/-/vant-4.9.21.tgz",
+      "integrity": "sha512-hXUoZMrLLjykimFRLDlGNd+K2iYSRh9YwLMKnsVdVZ+9inUKxpqnjhOqlZwocbnYkvJlS+febf9u9aJpDol4Pw==",
+      "license": "MIT",
+      "dependencies": {
+        "@vant/popperjs": "^1.3.0",
+        "@vant/use": "^1.6.0",
+        "@vue/shared": "^3.5.17"
+      },
+      "peerDependencies": {
+        "vue": "^3.0.0"
+      }
+    },
     "node_modules/vary": {
     "node_modules/vary": {
       "version": "1.1.2",
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",

+ 1 - 0
package.json

@@ -8,6 +8,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "axios": "^1.13.2",
     "axios": "^1.13.2",
+    "vant": "^4.9.21",
     "vue": "^3.2.13",
     "vue": "^3.2.13",
     "vue-router": "^4.0.3",
     "vue-router": "^4.0.3",
     "vuex": "^4.0.0"
     "vuex": "^4.0.0"

+ 5 - 0
src/assets/icon/bitcoin/den.svg

@@ -0,0 +1,5 @@
+<svg width="18" height="4" viewBox="0 0 18 4" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M8 2C8 2.55228 8.44772 3 9 3C9.55228 3 10 2.55228 10 2C10 1.44772 9.55228 1 9 1C8.44772 1 8 1.44772 8 2Z" stroke="#333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M1 2C1 2.55228 1.44772 3 2 3C2.55228 3 3 2.55228 3 2C3 1.44772 2.55228 1 2 1C1.44772 1 1 1.44772 1 2Z" stroke="#333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M15 2C15 2.55228 15.4477 3 16 3C16.5523 3 17 2.55228 17 2C17 1.44772 16.5523 1 16 1C15.4477 1 15 1.44772 15 2Z" stroke="#333333" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

Diff do ficheiro suprimidas por serem muito extensas
+ 6 - 0
src/assets/icon/bitcoin/hangqing.svg


Diff do ficheiro suprimidas por serem muito extensas
+ 6 - 0
src/assets/icon/bitcoin/jisuan.svg


Diff do ficheiro suprimidas por serem muito extensas
+ 6 - 0
src/assets/icon/bitcoin/menu.svg


+ 9 - 0
src/assets/icon/bitcoin/qianbao1.svg

@@ -0,0 +1,9 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M11.7891 0C12.6029 0 13.2627 0.659763 13.2627 1.47363V3.15332C13.6974 3.41119 13.9999 3.8757 14 4.4209V8.8418C14 9.38706 13.6974 9.85148 13.2627 10.1094V11.7891C13.2627 12.603 12.603 13.2627 11.7891 13.2627H1.47363C0.659763 13.2627 0 12.6029 0 11.7891V1.47363C2.77545e-05 0.663147 0.655779 2.78135e-05 1.47363 0H11.7891ZM1.47363 11.7891H11.7891V10.3154H7.36816C6.55439 10.3153 5.89453 9.6556 5.89453 8.8418V4.4209C5.89461 3.60716 6.55444 2.94741 7.36816 2.94727H11.7891V1.47363H1.47363V11.7891ZM7.36816 8.8418H12.5264V4.4209H7.36816V8.8418ZM9.5791 5.52637C10.1895 5.52645 10.6846 6.02147 10.6846 6.63184C10.6844 7.24209 10.1894 7.73722 9.5791 7.7373C8.96877 7.7373 8.47377 7.24214 8.47363 6.63184C8.47363 6.02142 8.96868 5.52637 9.5791 5.52637Z" fill="black"/>
+<mask id="mask0_13_524" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="14" height="14">
+<path d="M11.7891 0C12.6029 0 13.2627 0.659763 13.2627 1.47363V3.15332C13.6974 3.41119 13.9999 3.8757 14 4.4209V8.8418C14 9.38706 13.6974 9.85148 13.2627 10.1094V11.7891C13.2627 12.603 12.603 13.2627 11.7891 13.2627H1.47363C0.659763 13.2627 0 12.6029 0 11.7891V1.47363C2.77545e-05 0.663147 0.655779 2.78135e-05 1.47363 0H11.7891ZM1.47363 11.7891H11.7891V10.3154H7.36816C6.55439 10.3153 5.89453 9.6556 5.89453 8.8418V4.4209C5.89461 3.60716 6.55444 2.94741 7.36816 2.94727H11.7891V1.47363H1.47363V11.7891ZM7.36816 8.8418H12.5264V4.4209H7.36816V8.8418ZM9.5791 5.52637C10.1895 5.52645 10.6846 6.02147 10.6846 6.63184C10.6844 7.24209 10.1894 7.73722 9.5791 7.7373C8.96877 7.7373 8.47377 7.24214 8.47363 6.63184C8.47363 6.02142 8.96868 5.52637 9.5791 5.52637Z" fill="white"/>
+</mask>
+<g mask="url(#mask0_13_524)">
+<rect width="14" height="14" fill="#DF384C"/>
+</g>
+</svg>

+ 3 - 0
src/assets/icon/bitcoin/qiaobao.svg

@@ -0,0 +1,3 @@
+<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="14" height="14" fill="#DF384C"/>
+</svg>

+ 3 - 0
src/assets/icon/bitcoin/quancang.svg

@@ -0,0 +1,3 @@
+<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7.25 9.75C7.25 9.89833 7.20601 10.0433 7.1236 10.1667C7.04119 10.29 6.92406 10.3861 6.78701 10.4429C6.64997 10.4997 6.49917 10.5145 6.35368 10.4856C6.2082 10.4566 6.07456 10.3852 5.96967 10.2803C5.86478 10.1754 5.79335 10.0418 5.76441 9.89632C5.73547 9.75083 5.75033 9.60003 5.80709 9.46299C5.86386 9.32594 5.95999 9.20881 6.08332 9.1264C6.20666 9.04398 6.35167 9 6.5 9C6.69891 9 6.88968 9.07902 7.03033 9.21967C7.17098 9.36032 7.25 9.55109 7.25 9.75ZM6.5 3C5.12125 3 4 4.00937 4 5.25V5.5C4 5.63261 4.05268 5.75978 4.14645 5.85355C4.24022 5.94732 4.36739 6 4.5 6C4.63261 6 4.75979 5.94732 4.85355 5.85355C4.94732 5.75978 5 5.63261 5 5.5V5.25C5 4.5625 5.67313 4 6.5 4C7.32688 4 8 4.5625 8 5.25C8 5.9375 7.32688 6.5 6.5 6.5C6.36739 6.5 6.24022 6.55268 6.14645 6.64644C6.05268 6.74021 6 6.86739 6 7V7.5C6 7.63261 6.05268 7.75978 6.14645 7.85355C6.24022 7.94732 6.36739 8 6.5 8C6.63261 8 6.75979 7.94732 6.85355 7.85355C6.94732 7.75978 7 7.63261 7 7.5V7.455C8.14 7.24562 9 6.33625 9 5.25C9 4.00937 7.87875 3 6.5 3ZM13 6.5C13 7.78558 12.6188 9.04228 11.9046 10.1112C11.1903 11.1801 10.1752 12.0132 8.98744 12.5052C7.79972 12.9972 6.49279 13.1259 5.23191 12.8751C3.97104 12.6243 2.81285 12.0052 1.90381 11.0962C0.994767 10.1872 0.375702 9.02896 0.124899 7.76809C-0.125905 6.50721 0.00281632 5.20028 0.494786 4.01256C0.986755 2.82484 1.81988 1.80968 2.8888 1.09545C3.95771 0.381218 5.21442 0 6.5 0C8.22335 0.00181989 9.87559 0.687223 11.0942 1.90582C12.3128 3.12441 12.9982 4.77665 13 6.5ZM12 6.5C12 5.4122 11.6774 4.34883 11.0731 3.44436C10.4687 2.53989 9.60975 1.83494 8.60476 1.41866C7.59977 1.00238 6.4939 0.893462 5.42701 1.10568C4.36011 1.3179 3.3801 1.84172 2.61091 2.61091C1.84173 3.3801 1.3179 4.36011 1.10568 5.427C0.893465 6.4939 1.00238 7.59976 1.41867 8.60476C1.83495 9.60975 2.5399 10.4687 3.44437 11.0731C4.34884 11.6774 5.4122 12 6.5 12C7.95818 11.9983 9.35617 11.4183 10.3873 10.3873C11.4184 9.35617 11.9983 7.95818 12 6.5Z" fill="#999999"/>
+</svg>

+ 3 - 0
src/assets/icon/bitcoin/quangcang1.svg

@@ -0,0 +1,3 @@
+<svg width="10" height="6" viewBox="0 0 10 6" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M0.75 0.75L4.75 4.75L8.75 0.75" stroke="black" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 8 - 0
src/assets/icon/bitcoin/shendul.svg

@@ -0,0 +1,8 @@
+<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_13_594" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="13" height="13">
+<rect width="13" height="13" fill="white"/>
+</mask>
+<g mask="url(#mask0_13_594)">
+<path d="M3.25 4.875L6.5 8.125L9.75 4.875" stroke="black" stroke-linecap="round" stroke-linejoin="round"/>
+</g>
+</svg>

+ 9 - 0
src/assets/icon/bitcoin/shendur.svg

@@ -0,0 +1,9 @@
+<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect x="0.5" y="0.5" width="24" height="23" rx="4.5" fill="white" stroke="#A8A8A8"/>
+<rect x="4" y="4" width="8" height="7" fill="#FF7171"/>
+<rect x="13" y="5" width="8" height="2" fill="#FF7171"/>
+<rect x="13" y="8" width="8" height="2" fill="#FF7171"/>
+<rect x="4" y="13" width="8" height="7" fill="#45B26B"/>
+<rect x="13" y="14" width="8" height="2" fill="#45B26B"/>
+<rect x="13" y="17" width="8" height="2" fill="#45B26B"/>
+</svg>

+ 1 - 0
src/main.js

@@ -2,6 +2,7 @@ import { createApp } from "vue";
 import App from "./App.vue";
 import App from "./App.vue";
 import router from "./router";
 import router from "./router";
 import store from "./store";
 import store from "./store";
+import 'vant/lib/index.css';
 
 
 // 引入less样式文件
 // 引入less样式文件
 import "./assets/less/index.less";
 import "./assets/less/index.less";

+ 1274 - 3
src/views/bitcoin/Index.vue

@@ -1,5 +1,1276 @@
 <template>
 <template>
-  <div>bitcoin</div>
+  <div class="market">
+    <div class="market-nav">
+      <div class="nav-left">
+        <div class="pf600 fs18 fc121212" @click="messageChange('selfSelected')">合约</div>
+        <div class="sys-notifi pf600 fs14 fcA8A8A8" @click="messageChange('contract')">秒合约</div>
+        <div
+          class="sys-notifi pf600 fs14 fcA8A8A8"
+          @click="messageChange('secondContract')">
+          期权
+        </div>
+        <div
+          class="sys-notifi pf600 fs14 fcA8A8A8"
+          @click="messageChange('secondContract')">
+          杠杆
+        </div>
+      </div>
+
+    </div>
+    <div class="menu">
+      <div class="menu-left">
+      <img class="fc333333" src="../../assets/icon/bitcoin/menu.svg" alt="">
+      <div class="pf600 fs18 fc121212" >BTCUSDT 永续</div>
+    </div>
+    <div class="menu-right fc333333">
+      <img src="../../assets/icon/bitcoin/jisuan.svg" alt="">
+      <img src="../../assets/icon/bitcoin/hangqing.svg" alt="">
+      <img src="../../assets/icon/bitcoin/den.svg" alt="">
+    </div>
+    </div>
+    <div class="menu-bottom">
+      <div class="pf500 fs12 menu-leftb">
+        +2.18%
+      </div>
+      <div class="fc333333 fs12 pf400 menu-rightb">
+        <div>资金费率/倒计时</div>
+        <div>0.003%/1:57:32</div>
+      </div>
+    </div>
+    <div class="menu-content" >
+<!--      //左边-->
+      <div  class="menu-content-l">
+        <div class="menu-content-lb pf400 fs14 fc666666">
+          <span>价格</span><span>数量(USDT)</span>
+        </div>
+        <div class="menu-content-lb1">
+          <div class="menu-content-lb1l pf400 fs14 fcFF7171">
+            <span class="">40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+
+          </div>
+          <div class="menu-content-lb1r pf400 fs14 fc444444">
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+
+          </div>
+        </div>
+        <div class="menu-content-lb2">
+          <p class="pf600 fs16 fcDF384C">5,678.00</p>
+          <p class="fs12 fcA8A8A8 pf400">1,678.00</p>
+        </div>
+        <div class="menu-content-lb1">
+          <div class="menu-content-lb1l pf400 fs14 fcFF7171">
+            <span class="">40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+            <span>40,166.82</span>
+
+          </div>
+          <div class="menu-content-lb1r pf400 fs14 fc444444">
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+            <span>37.80K</span>
+
+          </div>
+        </div>
+        <div class="menu-content-lb1">
+          <div class="menu-content-lb1l pf400 fs12 fc333333">
+            <span class="fs12">深度1</span>
+            <img src="../../assets/icon/bitcoin/shendul.svg" alt="">
+
+          </div>
+          <div class="menu-content-lb1r pf400 fs14 fc444444">
+            <img src="../../assets/icon/bitcoin/shendur.svg" alt="">
+
+          </div>
+        </div>
+
+      </div>
+<!--      //右边-->
+      <div  class="menu-content-r">
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+            <img src="../../assets/icon/bitcoin/quancang.svg" alt="">
+            <span>全仓</span>
+         </div>
+         <img src="../../assets/icon/bitcoin/quangcang1.svg" alt="">
+
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+            <img src="../../assets/icon/bitcoin/quancang.svg" alt="">
+            <span>市价</span>
+         </div>
+         <img src="../../assets/icon/bitcoin/quangcang1.svg" alt="">
+
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+            <span>125000</span>
+         </div>
+          <span>最优价</span>
+
+
+      </div>
+        <div class="menu-content-rb pf400 fs14 fc333333">≈25.2250 USDT</div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+
+            <span class="menu-content-rb1s fc999999">数量</span>
+         </div>
+         <span>USDT</span>
+
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">可用</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span>0</span>
+            <span>USDT</span>
+            <img class="fs16" src="../../assets/icon/bitcoin/qianbao1.svg" alt="">
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">倍数</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span></span>
+            <span>USDT</span>
+            <span>更多</span>
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+<!--           <label class="custom-checkbox-container">-->
+<!--            <input type="checkbox" checked="checked">-->
+<!--            <span class="checkmark"></span>-->
+<!--            </label>-->
+           <input class="fs16" type="checkbox" id="bike" value="Bike">
+           <span class="menu-content-rb1s fc333333">只减仓</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span></span>
+
+            <span>GTC</span>
+            <img class="fs16" src="../../assets/icon/bitcoin/qianbao1.svg" alt="">
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+<!--           <label class="custom-checkbox-container">-->
+<!--            <input type="checkbox" checked="checked">-->
+<!--            <span class="checkmark"></span>-->
+<!--            </label>-->
+           <input class="fs16" type="checkbox" id="bike" value="Bike">
+           <span class="menu-content-rb1s fc333333">只减仓</span>
+           <img src="../../assets/icon/bitcoin/quancang.svg" alt="">
+         </div>
+
+      </div>
+
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">可用</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span>0</span>
+            <span>USDT</span>
+
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">保证金</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span>0</span>
+            <span>USDT</span>
+
+         </div>
+
+      </div>
+
+        <div class="menu-content-rb pf400 fs14">
+          <div class="pf400 fs16 fcFFFFFF">买入(做多)</div>
+
+        </div>
+
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">可用</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span>0</span>
+            <span>USDT</span>
+
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+         <div class="menu-content-rb1 fs14 fc333333">
+           <span class="menu-content-rb1s fc333333">保证金</span>
+         </div>
+         <div class="menu-content-rb1">
+            <span>0</span>
+            <span>USDT</span>
+
+         </div>
+
+      </div>
+        <div class="menu-content-rb pf400 fs14">
+          <div class="pf400 fs16 fcFFFFFF">买入(做多)</div>
+
+        </div>
+      </div>
+    </div>
+<!--    m买入-->
+    <div class="transaction-cards">
+      <div class="container">
+
+    <div class="top-nav">
+      <div class="tabs">
+        <div class="tab-item active">
+          持有仓位(2)
+          <div class="active-line"></div>
+        </div>
+        <div class="tab-item">当前委托(0)</div>
+      </div>
+      <div class="filter-all">
+        <van-icon name="clock-o" style="margin-right: 4px;" /> 全部
+      </div>
+    </div>
+
+    <div class="position-card">
+
+      <div class="card-header">
+        <div class="coin-info">
+          <div class="btc-icon">₿</div>S
+          <div class="title-group">
+            <div class="coin-name">BTC/USDT 永续</div>
+            <div class="tags">
+              <span class="tag-buy">买入</span>
+              <span class="tag-lever">逐仓 20X</span>
+            </div>
+          </div>
+        </div>
+        <div class="order-time">
+          <div>2025-11-04, 16:30</div>
+          <div style="text-align: right; margin-top: 2px;">下单时间</div>
+        </div>
+      </div>
+
+      <div class="divider"></div>
+
+      <div class="pnl-row">
+        <span class="label">未实现盈亏(USDT)</span>
+        <span class="value green-text">+0.2015 USDT</span>
+      </div>
+
+      <div class="data-grid">
+        <div class="grid-item align-left">
+          <div class="label">持仓数量</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-center">
+          <div class="label">开仓价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-right">
+          <div class="label">标记价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+
+        <div class="grid-item align-left mt-10">
+          <div class="label">保证金</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-center mt-10">
+          <div class="label">强平价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-right mt-10">
+          <div class="label">收益率</div>
+          <div class="value green-text">+0.21%</div>
+        </div>
+      </div>
+
+      <div class="action-bar">
+        <div class="tp-sl-btn">止盈止损</div>
+        <div class="expand-btn">
+          展开 <van-icon name="arrow-down" />
+        </div>
+      </div>
+
+      <div class="footer-btn">
+        <van-button block round color="#e6424a" class="close-btn">
+          平仓
+        </van-button>
+      </div>
+
+    </div>
+  </div>
+    </div>
+<!--    卖出-->
+    <div class="transaction-cards1">
+      <div class="mobile-viewport">
+
+    <div class="position-card">
+
+      <div class="card-header">
+        <div class="coin-info">
+          <div class="btc-icon">₿</div>
+          <div class="title-group">
+            <div class="coin-name">BTC/USDT 永续</div>
+            <div class="tags">
+              <span class="tag-sell">卖出</span>
+              <span class="tag-lever">全仓 20X</span>
+            </div>
+          </div>
+        </div>
+        <div class="order-time">
+          <div class="time-val">2025-11-04, 16:30</div>
+          <div class="time-lbl">下单时间</div>
+        </div>
+      </div>
+
+      <div class="divider"></div>
+
+      <div class="pnl-row">
+        <span class="label">未实现盈亏(USDT)</span>
+        <span class="value red-text">-0.2015 USDT</span>
+      </div>
+
+      <div class="data-grid">
+        <div class="grid-item align-left">
+          <div class="label">持仓数量</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-center">
+          <div class="label">开仓价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-right">
+          <div class="label">标记价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+
+        <div class="grid-item align-left mt-12">
+          <div class="label">保证金</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-center mt-12">
+          <div class="label">强平价格</div>
+          <div class="value">0.215 USDT</div>
+        </div>
+        <div class="grid-item align-right mt-12">
+          <div class="label">收益率</div>
+          <div class="value red-text">+0.21%</div>
+        </div>
+      </div>
+
+      <div class="action-bar">
+        <div class="tp-sl-text">止盈止损</div>
+        <div class="expand-btn active">
+          收起 <van-icon name="arrow-up" />
+        </div>
+      </div>
+
+      <div class="detail-panel">
+        <div class="detail-row">
+          <div class="d-left">
+            <span class="d-tag">止盈</span>
+            <span class="d-val gray">标记价格≥2080.80</span>
+          </div>
+          <div class="d-right">
+            <span class="d-label">盈亏</span>
+            <span class="d-val green-text">+0.2015 USDT</span>
+          </div>
+        </div>
+
+        <div class="detail-row">
+          <div class="d-left">
+            <span class="d-tag">止损</span>
+            <span class="d-val gray">最新价格≤9878.8</span>
+          </div>
+          <div class="d-right">
+            <span class="d-label">盈亏</span>
+            <span class="d-val red-text">-0.2015 USDT</span>
+          </div>
+        </div>
+
+        <div class="detail-row">
+          <div class="d-left">
+            <span class="d-tag">数量</span>
+            <span class="d-val gray">0.215 USDT</span>
+          </div>
+          <div class="d-right">
+            <span class="d-label">委托价</span>
+            <span class="d-val gray">市价</span>
+          </div>
+        </div>
+      </div>
+
+      <div class="footer-btn">
+        <van-button block round color="#e6424a" class="close-btn">
+          平仓
+        </van-button>
+      </div>
+
+    </div>
+  </div>
+    </div>
+
+  </div>
 </template>
 </template>
-<script setup></script>
-<style lang="less" scoped></style>
+<script setup>
+    import { ref } from 'vue';
+    const show = ref(false);
+    const showPopup = () => {
+      show.value = true;
+    };
+    import { Icon as VanIcon, Button as VanButton } from 'vant';
+
+</script>
+<style lang="less" scoped>
+/* 模拟手机视口 375px */
+.mobile-viewport {
+  width: 100%;
+  max-width: 375px;
+  margin: 0 auto;
+  background-color: #ffffff; /* 外部背景色 */
+  padding: 0 15px;
+  box-sizing: border-box;
+  font-family: -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
+}
+
+/* 卡片主体 */
+.position-card {
+  background: #ffffff;
+  border-radius: 8px;
+  padding: 15px;
+  border: 1px solid #ebedf0;
+  position: relative;
+}
+
+/* --- Header --- */
+.card-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-start;
+  margin-bottom: 12px;
+}
+.coin-info { display: flex; align-items: center; }
+.btc-icon {
+  width: 32px;
+  height: 32px;
+  background: #f7931a;
+  border-radius: 50%;
+  color: white;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-weight: bold;
+  font-size: 18px;
+  margin-right: 8px;
+}
+.title-group { display: flex; flex-direction: column; justify-content: center; }
+.coin-name {
+  font-size: 16px;
+  font-weight: 600;
+  color: #333;
+  line-height: 1.2;
+  margin-bottom: 4px;
+}
+.tags { display: flex; align-items: center; }
+
+/* 标签样式 */
+.tag-sell {
+  background-color: #e6424a; /* 卖出红 */
+  color: white;
+  font-size: 11px;
+  padding: 1px 4px;
+  border-radius: 3px;
+  margin-right: 4px;
+  line-height: 1.4;
+}
+.tag-lever {
+  background-color: #9aa0a5; /* 灰色背景 */
+  color: #fff;
+  font-size: 11px;
+  padding: 1px 4px;
+  border-radius: 3px;
+  line-height: 1.4;
+}
+
+/* 时间 */
+.order-time { text-align: right; }
+.time-val { font-size: 12px; color: #666; }
+.time-lbl { font-size: 11px; color: #999; margin-top: 2px; }
+
+/* 分割线 */
+.divider { height: 1px; background-color: #f0f0f0; margin: 10px 0; }
+
+/* 盈亏行 */
+.pnl-row {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 12px;
+  font-size: 13px;
+  align-items: center;
+}
+.pnl-row .label { color: #999; }
+.pnl-row .value { font-size: 15px; font-weight: 500; }
+
+/* 通用颜色 */
+.green-text { color: #00b45a; }
+.red-text { color: #e6424a; }
+.gray { color: #888; }
+
+/* 数据网格 */
+.data-grid { display: flex; flex-wrap: wrap; }
+.grid-item { width: 33.33%; }
+.align-left { text-align: left; }
+.align-center { text-align: center; }
+.align-right { text-align: right; }
+.mt-12 { margin-top: 12px; }
+
+.grid-item .label { font-size: 11px; color: #999; margin-bottom: 4px; }
+.grid-item .value { font-size: 13px; color: #333; font-weight: 500; }
+
+/* 操作栏 */
+.action-bar {
+  display: flex;
+  justify-content: space-between;
+  margin-top: 15px;
+  font-size: 12px;
+  color: #999;
+  align-items: center;
+}
+.tp-sl-text {
+  //text-decoration: underline;
+  text-decoration-color: #ccc;
+}
+.expand-btn { display: flex; align-items: center; cursor: pointer; }
+
+/* --- 详情面板 (关键还原部分) --- */
+.detail-panel {
+  margin-top: 8px;
+  padding-top: 4px;
+}
+.detail-row {
+  display: flex;
+  justify-content: space-between;
+  font-size: 12px;
+  margin-bottom: 6px;
+  line-height: 1.5;
+}
+.d-left { display: flex; align-items: center; }
+.d-right { display: flex; align-items: center; }
+
+/* 详情里的文字对齐 */
+.d-tag {
+  color: #999;
+  margin-right: 12px; /* 标签(止盈)和数值之间的间距 */
+  min-width: 24px; /* 保证标签对齐 */
+}
+.d-label {
+  color: #999;
+  margin-right: 8px;
+}
+.d-val {
+  font-family: Arial, sans-serif;
+}
+
+/* 底部按钮 */
+.footer-btn { margin-top: 15px; }
+.close-btn { font-size: 15px; letter-spacing: 1px; border: none; }
+
+.container {
+  background-color: #fff;
+  //min-height: 100vh;
+  padding: 16px;
+  font-family: sans-serif;
+}
+
+.top-nav {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 12px;
+}
+.tabs { display: flex; align-items: center; gap: 20px; }
+.tab-item {
+  font-size: 16px;
+  color: #969799;
+  position: relative;
+  padding-bottom: 6px;
+  font-weight: 600;
+}
+.tab-item.active {
+  color: #323233;
+  font-weight: 600;
+  font-size: 17px;
+}
+.active-line {
+  position: absolute;
+  bottom: 0;
+  left: 50%;
+  transform: translateX(-50%);
+  width: 20px;
+  height: 3px;
+  background-color: #323233;
+  border-radius: 2px;
+}
+.filter-all {
+  font-size: 16px;
+  color: #969799;
+  display: flex;
+  font-weight: 600;
+  align-items: center;
+}
+
+.position-card {
+  background: #ffffff;
+  border-radius: 12px;
+  padding: 16px;
+  /* 去掉投影,增加描边 */
+  box-shadow: none;
+  border: 1px solid #ebedf0;
+}
+
+.card-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: flex-start;
+  margin-bottom: 12px;
+}
+.coin-info { display: flex; align-items: center; }
+.btc-icon {
+  width: 36px;
+  height: 36px;
+  background: #f7931a;
+  border-radius: 50%;
+  color: white;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  font-weight: bold;
+  font-size: 20px;
+  margin-right: 10px;
+}
+.coin-name {
+  font-size: 16px;
+  font-weight: bold;
+  color: #323233;
+  line-height: 1.2;
+  margin-bottom: 4px;
+}
+.tags { display: flex; align-items: center; }
+.tag-buy {
+  background-color: #00b45a;
+  color: white;
+  font-size: 11px;
+  padding: 1px 4px;
+  border-radius: 3px;
+  margin-right: 4px;
+}
+.tag-lever {
+  background-color: #f0f0f0;
+  color: #969799;
+  font-size: 11px;
+  padding: 1px 4px;
+  border-radius: 3px;
+}
+.order-time {
+  text-align: right;
+  font-size: 12px;
+  color: #969799;
+  line-height: 1.4;
+}
+.divider {
+  height: 1px;
+  background-color: #f5f6f7;
+  margin: 12px 0;
+}
+.pnl-row {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 12px;
+  font-size: 13px;
+}
+.pnl-row .label { color: #969799; }
+.green-text { color: #00b45a; font-weight: 500; }
+
+.data-grid { display: flex; flex-wrap: wrap; }
+.grid-item { width: 33.33%; margin-bottom: 4px; }
+.mt-10 { margin-top: 12px; }
+.align-left { text-align: left; }
+.align-center { text-align: center; }
+.align-right { text-align: right; }
+.grid-item .label {
+  font-size: 12px;
+  color: #969799;
+  margin-bottom: 4px;
+}
+.grid-item .value {
+  font-size: 14px;
+  color: #323233;
+  font-weight: 500;
+}
+
+.action-bar {
+  display: flex;
+  justify-content: space-between;
+  margin-top: 16px;
+  font-size: 13px;
+  color: #969799;
+}
+.footer-btn { margin-top: 16px; }
+.close-btn { font-size: 16px; font-weight: 500; letter-spacing: 1px; }
+
+///* 容器(即 <label>)的样式 */
+//.custom-checkbox-container {
+//  display: block; /* 确保它占满一行 */
+//  position: relative; /* 方便定位子元素 */
+//  padding-left: 30px; /* 为自定义方框留出空间 */
+//  margin-bottom: 12px;
+//  cursor: pointer; /* 鼠标悬停时显示手型 */
+//  font-size: 16px;
+//  user-select: none; /* 防止文本被选中 */
+//}
+//
+///* 隐藏浏览器默认的复选框 */
+//.custom-checkbox-container input {
+//  position: absolute;
+//  opacity: 0; /* 彻底隐藏 */
+//  cursor: pointer;
+//  height: 0;
+//  width: 0;
+//}
+//
+///* 自定义复选框的样式(即 <span>.checkmark) */
+//.checkmark {
+//  position: absolute;
+//  top: 0;
+//  left: 0;
+//  height: 20px;
+//  width: 20px;
+//  background-color: #eee; /* 未选中时的背景色 */
+//  border-radius: 4px; /* 略微圆角 */
+//  border: 1px solid #ccc;
+//}
+//
+///* 鼠标悬停时(未选中状态),改变背景色 */
+//.custom-checkbox-container:hover input ~ .checkmark {
+//  background-color: #ccc;
+//}
+//
+///* 选中状态:当 input 被选中时,改变 .checkmark 的背景色 */
+//.custom-checkbox-container input:checked ~ .checkmark {
+//  background-color: #2196F3; /* 选中时的背景色(蓝色) */
+//  border: 1px solid #2196F3;
+//}
+//
+///* 创建自定义勾(在 .checkmark 内部使用 :after 伪元素) */
+//.checkmark:after {
+//  content: "";
+//  position: absolute;
+//  display: none; /* 默认隐藏 */
+//}
+//
+///* 选中状态:当 input 被选中时,显示自定义勾 */
+//.custom-checkbox-container input:checked ~ .checkmark:after {
+//  display: block;
+//}
+//
+///* 样式化自定义勾(让它看起来像个勾) */
+//.custom-checkbox-container .checkmark:after {
+//  /* 调整位置 */
+//  left: 6px;
+//  top: 2px;
+//  /* 调整大小和形状,利用 border 模拟对勾 */
+//  width: 5px;
+//  height: 10px;
+//  border: solid white; /* 勾的颜色 */
+//  border-width: 0 3px 3px 0; /* 只有右边和底部有边框 */
+//  /* 旋转 - 45 度使其成为对勾形状 */
+//  transform: rotate(45deg);
+//}
+
+  .market {
+    display: flex;
+    flex-direction: column;
+    justify-content: flex-start;
+    align-items: center;
+    margin-bottom: 100px;
+    width: 100%;
+
+    .market-nav {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      margin-top: 21px;
+      width: 345px;
+      height: 24px;
+
+      .nav-left {
+        display: flex;
+        flex-direction: row;
+        justify-content: flex-start;
+        align-items: flex-end;
+        width: 349px;
+        height: 24px;
+
+        .sys-notifi {
+          margin-left: 35px;
+        }
+      }
+
+      .nav-right {
+        width: 20px;
+        height: 20px;
+      }
+    }
+    .menu {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      margin-top: 21px;
+      width: 345px;
+      height: 24px;
+
+      .menu-left{
+        display: flex;
+        flex-direction: row;
+        justify-content: flex-start;
+        align-items: center;
+        line-height:0px;
+        img{
+          margin: 0px 10px 0 0;
+        }
+      }
+      .menu-right{
+        img{
+          margin-left: 14px;
+        }
+      }
+    }
+
+    .menu-bottom {
+       display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      align-items: center;
+      margin-top: 8px;
+      width: 345px;
+      .menu-leftb{
+        width:61px;
+        height: 25px;
+        background-color: #45b26b;
+        border-radius: 5px;
+        color: #ffffff;
+        text-align: center;
+        line-height: 25px;
+      }
+      .menu-rightb{
+        text-align: right;
+      }
+    }
+
+    .menu-content{
+      width: 100%;
+      max-width: 345px;
+      display: flex;
+      flex-direction: row;
+      margin-top: 8px;
+      .menu-content-l{
+        flex: 1;
+        .menu-content-lb{
+          display: flex;
+          flex-direction: row;
+          justify-content: space-between;
+          padding-right: 14px;
+        }
+        .menu-content-lb1{
+          margin-top: 11px;
+          display: flex;
+          flex-direction: row;
+          justify-content: space-between;
+           padding-right: 14px;
+          .menu-content-lb1l{
+            display: flex;
+            flex-direction: column;
+            line-height: 22px;
+          }
+          .menu-content-lb1r{
+            display: flex;
+            flex-direction: column;
+            line-height: 22px;
+          }
+        }
+        .menu-content-lb1:nth-child(4){
+          .menu-content-lb1l{
+            color: #45b26b;
+          }
+        }
+        .menu-content-lb1:nth-child(5){
+          .menu-content-lb1l{
+            width: 100%;
+            display: flex;
+            flex-direction: row;
+            justify-content: space-between;
+            align-items: center;
+            background-color: #f5f5f5;
+            border-radius: 6px;
+            height: 24px;
+            padding: 0 5px 0 13px;
+
+
+          }
+          .menu-content-lb1r{
+            margin-left: 15px;
+          }
+        }
+
+        .menu-content-lb2{
+          margin-top: 8px;
+          line-height: 16px;
+          //span:nth-child(2){
+          //  //border-style: dashed;
+          //}
+        }
+      }
+      .menu-content-r{
+        flex: 1;
+        flex-basis: 63.5px;
+        .menu-content-rb:nth-of-type(4){
+           background-color: transparent;
+            height:20px;
+
+        }
+        .menu-content-rb {
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            background-color: #f5f5f5;
+            border-radius: 6px;
+            margin-bottom: 8px;
+            height: 38px;
+          span{
+              padding-right: 12px;
+
+            }
+          img{
+            padding-right: 12px;
+            //height: 16px;
+            //width: 16px;
+          }
+
+          .menu-content-rb1{
+            text-align: center;
+            margin-left: 12px;
+            //padding-right: 12px;
+
+            img{
+              padding-right: 6px;
+
+            }
+
+          }
+          }
+        .menu-content-rb:nth-of-type(6){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+              margin-left: 0;
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(1){
+
+               font-size: 12px;
+            }
+            span:nth-child(2){
+              margin:0 9px 0 9px;
+               font-size: 12px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(7){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+              margin-left: 0;
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 9px 0 9px;
+              font-size: 12px;
+            }
+            span:nth-child(3){
+              color: #df384c;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(8){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 9px 0 9px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(9){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+             img{
+               padding-left: 5px;
+               font-size: 16px;
+               padding-top: 2px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 9px 0 9px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(10){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+             img{
+               padding-left: 5px;
+               font-size: 16px;
+               padding-top: 2px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 0px 0 5px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(11){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+             img{
+               padding-left: 5px;
+               font-size: 16px;
+               padding-top: 2px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 0px 0 5px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(12){
+           background-color: #45b26b;
+           div{margin: auto;}
+
+        }
+        .menu-content-rb:nth-of-type(13){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+             img{
+               padding-left: 5px;
+               font-size: 16px;
+               padding-top: 2px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 0px 0 5px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(14){
+           background-color: transparent;
+            height:20px;
+           .menu-content-rb1{
+             display: flex;
+             align-items: center;
+             height: 24px;
+              margin-left: 0;
+             align-content: center;
+             input{
+                width:16px;
+               height: 16px;
+               margin-right: 5px;
+             }
+             img{
+               padding-left: 5px;
+               font-size: 16px;
+               padding-top: 2px;
+             }
+            }
+          .menu-content-rb1:nth-child(2){
+            span:nth-child(2){
+              margin:0 0px 0 5px;
+            }
+          }
+           span{
+              padding-right: 0;
+            }
+          img{
+            padding-right: 0;
+          }
+
+        }
+        .menu-content-rb:nth-of-type(15){
+           background-color: #df384c;
+           div{margin: auto;}
+
+        }
+        //.van-dropdown-menu__bar{
+        //  width: 214px;
+        //}
+
+      }
+    }
+  }
+</style>

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff