liyongli 2 年之前
父节点
当前提交
08192a7249

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
   "dependencies": {
     "axios": "^1.1.3",
     "core-js": "^3.6.5",
+    "element-plus": "^2.2.22",
     "vant": "^3.6.4",
     "vue": "^3.0.0"
   },

+ 188 - 6
pnpm-lock.yaml

@@ -9,6 +9,7 @@ specifiers:
   axios: ^1.1.3
   babel-eslint: ^10.1.0
   core-js: ^3.6.5
+  element-plus: ^2.2.22
   eslint: ^6.7.2
   eslint-plugin-vue: ^7.0.0
   node-sass: 5.0.0
@@ -21,6 +22,7 @@ specifiers:
 dependencies:
   axios: registry.npmmirror.com/axios/1.1.3
   core-js: registry.npmmirror.com/core-js/3.26.0
+  element-plus: registry.npmmirror.com/element-plus/2.2.22_vue@3.2.41
   vant: registry.npmmirror.com/vant/3.6.4_vue@3.2.41
   vue: registry.npmmirror.com/vue/3.2.41
 
@@ -61,10 +63,10 @@ packages:
       '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17
     dev: true
 
-  registry.npmmirror.com/@antfu/utils/0.6.2:
-    resolution: {integrity: sha512-Qdwda+qE1KOKXuM8Gnn09zIJSA293J5putdHBx4J9sdbHzqp5QY4OmH77KgwJoi0PuY+kbddkVVdkSoZ9ruiug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.6.2.tgz}
+  registry.npmmirror.com/@antfu/utils/0.6.3:
+    resolution: {integrity: sha512-sEYpyyKUPOew9QsXZ8feRVMzW6DWLviwOl+/ap06UQW02A8Srbc95CPHVm4eUbiBzBgD46eyIT+przv//KSSlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.6.3.tgz}
     name: '@antfu/utils'
-    version: 0.6.2
+    version: 0.6.3
     dev: true
 
   registry.npmmirror.com/@babel/code-frame/7.18.6:
@@ -1539,6 +1541,38 @@ packages:
       to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0
     dev: true
 
+  registry.npmmirror.com/@ctrl/tinycolor/3.4.1:
+    resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz}
+    name: '@ctrl/tinycolor'
+    version: 3.4.1
+    engines: {node: '>=10'}
+    dev: false
+
+  registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.41:
+    resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz}
+    id: registry.npmmirror.com/@element-plus/icons-vue/2.0.10
+    name: '@element-plus/icons-vue'
+    version: 2.0.10
+    peerDependencies:
+      vue: ^3.2.0
+    dependencies:
+      vue: registry.npmmirror.com/vue/3.2.41
+    dev: false
+
+  registry.npmmirror.com/@floating-ui/core/1.0.2:
+    resolution: {integrity: sha512-Skfy0YS3NJ5nV9us0uuPN0HDk1Q4edljaOhRBJGDWs9EBa7ZVMYBHRFlhLvvmwEoaIM9BlH6QJFn9/uZg0bACg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-1.0.2.tgz}
+    name: '@floating-ui/core'
+    version: 1.0.2
+    dev: false
+
+  registry.npmmirror.com/@floating-ui/dom/1.0.6:
+    resolution: {integrity: sha512-kt/tg1oip9OAH1xjCTcx1OpcUpu9rjDw3GKJ/rEhUqhO7QyJWfrHU0DpLTNsH67+JyFL5Kv9X1utsXwKFVtyEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.0.6.tgz}
+    name: '@floating-ui/dom'
+    version: 1.0.6
+    dependencies:
+      '@floating-ui/core': registry.npmmirror.com/@floating-ui/core/1.0.2
+    dev: false
+
   registry.npmmirror.com/@hapi/address/2.1.4:
     resolution: {integrity: sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@hapi/address/-/address-2.1.4.tgz}
     name: '@hapi/address'
