Parcourir la source

支付测试版,不要合到主分支

bzkf3 il y a 2 ans
Parent
commit
e9d7f15cb9

+ 6 - 7
package.json

@@ -9,22 +9,21 @@
     "preview": "vite preview"
   },
   "dependencies": {
-    "@vueuse/core": "^9.1.0",
+    "@vueuse/core": "^9.1.1",
     "axios": "^0.27.2",
-    "dayjs": "^1.11.5",
     "default-passive-events": "^2.0.0",
     "vant": "4.0.0-beta.0",
     "vue": "^3.2.37",
-    "vue-router": "^4.1.3"
+    "vue-router": "^4.1.4"
   },
   "devDependencies": {
-    "@iconify/json": "^2.1.92",
+    "@iconify/json": "^2.1.98",
     "@vitejs/plugin-vue": "^3.0.3",
-    "sass": "^1.54.4",
-    "unplugin-auto-import": "^0.11.1",
+    "sass": "^1.54.5",
+    "unplugin-auto-import": "^0.11.2",
     "unplugin-icons": "^0.14.8",
     "unplugin-vue-components": "^0.22.4",
-    "vite": "^3.0.7",
+    "vite": "^3.0.9",
     "vite-plugin-windicss": "^1.8.7",
     "windicss": "^3.5.6"
   }

+ 81 - 87
pnpm-lock.yaml

@@ -1,41 +1,39 @@
 lockfileVersion: 5.4
 
 specifiers:
-  '@iconify/json': ^2.1.92
+  '@iconify/json': ^2.1.98
   '@vitejs/plugin-vue': ^3.0.3
-  '@vueuse/core': ^9.1.0
+  '@vueuse/core': ^9.1.1
   axios: ^0.27.2
-  dayjs: ^1.11.5
   default-passive-events: ^2.0.0
-  sass: ^1.54.4
-  unplugin-auto-import: ^0.11.1
+  sass: ^1.54.5
+  unplugin-auto-import: ^0.11.2
   unplugin-icons: ^0.14.8
   unplugin-vue-components: ^0.22.4
   vant: 4.0.0-beta.0
-  vite: ^3.0.7
+  vite: ^3.0.9
   vite-plugin-windicss: ^1.8.7
   vue: ^3.2.37
-  vue-router: ^4.1.3
+  vue-router: ^4.1.4
   windicss: ^3.5.6
 
 dependencies:
-  '@vueuse/core': 9.1.0_vue@3.2.37
+  '@vueuse/core': 9.1.1_vue@3.2.37
   axios: 0.27.2
-  dayjs: 1.11.5
   default-passive-events: 2.0.0
   vant: 4.0.0-beta.0_vue@3.2.37
   vue: 3.2.37
-  vue-router: 4.1.3_vue@3.2.37
+  vue-router: 4.1.4_vue@3.2.37
 
 devDependencies:
-  '@iconify/json': 2.1.92
-  '@vitejs/plugin-vue': 3.0.3_vite@3.0.7+vue@3.2.37
-  sass: 1.54.4
-  unplugin-auto-import: 0.11.1_gvfhqaq4iriax5zs7grzec6lkm
-  unplugin-icons: 0.14.8_vite@3.0.7
-  unplugin-vue-components: 0.22.4_vite@3.0.7+vue@3.2.37
-  vite: 3.0.7_sass@1.54.4
-  vite-plugin-windicss: 1.8.7_vite@3.0.7
+  '@iconify/json': 2.1.98
+  '@vitejs/plugin-vue': 3.0.3_vite@3.0.9+vue@3.2.37
+  sass: 1.54.5
+  unplugin-auto-import: 0.11.2_jfxn32i2eq37u3jpfk3zc3f4hy
+  unplugin-icons: 0.14.8_vite@3.0.9
+  unplugin-vue-components: 0.22.4_vite@3.0.9+vue@3.2.37
+  vite: 3.0.9_sass@1.54.5
+  vite-plugin-windicss: 1.8.7_vite@3.0.9
   windicss: 3.5.6
 
 packages:
@@ -59,15 +57,15 @@ packages:
     resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
     engines: {node: '>=6.9.0'}
 
-  /@babel/parser/7.18.11:
-    resolution: {integrity: sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==}
+  /@babel/parser/7.18.13:
+    resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==}
     engines: {node: '>=6.0.0'}
     hasBin: true
     dependencies:
-      '@babel/types': 7.18.10
+      '@babel/types': 7.18.13
 
-  /@babel/types/7.18.10:
-    resolution: {integrity: sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==}
+  /@babel/types/7.18.13:
+    resolution: {integrity: sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==}
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-string-parser': 7.18.10
@@ -83,11 +81,11 @@ packages:
     dev: true
     optional: true
 
-  /@iconify/json/2.1.92:
-    resolution: {integrity: sha512-8JiOBg3UXpl4Rf6m0H+lxDzLU/3dGeqNhbKcFbXgK9wr1MMDxFK4w0Bzi3bzRDRcc169OI8fQ1/2JHc7Idt66w==}
+  /@iconify/json/2.1.98:
+    resolution: {integrity: sha512-I/kGkyCcoAl5T9Mr5eseEkj3O6SPDs52saeM4mwXGK2oy5eIJAjv0f2tIJXwQV1gNaIB1iMcRWQjkIO+qy0JMQ==}
     dependencies:
       '@iconify/types': 1.1.0
-      pathe: 0.3.4
+      pathe: 0.3.5
     dev: true
 
   /@iconify/types/1.1.0:
@@ -153,25 +151,25 @@ packages:
       '@popperjs/core': 2.11.6
     dev: false
 
-  /@vant/use/1.4.1:
-    resolution: {integrity: sha512-YonNN0SuJLEJuqdoMcVAJm2JUZWkHNrW81QzeF6FLyG5HFUGlmTM5Sby7gdS3Z/8UDMlkWRQpJxBWbmVzmUWxQ==}
+  /@vant/use/1.4.2:
+    resolution: {integrity: sha512-+30mOa/FY26qk8Ag/Cmqb51JaOgE9rS1xDS24yDx4aHixMhTZH2QsuFGrQVPEazkeK8R+p14oW28kK3146Gtbg==}
     dev: false
 
-  /@vitejs/plugin-vue/3.0.3_vite@3.0.7+vue@3.2.37:
+  /@vitejs/plugin-vue/3.0.3_vite@3.0.9+vue@3.2.37:
     resolution: {integrity: sha512-U4zNBlz9mg+TA+i+5QPc3N5lQvdUXENZLO2h0Wdzp56gI1MWhqJOv+6R+d4kOzoaSSq6TnGPBdZAXKOe4lXy6g==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
       vite: ^3.0.0
       vue: ^3.2.25
     dependencies:
-      vite: 3.0.7_sass@1.54.4
+      vite: 3.0.9_sass@1.54.5
       vue: 3.2.37
     dev: true
 
   /@vue/compiler-core/3.2.37:
     resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==}
     dependencies:
-      '@babel/parser': 7.18.11
+      '@babel/parser': 7.18.13
       '@vue/shared': 3.2.37
       estree-walker: 2.0.2
       source-map: 0.6.1
@@ -185,7 +183,7 @@ packages:
   /@vue/compiler-sfc/3.2.37:
     resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==}
     dependencies:
-      '@babel/parser': 7.18.11
+      '@babel/parser': 7.18.13
       '@vue/compiler-core': 3.2.37
       '@vue/compiler-dom': 3.2.37
       '@vue/compiler-ssr': 3.2.37
@@ -209,7 +207,7 @@ packages:
   /@vue/reactivity-transform/3.2.37:
     resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==}
     dependencies:
-      '@babel/parser': 7.18.11
+      '@babel/parser': 7.18.13
       '@vue/compiler-core': 3.2.37
       '@vue/shared': 3.2.37
       estree-walker: 2.0.2
