Browse Source

地区选项接近完成,缺少支付和bug修复

JXDS18FUJT 1 year ago
parent
commit
57e5faba78

+ 119 - 206
package-lock.json

@@ -323,42 +323,6 @@
       "resolved": "https://registry.npm.taobao.org/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz?cache=0&sync_timestamp=1612895880147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ctrl%2Ftinycolor%2Fdownload%2F%40ctrl%2Ftinycolor-3.4.0.tgz",
       "resolved": "https://registry.npm.taobao.org/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz?cache=0&sync_timestamp=1612895880147&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ctrl%2Ftinycolor%2Fdownload%2F%40ctrl%2Ftinycolor-3.4.0.tgz",
       "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
       "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
     },
     },
-    "@floating-ui/core": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.1.tgz",
-      "integrity": "sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg=="
-    },
-    "@floating-ui/dom": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.2.1.tgz",
-      "integrity": "sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==",
-      "requires": {
-        "@floating-ui/core": "^1.2.1"
-      }
-    },
-    "@rc-component/mini-decimal": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.0.1.tgz",
-      "integrity": "sha512-9N8nRk0oKj1qJzANKl+n9eNSMUGsZtjwNuDCiZ/KA+dt1fE3zq5x2XxclRcAbOIXnZcJ53ozP2Pa60gyELXagA==",
-      "requires": {
-        "@babel/runtime": "^7.18.0"
-      },
-      "dependencies": {
-        "@babel/runtime": {
-          "version": "7.21.0",
-          "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz",
-          "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
-          "requires": {
-            "regenerator-runtime": "^0.13.11"
-          }
-        },
-        "regenerator-runtime": {
-          "version": "0.13.11",
-          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-          "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-        }
-      }
-    },
     "@react-spring/animated": {
     "@react-spring/animated": {
       "version": "9.6.1",
       "version": "9.6.1",
       "resolved": "https://registry.npmmirror.com/@react-spring/animated/-/animated-9.6.1.tgz",
       "resolved": "https://registry.npmmirror.com/@react-spring/animated/-/animated-9.6.1.tgz",
@@ -409,16 +373,16 @@
         "@react-spring/types": "~9.6.1"
         "@react-spring/types": "~9.6.1"
       }
       }
     },
     },
+    "@react-vant/icons": {
+      "version": "0.0.10",
+      "resolved": "https://registry.npmmirror.com/@react-vant/icons/-/icons-0.0.10.tgz",
+      "integrity": "sha512-q7zAp6b5luf+m5tZNMhOdyrm5+koWAsLlJ9wX09g0dmLEAIJxMRtdGHcHGmUs8H6lDXuYSSJln1Jqej+7ei9Vg=="
+    },
     "@types/history": {
     "@types/history": {
       "version": "4.7.8",
       "version": "4.7.8",
       "resolved": "https://registry.npm.taobao.org/@types/history/download/@types/history-4.7.8.tgz",
       "resolved": "https://registry.npm.taobao.org/@types/history/download/@types/history-4.7.8.tgz",
       "integrity": "sha1-STSDh5gwdXBf6PTgL7Z/farsSTQ="
       "integrity": "sha1-STSDh5gwdXBf6PTgL7Z/farsSTQ="
     },
     },
-    "@types/js-cookie": {
-      "version": "2.2.7",
-      "resolved": "https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz",
-      "integrity": "sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA=="
-    },
     "@types/node": {
     "@types/node": {
       "version": "14.14.31",
       "version": "14.14.31",
       "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613757896289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz",
       "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.14.31.tgz?cache=0&sync_timestamp=1613757896289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.14.31.tgz",
@@ -467,18 +431,10 @@
         "@types/react-router": "*"
         "@types/react-router": "*"
       }
       }
     },
     },
-    "@use-gesture/core": {
-      "version": "10.2.20",
-      "resolved": "https://registry.npmmirror.com/@use-gesture/core/-/core-10.2.20.tgz",
-      "integrity": "sha512-4lFhHc8so4yIHkBEs641DnEsBxPyhJ5GEjB4PURFDH4p/FcZriH6w99knZgI63zN/MBFfylMyb8+PDuj6RIXKQ=="
-    },
-    "@use-gesture/react": {
-      "version": "10.2.20",
-      "resolved": "https://registry.npmmirror.com/@use-gesture/react/-/react-10.2.20.tgz",
-      "integrity": "sha512-KnJq9ZSqprWA6uNhWTUHZqTCh+rfa0j8ehTzqeBhktUPrmTj7yVOBvEQ/vSFU/7d72cGgWSsJ0f5T6GQCHXnvg==",
-      "requires": {
-        "@use-gesture/core": "10.2.20"
-      }
+    "@vant/popperjs": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
+      "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
     },
     },
     "@vitejs/plugin-react-refresh": {
     "@vitejs/plugin-react-refresh": {
       "version": "1.3.1",
       "version": "1.3.1",
@@ -492,34 +448,6 @@
         "react-refresh": "^0.9.0"
         "react-refresh": "^0.9.0"
       }
       }
     },
     },