@@ -1736,6 +1770,12 @@ packages:
     version: 1.0.2
     dev: true
 
+  registry.npmmirror.com/@sxzz/popperjs-es/2.11.7:
+    resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz}
+    name: '@sxzz/popperjs-es'
+    version: 2.11.7
+    dev: false
+
   registry.npmmirror.com/@tootallnate/once/1.1.2:
     resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@tootallnate/once/-/once-1.1.2.tgz}
     name: '@tootallnate/once'
@@ -1819,6 +1859,20 @@ packages:
     version: 7.0.11
     dev: true
 
+  registry.npmmirror.com/@types/lodash-es/4.17.6:
+    resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz}
+    name: '@types/lodash-es'
+    version: 4.17.6
+    dependencies:
+      '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.189
+    dev: false
+
+  registry.npmmirror.com/@types/lodash/4.14.189:
+    resolution: {integrity: sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.189.tgz}
+    name: '@types/lodash'
+    version: 4.14.189
+    dev: false
+
   registry.npmmirror.com/@types/mime/3.0.1:
     resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz}
     name: '@types/mime'
@@ -1904,6 +1958,12 @@ packages:
       source-map: registry.npmmirror.com/source-map/0.6.1
     dev: true
 
+  registry.npmmirror.com/@types/web-bluetooth/0.0.16:
+    resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz}
+    name: '@types/web-bluetooth'
+    version: 0.0.16
+    dev: false
+
   registry.npmmirror.com/@types/webpack-dev-server/3.11.6_debug@4.3.4:
     resolution: {integrity: sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz}
     id: registry.npmmirror.com/@types/webpack-dev-server/3.11.6
@@ -2471,6 +2531,39 @@ packages:
     version: 1.3.0
     dev: true
 
+  registry.npmmirror.com/@vueuse/core/9.5.0_vue@3.2.41:
+    resolution: {integrity: sha512-6GsWBsJHEb3sYw15mbLrcbslAVY45pkzjJYTKYKCXv88z7srAF0VEW0q+oXKsl58tCbqooplInahXFg8Yo1m4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/core/-/core-9.5.0.tgz}
+    id: registry.npmmirror.com/@vueuse/core/9.5.0
+    name: '@vueuse/core'
+    version: 9.5.0
+    dependencies:
+      '@types/web-bluetooth': registry.npmmirror.com/@types/web-bluetooth/0.0.16
+      '@vueuse/metadata': registry.npmmirror.com/@vueuse/metadata/9.5.0
+      '@vueuse/shared': registry.npmmirror.com/@vueuse/shared/9.5.0_vue@3.2.41
+      vue-demi: registry.npmmirror.com/vue-demi/0.13.11_vue@3.2.41
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+    dev: false
+
+  registry.npmmirror.com/@vueuse/metadata/9.5.0:
+    resolution: {integrity: sha512-4M1AyPZmIv41pym+K5+4wup3bKuYebbH8w8BROY1hmT7rIwcyS4tEL+UsGz0Hiu1FCOxcoBrwtAizc0YmBJjyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.5.0.tgz}
+    name: '@vueuse/metadata'
+    version: 9.5.0
+    dev: false
+
+  registry.npmmirror.com/@vueuse/shared/9.5.0_vue@3.2.41:
+    resolution: {integrity: sha512-HnnCWU1Vg9CVWRCcI8ohDKDRB2Sc4bTgT1XAIaoLSfVHHn+TKbrox6pd3klCSw4UDxkhDfOk8cAdcK+Z5KleCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vueuse/shared/-/shared-9.5.0.tgz}
+    id: registry.npmmirror.com/@vueuse/shared/9.5.0
+    name: '@vueuse/shared'
+    version: 9.5.0
+    dependencies:
+      vue-demi: registry.npmmirror.com/vue-demi/0.13.11_vue@3.2.41
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+      - vue
+    dev: false
+
   registry.npmmirror.com/@webassemblyjs/ast/1.9.0:
     resolution: {integrity: sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.9.0.tgz}
     name: '@webassemblyjs/ast'