@@ -245,24 +243,24 @@ packages:
   /@vue/shared/3.2.37:
     resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==}
 
-  /@vueuse/core/9.1.0_vue@3.2.37:
-    resolution: {integrity: sha512-BIroqvXEqt826aE9r3K5cox1zobuPuAzdYJ36kouC2TVhlXvFKIILgFVWrpp9HZPwB3aLzasmG3K87q7TSyXZg==}
+  /@vueuse/core/9.1.1_vue@3.2.37:
+    resolution: {integrity: sha512-QfuaNWRDMQcCUwXylCyYhPC3ScS9Tiiz4J0chdwr3vOemBwRToSywq8MP+ZegKYFnbETzRY8G/5zC+ca30wrRQ==}
     dependencies:
       '@types/web-bluetooth': 0.0.15
-      '@vueuse/metadata': 9.1.0
-      '@vueuse/shared': 9.1.0_vue@3.2.37
-      vue-demi: 0.13.7_vue@3.2.37
+      '@vueuse/metadata': 9.1.1
+      '@vueuse/shared': 9.1.1_vue@3.2.37
+      vue-demi: 0.13.11_vue@3.2.37
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
 
-  /@vueuse/metadata/9.1.0:
-    resolution: {integrity: sha512-8OEhlog1iaAGTD3LICZ8oBGQdYeMwByvXetOtAOZCJOzyCRSwqwdggTsmVZZ1rkgYIEqgUBk942AsAPwM21s6A==}
+  /@vueuse/metadata/9.1.1:
+    resolution: {integrity: sha512-XZ2KtSW+85LLHB/IdGILPAtbIVHasPsAW7aqz3BRMzJdAQWRiM/FGa1OKBwLbXtUw/AmjKYFlZJo7eOFIBXRog==}
 
-  /@vueuse/shared/9.1.0_vue@3.2.37:
-    resolution: {integrity: sha512-pB/3njQu4tfJJ78ajELNda0yMG6lKfpToQW7Soe09CprF1k3QuyoNi1tBNvo75wBDJWD+LOnr+c4B5HZ39jY/Q==}
+  /@vueuse/shared/9.1.1_vue@3.2.37:
+    resolution: {integrity: sha512-c+IfcOYmHiHqoEa3ED1Tbpue5GHmoUmTp8PtO4YbczthtY155Rt6DmWhjxMLXBF1Bcidagxljmp/7xtAzEHXLw==}
     dependencies:
-      vue-demi: 0.13.7_vue@3.2.37
+      vue-demi: 0.13.11_vue@3.2.37
     transitivePeerDependencies:
       - '@vue/composition-api'
       - vue
@@ -374,10 +372,6 @@ packages:
   /csstype/2.6.20:
     resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==}
 
-  /dayjs/1.11.5:
-    resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==}
-    dev: false
-
   /debug/4.3.4:
     resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
     engines: {node: '>=6.0'}
@@ -839,12 +833,12 @@ packages:
       brace-expansion: 2.0.1
     dev: true
 
-  /mlly/0.5.12:
-    resolution: {integrity: sha512-8moXGh6Hfy2Nmys3DDEm4CuxDBk5Y7Lk1jQ4JcwW0djO9b+SCKTpw0enIQeZIuEnPljdxHSGmcbXU9hpIIEYeQ==}
+  /mlly/0.5.14:
+    resolution: {integrity: sha512-DgRgNUSX9NIxxCxygX4Xeg9C7GX7OUx1wuQ8cXx9o9LE0e9wrH+OZ9fcnrlEedsC/rtqry3ZhUddC759XD/L0w==}
     dependencies:
       acorn: 8.8.0
-      pathe: 0.3.4
-      pkg-types: 0.3.3
+      pathe: 0.3.5
+      pkg-types: 0.3.4
       ufo: 0.8.5
     dev: true
 
@@ -904,8 +898,8 @@ packages:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
     dev: true
 
-  /pathe/0.3.4:
-    resolution: {integrity: sha512-YWgqEdxf36R6vcsyj0A+yT/rDRPe0wui4J9gRR7T4whjU5Lx/jZOr75ckEgTNaLVQABAwsrlzHRpIKcCdXAQ5A==}
+  /pathe/0.3.5:
+    resolution: {integrity: sha512-grU/QeYP0ChuE5kjU2/k8VtAeODzbernHlue0gTa27+ayGIu3wqYBIPGfP9r5xSqgCgDd4nWrjKXEfxMillByg==}
     dev: true
 
   /picocolors/1.0.0:
@@ -916,12 +910,12 @@ packages:
     engines: {node: '>=8.6'}
     dev: true
 
-  /pkg-types/0.3.3:
-    resolution: {integrity: sha512-6AJcCMnjUQPQv/Wk960w0TOmjhdjbeaQJoSKWRQv9N3rgkessCu6J0Ydsog/nw1MbpnxHuPzYbfOn2KmlZO1FA==}
+  /pkg-types/0.3.4:
+    resolution: {integrity: sha512-s214f/xkRpwlwVBToWq9Mu0XlU3HhZMYCnr2var8+jjbavBHh/VCh4pBLsJW29rJ//B1jb4HlpMIaNIMH+W2/w==}
     dependencies:
       jsonc-parser: 3.1.0
-      mlly: 0.5.12
-      pathe: 0.3.4
+      mlly: 0.5.14
+      pathe: 0.3.5
     dev: true
 
   /postcss/8.4.16:
@@ -971,8 +965,8 @@ packages:
       queue-microtask: 1.2.3
     dev: true
 
-  /sass/1.54.4:
-    resolution: {integrity: sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA==}
+  /sass/1.54.5:
+    resolution: {integrity: sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw==}
     engines: {node: '>=12.0.0'}
     hasBin: true
     dependencies:
@@ -1043,7 +1037,7 @@ packages:
     resolution: {integrity: sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==}
     dev: true
 
-  /unimport/0.6.7_vite@3.0.7:
+  /unimport/0.6.7_vite@3.0.9:
     resolution: {integrity: sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA==}
     dependencies:
       '@rollup/pluginutils': 4.2.1
@@ -1051,11 +1045,11 @@ packages:
       fast-glob: 3.2.11
       local-pkg: 0.4.2
       magic-string: 0.26.2
-      mlly: 0.5.12
-      pathe: 0.3.4
+      mlly: 0.5.14
+      pathe: 0.3.5
       scule: 0.3.2
       strip-literal: 0.4.0
-      unplugin: 0.9.0_vite@3.0.7
+      unplugin: 0.9.5_vite@3.0.9
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -1063,8 +1057,8 @@ packages:
       - webpack
     dev: true
 
-  /unplugin-auto-import/0.11.1_gvfhqaq4iriax5zs7grzec6lkm:
-    resolution: {integrity: sha512-3KMbjc3Sv2h1osgQ16uKmD2XHb8MLK3Lj5Twzo3x2vDexYdNKjVljLZUX+eT5cvh2f1VzJR77dkzDhdEi9+1uw==}
+  /unplugin-auto-import/0.11.2_jfxn32i2eq37u3jpfk3zc3f4hy:
+    resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==}
     engines: {node: '>=14'}
     peerDependencies:
       '@vueuse/core': '*'
@@ -1074,11 +1068,11 @@ packages:
     dependencies:
       '@antfu/utils': 0.5.2
       '@rollup/pluginutils': 4.2.1
-      '@vueuse/core': 9.1.0_vue@3.2.37
+      '@vueuse/core': 9.1.1_vue@3.2.37
       local-pkg: 0.4.2
       magic-string: 0.26.2
-      unimport: 0.6.7_vite@3.0.7
-      unplugin: 0.9.0_vite@3.0.7
+      unimport: 0.6.7_vite@3.0.9
+      unplugin: 0.9.5_vite@3.0.9
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -1086,7 +1080,7 @@ packages:
       - webpack
     dev: true
 