-    "ahooks": {
-      "version": "3.7.4",
-      "resolved": "https://registry.npmmirror.com/ahooks/-/ahooks-3.7.4.tgz",
-      "integrity": "sha512-hvgdqzPUKXn95mK3cGlDCi/ZZqv+FRibCUCFT8zW3hCwLGvixVfnHrIW2/2lgzPdLo8mLjp/XOdIJvcPvE2lgQ==",
-      "requires": {
-        "@types/js-cookie": "^2.x.x",
-        "ahooks-v3-count": "^1.0.0",
-        "dayjs": "^1.9.1",
-        "intersection-observer": "^0.12.0",
-        "js-cookie": "^2.x.x",
-        "lodash": "^4.17.21",
-        "resize-observer-polyfill": "^1.5.1",
-        "screenfull": "^5.0.0",
-        "tslib": "^2.4.1"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.5.0",
-          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz",
-          "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
-        }
-      }
-    },
-    "ahooks-v3-count": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmmirror.com/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz",
-      "integrity": "sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ=="
-    },
     "ansi-styles": {
     "ansi-styles": {
       "version": "3.2.1",
       "version": "3.2.1",
       "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611325747047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
       "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1611325747047&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz",
@@ -578,101 +506,11 @@
         "warning": "^4.0.3"
         "warning": "^4.0.3"
       }
       }
     },
     },
-    "antd-mobile": {
-      "version": "5.28.1",
-      "resolved": "https://registry.npmmirror.com/antd-mobile/-/antd-mobile-5.28.1.tgz",
-      "integrity": "sha512-TFhwLstHig8HoJ34DiBelM2h7md0xn+VR54CVCZfm3nQ+LQEHaHOB6oJRHSMdm67kR8G8MyU618qeF+gK9JKxw==",
-      "requires": {
-        "@floating-ui/dom": "^1.0.6",
-        "@rc-component/mini-decimal": "^1.0.1",
-        "@react-spring/web": "~9.6.0",
-        "@use-gesture/react": "10.2.20",
-        "ahooks": "^3.7.2",
-        "antd-mobile-icons": "^0.3.0",
-        "antd-mobile-v5-count": "^1.0.1",
-        "classnames": "^2.3.2",
-        "dayjs": "^1.11.6",
-        "lodash": "^4.17.21",
-        "rc-field-form": "~1.27.3",
-        "rc-util": "^5.24.8",
-        "react-is": "^17.0.2",
-        "runes": "^0.4.3",
-        "staged-components": "^1.1.3",
-        "tslib": "^2.4.1",
-        "use-sync-external-store": "^1.2.0"
-      },
-      "dependencies": {
-        "@babel/runtime": {
-          "version": "7.21.0",
-          "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.21.0.tgz",
-          "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
-          "requires": {
-            "regenerator-runtime": "^0.13.11"
-          }
-        },
-        "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=="
-        },
-        "classnames": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz",
-          "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw=="
-        },
-        "rc-field-form": {
-          "version": "1.27.4",
-          "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.27.4.tgz",
-          "integrity": "sha512-PQColQnZimGKArnOh8V2907+VzDCXcqtFvHgevDLtqWc/P7YASb/FqntSmdS8q3VND5SHX3Y1vgMIzY22/f/0Q==",
-          "requires": {
-            "@babel/runtime": "^7.18.0",
-            "async-validator": "^4.1.0",
-            "rc-util": "^5.8.0"
-          }
-        },
-        "rc-util": {
-          "version": "5.28.0",
-          "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.28.0.tgz",
-          "integrity": "sha512-KYDjhGodswVj29v0TRciKTqRPgumIFvFDndbCD227pitQ+0Cei196rxk+OXb/blu6V8zdTRK5RjCJn+WmHLvBA==",
-          "requires": {
-            "@babel/runtime": "^7.18.3",
-            "react-is": "^16.12.0"
-          },
-          "dependencies": {
-            "react-is": {
-              "version": "16.13.1",
-              "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
-              "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
-            }
-          }
-        },
-        "react-is": {
-          "version": "17.0.2",
-          "resolved": "https://registry.npmmirror.com/react-is/-/react-is-17.0.2.tgz",
-          "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
-        },
-        "regenerator-runtime": {
-          "version": "0.13.11",
-          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
-          "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
-        },
-        "tslib": {
-          "version": "2.5.0",
-          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.5.0.tgz",
-          "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
-        }
-      }
-    },
     "antd-mobile-icons": {
     "antd-mobile-icons": {
       "version": "0.3.0",
       "version": "0.3.0",
       "resolved": "https://registry.npmmirror.com/antd-mobile-icons/-/antd-mobile-icons-0.3.0.tgz",
       "resolved": "https://registry.npmmirror.com/antd-mobile-icons/-/antd-mobile-icons-0.3.0.tgz",
       "integrity": "sha512-rqINQpJWZWrva9moCd1Ye695MZYWmqLPE+bY8d2xLRy7iSQwPsinCdZYjpUPp2zL/LnKYSyXxP2ut2A+DC+whQ=="
       "integrity": "sha512-rqINQpJWZWrva9moCd1Ye695MZYWmqLPE+bY8d2xLRy7iSQwPsinCdZYjpUPp2zL/LnKYSyXxP2ut2A+DC+whQ=="
     },
     },
-    "antd-mobile-v5-count": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/antd-mobile-v5-count/-/antd-mobile-v5-count-1.0.1.tgz",
-      "integrity": "sha512-YGsiEDCPUDz3SzfXi6gLZn/HpeSMW+jgPc4qiYUr1fSopg3hkUie2TnooJdExgfiETHefH3Ggs58He0OVfegLA=="
-    },
     "array-tree-filter": {
     "array-tree-filter": {
       "version": "2.1.0",
       "version": "2.1.0",
       "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz",
       "resolved": "https://registry.npm.taobao.org/array-tree-filter/download/array-tree-filter-2.1.0.tgz",
@@ -767,6 +605,11 @@
       "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz",
       "resolved": "https://registry.npm.taobao.org/classnames/download/classnames-2.2.6.tgz",
       "integrity": "sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4="
       "integrity": "sha1-Q5Nb/90pHzJtrQogUwmzjQD2UM4="
     },
     },