@@ -3094,6 +3187,12 @@ packages:
     version: 1.0.1
     dev: true
 
+  registry.npmmirror.com/async-validator/4.2.5:
+    resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz}
+    name: async-validator
+    version: 4.2.5
+    dev: false
+
   registry.npmmirror.com/async/2.6.4:
     resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async/-/async-2.6.4.tgz}
     name: async
@@ -4644,6 +4743,12 @@ packages:
     version: 2.2.0
     dev: true
 
+  registry.npmmirror.com/dayjs/1.11.6:
+    resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.6.tgz}
+    name: dayjs
+    version: 1.11.6
+    dev: false
+
   registry.npmmirror.com/debug/2.6.9:
     resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz}
     name: debug
@@ -5088,6 +5193,34 @@ packages:
     version: 1.4.284
     dev: true
 
+  registry.npmmirror.com/element-plus/2.2.22_vue@3.2.41:
+    resolution: {integrity: sha512-gg2g2WOMNpWf0wGesymUvTV0VZDF/4khQKroSNeCV/vWJ/cqssPYdtqfGxTiFRt/f+JpyFkV7O1mo0yzMCzrBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-plus/-/element-plus-2.2.22.tgz}
+    id: registry.npmmirror.com/element-plus/2.2.22
+    name: element-plus
+    version: 2.2.22
+    peerDependencies:
+      vue: ^3.2.0
+    dependencies:
+      '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor/3.4.1
+      '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.41
+      '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom/1.0.6
+      '@popperjs/core': registry.npmmirror.com/@sxzz/popperjs-es/2.11.7
+      '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.189
+      '@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.6
+      '@vueuse/core': registry.npmmirror.com/@vueuse/core/9.5.0_vue@3.2.41
+      async-validator: registry.npmmirror.com/async-validator/4.2.5
+      dayjs: registry.npmmirror.com/dayjs/1.11.6
+      escape-html: registry.npmmirror.com/escape-html/1.0.3
+      lodash: registry.npmmirror.com/lodash/4.17.21
+      lodash-es: registry.npmmirror.com/lodash-es/4.17.21
+      lodash-unified: registry.npmmirror.com/lodash-unified/1.0.3_da03a4540fbd16bbaafbb96724306afd
+      memoize-one: registry.npmmirror.com/memoize-one/6.0.0
+      normalize-wheel-es: registry.npmmirror.com/normalize-wheel-es/1.2.0
+      vue: registry.npmmirror.com/vue/3.2.41
+    transitivePeerDependencies:
+      - '@vue/composition-api'
+    dev: false
+
   registry.npmmirror.com/elliptic/6.5.4:
     resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz}
     name: elliptic
@@ -5259,7 +5392,6 @@ packages:
     resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz}
     name: escape-html
     version: 1.0.3
-    dev: true
 
   registry.npmmirror.com/escape-string-regexp/1.0.5:
     resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz}
@@ -7864,6 +7996,27 @@ packages:
       p-locate: registry.npmmirror.com/p-locate/4.1.0
     dev: true
 
+  registry.npmmirror.com/lodash-es/4.17.21:
+    resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz}
+    name: lodash-es
+    version: 4.17.21
+    dev: false
+
+  registry.npmmirror.com/lodash-unified/1.0.3_da03a4540fbd16bbaafbb96724306afd:
+    resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz}
+    id: registry.npmmirror.com/lodash-unified/1.0.3
+    name: lodash-unified
+    version: 1.0.3
+    peerDependencies:
+      '@types/lodash-es': '*'
+      lodash: '*'
+      lodash-es: '*'
+    dependencies:
+      '@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.6
+      lodash: registry.npmmirror.com/lodash/4.17.21
+      lodash-es: registry.npmmirror.com/lodash-es/4.17.21
+    dev: false
+
   registry.npmmirror.com/lodash.debounce/4.0.8:
     resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz}
     name: lodash.debounce