-  /unplugin-icons/0.14.8_vite@3.0.7:
+  /unplugin-icons/0.14.8_vite@3.0.9:
     resolution: {integrity: sha512-YxLC0Uxec+ayl8ju3CXmRX4Jg7IF8Tu2cRyq/okXwMK6fM140SPae332ByTlul1E/I7I0PXYSVVn8SlGunM/2g==}
     peerDependencies:
       '@svgr/core': '>=5.5.0'
@@ -1109,7 +1103,7 @@ packages:
       debug: 4.3.4
       kolorist: 1.5.1
       local-pkg: 0.4.2
-      unplugin: 0.8.1_vite@3.0.7
+      unplugin: 0.8.1_vite@3.0.9
     transitivePeerDependencies:
       - esbuild
       - rollup
@@ -1118,7 +1112,7 @@ packages:
       - webpack
     dev: true
 
-  /unplugin-vue-components/0.22.4_vite@3.0.7+vue@3.2.37:
+  /unplugin-vue-components/0.22.4_vite@3.0.9+vue@3.2.37:
     resolution: {integrity: sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==}
     engines: {node: '>=14'}
     peerDependencies:
@@ -1137,7 +1131,7 @@ packages:
       magic-string: 0.26.2
       minimatch: 5.1.0
       resolve: 1.22.1
-      unplugin: 0.9.0_vite@3.0.7
+      unplugin: 0.9.5_vite@3.0.9
       vue: 3.2.37
     transitivePeerDependencies:
       - esbuild
@@ -1147,7 +1141,7 @@ packages:
       - webpack
     dev: true
 
-  /unplugin/0.8.1_vite@3.0.7:
+  /unplugin/0.8.1_vite@3.0.9:
     resolution: {integrity: sha512-o7rUZoPLG1fH4LKinWgb77gDtTE6mw/iry0Pq0Z5UPvZ9+HZ1/4+7fic7t58s8/CGkPrDpGq+RltO+DmswcR4g==}
     peerDependencies:
       esbuild: '>=0.13'
@@ -1166,13 +1160,13 @@ packages:
     dependencies:
       acorn: 8.8.0
       chokidar: 3.5.3
-      vite: 3.0.7_sass@1.54.4
+      vite: 3.0.9_sass@1.54.5
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
     dev: true
 
-  /unplugin/0.9.0_vite@3.0.7:
-    resolution: {integrity: sha512-6o7q8Y9yxdPi5yCPmRuFfeNnVzGumRNZSK6hIkvZ6hd0cfigVdm0qBx/GgQ/NEjs54eUV1qTjvMYKRs9yh3rzw==}
+  /unplugin/0.9.5_vite@3.0.9:
+    resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==}
     peerDependencies:
       esbuild: '>=0.13'
       rollup: ^2.50.0
@@ -1190,7 +1184,7 @@ packages:
     dependencies:
       acorn: 8.8.0
       chokidar: 3.5.3
-      vite: 3.0.7_sass@1.54.4
+      vite: 3.0.9_sass@1.54.5
       webpack-sources: 3.2.3
       webpack-virtual-modules: 0.4.4
     dev: true
@@ -1202,11 +1196,11 @@ packages:
     dependencies:
       '@vant/icons': 1.8.0
       '@vant/popperjs': 1.2.1
-      '@vant/use': 1.4.1
+      '@vant/use': 1.4.2
       vue: 3.2.37
     dev: false
 
-  /vite-plugin-windicss/1.8.7_vite@3.0.7:
+  /vite-plugin-windicss/1.8.7_vite@3.0.9:
     resolution: {integrity: sha512-/zwQ8+RV+MSkbG0IGqsEma6r2R01NzN/aNpNjJD7VVAkxAptNznqDXOObFTskkWfZ+9m6KJZCOuCPgAFtQIzEA==}
     peerDependencies:
       vite: ^2.0.1 || ^3.0.0
@@ -1214,14 +1208,14 @@ packages:
       '@windicss/plugin-utils': 1.8.7
       debug: 4.3.4
       kolorist: 1.5.1
-      vite: 3.0.7_sass@1.54.4
+      vite: 3.0.9_sass@1.54.5
       windicss: 3.5.6
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  /vite/3.0.7_sass@1.54.4:
-    resolution: {integrity: sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==}
+  /vite/3.0.9_sass@1.54.5:
+    resolution: {integrity: sha512-waYABTM+G6DBTCpYAxvevpG50UOlZuynR0ckTK5PawNVt7ebX6X7wNXHaGIO6wYYFXSM7/WcuFuO2QzhBB6aMw==}
     engines: {node: ^14.18.0 || >=16.0.0}
     hasBin: true
     peerDependencies:
@@ -1243,13 +1237,13 @@ packages:
       postcss: 8.4.16
       resolve: 1.22.1
       rollup: 2.77.3
-      sass: 1.54.4
+      sass: 1.54.5
     optionalDependencies:
       fsevents: 2.3.2
     dev: true
 
-  /vue-demi/0.13.7_vue@3.2.37:
-    resolution: {integrity: sha512-hbhlvpx1gFW3TB5HxJ0mNxyA9Jh5iQt409taOs6zkhpvfJ7YzLs1rsLufJmDsjH5PI1cOyfikY1fE/meyHfU5A==}
+  /vue-demi/0.13.11_vue@3.2.37:
+    resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
     engines: {node: '>=12'}
     hasBin: true
     requiresBuild: true
@@ -1262,8 +1256,8 @@ packages:
     dependencies:
       vue: 3.2.37
 
-  /vue-router/4.1.3_vue@3.2.37:
-    resolution: {integrity: sha512-XvK81bcYglKiayT7/vYAg/f36ExPC4t90R/HIpzrZ5x+17BOWptXLCrEPufGgZeuq68ww4ekSIMBZY1qdUdfjA==}
+  /vue-router/4.1.4_vue@3.2.37:
+    resolution: {integrity: sha512-UgYen33gOtwT3cOG1+yRen+Brk9py8CSlC9LEa3UjvKZ4EAoSo8NjZPDeDnmNerfazorHIJG1NC7qdi1SuQJnQ==}
     peerDependencies:
       vue: ^3.2.0
     dependencies:

+ 8 - 2
public/config.js

@@ -4,7 +4,9 @@ const local = {
   web_mobile: 'https://nmlm.bozedu.net/',
 
   api: 'https://nmlopenapi.bozedu.net/',
-  oss: 'https://nmlopenapi.bozedu.net/'
+  oss: 'https://nmlopenapi.bozedu.net/',
+
+  appid:'wx1263e3a4d3d88e59',
 }
 
 // 测试服环境
@@ -14,6 +16,8 @@ const development = {
 
   api: 'https://nmlopenapi.bozedu.net/',
   oss: 'https://nmlopenapi.bozedu.net/',
+
+  appid:'wx1263e3a4d3d88e59',
 }
 
 // 正式服环境