+    "clsx": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz",
+      "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
+    },
     "color-convert": {
     "color-convert": {
       "version": "1.9.3",
       "version": "1.9.3",
       "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
       "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
@@ -829,11 +672,6 @@
       "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-2.17.0.tgz",
       "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-2.17.0.tgz",
       "integrity": "sha1-r6VdrqU5I52wpk4jbOcW7z1oG6E="
       "integrity": "sha1-r6VdrqU5I52wpk4jbOcW7z1oG6E="
     },
     },
-    "dayjs": {
-      "version": "1.11.7",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.7.tgz",
-      "integrity": "sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ=="
-    },
     "debug": {
     "debug": {
       "version": "4.3.1",
       "version": "4.3.1",
       "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
       "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1607566533140&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
@@ -848,6 +686,15 @@
       "resolved": "https://registry.npm.taobao.org/dom-align/download/dom-align-1.12.0.tgz",
       "resolved": "https://registry.npm.taobao.org/dom-align/download/dom-align-1.12.0.tgz",
       "integrity": "sha1-VvtxVt8LkQmYMDZNLUj4iWP1opw="
       "integrity": "sha1-VvtxVt8LkQmYMDZNLUj4iWP1opw="
     },
     },
+    "dom-helpers": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz",
+      "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+      "requires": {
+        "@babel/runtime": "^7.8.7",
+        "csstype": "^3.0.2"
+      }
+    },
     "electron-to-chromium": {
     "electron-to-chromium": {
       "version": "1.3.675",
       "version": "1.3.675",
       "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.675.tgz?cache=0&sync_timestamp=1614366212276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.675.tgz",
       "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.675.tgz?cache=0&sync_timestamp=1614366212276&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.675.tgz",
@@ -981,11 +828,6 @@
       "resolved": "https://registry.npm.taobao.org/insert-css/download/insert-css-2.0.0.tgz",
       "resolved": "https://registry.npm.taobao.org/insert-css/download/insert-css-2.0.0.tgz",
       "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
       "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
     },
     },
-    "intersection-observer": {
-      "version": "0.12.2",
-      "resolved": "https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz",
-      "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg=="
-    },
     "is-core-module": {
     "is-core-module": {
       "version": "2.2.0",
       "version": "2.2.0",
       "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411622542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz",
       "resolved": "https://registry.npm.taobao.org/is-core-module/download/is-core-module-2.2.0.tgz?cache=0&sync_timestamp=1606411622542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-core-module%2Fdownload%2Fis-core-module-2.2.0.tgz",
@@ -1006,11 +848,6 @@
       "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
       "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz",
       "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
       "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
     },
     },
-    "js-cookie": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz",
-      "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
-    },
     "js-tokens": {
     "js-tokens": {
       "version": "4.0.0",
       "version": "4.0.0",
       "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz",
       "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz",
@@ -1723,6 +1560,102 @@
         "tiny-warning": "^1.0.0"
         "tiny-warning": "^1.0.0"
       }
       }
     },
     },
+    "react-transition-group": {
+      "version": "4.4.2",
+      "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.2.tgz",
+      "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==",
+      "requires": {
+        "@babel/runtime": "^7.5.5",
+        "dom-helpers": "^5.0.1",
+        "loose-envify": "^1.4.0",
+        "prop-types": "^15.6.2"
+      }
+    },
+    "react-vant": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/react-vant/-/react-vant-3.3.1.tgz",
+      "integrity": "sha512-lZs5DTeYjotfJLAZq64qgdEGBmC/8Ab50L4BpGwdZlluusGO/alX5qxzlKyhAa1VEFvYjdWFLGQ/szJM2FhAxw==",
+      "requires": {
+        "@react-spring/web": "^9.4.5",
+        "@react-vant/icons": "^0.0.10",
+        "@use-gesture/react": "10.2.17",
+        "@vant/popperjs": "^1.1.0",
+        "clsx": "1.2.1",
+        "rc-field-form": "^1.26.4",
+        "react-is": "^18.2.0",
+        "react-transition-group": "4.4.2",
+        "tslib": "^2.4.0"
+      },
+      "dependencies": {
+        "@babel/runtime": {
+          "version": "7.22.6",
+          "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.22.6.tgz",
+          "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==",
+          "requires": {
+            "regenerator-runtime": "^0.13.11"
+          }
+        },
+        "@use-gesture/core": {
+          "version": "10.2.17",
+          "resolved": "https://registry.npmmirror.com/@use-gesture/core/-/core-10.2.17.tgz",
+          "integrity": "sha512-62hCybe4x6oGZ1/JA9gSYIdghV1FqxCdvYWt9SqCEAAikwT1OmVl2Q/Uu8CP636L57D+DfXtw6PWM+fdhr4oJQ=="
+        },
+        "@use-gesture/react": {
+          "version": "10.2.17",
+          "resolved": "https://registry.npmmirror.com/@use-gesture/react/-/react-10.2.17.tgz",
+          "integrity": "sha512-Vfrp1KgdYn/kOEUAYNXtGBCl2dr38s3G6rru1TOPs+cVUjfNyNxvJK56grUyJ336N3rQLK8F9G7+FfrHuc3g/Q==",
+          "requires": {
+            "@use-gesture/core": "10.2.17"
+          }
+        },
+        "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=="
+        },
+        "rc-field-form": {
+          "version": "1.36.1",
+          "resolved": "https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.36.1.tgz",
+          "integrity": "sha512-v6CKM4aQ0+U9PPB1y42TB8+n5nCcdJOayJzGUJW5t/+yXLMRyo3SKH9QvHpL5XQY86esuleb7kBAzGxt4IKkvg==",
+          "requires": {
+            "@babel/runtime": "^7.18.0",
+            "async-validator": "^4.1.0",
+            "rc-util": "^5.32.2"
+          }
+        },
+        "rc-util": {
+          "version": "5.35.0",
+          "resolved": "https://registry.npmmirror.com/rc-util/-/rc-util-5.35.0.tgz",
+          "integrity": "sha512-MTXlixb3EoSTEchsOc7XWsVyoUQqoCsh2Z1a2IptwNgqleMF6ZgQeY52UzUbNj5CcVBg9YljOWjuOV07jSSm4Q==",
+          "requires": {
+            "@babel/runtime": "^7.18.3",
+            "react-is": "^16.12.0"
+          },
+          "dependencies": {
+            "react-is": {
+              "version": "16.13.1",
+              "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+              "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+            }
+          }
+        },
+        "react-is": {
+          "version": "18.2.0",
+          "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz",
+          "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+        },
+        "regenerator-runtime": {
+          "version": "0.13.11",
+          "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+          "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+        },
+        "tslib": {
+          "version": "2.6.1",
+          "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.6.1.tgz",
+          "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
+        }
+      }
+    },
     "regenerator-runtime": {
     "regenerator-runtime": {
       "version": "0.13.7",
       "version": "0.13.7",
       "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz",
       "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz",
@@ -1757,11 +1690,6 @@
         "fsevents": "~2.3.1"
         "fsevents": "~2.3.1"
       }
       }
     },
     },