@@ -7910,7 +8063,6 @@ packages:
     resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz}
     name: lodash
     version: 4.17.21
-    dev: true
 
   registry.npmmirror.com/log-symbols/2.2.0:
     resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz}
@@ -8057,6 +8209,12 @@ packages:
     engines: {node: '>= 0.6'}
     dev: true
 
+  registry.npmmirror.com/memoize-one/6.0.0:
+    resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz}
+    name: memoize-one
+    version: 6.0.0
+    dev: false
+
   registry.npmmirror.com/memory-fs/0.4.1:
     resolution: {integrity: sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memory-fs/-/memory-fs-0.4.1.tgz}
     name: memory-fs
@@ -8643,6 +8801,12 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  registry.npmmirror.com/normalize-wheel-es/1.2.0:
+    resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz}
+    name: normalize-wheel-es
+    version: 1.2.0
+    dev: false
+
   registry.npmmirror.com/npm-run-path/2.0.2:
     resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz}
     name: npm-run-path
@@ -11953,7 +12117,7 @@ packages:
       '@babel/parser':
         optional: true
     dependencies:
-      '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.6.2
+      '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.6.3
       '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/5.0.2
       chokidar: registry.npmmirror.com/chokidar/3.5.3
       debug: registry.npmmirror.com/debug/4.3.4
@@ -12261,6 +12425,24 @@ packages:
       acorn-walk: registry.npmmirror.com/acorn-walk/8.2.0
     dev: true
 
+  registry.npmmirror.com/vue-demi/0.13.11_vue@3.2.41:
+    resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz}
+    id: registry.npmmirror.com/vue-demi/0.13.11
+    name: vue-demi
+    version: 0.13.11
+    engines: {node: '>=12'}
+    hasBin: true
+    requiresBuild: true
+    peerDependencies:
+      '@vue/composition-api': ^1.0.0-rc.1
+      vue: ^3.0.0-0 || ^2.6.0
+    peerDependenciesMeta:
+      '@vue/composition-api':
+        optional: true
+    dependencies:
+      vue: registry.npmmirror.com/vue/3.2.41
+    dev: false
+
   registry.npmmirror.com/vue-eslint-parser/7.11.0_eslint@6.8.0:
     resolution: {integrity: sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz}
     id: registry.npmmirror.com/vue-eslint-parser/7.11.0

+ 18 - 0
src/api/worldCup.js

@@ -7,3 +7,21 @@ export function getMatch(data) {
     data,
   });
 }
+
+export function getChat(data) {
+  return ajax({
+    url: "chat/list",
+    method: "get",
+    noLoad: true,
+    data,
+  });
+}
+
+export function setChat(data) {
+  return ajax({
+    url: "chat/store",
+    method: "get",
+    noLoad: true,
+    data,
+  });
+}

+ 1 - 1
src/assets/css/base.css

@@ -1,9 +1,9 @@
 *{
     margin: 0;
     padding: 0;
+    box-sizing: border-box;
 }
 html,body{
     width: 100vw;
     height: 100vh;
-    font-family: "Microsoft Yahei", helvetica, sans-serif;
 }

+ 1 - 1
src/utils/request.js