@@ -22,7 +26,9 @@ const production = {
   web_mobile: 'https://nmlm.bozedu.net/',
 
   api: 'https://nmlopenapi.bozedu.net/',
-  oss: 'https://nmlopenapi.bozedu.net/'
+  oss: 'https://nmlopenapi.bozedu.net/',
+  
+  appid:'wx1263e3a4d3d88e59',
 }
 
 function isWhich() {

BIN
src/assets/home/bg.png


+ 1 - 1
src/components/FileUpload/index.vue

@@ -14,7 +14,7 @@ const handleAfterRead = (fileProxy) => {
   fileProxy.message = '上传中...'
   const { file } = fileProxy
   REQUEST['upload']({
-    url: 'upload/main/file',
+    url: '/upload/main/file',
     data: { filedata: file }
   }).then(res => {
     console.log('res :>> ', res)

+ 4 - 2
src/pages/_home/index.vue

@@ -1,4 +1,6 @@
 <script setup>
+import img_bg from '~/assets/home/bg.png';
+
 const images = [
   'https://fastly.jsdelivr.net/npm/@vant/assets/apple-1.jpeg',
   'https://fastly.jsdelivr.net/npm/@vant/assets/apple-2.jpeg',
@@ -20,11 +22,11 @@ let searchText = $ref('')
 
 <template>
 
-  <div class="flex flex-col justify-center p-4 relative">
+  <div class="flex flex-col justify-center p-4 relative bg-no-repeat bg-contain" :style="{ backgroundImage: `url(${img_bg})` }">
     <van-config-provider :theme-vars="{ 'search-padding': 0 }">
       <van-search v-model="searchText" placeholder="" shape="round" background="transparent" />
     </van-config-provider>
-    <van-swipe :autoplay="3000" lazy-render class="rounded-md shadow-md">
+    <van-swipe :autoplay="3000" lazy-render class="rounded-md shadow-md mt-4 min-w-270px">
       <van-swipe-item v-for="image in images" :key="image">
         <img :src="image" class="w-full" />
       </van-swipe-item>

+ 7 - 26
src/pages/stxk/jz/index.vue

@@ -1,37 +1,16 @@
 <script setup>
 import { getCountDownTime } from '~/utils/day';
 import { paddingLeft } from '~/utils/string';
+import { child } from '~/store/child';
 
 function handleNavLeftClick() {
-  router.back()
+  router.replace('/home')
 }
 
 function handleNavRightClick() {
   router.push('/stxk/jz/wd')
 }
 
-let list = $ref(Array.from({ length: 8 }).map((_, i) => ({ id: i, title: '15天学习英语基础词汇基础词汇基础词汇', desc: '讲师:张春丽', price: '18.00', thumb: 'https://fastly.jsdelivr.net/npm/@vant/assets/ipad.jpeg', num: 10, enddate: '2022-8-23' })))
-let loading = $ref(false)
-let finished = $ref(false)
-
-function onLoad() {
-  loading = true
-  // finished = false
-  setTimeout(() => {
-    for (let i = 0; i < 4; i++) {
-      list.push({ title: '15天学习英语基础词汇基础词汇基础词汇', desc: '讲师:张春丽', price: '18.00', thumb: 'https://fastly.jsdelivr.net/npm/@vant/assets/ipad.jpeg', num: 10, enddate: '2022-8-23 01:00:00' });
-    }
-
-    // 加载状态结束
-    loading = false;
-
-    // 数据全部加载完成
-    if (list.length >= 20) {
-      finished = true;
-    }
-  }, 1000);
-}
-
 const router = useRouter()
 function handleClickCard(item) {
   router.push(`/stxk/jz/kcxq/${item.kk_id}`)
@@ -67,10 +46,12 @@ function handleClickCard(item) {
     </template>
   </van-list> -->
 
-  <remote-list url="/khfw/kcgl/index" >
+
+  <remote-list url="/khfw/kcgl/index" :d="{ token: child.token }">
     <template #default="{ row: item }">
       <!--  :desc="item.desc" -->
-      <van-card :price="item.kk_kcfy" :title="item.kk_name" :thumb="item.kk_img" @click="handleClickCard(item)">
+      <van-card :price="item.kk_kcfy" :desc="`讲师:${JSON.parse(item.kk_teacher)?.name ?? '-'}`" :title="item.kk_name"
+        :thumb="item.kk_img" @click="handleClickCard(item)">
         <template #tag>
           <van-count-down :time="getCountDownTime(item.kk_bmkssj)">
             <template #default="timeData">
@@ -82,7 +63,7 @@ function handleClickCard(item) {
           </van-count-down>
         </template>
         <template #num>
-          <span>{{ item.num }}人报名</span>
+          <span>{{ item.khfw_kcbmxx.count }}人报名</span>
         </template>
       </van-card>
     </template>

+ 118 - 26
src/pages/stxk/jz/kcxq.vue

@@ -1,6 +1,9 @@
 <script setup>
 import { getCountDownTime } from '~/utils/day';
-
+import { user } from '~/store/user';
+import { child } from '~/store/child';
+import { showFailToast, showSuccessToast } from 'vant';
+const oss = window.GLOBAL_CONFIG.oss
 const props = defineProps({
   id: {
     type: String,
@@ -10,20 +13,26 @@ const props = defineProps({
 
 const router = useRouter()
 function handleNavLeftClick() {
-  router.back()
+  router.replace('/stxk/jz')
 }
 
+// 当前学生是否可报名
+let isOpen = $ref(false)
+
 let loading = $ref(true)
 let detailInfo = $ref()
 request({
   url: '/khfw/kcgl/detail',
   data: {
-    kk_id: props.id
+    token: child.token,
+    kk_id: props.id,
   }
 }).then(res => {
   if (res.code === '1') {
     detailInfo = res.data.one_info
     detailInfo.$kk_kcfy = detailInfo.kk_kcfy * 100
+
+    isOpen = detailInfo.khfw_kcbmxx.kkbm_id === '0'
   } else {
 
   }
@@ -32,16 +41,101 @@ request({
 
 
 function handleSubmitbarClick() {
-  console.log('handleSubmitbarClick');
+  console.log('handleSubmitbarClick', child);
+
+  request({
+    url: '/khfw/kcbmxx/add',
+    data: {
+      token: child.token,
+      khfw_kcbmxx: {
+        kk_id: props.id,
+        kk_name: detailInfo.kk_name,
+
+        kkbm_p_user_id: user.user_id,
+        kkbm_p_realname: user.user_realname,
+
+        kkbm_s_user_id: child.user_id,
+        kkbm_s_realname: child.user_realname,
+
+        kkbm_s_grade_id: child.cm_info[0].grade,
+        // kkbm_s_grade_name: '',
+        kkbm_s_class_id: child.cm_info[0].cm_id,
+        kkbm_s_class_name: child.cm_info[0].pre + child.cm_info[0].cm_name
+      }
+    }
+  }).then((res) => {
+    if (res.code === '1') {
+      const _href = encodeURIComponent(location.href)
+      location.replace(`http://wx.bozedu.net/get-weixin-code.html?appid=${window.GLOBAL_CONFIG.appid}&redirect_uri=${_href}&state=1`)
+    }
+  })
+}
+
+function onBridgeReady(data) {
+  return new Promise((resolve, reject) => {
+    WeixinJSBridge.invoke(
+      'getBrandWCPayRequest',
+      {
+        "appId": data.appid,
+        "timeStamp": data.timestamp,
+        "nonceStr": data.noncestr,
+        "package": data.package,
+        "signType": data.signtype,
+        "paySign": data.paysign
+      },
+      function (res) {
+        // 使用以上方式判断前端返回,微信团队郑重提示:
+        // res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
+        switch (res.err_msg) {
+          case "get_brand_wcpay_request:ok":
+            showSuccessToast("支付成功")
+            return resolve(true)
+          case "get_brand_wcpay_request:ok":
+            showFailToast('取消支付')
+            return resolve(false)
+          case "get_brand_wcpay_request:ok":
+            showFailToast("支付失败")
+            return resolve(false)
+          default:
+            return resolve(false)
+        }
+      }
+    )
+  })
+
+}
+
+
+const searchObj = new URLSearchParams(location.search)
+const code = searchObj.get('code')
+// 微信支付跳转过来
+if (code) {
+  location.search = ''
   request({
     url: '/khfw/jfgl/gotopay',
     data: {
-      client: 'h5',
+      token: child.token,
+      client: 'wx',
+      code,
       khfw_jfgl: {
-        kkbm_s_user_id: '1',
-        kk_id: '1'
+        kkbm_s_user_id: child.user_id,
+        kk_id: props.id,
       }
     }
+  }).then(res => {
+    if (res.code === '1') {
+      // isOpen = false
+      if (typeof WeixinJSBridge == "undefined") {
+        console.log('WeixinJSBridge is not ready');
+        document.addEventListener('WeixinJSBridgeReady', onBridgeReady(res.data), false);
+      } else {
+        return onBridgeReady(res.data);
+      }
+    }
+  }).then(res => {
+    if (res) {
+      isOpen = false
+    }
   })
 }
 </script>
@@ -60,16 +154,18 @@ function handleSubmitbarClick() {
       <div class="text-sm">
         <div class="flex text-lg py-1">
           <div class="mr-4 font-bold">{{ detailInfo.kk_name }}</div>
-          <van-tag type="primary">18课时</van-tag>
+          <van-tag type="primary">{{ detailInfo.ksgl_list.length }}课时</van-tag>
         </div>
         <div class="flex py-1">
-          <div class="mr-4">讲师:张春丽</div>
+          <div class="mr-4"><span>讲师:</span><span>{{ detailInfo.kk_teacher.name }}</span></div>
           <div class="flex">
-            <span>开课倒计时:</span>
-            <van-count-down :time="getCountDownTime(detailInfo.kk_skqjkssj)">
+            <span>报名倒计时:</span>
+            <van-count-down :time="getCountDownTime(detailInfo.kk_bmkssj)">
               <template #default="timeData">
                 <span>
-                  {{ paddingLeft(timeData.days * 24 + timeData.hours) }}小时{{ paddingLeft(timeData.minutes) }}分钟
+                  {{ paddingLeft(timeData.days * 24 + timeData.hours) }}小时{{ paddingLeft(timeData.minutes) }}分钟{{
+                      paddingLeft(timeData.seconds)
+                  }}秒
                 </span>
               </template>
             </van-count-down>
@@ -79,10 +175,10 @@ function handleSubmitbarClick() {
           <div>开课时间:</div>
           <div>{{ detailInfo.kk_skqjkssj }} - {{ detailInfo.kk_skqjjwsj }}(请在开课前报名)</div>
         </div>
-        <div class="flex py-1">
+        <!-- <div class="flex py-1">
           <div>上课地点:</div>
           <div>6.4km 相城区元和街道366号</div>
-        </div>
+        </div> -->
       </div>
       <van-divider />
 
@@ -96,25 +192,21 @@ function handleSubmitbarClick() {
         <div class="pre font-bold mb-2">教师简介</div>
         <div class="flex text-sm shadow-md p-2">
           <div class="w-1/3 flex-none flex flex-col items-center">
-            <van-image src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg" width="100" height="100" round
-              fit="cover"></van-image>
+            <van-image :src="oss + detailInfo.kk_teacher.avatar" width="100" height="100" round fit="cover"></van-image>
             <div>
-              <div>张春丽</div>
+              <div>{{ detailInfo.kk_teacher.name }}</div>
             </div>
           </div>
-          <ul class="list-disc list-inside">
-            <li>12年教学经验累</li>
-            <li>计在线授课40万人次助攻</li>
-            <li>多个同学获得满分成绩</li>
-            <li>全国优秀教师</li>
-            <li>全国优秀教师</li>
-          </ul>
+          <div>{{ detailInfo.kk_teacher.intro }}</div>
+          <!-- <ul class="list-disc list-inside">
+            <li>{{ detailInfo.kk_teacher.intro }}</li>
+          </ul> -->
         </div>
       </div>
 
-      <van-submit-bar :price="detailInfo.$kk_kcfy" button-text="立即报名" @submit="handleSubmitbarClick" placeholder />
+      <van-submit-bar :price="detailInfo.$kk_kcfy" :button-text="isOpen ? '立即报名' : '已报名'" :disabled="!isOpen"
+        @submit="handleSubmitbarClick" placeholder />
     </van-skeleton>
   </div>
 
-
 </template>

+ 7 - 13
src/pages/stxk/jz/wd/index.vue

@@ -1,20 +1,15 @@
 <script setup>
+import { child } from '~/store/child';
+
 const handleNavLeftClick = () => {
   router.back()
 }
 
-let list = $ref(Array.from({ length: 1 }).map((_, i) => ({ id: i, title: '15天学习英语基础词汇基础词汇基础词汇', desc: '讲师:张春丽', price: '18.00', thumb: 'https://fastly.jsdelivr.net/npm/@vant/assets/ipad.jpeg', num: 10, enddate: '2022-8-20' })))
-let loading = $ref(false)
-let finished = $ref(false)
-
-function onLoad() {
-  finished = true
-}
 
 const router = useRouter()
 function handleClickCard(item) {
   console.log(item)
-  router.push(`/stxk/jz/wd/kcxq/${item.id}`)
+  router.push(`/stxk/jz/wd/kcxq/${item.kk_id}`)
 }
 </script>
 
@@ -25,15 +20,14 @@ function handleClickCard(item) {
     </van-nav-bar>
   </van-sticky>
 
-  <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
-    <template v-for="item in list">
-      <van-card :price="item.price" :desc="item.desc" :title="item.title" :thumb="item.thumb"
+  <remote-list url="/khfw/kcbmxx/index" :d="{ token: child.token, kkbm_s_user_id: child.user_id }">
+    <template #default="{ row: item }">
+      <van-card :price="item.khfw_kcgl.kk_kcfy" :desc="`讲师:`" :title="item.kk_name" :thumb="item.khfw_kcgl.kk_img"
         @click="handleClickCard(item)">
         <template #num>
           <van-tag type="primary">已报名</van-tag>
         </template>
       </van-card>
     </template>
-  </van-list>
-
+  </remote-list>
 </template>

+ 73 - 71
src/pages/stxk/jz/wd/kcxq.vue

@@ -1,4 +1,5 @@
 <script setup>
+const oss = window.GLOBAL_CONFIG.oss
 const props = defineProps({
   id: {
     type: String,
@@ -11,10 +12,26 @@ function handleNavLeftClick() {
   router.back()
 }
 
+let loading = $ref(true)
+let detailInfo = $ref()
+request({
+  url: '/khfw/kcgl/detail',
+  data: {
+    kk_id: props.id
+  }
+}).then(res => {
+  if (res.code === '1') {
+    detailInfo = res.data.one_info
+    detailInfo.$kk_kcfy = detailInfo.kk_kcfy * 100
+  } else {
+
+  }
+  loading = false
+})
 
 function handleDetailBtnClick(item) {
-  console.log('handleDetailBtnClick', item);
-  router.push(`/stxk/jz/wd/kcapxq/${item.id}`)
+  // console.log('handleDetailBtnClick', item);
+  router.push(`/stxk/jz/wd/kcapxq/${item.kks_id}`)
   // overlayShow = true
 }
 
@@ -39,84 +56,69 @@ function handleDetailBtnClick(item) {
   </van-sticky>
 
   <div class="p-2 w-full">
-    <van-image src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg" class="w-full" ></van-image>
+    <van-skeleton title :row="10" :loading="loading">
+      <van-image :src="detailInfo.kk_img" class="w-full"></van-image>
 
-    <div class="text-sm mb-4">
-      <div class="flex text-lg py-1">
-        <div class="mr-4 font-bold">课程标题标题标题</div>
-        <van-tag type="primary">18课时</van-tag>
-      </div>
-      <div class="flex py-1">
-        <div class="mr-4">讲师:张春丽</div>
-      </div>
-      <div class="flex py-1">
-        <div>开课时间:</div>
-        <div>2019/12/22 — 2019/12/26(请在开课前报名)</div>
-      </div>
-      <div class="flex py-1">
+      <div class="text-sm mb-4">
+        <div class="flex text-lg py-1">
+          <div class="mr-4 font-bold">{{ detailInfo.kk_name }}</div>
+          <van-tag type="primary">{{ detailInfo.ksgl_list.length }}课时</van-tag>
+        </div>
+        <div class="flex py-1">
+          <div class="mr-4"><span>讲师:</span><span>{{ detailInfo.kk_teacher.name }}</span></div>
+        </div>
+        <div class="flex py-1">
+          <div>开课时间:</div>
+          <div>{{ detailInfo.kk_skqjkssj }} - {{ detailInfo.kk_skqjjwsj }}(请在开课前报名)</div>
+        </div>
+        <!-- <div class="flex py-1">
         <div>上课地点:</div>
         <div>6.4km 相城区元和街道366号</div>
+      </div> -->
       </div>
-    </div>
-    <!-- <van-divider /> -->
-
-    <van-tabs shrink swipeable>
-      <van-tab title="课程详情">
-        <div class="my-4">
-          <div class="pre font-bold mb-2">课程简介</div>
-          <div class="text-sm">
-            9:00-20:30(所有乐园时间仅供参考,请于游览当天至有课服务处索取乐园时间表,以获取当天最新的活动时间详情及变更通知。9:00-20:30(所有乐园时间仅供参考,请于游览当天至有课服务处索取乐园时间表,以获取当天最新的活动时间详情及变更通知。
+      <!-- <van-divider /> -->
+
+      <van-tabs shrink swipeable>
+        <van-tab title="课程详情">
+          <div class="my-4">
+            <div class="pre font-bold mb-2">课程简介</div>
+            <div class="text-sm" v-html="detailInfo.kk_kcjj">
+            </div>
           </div>
-        </div>
 
-        <div class="mb-10">
-          <div class="pre font-bold mb-2">教师简介</div>
-          <div class="flex text-sm shadow-md p-2">
-            <div class="w-1/3 flex-none flex flex-col items-center">
-              <van-image src="https://fastly.jsdelivr.net/npm/@vant/assets/cat.jpeg" width="100" height="100" round
-                fit="cover"></van-image>
-              <div>
-                <div>张春丽</div>
+          <div class="mb-10">
+            <div class="pre font-bold mb-2">教师简介</div>
+            <div class="flex text-sm shadow-md p-2">
+              <div class="w-1/3 flex-none flex flex-col items-center">
+                <van-image :src="oss + detailInfo.kk_teacher.avatar" width="100" height="100" round fit="cover">
+                </van-image>
+                <div>
+                  <div>{{ detailInfo.kk_teacher.name }}</div>
+                </div>
               </div>
+              <div>{{ detailInfo.kk_teacher.intro }}</div>
+              <!-- <ul class="list-disc list-inside">
+                <li>{{ detailInfo.kk_teacher.intro }}</li>
+              </ul> -->
             </div>
-            <ul class="list-disc list-inside">
-              <li>12年教学经验累</li>
-              <li>计在线授课40万人次助攻</li>
-              <li>多个同学获得满分成绩</li>
-              <li>全国优秀教师</li>
-              <li>全国优秀教师</li>
-            </ul>
           </div>
-        </div>
-      </van-tab>
-      <van-tab title="课程安排">
-        <div class="my-4">
-          <van-steps direction="vertical" :active="-1">
-            <van-step>
-              <div class="text-base">第1节课</div>
-              <div class="flex justify-between items-end">
-                <div>2016-07-10 09:30</div>
-                <van-button plain type="primary" size="small" @click="handleDetailBtnClick(1)">查看详情</van-button>
-              </div>
-            </van-step>
-            <van-step>
-              <div class="text-base">第2节课</div>
-              <div class="flex justify-between items-end">
-                <div>2016-07-10 09:30</div>
-                <van-button plain type="primary" size="small" @click="handleDetailBtnClick(2)">查看详情</van-button>
-              </div>
-            </van-step>
-            <van-step>
-              <div class="text-base">第3节课</div>
-              <div class="flex justify-between items-end">
-                <div>2016-07-10 09:30</div>
-                <van-button plain type="primary" size="small" @click="handleDetailBtnClick(3)">查看详情</van-button>
-              </div>
-            </van-step>
-          </van-steps>
-        </div>
-      </van-tab>
-    </van-tabs>
+        </van-tab>
+        <van-tab title="课程安排">
+          <div class="my-4">
+            <van-steps direction="vertical" :active="-1">
+              <van-step v-for="row in detailInfo.ksgl_list">
+                <div class="text-base">{{ row.kks_name }}</div>
+                <div class="flex justify-between items-end">
+                  <div>{{ row.time }}</div>
+                  <div>{{ row.kks_skjs }}</div>
+                  <van-button plain type="primary" size="small" @click="handleDetailBtnClick(1)">查看详情</van-button>
+                </div>
+              </van-step>
+            </van-steps>
+          </div>
+        </van-tab>
+      </van-tabs>
+    </van-skeleton>
 
     <!-- <van-overlay :show="overlayShow" @click="overlayShow = false" class="flex justify-center items-center">
       <div class="bg-light-900 w-9/10 p-4 rounded-md dark:bg-dark-900" @click.stop>

+ 1 - 1
src/pages/stxkjs/index.vue

@@ -680,4 +680,4 @@ const sign = ref(true); //签到提交显示
     position: absolute;
   }
 }
-</style>
+</style>

+ 1 - 1
src/pages/stxkjs/stxk_js_classdetail/index.vue

@@ -318,4 +318,4 @@ const afterRead = (file) => {
     }
   }
 }
-</style>
+</style>

+ 51 - 51
src/router/index.js

@@ -60,58 +60,58 @@ export default createRouter({
         },
       ]
     },
-    {
-      path: "/qzzx",
-      component: () => import("~/pages/qzzx/index.vue"),
-      name: 'qzzx',
+    // {
+    //   path: "/qzzx",
+    //   component: () => import("~/pages/qzzx/index.vue"),
+    //   name: 'qzzx',
 
-    }, {
-      path: "/qzzx/qzzxxq/:id",
-      name: "qzzx_qzzxxq",
-      component: () => import("~/pages/qzzx/qzzxxq/index.vue"),
-    },
-    {
-      path:'/stxk_teacher',
-      component: ()=>import("~/pages/stxkjs/index.vue")
-    },
-    {
-      path:'/stxk_teacher_class',
-      component: ()=>import("~/pages/stxkjs/stxk_js_classdetail/index.vue"),
-    },
-    {
-      path:'/jscz',
-      component: ()=>import("~/pages/jscz/index.vue")
-    },
-    {
-      path:'/jsyx',
-      component: ()=>import("~/pages/jscz/jsyx/index.vue")
-    },
-    {
-      path: '/stxkbzr',
-      component: () => import("~/pages/stxkbzr/index.vue")
-    },
-    {
-      path: '/stxkjsd',
-      name: 'stxkjsd',
-      component: () => import("~/pages/stxkjsd/index.vue")
-    },
-    {
-      path: "/stxkjsd/ckxq",
-      name: "stxkjsd_ckxq",
-      component: () => import("~/pages/stxkjsd/ckxq/index.vue"),
-    },
-    {
-      path: '/yshd/wjdc',
-      component: () => import("~/pages/yshd/wjdc/index.vue")
-    },
-    {
-      path: '/xzxx',
-      component: () => import("~/pages/xzxx/index.vue")
-    },
-    {
-      path: '/yshd/tpsj',
-      component: () => import("~/pages/yshd/tpsj/index.vue")
-    },
+    // }, {
+    //   path: "/qzzx/qzzxxq/:id",
+    //   name: "qzzx_qzzxxq",
+    //   component: () => import("~/pages/qzzx/qzzxxq/index.vue"),
+    // },
+    // {
+    //   path:'/stxk_teacher',
+    //   component: ()=>import("~/pages/stxkjs/index.vue")
+    // },
+    // {
+    //   path:'/stxk_teacher_class',
+    //   component: ()=>import("~/pages/stxkjs/stxk_js_classdetail/index.vue"),
+    // },
+    // {
+    //   path:'/jscz',
+    //   component: ()=>import("~/pages/jscz/index.vue")
+    // },
+    // {
+    //   path:'/jsyx',
+    //   component: ()=>import("~/pages/jscz/jsyx/index.vue")
+    // },
+    // {
+    //   path: '/stxkbzr',
+    //   component: () => import("~/pages/stxkbzr/index.vue")
+    // },
+    // {
+    //   path: '/stxkjsd',
+    //   name: 'stxkjsd',
+    //   component: () => import("~/pages/stxkjsd/index.vue")
+    // },
+    // {
+    //   path: "/stxkjsd/ckxq",
+    //   name: "stxkjsd_ckxq",
+    //   component: () => import("~/pages/stxkjsd/ckxq/index.vue"),
+    // },
+    // {
+    //   path: '/yshd/wjdc',
+    //   component: () => import("~/pages/yshd/wjdc/index.vue")
+    // },
+    // {
+    //   path: '/xzxx',
+    //   component: () => import("~/pages/xzxx/index.vue")
+    // },
+    // {
+    //   path: '/yshd/tpsj',
+    //   component: () => import("~/pages/yshd/tpsj/index.vue")
+    // },
   ]
 })
 

+ 354 - 0
src/store/child.js

@@ -0,0 +1,354 @@
+export const child = //
+// {
+//   "user_id": "317804",
+//   "user_name": "tx001",
+//   "email": "tx001@email.com",
+//   "lastlogintime": "2022-08-23 16:32:04",
+//   "user_role_id": "76",
+//   "user_role_name": "学生",
+//   "user_avatar": {
+//     "big": "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png",
+//     "middle": "https://openapi.bozedu.net/template/default/static/img/avatar_student_middle.png",
+//     "small": "https://openapi.bozedu.net/template/default/static/img/avatar_student_small.png"
+//   },
+//   "user_no": {
+//     "no_title": "学号",
+//     "no": "666317804"
+//   },
+//   "token": "2aceHplx1TxiKOmuLaXrOyPhRQqXpRodpKA2JlySjEPm7cpT9dcLu29GpfmCehWyQ63OdpR8VTkhmEo8D7UhT8rhkJ8",
+//   "user_realname": "同学001",
+//   "user_phone": "",
+//   "idcard": "",
+//   "gender": "0",
+//   "gender_char": "保密",
+//   "qq": "",
+//   "nationality": "",
+//   "address": "",
+//   "education": "",
+//   "area_info": {
+//     "area_id1": "5",
+//     "area_id2": "95",
+//     "area_id3": "1418",
+//     "area_id4": "0",
+//     "area_id1_char": "内蒙古自治区",
+//     "area_id2_char": "呼和浩特市",
+//     "area_id3_char": "回民区",
+//     "area_id4_char": "",
+//     "area_code1": "150000000000",
+//     "area_code2": "150100000000",
+//     "area_code3": "150103000000",
+//     "area_code4": "",
+//     "area_code_dist": "150103000000"
+//   },
+//   "sm_info": {
+//     "sm_id": "666",
+//     "adminid": "303115",
+//     "sm_name": "呼和浩特回民区南马路小学",
+//     "is_org": "0",
+//     "up_org": "0",
+//     "area_id1": "5",
+//     "area_id2": "95",
+//     "area_id3": "1418",
+//     "area_id4": "0",
+//     "major_mode": "0",
+//     "powers": {
+//       "vip_shiti": "0",
+//       "vip_sucai": "0",
+//       "vip_aicheck": "0"
+//     }
+//   },
+//   "cm_info": [
+//     {
+//       "cm_id": "12289",
+//       "sm_id": "666",
+//       "pre": "测试",
+//       "cm_name": "一年级(1)班",
+//       "grade": "1",
+//       "gradeClass": "1",
+//       "major_id": "",
+//       "creatorid": "317801",
+//       "is_manage": 0,
+//       "major_name": ""
+//     }
+//   ],
+//   "first_cm_id": "12289",
+//   "first_cm_name": "测试一年级(1)班",
+//   "related_desc": "一年级",
+//   "bind3rd": {
+//     "wechat": "0"
+//   },
+//   "org_info": {
+//     "org": "呼和浩特回民区南马路小学",
+//     "telephone": "",
+//     "telephone_short": "",
+//     "is_org": "0",
+//     "up_org": "0",
+//     "up_org_info": {}
+//   }
+// }
+
+// {
+//   "user_id": "317813",
+//   "user_name": "tx010",
+//   "email": "tx010@email.com",
+//   "lastlogintime": "2022-08-26 09:52:39",
+//   "user_role_id": "76",
+//   "user_role_name": "学生",
+//   "user_avatar": {
+//     "big": "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png",
+//     "middle": "https://openapi.bozedu.net/template/default/static/img/avatar_student_middle.png",
+//     "small": "https://openapi.bozedu.net/template/default/static/img/avatar_student_small.png"
+//   },
+//   "user_no": {
+//     "no_title": "学号",
+//     "no": "666317813"
+//   },
+//   "token": "7400WLvIRmPMWnISBszy3Ndaq2rD4wBHIAa_anWDaPZjEZQ6jKbMg4J0ngOOqPp4f0PY8_b70rgDKfXx8BzcZhdOnc0sU",
+//   "user_realname": "同学010",
+//   "user_phone": "",
+//   "idcard": "",
+//   "gender": "0",
+//   "gender_char": "保密",
+//   "qq": "",
+//   "nationality": "",
+//   "address": "",
+//   "education": "",
+//   "area_info": {
+//     "area_id1": "5",
+//     "area_id2": "95",
+//     "area_id3": "1418",
+//     "area_id4": "0",
+//     "area_id1_char": "内蒙古自治区",
+//     "area_id2_char": "呼和浩特市",
+//     "area_id3_char": "回民区",
+//     "area_id4_char": "",
+//     "area_code1": "150000000000",
+//     "area_code2": "150100000000",
+//     "area_code3": "150103000000",
+//     "area_code4": "",
+//     "area_code_dist": "150103000000"
+//   },
+//   "sm_info": {
+//     "sm_id": "666",
+//     "adminid": "303115",
+//     "sm_name": "呼和浩特回民区南马路小学",
+//     "is_org": "0",
+//     "up_org": "0",
+//     "area_id1": "5",
+//     "area_id2": "95",
+//     "area_id3": "1418",
+//     "area_id4": "0",
+//     "major_mode": "0",
+//     "powers": {
+//       "vip_shiti": "0",
+//       "vip_sucai": "0",
+//       "vip_aicheck": "0"
+//     }
+//   },
+//   "cm_info": [
+//     {
+//       "cm_id": "12290",
+//       "sm_id": "666",
+//       "pre": "测试",
+//       "cm_name": "一年级(2)班",
+//       "grade": "1",
+//       "gradeClass": "2",
+//       "major_id": "",
+//       "creatorid": "317802",
+//       "is_manage": 0,
+//       "major_name": ""
+//     }
+//   ],
+//   "first_cm_id": "12290",
+//   "first_cm_name": "测试一年级(2)班",
+//   "related_desc": "一年级",
+//   "bind3rd": {
+//     "wechat": "0"
+//   },
+//   "org_info": {
+//     "org": "呼和浩特回民区南马路小学",
+//     "telephone": "",
+//     "telephone_short": "",
+//     "is_org": "0",
+//     "up_org": "0",
+//     "up_org_info": {}
+//   }
+// }
+
+
+// {
+//   "user_id": "317808",
+//   "user_name": "tx005",
+//   "email": "tx005@email.com",
+//   "lastlogintime": "2022-08-26 10:49:15",
+//   "user_role_id": "76",
+//   "user_role_name": "学生",
+//   "user_avatar": {
+//       "big": "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png",
+//       "middle": "https://openapi.bozedu.net/template/default/static/img/avatar_student_middle.png",
+//       "small": "https://openapi.bozedu.net/template/default/static/img/avatar_student_small.png"
+//   },
+//   "user_no": {
+//       "no_title": "学号",
+//       "no": "666317808"
+//   },
+//   "token": "0269odRpIiGEDS9bzUFCvez_a9z4ZThbgMcoDVkjYk0zRFxa_a6EAc5T4gvyeCI0TC2wkiyQOTHdmXefsBXf46GVOm9rI",
+//   "user_realname": "同学005",
+//   "user_phone": "",
+//   "idcard": "",
+//   "gender": "0",
+//   "gender_char": "保密",
+//   "qq": "",
+//   "nationality": "",
+//   "address": "",
+//   "education": "",
+//   "area_info": {
+//       "area_id1": "5",
+//       "area_id2": "95",
+//       "area_id3": "1418",
+//       "area_id4": "0",
+//       "area_id1_char": "内蒙古自治区",
+//       "area_id2_char": "呼和浩特市",
+//       "area_id3_char": "回民区",
+//       "area_id4_char": "",
+//       "area_code1": "150000000000",
+//       "area_code2": "150100000000",
+//       "area_code3": "150103000000",
+//       "area_code4": "",
+//       "area_code_dist": "150103000000"
+//   },
+//   "sm_info": {
+//       "sm_id": "666",
+//       "adminid": "303115",
+//       "sm_name": "呼和浩特回民区南马路小学",
+//       "is_org": "0",
+//       "up_org": "0",
+//       "area_id1": "5",
+//       "area_id2": "95",
+//       "area_id3": "1418",
+//       "area_id4": "0",
+//       "major_mode": "0",
+//       "powers": {
+//           "vip_shiti": "0",
+//           "vip_sucai": "0",
+//           "vip_aicheck": "0"
+//       }
+//   },
+//   "cm_info": [
+//       {
+//           "cm_id": "12289",
+//           "sm_id": "666",
+//           "pre": "测试",
+//           "cm_name": "一年级(1)班",
+//           "grade": "1",
+//           "gradeClass": "1",
+//           "major_id": "",
+//           "creatorid": "317801",
+//           "is_manage": 0,
+//           "major_name": ""
+//       }
+//   ],
+//   "first_cm_id": "12289",
+//   "first_cm_name": "测试一年级(1)班",
+//   "related_desc": "一年级",
+//   "bind3rd": {
+//       "wechat": "0"
+//   },
+//   "org_info": {
+//       "org": "呼和浩特回民区南马路小学",
+//       "telephone": "",
+//       "telephone_short": "",
+//       "is_org": "0",
+//       "up_org": "0",
+//       "up_org_info": {}
+//   }
+// }
+
+
+{
+  "user_id": "317809",
+  "user_name": "tx006",
+  "email": "tx006@email.com",
+  "lastlogintime": "2022-08-26 10:59:37",
+  "user_role_id": "76",
+  "user_role_name": "学生",
+  "user_avatar": {
+      "big": "https://openapi.bozedu.net/template/default/static/img/avatar_student_big.png",
+      "middle": "https://openapi.bozedu.net/template/default/static/img/avatar_student_middle.png",
+      "small": "https://openapi.bozedu.net/template/default/static/img/avatar_student_small.png"
+  },
+  "user_no": {
+      "no_title": "学号",
+      "no": "666317809"
+  },
+  "token": "747fZLknbTHUBLdDdsRMIRYBIavKeebJPlzSeG8k2Iyt55oh4N6JQLzoyF_abm8nw8tjmQjqktQfus6f8UeMEZrlL2TA",
+  "user_realname": "同学006",
+  "user_phone": "",
+  "idcard": "",
+  "gender": "0",
+  "gender_char": "保密",
+  "qq": "",
+  "nationality": "",
+  "address": "",
+  "education": "",
+  "area_info": {
+      "area_id1": "5",
+      "area_id2": "95",
+      "area_id3": "1418",
+      "area_id4": "0",
+      "area_id1_char": "内蒙古自治区",
+      "area_id2_char": "呼和浩特市",
+      "area_id3_char": "回民区",
+      "area_id4_char": "",
+      "area_code1": "150000000000",
+      "area_code2": "150100000000",
+      "area_code3": "150103000000",
+      "area_code4": "",
+      "area_code_dist": "150103000000"
+  },
+  "sm_info": {
+      "sm_id": "666",
+      "adminid": "303115",
+      "sm_name": "呼和浩特回民区南马路小学",
+      "is_org": "0",
+      "up_org": "0",
+      "area_id1": "5",
+      "area_id2": "95",
+      "area_id3": "1418",
+      "area_id4": "0",
+      "major_mode": "0",
+      "powers": {
+          "vip_shiti": "0",
+          "vip_sucai": "0",
+          "vip_aicheck": "0"
+      }
+  },
+  "cm_info": [
+      {
+          "cm_id": "12290",
+          "sm_id": "666",
+          "pre": "测试",
+          "cm_name": "一年级(2)班",
+          "grade": "1",
+          "gradeClass": "2",
+          "major_id": "",
+          "creatorid": "317802",
+          "is_manage": 0,
+          "major_name": ""
+      }
+  ],
+  "first_cm_id": "12290",
+  "first_cm_name": "测试一年级(2)班",
+  "related_desc": "一年级",
+  "bind3rd": {
+      "wechat": "0"
+  },
+  "org_info": {
+      "org": "呼和浩特回民区南马路小学",
+      "telephone": "",
+      "telephone_short": "",
+      "is_org": "0",
+      "up_org": "0",
+      "up_org_info": {}
+  }
+}

+ 22 - 1
src/store/user.js

@@ -83,4 +83,25 @@ export const user = // JSON.parse(localStorage.getItem('userInfo'))
 }
 
 
-export default user
+const ROLE_MAP = {
+  // 管理员
+  '3': 'gly',
+  // 省市县
+  '63': 'sheng',
+  '66': 'shi',
+  '69': 'xian',
+  // 校长
+  '72': 'xz',
+  // 教师
+  '75': 'js',
+  // 学生
+  '76': 'xs',
+  // 家长
+  '77': 'jz',
+}
+
+export default {
+  ...user,
+  _role: ROLE_MAP[user.user_role_id] ?? 'others'
+}
+

+ 3 - 5
src/utils/day.js

@@ -1,10 +1,8 @@
-import * as dayjs from 'dayjs';
-
-
 export function getTimestamp(date) {
-  return dayjs(date).valueOf();
+  return ~~((new Date(date)).getTime())
 }
 
 export function getCountDownTime(target) {
-  return getTimestamp(target) - getTimestamp()
+  const time = getTimestamp(target) - getTimestamp(Date.now())
+  return time > 0 ? time : 0
 }

+ 1 - 1
src/utils/request.js

@@ -19,7 +19,7 @@ _request.interceptors.request.use(
     if (config.method?.toLocaleLowerCase() === 'get') {
       config.params = Object.assign({ token, }, config.params)
     } else {
-      config.data = Object.assign({ token, client: 'web', api: 'json', issubmit: '1', }, config.data)
+      config.data = Object.assign({ token, site: 'nml', client: 'web', api: 'json', issubmit: '1', }, config.data)
     }
     return config
   },

+ 2 - 0
vite.config.js

@@ -10,6 +10,7 @@ import IconsResolver from 'unplugin-icons/resolver'
 
 // https://vitejs.dev/config/
 export default defineConfig({
+  base:'/page/new/',
   resolve: {
     alias: {
       '@': path.resolve(__dirname, 'src'),
@@ -63,6 +64,7 @@ export default defineConfig({
     host: true
   },
   build: {
+    // sourcemap:'inline',
     rollupOptions: {
       output: {
         manualChunks: {