-    "runes": {
-      "version": "0.4.3",
-      "resolved": "https://registry.npmmirror.com/runes/-/runes-0.4.3.tgz",
-      "integrity": "sha512-K6p9y4ZyL9wPzA+PMDloNQPfoDGTiFYDvdlXznyGKgD10BJpcAosvATKrExRKOrNLgD8E7Um7WGW0lxsnOuNLg=="
-    },
     "safe-buffer": {
     "safe-buffer": {
       "version": "5.1.2",
       "version": "5.1.2",
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589682795646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz",
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz?cache=0&sync_timestamp=1589682795646&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.1.2.tgz",
@@ -1791,11 +1719,6 @@
         "object-assign": "^4.1.1"
         "object-assign": "^4.1.1"
       }
       }
     },
     },
-    "screenfull": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz",
-      "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA=="
-    },
     "scroll-into-view-if-needed": {
     "scroll-into-view-if-needed": {
       "version": "2.2.27",
       "version": "2.2.27",
       "resolved": "https://registry.npm.taobao.org/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.27.tgz",
       "resolved": "https://registry.npm.taobao.org/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.27.tgz",
@@ -1821,11 +1744,6 @@
       "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
       "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
       "dev": true
       "dev": true
     },
     },
-    "staged-components": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/staged-components/-/staged-components-1.1.3.tgz",
-      "integrity": "sha512-9EIswzDqjwlEu+ymkV09TTlJfzSbKgEnNteUnZSTxkpMgr5Wx2CzzA9WcMFWBNCldqVPsHVnRGGrApduq2Se5A=="
-    },
     "string-convert": {
     "string-convert": {
       "version": "0.2.1",
       "version": "0.2.1",
       "resolved": "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz",
       "resolved": "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz",
@@ -1882,11 +1800,6 @@
         "picocolors": "^1.0.0"
         "picocolors": "^1.0.0"
       }
       }
     },
     },
-    "use-sync-external-store": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
-      "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="
-    },
     "value-equal": {
     "value-equal": {
       "version": "1.0.1",
       "version": "1.0.1",
       "resolved": "https://registry.npm.taobao.org/value-equal/download/value-equal-1.0.1.tgz",
       "resolved": "https://registry.npm.taobao.org/value-equal/download/value-equal-1.0.1.tgz",

+ 1 - 1
package.json

@@ -11,7 +11,6 @@
     "@ahooksjs/use-request": "^2.8.3",
     "@ahooksjs/use-request": "^2.8.3",
     "@types/react-router-dom": "^5.1.7",
     "@types/react-router-dom": "^5.1.7",
     "antd": "^4.12.3",
     "antd": "^4.12.3",
-    "antd-mobile": "^5.28.1",
     "antd-mobile-icons": "^0.3.0",
     "antd-mobile-icons": "^0.3.0",
     "autoprefixer": "^10.4.13",
     "autoprefixer": "^10.4.13",
     "axios": "^0.21.4",
     "axios": "^0.21.4",
@@ -19,6 +18,7 @@
     "react": "^17.0.0",
     "react": "^17.0.0",
     "react-dom": "^17.0.0",
     "react-dom": "^17.0.0",
     "react-router-dom": "^5.2.0",
     "react-router-dom": "^5.2.0",
+    "react-vant": "^3.3.1",
     "weixin-js-sdk-ts": "^1.6.0",
     "weixin-js-sdk-ts": "^1.6.0",
     "weui": "^1.1.0"
     "weui": "^1.1.0"
   },
   },