@@ -15,7 +15,7 @@ function getdata(data) {
 export default function (ori) {
   let baseurl = config.base[ori.urlType || "ajax"];
   let url = baseurl + ori.url;
-  Toast.loading({
+  !ori.noLoad && Toast.loading({
     message: '加载中...',
     forbidClick: true,
     duration: 0

+ 29 - 4
src/utils/tool.js

@@ -1,3 +1,11 @@
+import {
+  isIpad,
+  isIpod,
+  isIphone,
+  isWindows,
+  isMac,
+  isWechat,
+} from ".//isTerminal";
 /**
  * 动态加载script
  * @param {string} url
@@ -23,14 +31,18 @@ export function loadScript(url, callback) {
   document.getElementsByTagName("head")[0].appendChild(script);
 }
 
+/**
+ * 闪视频登录状态
+ * @param {function} next
+ * @returns
+ */
 export function getUser(next) {
-    window.$shanshipin = {};
+  window.$shanshipin = {};
   // 判断闪视频登录状态
   if (isWindows || isMac || isWechat) return next && next();
   // 获取登录信息
   if (isIpad || isIpod || isIphone) {
-    if (!window.webkit || !window.webkit.messageHandlers)
-      return next && next();
+    if (!window.webkit || !window.webkit.messageHandlers) return next && next();
     window.setUser = user => {
       if (user == "{}")
         return window.webkit.messageHandlers.iosJumpLogin.postMessage([]);
@@ -60,4 +72,17 @@ export function getUser(next) {
     };
     next && next();
   }
-}
+}
+
+export function requestAnimationFrame() {
+  return (
+    window.requestAnimationFrame ||
+    window.webkitRequestAnimationFrame /* Safari 和 Chrome */ ||
+    window.mozRequestAnimationFrame /* Firefox */ ||
+    window.oRequestAnimationFrame /* Opera */ ||
+    window.msRequestAnimationFrame /* IE 9 */ ||
+    function (callback) {
+      window.setTimeout(callback, 6000 / 60);
+    }
+  );
+}

+ 13 - 50
src/view/WorldContribution/index.js

@@ -2,65 +2,28 @@ import App from "./index.vue";
 import "@/assets/js/common";
 import { createApp } from "vue";
 import { getPageParameters, environment } from "../../config/pageConfig";
-import {
-  isIpad,
-  isIpod,
-  isIphone,
-  isWindows,
-  isMac,
-  isWechat,
-} from "../../utils/isTerminal";
+
+import { getUser } from "@/utils/tool.js";
+
 // 判断环境
 environment();
 window.$originData = getPageParameters();
 document.title = window.$originData.orginParames.title || "";
+!window.$shanshipin || !window.$shanshipin.Phone
+  ? getUser(() => createApp(App).mount("#app"))
+  : createApp(App).mount("#app");
 
-const getUser = () => {
-  window.$shanshipin = {};
-  // 判断闪视频登录状态
-  if (isWindows || isMac || isWechat) return createApp(App).mount("#app");
-  // 获取登录信息
-  if (isIpad || isIpod || isIphone) {
-    if (!window.webkit || !window.webkit.messageHandlers)
-      return createApp(App).mount("#app");
-    window.setUser = user => {
-      if (user == "{}")
-        return window.webkit.messageHandlers.iosJumpLogin.postMessage([]);
-      const u1 = JSON.parse(user || "{}");
-      window.webkit.messageHandlers.getAppInfo.postMessage([]);
-      window.setAppInfo = userJson => {
-        const u2 = JSON.parse(userJson || "{}");
-        window.$shanshipin = {
-          ...u1,
-          ...u2,
-        };
-        createApp(App).mount("#app");
-      };
-    };
-
-    window.webkit.messageHandlers.tideGetUser.postMessage([]);
-  } else {
-    if (!window.TideApp) return createApp(App).mount("#app");
-    const u1 = JSON.parse(window.TideApp.getUser() || "{}");
-    console.log("u1", u1);
-    if (!u1.UserId) window.TideApp.login();
-    const u2 = JSON.parse(window.TideApp.getAppInfo() || "{}");
-    console.log("u2", u2);
-    window.$shanshipin = {
-      ...u1,
-      ...u2,
-    };
-    createApp(App).mount("#app");
-  }
-};
-getUser();
-
+// 分享
+window.weixin_Share_Init(
+  "世界杯",
+  "这是世界杯",
+  "https://cxzx.smcic.net/topic/highSpeed/img/logo3.png"
+);
 window.setUserSession = () => {
   console.log("登录");
-  getUser();
+  getUser(() => createApp(App).mount("#app"));
 };
 
-
 var SL = new window.SmcicLogger("shanshipin", "c6124d95");
 SL.Util.SetUrl("https://collect.smcic.net:8443/");
 SL.Systematic.Init({

+ 86 - 34
src/view/WorldCup/components/chat.vue

@@ -1,18 +1,18 @@
 <template>
   <div class="chat">
-    <div class="chatList" ref="chatElement" :style="'height: ' + height + 'px'">
-      <div
-        :key="i"
-        v-for="i in chatList"
-        style="font-size: 0; margin-bottom: 10px"
-      >
-        <div class="chat" v-text="i.text"></div>
+    <div class="chatList">
+      <div class="kuang">
+        <div ref="allChat" :style="'transform: translateY(' + mT + 'px);'">
+          <div :key="i.id" :id="'chat' + i.id" v-for="i in chatList">
+            <div class="chat" v-text="i.content"></div>
+          </div>
+        </div>
       </div>
     </div>
     <van-search
       left-icon=""
       right-icon=""
-      v-model="caht"
+      v-model="chat"
       show-action
       :clearable="false"
       placeholder="说点什么"
@@ -28,7 +28,11 @@
   </div>
 </template>
 <script setup>
-import { ref, reactive } from "vue";
+import { ref, nextTick } from "vue";
+import { getChat, setChat } from "@/api/worldCup.js";
+import { requestAnimationFrame } from "@/utils/tool.js";
+import { Toast } from "vant";
+
 // import { onMounted, reactive } from "vue";
 // import { isIpad, isIpod, isIphone } from "../../utils/isTerminal";
 /**
@@ -36,21 +40,64 @@ import { ref, reactive } from "vue";
  * window.$originData.orginParames.parameters 固定参数值
  * window.$originData.urlParames url参数
  */
-const chatList = reactive([]);
-const caht = ref("");
-const height = ref(0);
-const chatElement = ref(null);
+const chatList = ref([]);
+const allChat = ref(null);
+const chat = ref("");
+const mT = ref(0);
+let time = undefined;
+let time1 = undefined;
+let page = 1;
+const AnimationFrame = requestAnimationFrame();
+time = setTimeout(() => {
+  clearTimeout(time);
+  getChat({
+    page,
+    pagesize: 10,
+  }).then(formmater);
+  time = setInterval(() => {
+    if (page == -1) return clearTimeout(time);
+    getChat({
+      page,
+      pagesize: 10,
+    }).then(formmater);
+  }, 5000);
+}, 200);
+
+function formmater(li) {
+  const list = li ? li.records || [] : [];
+  chatList.value.push(...list);
+  page++;
+  if (chatList.value.length >= li.total) page = -1;
+  nextTick(() => {
+    AnimationFrame(scorllFun);
+  });
+}
+function scorllFun() {
+  if (time1) clearTimeout(time1);
+  time1 = setTimeout(() => {
+    clearTimeout(time1);
+    AnimationFrame(scorllFun);
+  }, 25);
+  let T = mT.value;
+  const chat1 = document.querySelector("#chat" + chatList.value[0].id);
+  if (chat1.offsetHeight <= T * -1) {
+    T = 0;
+    let last = chatList.value.shift();
+    chatList.value.push(last);
+  } else T -= 1;
+  mT.value = T;
+}
 
 function onSearch() {
-  if (!caht.value) return;
-  chatList.push({
-    text: caht.value,
+  if (!chat.value) return;
+  setChat({
+    phone: "18439106376",
+    content: chat.value,
+  }).then(r => {
+    console.log(r);
+    chat.value = "";
+    Toast("发送成功")
   });
-  caht.value = "";
-  let t = setTimeout(() => {
-    clearTimeout(t);
-    chatElement.value.scrollTop = chatElement.value.scrollHeight;
-  }, 0);
 }
 </script>
 <style lang="scss">
@@ -61,20 +108,22 @@ function onSearch() {
   .chatList {
     background-image: url("../../../assets/img/dmbg.jpg");
     background-size: 100% 100%;
-    padding-left: 0.5em;
-    min-height: 250px;
-    padding-top: 10px;
-    overflow-y: auto;
+    background-position: 0% 0%;
+    height: 250px;
+    padding: 10px 0 10px 0.5em;
     width: 100%;
-    transition: all 0.5s;
-    .chat {
-      background: #fff;
-      border-radius: 2em;
-      max-width: 80%;
-      font-size: 14px;
-      padding: 0.5em;
-      display: inline-block;
-      min-width: 3em;
+    .kuang {
+      height: 100%;
+      overflow: hidden;
+      .chat {
+        background: #fff;
+        border-radius: 2em;
+        max-width: 80%;
+        font-size: 14px;
+        padding: 0.5em;
+        display: inline-block;
+        min-width: 3em;
+      }
     }
   }
   .van-search__action {
@@ -92,5 +141,8 @@ function onSearch() {
       transform: translate(-50%, -50%);
     }
   }
+  .myswiper {
+    height: 250px;
+  }
 }
 </style>

+ 40 - 1
src/view/WorldCup/index.js

@@ -1,12 +1,12 @@
 import App from "./index.vue";
 import "@/assets/js/common";
 import { createApp } from "vue";
+import { getUser } from "@/utils/tool.js";
 import { getPageParameters, environment } from "../../config/pageConfig";
 // 判断环境
 environment();
 window.$originData = getPageParameters();
 document.title = window.$originData.orginParames.title || "";
-createApp(App).mount("#app");
 
 // 分享
 window.weixin_Share_Init(
@@ -14,3 +14,42 @@ window.weixin_Share_Init(
   "这是世界杯",
   "https://cxzx.smcic.net/topic/highSpeed/img/logo3.png"
 );
+
+var SL = new window.SmcicLogger("shanshipin", "c6124d95");
+SL.Util.SetUrl("https://collect.smcic.net:8443/");
+SL.Systematic.Init({
+  appid: "c6124d95",
+  channel: "shanshipin",
+  model: "",
+  os: "",
+  os_version: "",
+  carrier: "",
+  network_type: "",
+  ip: "",
+  app_name: "",
+  app_version: "",
+  build_version: "",
+  platform_type: "",
+});
+SL.Content.CommodityDetail({
+  commodity_detail_source: "活动",
+  commodity_id: "",
+  commodity_name: document.title,
+  publisher_name: "",
+  publisher_id: "",
+  review_count: 0,
+  comment_count: 0,
+  collect_count: 0,
+  share_count: 0,
+  like_count: 0,
+  tag: [],
+});
+
+!window.$shanshipin || !window.$shanshipin.Phone
+  ? getUser(() => createApp(App).mount("#app"))
+  : createApp(App).mount("#app");
+
+window.setUserSession = () => {
+  console.log("登录");
+  getUser(() => createApp(App).mount("#app"));
+};

+ 31 - 13
src/view/WorldCup/index.vue

@@ -9,9 +9,14 @@
       <div class="btns">
         <img
           class="userInput"
+          @click="() => toNewPage('./WorldContribution.html')"
           :src="require('../../assets/img/userInput.png')"
         />
-        <img class="userInput my" :src="require('../../assets/img/my.png')" />
+        <img
+          class="userInput my"
+          @click="() => toNewPage('./WorldCupDetail.html')"
+          :src="require('../../assets/img/my.png')"
+        />
       </div>
     </div>
     <div class="down">
@@ -84,16 +89,20 @@ function formmateMatch(matchList) {
     else if (v.rounds === "半决赛") setRow(2, v); // 4进2
     else if (v.rounds === "决赛") {
       // 2进1
-      team[3] = [{
-        team: v.home,
-        teamlogo: v.homeLogo,
-        isHome: true,
-      }];
-      team[5] = [{
-        team: v.away,
-        teamlogo: v.awayLogo,
-        isHome: true,
-      }];
+      team[3] = [
+        {
+          team: v.home,
+          teamlogo: v.homeLogo,
+          isHome: true,
+        },
+      ];
+      team[5] = [
+        {
+          team: v.away,
+          teamlogo: v.awayLogo,
+          isHome: true,
+        },
+      ];
       team[Math.ceil((maxcol.length - 1) / 2)] = [
         {
           team: v.winner || "",
@@ -134,6 +143,13 @@ function setTeam(teamIndex, item) {
     isHome: false,
   });
 }
+
+function toNewPage(url) {
+    if(!url) return;
+    let U = url || "";
+    if (window.$shanshipin.Phone) U += "?phone=" + window.$shanshipin.Phone;
+    location.href = U;
+}
 </script>
 <style lang="scss">
 .WorldCup {
@@ -189,11 +205,13 @@ function setTeam(teamIndex, item) {
       padding: 0 10px 32px 10px;
       .userInput {
         display: inline-block;
-        width: 211px;
+        width: 56.3vw;
+        max-width: 211px;
         height: 64px;
       }
       .my {
-        width: 133px;
+        width: 35.5vw;
+        max-width: 133px;
         margin-left: 11px;
       }
     }

+ 54 - 10
src/view/WorldCupDetail/index.js

@@ -1,11 +1,55 @@
+import App from "./index.vue";
+import "@/assets/js/common";
+import { createApp } from "vue";
+import { getUser } from "@/utils/tool.js";
+import { getPageParameters, environment } from "../../config/pageConfig";
+// 判断环境
+environment();
+window.$originData = getPageParameters();
+document.title = window.$originData.orginParames.title || "";
+createApp(App).mount("#app");
+// 分享
+window.weixin_Share_Init(
+  "世界杯",
+  "这是世界杯",
+  "https://cxzx.smcic.net/topic/highSpeed/img/logo3.png"
+);
 
-        import App from './index.vue'
-        import "@/assets/js/common"
-        import {createApp} from 'vue'
-        import {getPageParameters, environment} from "../../config/pageConfig"
-        // 判断环境
-        environment();
-        window.$originData = getPageParameters();
-        document.title = window.$originData.orginParames.title || "";
-        createApp(App).mount('#app');
-        
+var SL = new window.SmcicLogger("shanshipin", "c6124d95");
+SL.Util.SetUrl("https://collect.smcic.net:8443/");
+SL.Systematic.Init({
+  appid: "c6124d95",
+  channel: "shanshipin",
+  model: "",
+  os: "",
+  os_version: "",
+  carrier: "",
+  network_type: "",
+  ip: "",
+  app_name: "",
+  app_version: "",
+  build_version: "",
+  platform_type: "",
+});
+SL.Content.CommodityDetail({
+  commodity_detail_source: "活动",
+  commodity_id: "",
+  commodity_name: document.title,
+  publisher_name: "",
+  publisher_id: "",
+  review_count: 0,
+  comment_count: 0,
+  collect_count: 0,
+  share_count: 0,
+  like_count: 0,
+  tag: [],
+});
+
+!window.$shanshipin || !window.$shanshipin.Phone
+  ? getUser(() => createApp(App).mount("#app"))
+  : createApp(App).mount("#app");
+
+window.setUserSession = () => {
+  console.log("登录");
+  getUser(() => createApp(App).mount("#app"));
+};

+ 4 - 4
vue.config.js

@@ -7,10 +7,10 @@ module.exports = {
   productionSourceMap: false,
   publicPath: "./",
   pluginOptions: {
-    'style-resources-loader': {
-      preProcessor: 'sass',
-      patterns: []
-    }
+    "style-resources-loader": {
+      preProcessor: "sass",
+      patterns: [],
+    },
   },
   configureWebpack: {
     plugins: [