+ 4 - 3
src/api/index.ts

@@ -100,11 +100,12 @@ const api = {
             method:'get'
             method:'get'
         })
         })
     },
     },
-    //查询考场详细信息
-    studentExamInfoList(data:{}){
+    //查询考场信息列表
+    studentExamInfoList(params:{}){
         return request({
         return request({
             url:"student/exam/info/list",
             url:"student/exam/info/list",
-            method:'get'
+            method:'get',
+            params
         })
         })
     },
     },
     //获取考场省份
     //获取考场省份

+ 4 - 4
src/utils/request.ts

@@ -1,5 +1,5 @@
 import axios from "axios";
 import axios from "axios";
-import { Toast } from 'antd-mobile'
+import { Toast } from 'react-vant';
 const request = axios.create({
 const request = axios.create({
 	baseURL: import.meta.env.MODE === "production" ? "https://nbjk.zzxcx.net/nbjk-admin" : "https://nbjk.zzxcx.net/nbjk-admin",
 	baseURL: import.meta.env.MODE === "production" ? "https://nbjk.zzxcx.net/nbjk-admin" : "https://nbjk.zzxcx.net/nbjk-admin",
 });
 });
@@ -25,9 +25,9 @@ request.interceptors.response.use((res) => {
 	if (res && res.data) {
 	if (res && res.data) {
 		switch (res.data.code) {
 		switch (res.data.code) {
 			case 401:
 			case 401:
-				Toast.show({
-					content:"正在登陆中",
-					icon:"loading"
+				Toast.loading({
+					message:"正在登陆中",
+			
 				})
 				})
 				// Toast("登录失败,需要再次登录")
 				// Toast("登录失败,需要再次登录")
 				window.setTimeout(() => {
 				window.setTimeout(() => {

+ 1 - 0
src/views/courseCatalog/components/courseCatalog/index.less

@@ -13,6 +13,7 @@
         display: flex;
         display: flex;
         margin-bottom: 40px;
         margin-bottom: 40px;
         position: relative;
         position: relative;
+        color: #333;
       }
       }
       .video-item-angle {
       .video-item-angle {
         width: 60px;
         width: 60px;

+ 17 - 12
src/views/courseCatalog/components/courseCatalog/index.tsx

@@ -1,9 +1,8 @@
 import './index.less'
 import './index.less'
-import React, { useEffect, useState } from "react";
+import React, { useEffect, useRef, useState } from "react";
 import api from '~/api'
 import api from '~/api'
 import vip_angle from "./../../../../assets/images/vip_angle.png";
 import vip_angle from "./../../../../assets/images/vip_angle.png";
 import try_angle from "./../../../../assets/images/try_angle.png";
 import try_angle from "./../../../../assets/images/try_angle.png";
-import Item from 'antd/lib/list/Item';
 export const CourseCatalog: React.FC = (props: any) => {
 export const CourseCatalog: React.FC = (props: any) => {
     const [list, setList] = useState([{
     const [list, setList] = useState([{
         "createTime": "2023-05-09 21:43:53",
         "createTime": "2023-05-09 21:43:53",
@@ -26,23 +25,29 @@ export const CourseCatalog: React.FC = (props: any) => {
         "examName": "深圳坂田考场",
         "examName": "深圳坂田考场",
         "permission": 1
         "permission": 1
     }])
     }])
+    const [price, setPrice] = useState('0')
     useEffect(() => {
     useEffect(() => {
-        api.studentVipVideoList({
-            province: '上海市'
+        let query = new URLSearchParams(window.location.search)
+        if (query.get('id') && query.get('price')) {
+            setPrice(query.get("price") || "0")
+            api.studentVipVideoList({
+                examId: query.get("id") || ""
+            }).then(res => {
+                setList(res.data.rows)
 
 
-        }).then(res => {
-            // setList(res.data.rows)
-
-
-        })
+            })
+        }
     }, [])
     }, [])
 
 
     return (
     return (
         <div className='courseCatalog'>
         <div className='courseCatalog'>
             <div className="video">
             <div className="video">
                 {list.map(Item => {
                 {list.map(Item => {
-                    return (<div
+                    return (<a
+                  
+                        href={Item.videoUrl}
                         className="video-item"
                         className="video-item"
+                        key={Item.id}
                     >
                     >
                         {Item.permission == 1 ? <img
                         {Item.permission == 1 ? <img
                             src={try_angle}
                             src={try_angle}
@@ -60,7 +65,7 @@ export const CourseCatalog: React.FC = (props: any) => {
                             <div style={{ width: '100%' }}>{Item.videoName}</div>
                             <div style={{ width: '100%' }}>{Item.videoName}</div>
                             <div className="video-item-right-icon">学习中</div>
                             <div className="video-item-right-icon">学习中</div>
                         </div>
                         </div>
-                    </div >)
+                    </a >)
 
 
                 })}
                 })}
 
 
@@ -72,7 +77,7 @@ export const CourseCatalog: React.FC = (props: any) => {
             >
             >
                 <div className="pay-text">
                 <div className="pay-text">
                     <span
                     <span
-                    >立即支付&nbsp;&nbsp;¥{'9.9'}</span>
+                    >立即支付&nbsp;&nbsp;¥{price}</span>
 
 
                     {/* <span >已购买</span> */}
                     {/* <span >已购买</span> */}
                 </div>
                 </div>

+ 14 - 11
src/views/courseCatalog/index.tsx

@@ -4,9 +4,12 @@ import { CourseDesc } from './components/courseDesc';
 import { CourseCatalog as CourseCata } from './components/courseCatalog';
 import { CourseCatalog as CourseCata } from './components/courseCatalog';
 import api from '~/api'
 import api from '~/api'
 export const CourseCatalog: React.FC = (props: any) => {
 export const CourseCatalog: React.FC = (props: any) => {
+
     const [active, setActive] = useState(0)
     const [active, setActive] = useState(0)
     useEffect(() => {
     useEffect(() => {
+
         let query = new URLSearchParams(window.location.search)
         let query = new URLSearchParams(window.location.search)
+      
         if (query.get("state") == 'LOGIN') {
         if (query.get("state") == 'LOGIN') {
             api.loginGzhcode({
             api.loginGzhcode({
                 authorizationCode: query.get("code") || ""
                 authorizationCode: query.get("code") || ""
@@ -18,25 +21,25 @@ export const CourseCatalog: React.FC = (props: any) => {
         }
         }
     }, [])
     }, [])
     return (
     return (
-        <view>
-            <view className="header">
-                <view
+        <div>
+            <div className="header">
+                <div
                     className="header-underline"
                     className="header-underline"
                     style={{
                     style={{
                         left: active * 50 + '%',
                         left: active * 50 + '%',
                     }}
                     }}
                 >
                 >
-                    <view className="header-underline-bg"></view>
-                </view>
-                <view
+                    <div className="header-underline-bg"></div>
+                </div>
+                <div
                     onClick={() => {
                     onClick={() => {
                         setActive(0)
                         setActive(0)
                     }}
                     }}
                     className="header-item"
                     className="header-item"
                 >
                 >
                     课程目录
                     课程目录
-                </view>
-                <view
+                </div>
+                <div
                     onClick={() => {
                     onClick={() => {
                         setActive(1)
                         setActive(1)
                     }}
                     }}
@@ -44,11 +47,11 @@ export const CourseCatalog: React.FC = (props: any) => {
                     className="header-item"
                     className="header-item"
                 >
                 >
                     课程描述
                     课程描述
-                </view>
-            </view>
+                </div>
+            </div>
 
 
             {active == 1 ? <CourseDesc></CourseDesc> : <CourseCata></CourseCata>}
             {active == 1 ? <CourseDesc></CourseDesc> : <CourseCata></CourseCata>}
-        </view>
+        </div>
 
 
     )
     )
 
 

+ 3 - 2
src/views/examRoadVideo/index.less

@@ -4,6 +4,7 @@
         height: auto;
         height: auto;
         flex-wrap: wrap;
         flex-wrap: wrap;
         border-radius: 0px 0px 45px 45px;
         border-radius: 0px 0px 45px 45px;
+      
 
 
 
 
 
 
@@ -15,7 +16,7 @@
 
 
             .search {
             .search {
                 width: 100%;
                 width: 100%;
-                padding: 0 30px;
+               
                 margin-bottom: 20px;
                 margin-bottom: 20px;
                 margin-top: 20px;
                 margin-top: 20px;
                 position: relative;
                 position: relative;
@@ -91,7 +92,7 @@
     .content {
     .content {
         width: 100%;
         width: 100%;
         padding: 0px 30px;
         padding: 0px 30px;
-        transform: translateY(-190px);
+        transform: translateY(-160px);
 
 
         .list {
         .list {
             width: 100%;
             width: 100%;

+ 158 - 59
src/views/examRoadVideo/index.tsx

@@ -1,27 +1,75 @@
 import React, { useEffect, useRef, useState } from "react";
 import React, { useEffect, useRef, useState } from "react";
 import "./index.less";
 import "./index.less";
-import { SearchBarRef } from 'antd-mobile/es/components/search-bar'
-import { Picker, Button, Space, Toast } from 'antd-mobile'
+import { Picker, Popup, Search } from 'react-vant';
 import { SearchOutline } from 'antd-mobile-icons'
 import { SearchOutline } from 'antd-mobile-icons'
 import api from "~/api";
 import api from "~/api";
+import { Link } from "react-router-dom";
 export const ExamRoadVideo: React.FC = (props: any) => {
 export const ExamRoadVideo: React.FC = (props: any) => {
-  const searchRef = useRef<SearchBarRef>(null)
+  const [keyWord, setKeyWord] = useState('');
   const [city, setCity] = useState({
   const [city, setCity] = useState({
-    cityName: "福州市",
-    city: "3501"
+    city: "",
+    cityId: ""
   })
   })
+  const cityRef = useRef<{
+    city: string;
+    cityId: string;
+  }>()
+  cityRef.current = city
   const [province, setProvince] = useState({
   const [province, setProvince] = useState({
-    provinceName: "province",
-    province: "35"
+    province: "",
+    provinceId: ""
   })
   })
-  const [provinceVisible, setProvinceVisible] = useState(true)
+  const provinceRef = useRef<{
+    province: string;
+    provinceId: string;
+  }>()
+
+
+  provinceRef.current = province
+
+  const [county, setCounty] = useState({
+    county: "",
+    countyId: ""
+  })
+  const [provinceVisible, setProvinceVisible] = useState(false)
+  const [cityVisible, setCityVisible] = useState(false)
+  const [countyVisible, setCountyVisible] = useState(false)
   const [provinceList, setProvinceList] = useState<{
   const [provinceList, setProvinceList] = useState<{
-    province:string,
-    provinceId:string
+    province: string,
+    provinceId: string
   }[]>([])
   }[]>([])
-  const getExamList=()=>{
+  const [cityList, setCityList] = useState<{
+    city: string,
+    cityId: string
+  }[]>([])
+  const [countyList, setCountyList] = useState<{
+    county: string,
+    countyId: string
+  }[]>([])
+  const getExamListByName = (name?: string) => {
+    () => {
+      api.studentExamInfoList({
+        name: name
+      }).then(res => {
+        console.log(res)
+        setExamList(res.data.rows)
 
 
 
 
+      })
+    }
+
+  }
+
+  const getCityByProvinceId = (provinceId: string) => {
+
+    api.studentExamInfoCity(Number(provinceId)).then(res => {
+      setCityList(res.data.data)
+    })
+  }
+  const getCountyByCityId = (cityId: string) => {
+    api.studentExamInfoCounty(Number(cityId)).then(res => {
+      setCountyList(res.data.data)
+    })
   }
   }
   const [examList, setExamList] = useState<{
   const [examList, setExamList] = useState<{
     "id": number,
     "id": number,
@@ -40,28 +88,37 @@ export const ExamRoadVideo: React.FC = (props: any) => {
     "sign": null
     "sign": null
   }[]>([])
   }[]>([])
   useEffect(() => {
   useEffect(() => {
-    //定位
-    api.studentExamInfoIp().then(res => {
-      setCity({
-        cityName: res.data.cityName,
-        city: res.data.city
-      })
-      setProvince({
-        province: res.data.province,
-        provinceName: res.data.provinceName
-      })
+    api.studentExamInfoList({
+      ...province,
+      ...city,
+      ...county
+    }).then(res => {
+      setExamList(res.data.rows)
 
 
-      console.log(res)
     })
     })
+
+
+  }, [province, city, county])
+  useEffect(() => {
+    //定位
+    // api.studentExamInfoIp().then(res => {
+    //   setCity({
+    //     city: res.data.data.cityName,
+    //     cityId: res.data.data.city
+    //   })
+    //   setProvince({
+    //     provinceId: res.data.data.province,
+    //     province: res.data.data.provinceName
+    //   })
+
+    //   console.log(res.data)
+    // })
     api.studentExamInfoList({}).then(res => {
     api.studentExamInfoList({}).then(res => {
-      console.log(res)
       setExamList(res.data.rows)
       setExamList(res.data.rows)
 
 
-      
     })
     })
     api.studentExamInfoGetProvice().then(res => {
     api.studentExamInfoGetProvice().then(res => {
       setProvinceList(res.data.data)
       setProvinceList(res.data.data)
-
     })
     })
 
 
   }, [])
   }, [])
@@ -70,52 +127,90 @@ export const ExamRoadVideo: React.FC = (props: any) => {
       <div className="header">
       <div className="header">
         <div className="rect">
         <div className="rect">
           <div className="search">
           <div className="search">
-            <SearchOutline className="icon1" color="#8A9099" fontSize={18} />
-            <input placeholder="输入系列课标题" className="bar" type="search"></input>
+            {/* <SearchOutline className="icon1" color="#8A9099" fontSize={18} /> */}
+            <Search onChange={val => {
+              setKeyWord(val)
+            }} onSearch={(val) => {
+              getExamListByName(val)
+
+            }} value={keyWord} shape="round" background="transparent" placeholder="请输入搜索关键词"></Search>
+            {/* <input placeholder="输入系列课标题" className="bar" type="search"></input> */}
           </div>
           </div>
           <div
           <div
             className="select"
             className="select"
 
 
           >
           >
             <input
             <input
-
+              value={province.province}
               readOnly
               readOnly
-              onClick={()=>{setProvinceVisible(true)}}
+              onClick={() => { setProvinceVisible(true) }}
               placeholder="省份"
               placeholder="省份"
               className="header-province"
               className="header-province"
               type="text"
               type="text"
             />
             />
             <input
             <input
-              disabled
-
-              v-model="city.city"
+              readOnly
+              value={city.city}
+              onClick={() => { setCityVisible(true) }}
               placeholder="地市"
               placeholder="地市"
               className="header-city"
               className="header-city"
               type="text"
               type="text"
             />
             />
 
 
             <input
             <input
-              disabled
+              onClick={() => {
+                setCountyVisible(true)
+              }}
 
 
+              value={county.county}
 
 
-              v-model="county.county"
               placeholder="区"
               placeholder="区"
               className="header-area"
               className="header-area"
               type="text"
               type="text"
             />
             />
 
 
           </div>
           </div>
+          <Popup position="bottom" visible={provinceVisible}>
+            <Picker columnsFieldNames={{
+              text: 'province',
+              value: 'provinceId'
+            }} onCancel={() => setProvinceVisible(false)} onConfirm={(val: string, item: {
+              province: string,
+              provinceId: string
+            }) => { setProvince(item || { province: '', provinceId: '' }); setProvinceVisible(false); getCityByProvinceId(item.provinceId); }} columns={provinceList}></Picker>
+          </Popup>
+          <Popup position="bottom" visible={cityVisible}>
+            <Picker columnsFieldNames={{
+              text: 'city',
+              value: 'cityId'
+            }} columns={cityList} onConfirm={(val: string, item: {
+              city: string,
+              cityId: string
+            }) => {
+
+              setCity(item || { city: '', cityId: '' }); setCityVisible(false);
+              getCountyByCityId(item.cityId);
+
+            }} onCancel={() => { setCityVisible(false); }}></Picker>
+          </Popup>
+          <Popup position="bottom" visible={countyVisible}>
+            <Picker onCancel={() => {
+              setCountyVisible(false)
+            }} onConfirm={(value: string, item: {
+              county: string;
+              countyId: string;
+            }) => {
+              setCounty(item || { county: '', countyId: '' })
+              setCountyVisible(false)
+
+
+            }} columns={countyList} columnsFieldNames={{
+              text: "county",
+              value: "countyId"
+            }}></Picker>
+          </Popup>
         </div>
         </div>
-        <Picker onConfirm={()=>{
-          getExamList()
-        }} onCancel={()=>{setProvinceVisible(false)}} visible={provinceVisible} columns={(values)=>{
-          let columns = provinceList.map(item=>{
-            return [{label:item.province,value:item.provinceId}]
-             
-            
-          })
-          return columns
-        }}></Picker>
+
 
 
       </div>
       </div>
       <div className="content">
       <div className="content">
@@ -126,25 +221,29 @@ export const ExamRoadVideo: React.FC = (props: any) => {
           image="https://img.yzcdn.cn/vant/custom-empty-image.png"
           image="https://img.yzcdn.cn/vant/custom-empty-image.png"
           description="该城市无视频"
           description="该城市无视频"
         /> */}
         /> */}
-          {examList.map(item => {
-            return (<div
-              key={item.id}
-              className="list-item"
+          {
 
 
-            >
-              <img src={item.image} className="list-item-image">
-              </img>
-              <div
-                className="list-item-textbody"
+            examList.map(item => {
+              return (<Link key={item.id} to={'/courseCatalog?id=' + item.id+'&price='+(Number(item.price)/100)}><div
+                key={item.id}
+                className="list-item"
 
 
               >
               >
-                <div className="list-item-text1">{item.name}</div>
-                <div className="list-item-text2">共{item.videoCount}节</div>
-              </div>
-              <div className="list-item-border"></div>
-            </div>)
 
 
-          })}
+
+                <img src={item.image} className="list-item-image">
+                </img>
+                <div
+                  className="list-item-textbody"
+
+                >
+                  <div className="list-item-text1">{item.name}</div>
+                  <div className="list-item-text2">共{item.videoCount}节</div>
+                </div>
+                <div className="list-item-border"></div>
+              </div>   </Link>)
+
+            })}
 
 
         </div>
         </div>
       </div>
       </div>

+ 0 - 1
src/views/marked/index.tsx

@@ -1,6 +1,5 @@
 import './index.less'
 import './index.less'
 import React, { useEffect, useState } from "react";
 import React, { useEffect, useState } from "react";
-import Item from 'antd/lib/list/Item';
 import api from '~/api'
 import api from '~/api'
 export const Marked: React.FC = (props: any) => {
 export const Marked: React.FC = (props: any) => {
     const [jsonData, setJsonData] = useState<{
     const [jsonData, setJsonData] = useState<{

+ 15 - 18
vite.config.ts

@@ -11,19 +11,16 @@ export default defineConfig({
     postcss: {
     postcss: {
       plugins: [
       plugins: [
         postcsspxtoviewport({
         postcsspxtoviewport({
-          unitToConvert: 'px', // 要转化的单位
-          viewportWidth: 750, // UI设计稿的宽度
-          unitPrecision: 4, // 转换后的精度,即小数点位数
-          propList: ['*'], // 指定转换的css属性的单位,*代表全部css属性的单位都进行转换
-          viewportUnit: 'vw', // 指定需要转换成的视窗单位,默认vw
-          fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位,默认vw
-          selectorBlackList: ['ignore-'], // 指定不转换为视窗单位的类名,
-          minPixelValue: 1, // 默认值1,小于或等于1px则不进行转换
-          mediaQuery: true, // 是否在媒体查询的css代码中也进行转换,默认false
-          replace: true, // 是否转换后直接更换属性值
-          // exclude: [/node_modules/], // 设置忽略文件,用正则做目录名匹配
-          exclude: [],
-          landscape: false // 是否处理横屏情况
+          viewportUnit: "vw",
+          fontViewportUnit: "vw",
+          viewportWidth: 375,
+          exclude: [/^(?!.*node_modules\/react-vant)/]
+        }),
+        postcsspxtoviewport({
+          viewportUnit: "vw",
+          fontViewportUnit: "vw",
+          viewportWidth: 750,
+          exclude: [/node_modules\/react-vant/i]
         })
         })
       ]
       ]
     },
     },
@@ -59,11 +56,11 @@ export default defineConfig({
   },
   },
   server: {
   server: {
     host: "nbjk-h5.zzxcx.net",
     host: "nbjk-h5.zzxcx.net",
-		port: 443,
-		https: {
-			key: fs.readFileSync("./cert/nbjk-h5.zzxcx.net.key"),
-			cert: fs.readFileSync("./cert/nbjk-h5.zzxcx.net.pem"),
-		},
+    port: 443,
+    https: {
+      key: fs.readFileSync("./cert/nbjk-h5.zzxcx.net.key"),
+      cert: fs.readFileSync("./cert/nbjk-h5.zzxcx.net.pem"),
+    },
     // proxy: {
     // proxy: {
     //   '/api': {
     //   '/api': {
     //     target: 'http://jsonplaceholder.typicode.com/',
     //     target: 'http://jsonplaceholder.typicode.com/',